@servantcdh/ez-planet-cosmos 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -19,6 +19,10 @@ export declare interface CosmosCanvasProps {
19
19
  onPlanetEnter?: (planet: PlanetConfig) => void;
20
20
  onPlanetExit?: () => void;
21
21
  onSatelliteClick?: (event: CosmosNavigateEvent) => void;
22
+ onPlanetDrag?: (planetId: string, position: {
23
+ x: number;
24
+ y: number;
25
+ }) => void;
22
26
  tutorialSteps?: TutorialStep[];
23
27
  showTutorial?: boolean;
24
28
  onTutorialComplete?: () => void;
package/dist/index.js CHANGED
@@ -1,22 +1,22 @@
1
- import { jsxs as p, jsx as t, Fragment as Pt } from "react/jsx-runtime";
2
- import { memo as Q, useRef as E, useMemo as L, useState as R, useCallback as P, useEffect as Ct } from "react";
3
- import { Handle as q, Position as V, getBezierPath as St, BaseEdge as Z, ReactFlowProvider as It, useReactFlow as wt, useNodesState as kt, useEdgesState as xt, ReactFlow as Bt, Background as Tt, BackgroundVariant as $t, Controls as zt, MiniMap as Ft } from "@xyflow/react";
4
- import { motion as v, AnimatePresence as M } from "framer-motion";
5
- import { Canvas as Dt, useFrame as Y } from "@react-three/fiber";
1
+ import { jsxs as p, jsx as t, Fragment as St } from "react/jsx-runtime";
2
+ import { memo as Q, useRef as E, useMemo as D, useState as R, useCallback as v, useEffect as It } from "react";
3
+ import { Handle as q, Position as V, getBezierPath as wt, BaseEdge as Z, ReactFlowProvider as xt, useReactFlow as kt, useNodesState as Bt, useEdgesState as Tt, ReactFlow as $t, Background as zt, BackgroundVariant as Ft, Controls as Lt, MiniMap as Dt } from "@xyflow/react";
4
+ import { motion as N, AnimatePresence as M } from "framer-motion";
5
+ import { Canvas as Mt, useFrame as Y } from "@react-three/fiber";
6
6
  import { Points as tt, PointMaterial as et } from "@react-three/drei";
7
- function Lt({ data: e }) {
8
- const { label: m, subtitle: d, color: r, status: o, isSelected: s } = e, l = s ? 35 : o === "running" ? 30 : o === "error" ? 20 : 15, a = o === "running" ? [1, 1.08, 1] : [1, 1.02, 1], f = s ? 110 : 100;
7
+ function Wt({ data: e }) {
8
+ const { label: m, subtitle: d, color: l, status: n, isSelected: s } = e, u = s ? 35 : n === "running" ? 30 : n === "error" ? 20 : 15, o = n === "running" ? [1, 1.08, 1] : [1, 1.02, 1], P = s ? 110 : 100;
9
9
  return /* @__PURE__ */ p("div", { style: { position: "relative", cursor: "pointer" }, children: [
10
10
  /* @__PURE__ */ t(
11
11
  q,
12
12
  {
13
13
  type: "target",
14
14
  position: V.Left,
15
- style: { background: r, border: "none", width: 8, height: 8, opacity: 0.6 }
15
+ style: { background: l, border: "none", width: 8, height: 8, opacity: 0.6 }
16
16
  }
17
17
  ),
18
18
  s && /* @__PURE__ */ t(
19
- v.div,
19
+ N.div,
20
20
  {
21
21
  initial: { scale: 0.8, opacity: 0 },
22
22
  animate: { scale: 1, opacity: 1, rotate: 360 },
@@ -28,33 +28,33 @@ function Lt({ data: e }) {
28
28
  position: "absolute",
29
29
  top: -12,
30
30
  left: -12,
31
- width: f + 24,
32
- height: f + 24,
31
+ width: P + 24,
32
+ height: P + 24,
33
33
  borderRadius: "50%",
34
- border: `1.5px dashed ${r}88`,
34
+ border: `1.5px dashed ${l}88`,
35
35
  pointerEvents: "none"
36
36
  }
37
37
  }
38
38
  ),
39
39
  /* @__PURE__ */ p(
40
- v.div,
40
+ N.div,
41
41
  {
42
- animate: { scale: a },
42
+ animate: { scale: o },
43
43
  transition: { duration: 3, repeat: 1 / 0, ease: "easeInOut" },
44
44
  whileHover: {
45
- boxShadow: `0 0 ${l + 15}px ${r}aa, inset 0 0 25px rgba(255,255,255,0.15)`
45
+ boxShadow: `0 0 ${u + 15}px ${l}aa, inset 0 0 25px rgba(255,255,255,0.15)`
46
46
  },
47
47
  style: {
48
- width: f,
49
- height: f,
48
+ width: P,
49
+ height: P,
50
50
  borderRadius: "50%",
51
- background: `radial-gradient(circle at 35% 35%, ${r}cc, ${r}44)`,
52
- boxShadow: `0 0 ${l}px ${r}88, inset 0 0 20px rgba(255,255,255,0.1)`,
51
+ background: `radial-gradient(circle at 35% 35%, ${l}cc, ${l}44)`,
52
+ boxShadow: `0 0 ${u}px ${l}88, inset 0 0 20px rgba(255,255,255,0.1)`,
53
53
  display: "flex",
54
54
  flexDirection: "column",
55
55
  alignItems: "center",
56
56
  justifyContent: "center",
57
- border: `2px solid ${s ? `${r}aa` : `${r}66`}`,
57
+ border: `2px solid ${s ? `${l}aa` : `${l}66`}`,
58
58
  transition: "width 0.3s, height 0.3s, border-color 0.3s"
59
59
  },
60
60
  children: [
@@ -75,8 +75,8 @@ function Lt({ data: e }) {
75
75
  ]
76
76
  }
77
77
  ),
78
- o !== "idle" && o !== "disabled" && /* @__PURE__ */ t(
79
- v.div,
78
+ n !== "idle" && n !== "disabled" && /* @__PURE__ */ t(
79
+ N.div,
80
80
  {
81
81
  animate: { opacity: [0.5, 1, 0.5] },
82
82
  transition: { duration: 1.5, repeat: 1 / 0 },
@@ -87,13 +87,13 @@ function Lt({ data: e }) {
87
87
  width: 14,
88
88
  height: 14,
89
89
  borderRadius: "50%",
90
- background: o === "running" ? "#2ecc71" : o === "error" ? "#e74c3c" : "#27ae60",
90
+ background: n === "running" ? "#2ecc71" : n === "error" ? "#e74c3c" : "#27ae60",
91
91
  border: "2px solid rgba(0,0,0,0.4)"
92
92
  }
93
93
  }
94
94
  ),
95
95
  s && /* @__PURE__ */ t(
96
- v.div,
96
+ N.div,
97
97
  {
98
98
  initial: { opacity: 0, y: 8 },
99
99
  animate: { opacity: 0.5, y: 0 },
@@ -116,43 +116,43 @@ function Lt({ data: e }) {
116
116
  {
117
117
  type: "source",
118
118
  position: V.Right,
119
- style: { background: r, border: "none", width: 8, height: 8, opacity: 0.6 }
119
+ style: { background: l, border: "none", width: 8, height: 8, opacity: 0.6 }
120
120
  }
121
121
  )
122
122
  ] });
123
123
  }
124
- const Mt = Q(Lt);
125
- function Wt({
124
+ const At = Q(Wt);
125
+ function Rt({
126
126
  id: e,
127
127
  sourceX: m,
128
128
  sourceY: d,
129
- targetX: r,
130
- targetY: o,
129
+ targetX: l,
130
+ targetY: n,
131
131
  sourcePosition: s,
132
- targetPosition: l,
133
- data: a,
134
- style: f = {}
132
+ targetPosition: u,
133
+ data: o,
134
+ style: P = {}
135
135
  }) {
136
- const [c] = St({
136
+ const [r] = wt({
137
137
  sourceX: m,
138
138
  sourceY: d,
139
139
  sourcePosition: s,
140
- targetX: r,
141
- targetY: o,
142
- targetPosition: l
143
- }), b = (a == null ? void 0 : a.isActive) ?? !1, C = (a == null ? void 0 : a.isDimmed) ?? !1, k = b ? "rgba(46, 204, 113, 0.25)" : "rgba(100, 149, 237, 0.15)", n = b ? "rgba(46, 204, 113, 0.7)" : C ? "rgba(100, 149, 237, 0.12)" : "rgba(100, 149, 237, 0.4)", h = b ? 3 : 2, D = b ? "12 4" : "8 4";
144
- return /* @__PURE__ */ p(Pt, { children: [
140
+ targetX: l,
141
+ targetY: n,
142
+ targetPosition: u
143
+ }), h = (o == null ? void 0 : o.isActive) ?? !1, f = (o == null ? void 0 : o.isDimmed) ?? !1, k = h ? "rgba(46, 204, 113, 0.25)" : "rgba(100, 149, 237, 0.15)", w = h ? "rgba(46, 204, 113, 0.7)" : f ? "rgba(100, 149, 237, 0.12)" : "rgba(100, 149, 237, 0.4)", a = h ? 3 : 2, $ = h ? "12 4" : "8 4";
144
+ return /* @__PURE__ */ p(St, { children: [
145
145
  /* @__PURE__ */ t(
146
146
  Z,
147
147
  {
148
148
  id: `${e}-glow`,
149
- path: c,
149
+ path: r,
150
150
  style: {
151
151
  stroke: k,
152
- strokeWidth: b ? 10 : 6,
153
- filter: `blur(${b ? 5 : 3}px)`,
152
+ strokeWidth: h ? 10 : 6,
153
+ filter: `blur(${h ? 5 : 3}px)`,
154
154
  transition: "stroke 0.6s, stroke-width 0.6s",
155
- ...f
155
+ ...P
156
156
  }
157
157
  }
158
158
  ),
@@ -160,17 +160,17 @@ function Wt({
160
160
  Z,
161
161
  {
162
162
  id: e,
163
- path: c,
163
+ path: r,
164
164
  style: {
165
- stroke: n,
166
- strokeWidth: h,
167
- strokeDasharray: D,
165
+ stroke: w,
166
+ strokeWidth: a,
167
+ strokeDasharray: $,
168
168
  transition: "stroke 0.6s, stroke-width 0.6s",
169
- ...f
169
+ ...P
170
170
  }
171
171
  }
172
172
  ),
173
- (a == null ? void 0 : a.label) && /* @__PURE__ */ t("text", { children: /* @__PURE__ */ t(
173
+ (o == null ? void 0 : o.label) && /* @__PURE__ */ t("text", { children: /* @__PURE__ */ t(
174
174
  "textPath",
175
175
  {
176
176
  href: `#${e}`,
@@ -181,22 +181,22 @@ function Wt({
181
181
  fill: "rgba(255, 255, 255, 0.4)",
182
182
  fontFamily: "monospace"
183
183
  },
184
- children: a.label
184
+ children: o.label
185
185
  }
186
186
  ) })
187
187
  ] });
188
188
  }
189
- const At = Q(Wt);
190
- function Rt({ config: e }) {
191
- const m = E(null), d = e.starCount ?? 2e3, r = e.rotationSpeed ?? 0.02, o = L(() => {
189
+ const Ot = Q(Rt);
190
+ function Et({ config: e }) {
191
+ const m = E(null), d = e.starCount ?? 2e3, l = e.rotationSpeed ?? 0.02, n = D(() => {
192
192
  const s = new Float32Array(d * 3);
193
- for (let l = 0; l < d; l++)
194
- s[l * 3] = (Math.random() - 0.5) * 50, s[l * 3 + 1] = (Math.random() - 0.5) * 50, s[l * 3 + 2] = (Math.random() - 0.5) * 50;
193
+ for (let u = 0; u < d; u++)
194
+ s[u * 3] = (Math.random() - 0.5) * 50, s[u * 3 + 1] = (Math.random() - 0.5) * 50, s[u * 3 + 2] = (Math.random() - 0.5) * 50;
195
195
  return s;
196
196
  }, [d]);
197
- return Y((s, l) => {
198
- m.current && (m.current.rotation.x -= l * r, m.current.rotation.y -= l * (r * 0.5));
199
- }), /* @__PURE__ */ t(tt, { ref: m, positions: o, stride: 3, frustumCulled: !1, children: /* @__PURE__ */ t(
197
+ return Y((s, u) => {
198
+ m.current && (m.current.rotation.x -= u * l, m.current.rotation.y -= u * (l * 0.5));
199
+ }), /* @__PURE__ */ t(tt, { ref: m, positions: n, stride: 3, frustumCulled: !1, children: /* @__PURE__ */ t(
200
200
  et,
201
201
  {
202
202
  transparent: !0,
@@ -208,18 +208,18 @@ function Rt({ config: e }) {
208
208
  }
209
209
  ) });
210
210
  }
211
- function Ot({ config: e }) {
212
- const m = E(null), d = e.nebulaCount ?? 500, r = L(() => {
213
- const o = new Float32Array(d * 3);
211
+ function Gt({ config: e }) {
212
+ const m = E(null), d = e.nebulaCount ?? 500, l = D(() => {
213
+ const n = new Float32Array(d * 3);
214
214
  for (let s = 0; s < d; s++) {
215
- const l = Math.random() * Math.PI * 2, a = Math.random() * 8 + 5;
216
- o[s * 3] = Math.cos(l) * a + (Math.random() - 0.5) * 3, o[s * 3 + 1] = (Math.random() - 0.5) * 4, o[s * 3 + 2] = Math.sin(l) * a + (Math.random() - 0.5) * 3 - 15;
215
+ const u = Math.random() * Math.PI * 2, o = Math.random() * 8 + 5;
216
+ n[s * 3] = Math.cos(u) * o + (Math.random() - 0.5) * 3, n[s * 3 + 1] = (Math.random() - 0.5) * 4, n[s * 3 + 2] = Math.sin(u) * o + (Math.random() - 0.5) * 3 - 15;
217
217
  }
218
- return o;
218
+ return n;
219
219
  }, [d]);
220
- return Y((o, s) => {
220
+ return Y((n, s) => {
221
221
  m.current && (m.current.rotation.y += s * 5e-3);
222
- }), /* @__PURE__ */ t(tt, { ref: m, positions: r, stride: 3, frustumCulled: !1, children: /* @__PURE__ */ t(
222
+ }), /* @__PURE__ */ t(tt, { ref: m, positions: l, stride: 3, frustumCulled: !1, children: /* @__PURE__ */ t(
223
223
  et,
224
224
  {
225
225
  transparent: !0,
@@ -231,79 +231,81 @@ function Ot({ config: e }) {
231
231
  }
232
232
  ) });
233
233
  }
234
- function Et({ config: e = {}, background: m }) {
234
+ function Jt({ config: e = {}, background: m }) {
235
235
  return /* @__PURE__ */ p(
236
- Dt,
236
+ Mt,
237
237
  {
238
238
  camera: { position: [0, 0, 15], fov: 60 },
239
- style: { background: m ?? "radial-gradient(ellipse at center, #0a0a2e 0%, #000008 100%)" },
239
+ style: { background: m ?? "radial-gradient(ellipse at center, #0a0a2e 0%, #000008 100%)", pointerEvents: "none" },
240
+ events: () => ({ enabled: !1, priority: 0, compute: () => {
241
+ } }),
240
242
  children: [
241
243
  /* @__PURE__ */ t("ambientLight", { intensity: 0.1 }),
242
- /* @__PURE__ */ t(Rt, { config: e }),
243
- /* @__PURE__ */ t(Ot, { config: e })
244
+ /* @__PURE__ */ t(Et, { config: e }),
245
+ /* @__PURE__ */ t(Gt, { config: e })
244
246
  ]
245
247
  }
246
248
  );
247
249
  }
248
- const Gt = "cc-root-eSR-1", Jt = "cc-layerStarField-jOb4M", Ut = "cc-layerReactFlow-CeHI9", jt = "cc-sidePanel-PzU72", Ht = "cc-sidePanelHeader-cWPCq", Xt = "cc-sidePanelTitle-Yfh5N", Kt = "cc-sidePanelPlanetIcon-aRuLt", _t = "cc-sidePanelName-TFFeE", qt = "cc-sidePanelSubtitle-8fp2Y", Vt = "cc-sidePanelClose-Sdg-J", Zt = "cc-sidePanelContent-QIEEQ", Qt = "cc-sidePanelFooter-DVOHi", Yt = "cc-satelliteList--vkXn", te = "cc-satelliteItem-JGdmG", ee = "cc-satelliteIcon-arUe3", ie = "cc-satelliteInfo-NaKLd", oe = "cc-satelliteName-zfOPN", ae = "cc-satelliteSummary-XARVm", ne = "cc-enterButton-5Vnri", re = "cc-zoomTransition-Wcju8", le = "cc-zoomPlanetLabel-3SJT2", se = "cc-planetInterior-GlnW1", ce = "cc-interiorBackButton-qJAiZ", de = "cc-interiorCenter-xdKsX", ue = "cc-interiorPlanet--XIzf", me = "cc-interiorPlanetLabel-e7yxq", pe = "cc-interiorPlanetSubtitle-e2vON", ye = "cc-orbitRing-hbvmD", be = "cc-satelliteNode-01STS", he = "cc-satelliteNodeIcon-Xq45f", ge = "cc-satelliteNodeLabel-LLOJ5", fe = "cc-satelliteNodeBadge-HsUFp", ve = "cc-tutorialOverlay-3GHo7", Ne = "cc-tutorialWelcome-21KDP", Pe = "cc-tutorialWelcomeTitle-7GwS9", Ce = "cc-tutorialWelcomeDesc--pznv", Se = "cc-tutorialActions-szJ0-", Ie = "cc-tutorialButton-wL9-p", we = "cc-tutorialCard-LGIkK", ke = "cc-tutorialChip-bUoEb", xe = "cc-tutorialCardTitle-r2Y1I", Be = "cc-tutorialCardDesc-nOS-M", Te = "cc-tutorialProgress-wIAT9", $e = "cc-tutorialProgressBar-PFBdE", ze = "cc-tutorialCardFooter-bSdyM", Fe = "cc-tutorialStepCounter-i7c5G", De = "cc-tutorialDots-8M0QU", Le = "cc-tutorialDot-518t4", Me = "cc-topBarSlot-EJGvM", i = {
249
- root: Gt,
250
- layerStarField: Jt,
251
- layerReactFlow: Ut,
252
- sidePanel: jt,
253
- sidePanelHeader: Ht,
254
- sidePanelTitle: Xt,
255
- sidePanelPlanetIcon: Kt,
256
- sidePanelName: _t,
257
- sidePanelSubtitle: qt,
258
- sidePanelClose: Vt,
259
- sidePanelContent: Zt,
260
- sidePanelFooter: Qt,
261
- satelliteList: Yt,
262
- satelliteItem: te,
263
- satelliteIcon: ee,
264
- satelliteInfo: ie,
265
- satelliteName: oe,
266
- satelliteSummary: ae,
267
- enterButton: ne,
268
- zoomTransition: re,
269
- zoomPlanetLabel: le,
270
- planetInterior: se,
271
- interiorBackButton: ce,
272
- interiorCenter: de,
273
- interiorPlanet: ue,
274
- interiorPlanetLabel: me,
275
- interiorPlanetSubtitle: pe,
276
- orbitRing: ye,
277
- satelliteNode: be,
278
- satelliteNodeIcon: he,
279
- satelliteNodeLabel: ge,
280
- satelliteNodeBadge: fe,
281
- tutorialOverlay: ve,
282
- tutorialWelcome: Ne,
283
- tutorialWelcomeTitle: Pe,
284
- tutorialWelcomeDesc: Ce,
285
- tutorialActions: Se,
286
- tutorialButton: Ie,
287
- tutorialCard: we,
288
- tutorialChip: ke,
289
- tutorialCardTitle: xe,
290
- tutorialCardDesc: Be,
291
- tutorialProgress: Te,
292
- tutorialProgressBar: $e,
293
- tutorialCardFooter: ze,
294
- tutorialStepCounter: Fe,
295
- tutorialDots: De,
296
- tutorialDot: Le,
297
- topBarSlot: Me
250
+ const Ut = "cc-root-eSR-1", jt = "cc-layerStarField-jOb4M", Ht = "cc-layerReactFlow-CeHI9", Xt = "cc-sidePanel-PzU72", _t = "cc-sidePanelHeader-cWPCq", Kt = "cc-sidePanelTitle-Yfh5N", qt = "cc-sidePanelPlanetIcon-aRuLt", Vt = "cc-sidePanelName-TFFeE", Zt = "cc-sidePanelSubtitle-8fp2Y", Qt = "cc-sidePanelClose-Sdg-J", Yt = "cc-sidePanelContent-QIEEQ", te = "cc-sidePanelFooter-DVOHi", ee = "cc-satelliteList--vkXn", ie = "cc-satelliteItem-JGdmG", oe = "cc-satelliteIcon-arUe3", ae = "cc-satelliteInfo-NaKLd", ne = "cc-satelliteName-zfOPN", re = "cc-satelliteSummary-XARVm", le = "cc-enterButton-5Vnri", se = "cc-zoomTransition-Wcju8", ce = "cc-zoomPlanetLabel-3SJT2", de = "cc-planetInterior-GlnW1", ue = "cc-interiorBackButton-qJAiZ", me = "cc-interiorCenter-xdKsX", pe = "cc-interiorPlanet--XIzf", ye = "cc-interiorPlanetLabel-e7yxq", be = "cc-interiorPlanetSubtitle-e2vON", he = "cc-orbitRing-hbvmD", fe = "cc-satelliteNode-01STS", ge = "cc-satelliteNodeIcon-Xq45f", ve = "cc-satelliteNodeLabel-LLOJ5", Ne = "cc-satelliteNodeBadge-HsUFp", Pe = "cc-tutorialOverlay-3GHo7", Ce = "cc-tutorialWelcome-21KDP", Se = "cc-tutorialWelcomeTitle-7GwS9", Ie = "cc-tutorialWelcomeDesc--pznv", we = "cc-tutorialActions-szJ0-", xe = "cc-tutorialButton-wL9-p", ke = "cc-tutorialCard-LGIkK", Be = "cc-tutorialChip-bUoEb", Te = "cc-tutorialCardTitle-r2Y1I", $e = "cc-tutorialCardDesc-nOS-M", ze = "cc-tutorialProgress-wIAT9", Fe = "cc-tutorialProgressBar-PFBdE", Le = "cc-tutorialCardFooter-bSdyM", De = "cc-tutorialStepCounter-i7c5G", Me = "cc-tutorialDots-8M0QU", We = "cc-tutorialDot-518t4", Ae = "cc-topBarSlot-EJGvM", i = {
251
+ root: Ut,
252
+ layerStarField: jt,
253
+ layerReactFlow: Ht,
254
+ sidePanel: Xt,
255
+ sidePanelHeader: _t,
256
+ sidePanelTitle: Kt,
257
+ sidePanelPlanetIcon: qt,
258
+ sidePanelName: Vt,
259
+ sidePanelSubtitle: Zt,
260
+ sidePanelClose: Qt,
261
+ sidePanelContent: Yt,
262
+ sidePanelFooter: te,
263
+ satelliteList: ee,
264
+ satelliteItem: ie,
265
+ satelliteIcon: oe,
266
+ satelliteInfo: ae,
267
+ satelliteName: ne,
268
+ satelliteSummary: re,
269
+ enterButton: le,
270
+ zoomTransition: se,
271
+ zoomPlanetLabel: ce,
272
+ planetInterior: de,
273
+ interiorBackButton: ue,
274
+ interiorCenter: me,
275
+ interiorPlanet: pe,
276
+ interiorPlanetLabel: ye,
277
+ interiorPlanetSubtitle: be,
278
+ orbitRing: he,
279
+ satelliteNode: fe,
280
+ satelliteNodeIcon: ge,
281
+ satelliteNodeLabel: ve,
282
+ satelliteNodeBadge: Ne,
283
+ tutorialOverlay: Pe,
284
+ tutorialWelcome: Ce,
285
+ tutorialWelcomeTitle: Se,
286
+ tutorialWelcomeDesc: Ie,
287
+ tutorialActions: we,
288
+ tutorialButton: xe,
289
+ tutorialCard: ke,
290
+ tutorialChip: Be,
291
+ tutorialCardTitle: Te,
292
+ tutorialCardDesc: $e,
293
+ tutorialProgress: ze,
294
+ tutorialProgressBar: Fe,
295
+ tutorialCardFooter: Le,
296
+ tutorialStepCounter: De,
297
+ tutorialDots: Me,
298
+ tutorialDot: We,
299
+ topBarSlot: Ae
298
300
  };
299
- function We({
301
+ function Re({
300
302
  planet: e,
301
303
  onClose: m,
302
304
  onEnterPlanet: d,
303
- onSatelliteClick: r
305
+ onSatelliteClick: l
304
306
  }) {
305
307
  return /* @__PURE__ */ p(
306
- v.div,
308
+ N.div,
307
309
  {
308
310
  className: i.sidePanel,
309
311
  initial: { x: 340 },
@@ -334,28 +336,28 @@ function We({
334
336
  ] }),
335
337
  /* @__PURE__ */ t("button", { className: i.sidePanelClose, onClick: m, children: "✕" })
336
338
  ] }),
337
- /* @__PURE__ */ t("div", { className: i.sidePanelContent, children: /* @__PURE__ */ t("div", { className: i.satelliteList, children: e.satellites.map((o) => /* @__PURE__ */ p(
339
+ /* @__PURE__ */ t("div", { className: i.sidePanelContent, children: /* @__PURE__ */ t("div", { className: i.satelliteList, children: e.satellites.map((n) => /* @__PURE__ */ p(
338
340
  "div",
339
341
  {
340
342
  className: i.satelliteItem,
341
- onClick: () => r == null ? void 0 : r({
343
+ onClick: () => l == null ? void 0 : l({
342
344
  planetId: e.id,
343
- satelliteId: o.id,
344
- satellite: o
345
+ satelliteId: n.id,
346
+ satellite: n
345
347
  }),
346
348
  children: [
347
- /* @__PURE__ */ t("div", { className: i.satelliteIcon, children: o.icon ?? "●" }),
349
+ /* @__PURE__ */ t("div", { className: i.satelliteIcon, children: n.icon ?? "●" }),
348
350
  /* @__PURE__ */ p("div", { className: i.satelliteInfo, children: [
349
- /* @__PURE__ */ t("div", { className: i.satelliteName, children: o.label }),
350
- o.summary && /* @__PURE__ */ p("div", { className: i.satelliteSummary, children: [
351
- o.summary.total != null && `${o.summary.total} total`,
352
- o.summary.running != null && ` · ${o.summary.running} running`,
353
- o.summary.failed != null && o.summary.failed > 0 && ` · ${o.summary.failed} failed`
351
+ /* @__PURE__ */ t("div", { className: i.satelliteName, children: n.label }),
352
+ n.summary && /* @__PURE__ */ p("div", { className: i.satelliteSummary, children: [
353
+ n.summary.total != null && `${n.summary.total} total`,
354
+ n.summary.running != null && ` · ${n.summary.running} running`,
355
+ n.summary.failed != null && n.summary.failed > 0 && ` · ${n.summary.failed} failed`
354
356
  ] })
355
357
  ] })
356
358
  ]
357
359
  },
358
- o.id
360
+ n.id
359
361
  )) }) }),
360
362
  /* @__PURE__ */ t("div", { className: i.sidePanelFooter, children: /* @__PURE__ */ p(
361
363
  "button",
@@ -373,39 +375,39 @@ function We({
373
375
  }
374
376
  );
375
377
  }
376
- function Ae({
378
+ function Oe({
377
379
  planet: e,
378
380
  onExit: m,
379
381
  onSatelliteClick: d,
380
- renderCustom: r
382
+ renderCustom: l
381
383
  }) {
382
- const [o, s] = R(null);
383
- if (r)
384
+ const [n, s] = R(null);
385
+ if (l)
384
386
  return /* @__PURE__ */ t(
385
- v.div,
387
+ N.div,
386
388
  {
387
389
  className: i.planetInterior,
388
390
  initial: { opacity: 0 },
389
391
  animate: { opacity: 1 },
390
392
  exit: { opacity: 0 },
391
393
  transition: { duration: 0.4 },
392
- children: r(e, m)
394
+ children: l(e, m)
393
395
  }
394
396
  );
395
- const l = e.satellites, a = Math.max(180, l.length * 35), f = P(
396
- (c) => {
397
- s(c);
398
- const b = l.find((C) => C.id === c);
397
+ const u = e.satellites, o = Math.max(180, u.length * 35), P = v(
398
+ (r) => {
399
+ s(r);
400
+ const h = u.find((f) => f.id === r);
399
401
  d == null || d({
400
402
  planetId: e.id,
401
- satelliteId: c,
402
- satellite: b
403
+ satelliteId: r,
404
+ satellite: h
403
405
  });
404
406
  },
405
- [e.id, l, d]
407
+ [e.id, u, d]
406
408
  );
407
409
  return /* @__PURE__ */ p(
408
- v.div,
410
+ N.div,
409
411
  {
410
412
  className: i.planetInterior,
411
413
  initial: { opacity: 0 },
@@ -415,18 +417,18 @@ function Ae({
415
417
  children: [
416
418
  /* @__PURE__ */ t("button", { className: i.interiorBackButton, onClick: m, children: "← Back to Universe" }),
417
419
  /* @__PURE__ */ p("div", { className: i.interiorCenter, children: [
418
- [1, 2, 3].map((c) => /* @__PURE__ */ t(
420
+ [1, 2, 3].map((r) => /* @__PURE__ */ t(
419
421
  "div",
420
422
  {
421
423
  className: i.orbitRing,
422
424
  style: {
423
- width: a * c * 0.7,
424
- height: a * c * 0.7,
425
- top: `calc(50% - ${a * c * 0.7 / 2}px)`,
426
- left: `calc(50% - ${a * c * 0.7 / 2}px)`
425
+ width: o * r * 0.7,
426
+ height: o * r * 0.7,
427
+ top: `calc(50% - ${o * r * 0.7 / 2}px)`,
428
+ left: `calc(50% - ${o * r * 0.7 / 2}px)`
427
429
  }
428
430
  },
429
- c
431
+ r
430
432
  )),
431
433
  /* @__PURE__ */ p(
432
434
  "div",
@@ -442,11 +444,11 @@ function Ae({
442
444
  ]
443
445
  }
444
446
  ),
445
- /* @__PURE__ */ t(M, { children: l.map((c, b) => {
446
- var h;
447
- const C = b / l.length * Math.PI * 2 - Math.PI / 2, k = Math.cos(C) * a, n = Math.sin(C) * a;
447
+ /* @__PURE__ */ t(M, { children: u.map((r, h) => {
448
+ var a;
449
+ const f = h / u.length * Math.PI * 2 - Math.PI / 2, k = Math.cos(f) * o, w = Math.sin(f) * o;
448
450
  return /* @__PURE__ */ p(
449
- v.div,
451
+ N.div,
450
452
  {
451
453
  className: i.satelliteNode,
452
454
  initial: { scale: 0, opacity: 0 },
@@ -455,32 +457,32 @@ function Ae({
455
457
  type: "spring",
456
458
  damping: 15,
457
459
  stiffness: 200,
458
- delay: b * 0.08
460
+ delay: h * 0.08
459
461
  },
460
462
  style: {
461
463
  left: `calc(50% + ${k}px - 32px)`,
462
- top: `calc(50% + ${n}px - 40px)`
464
+ top: `calc(50% + ${w}px - 40px)`
463
465
  },
464
- onClick: () => f(c.id),
466
+ onClick: () => P(r.id),
465
467
  children: [
466
468
  /* @__PURE__ */ p(
467
469
  "div",
468
470
  {
469
471
  className: i.satelliteNodeIcon,
470
472
  style: {
471
- borderColor: o === c.id ? `${e.color}88` : "rgba(255,255,255,0.15)",
472
- boxShadow: o === c.id ? `0 0 20px ${e.color}44` : "none"
473
+ borderColor: n === r.id ? `${e.color}88` : "rgba(255,255,255,0.15)",
474
+ boxShadow: n === r.id ? `0 0 20px ${e.color}44` : "none"
473
475
  },
474
476
  children: [
475
- c.icon ?? "●",
476
- ((h = c.summary) == null ? void 0 : h.running) != null && c.summary.running > 0 && /* @__PURE__ */ t("span", { className: i.satelliteNodeBadge, children: c.summary.running })
477
+ r.icon ?? "●",
478
+ ((a = r.summary) == null ? void 0 : a.running) != null && r.summary.running > 0 && /* @__PURE__ */ t("span", { className: i.satelliteNodeBadge, children: r.summary.running })
477
479
  ]
478
480
  }
479
481
  ),
480
- /* @__PURE__ */ t("span", { className: i.satelliteNodeLabel, children: c.label })
482
+ /* @__PURE__ */ t("span", { className: i.satelliteNodeLabel, children: r.label })
481
483
  ]
482
484
  },
483
- c.id
485
+ r.id
484
486
  );
485
487
  }) })
486
488
  ] })
@@ -488,9 +490,9 @@ function Ae({
488
490
  }
489
491
  );
490
492
  }
491
- function Re({ planet: e }) {
493
+ function Ee({ planet: e }) {
492
494
  return /* @__PURE__ */ t(
493
- v.div,
495
+ N.div,
494
496
  {
495
497
  className: i.zoomTransition,
496
498
  initial: { opacity: 0 },
@@ -498,7 +500,7 @@ function Re({ planet: e }) {
498
500
  exit: { opacity: 0 },
499
501
  transition: { duration: 0.9, ease: "easeInOut" },
500
502
  children: /* @__PURE__ */ t(
501
- v.span,
503
+ N.span,
502
504
  {
503
505
  className: i.zoomPlanetLabel,
504
506
  initial: { scale: 0.5, opacity: 0 },
@@ -515,41 +517,41 @@ function Re({ planet: e }) {
515
517
  }
516
518
  );
517
519
  }
518
- function Oe({
520
+ function Ge({
519
521
  steps: e,
520
522
  onHighlightPlanet: m,
521
523
  onStepChange: d,
522
- onFinish: r,
523
- flyTo: o
524
+ onFinish: l,
525
+ flyTo: n
524
526
  }) {
525
- const [s, l] = R("welcome"), [a, f] = R(0), c = P(
526
- (S) => {
527
- if (S < 0 || S >= e.length) return;
528
- f(S), d(S);
529
- const N = e[S];
530
- N.planetId && m(N.planetId);
527
+ const [s, u] = R("welcome"), [o, P] = R(0), r = v(
528
+ (C) => {
529
+ if (C < 0 || C >= e.length) return;
530
+ P(C), d(C);
531
+ const g = e[C];
532
+ g.planetId && m(g.planetId);
531
533
  },
532
534
  [e, d, m]
533
- ), b = P(() => {
534
- l("stepping"), c(0);
535
- }, [c]), C = P(() => {
536
- a < e.length - 1 ? c(a + 1) : (l("complete"), d(-1), m(null), setTimeout(() => r(), 1500));
537
- }, [a, e.length, c, d, m, r]), k = P(() => {
538
- a > 0 && c(a - 1);
539
- }, [a, c]), n = P(() => {
540
- d(-1), m(null), r();
541
- }, [d, m, r]);
542
- Ct(() => {
535
+ ), h = v(() => {
536
+ u("stepping"), r(0);
537
+ }, [r]), f = v(() => {
538
+ o < e.length - 1 ? r(o + 1) : (u("complete"), d(-1), m(null), setTimeout(() => l(), 1500));
539
+ }, [o, e.length, r, d, m, l]), k = v(() => {
540
+ o > 0 && r(o - 1);
541
+ }, [o, r]), w = v(() => {
542
+ d(-1), m(null), l();
543
+ }, [d, m, l]);
544
+ It(() => {
543
545
  if (s !== "stepping") return;
544
- const S = (N) => {
545
- N.key === "ArrowRight" || N.key === "Enter" ? C() : N.key === "ArrowLeft" ? k() : N.key === "Escape" && n();
546
+ const C = (g) => {
547
+ g.key === "ArrowRight" || g.key === "Enter" ? f() : g.key === "ArrowLeft" ? k() : g.key === "Escape" && w();
546
548
  };
547
- return window.addEventListener("keydown", S), () => window.removeEventListener("keydown", S);
548
- }, [s, C, k, n]);
549
- const h = e[a], D = e.length > 0 ? (a + 1) / e.length * 100 : 0;
549
+ return window.addEventListener("keydown", C), () => window.removeEventListener("keydown", C);
550
+ }, [s, f, k, w]);
551
+ const a = e[o], $ = e.length > 0 ? (o + 1) / e.length * 100 : 0;
550
552
  return /* @__PURE__ */ p(M, { mode: "wait", children: [
551
553
  s === "welcome" && /* @__PURE__ */ t(
552
- v.div,
554
+ N.div,
553
555
  {
554
556
  className: i.tutorialOverlay,
555
557
  initial: { opacity: 0 },
@@ -557,7 +559,7 @@ function Oe({
557
559
  exit: { opacity: 0 },
558
560
  children: /* @__PURE__ */ p("div", { className: i.tutorialWelcome, children: [
559
561
  /* @__PURE__ */ t(
560
- v.div,
562
+ N.div,
561
563
  {
562
564
  initial: { scale: 0.8 },
563
565
  animate: { scale: 1 },
@@ -574,7 +576,7 @@ function Oe({
574
576
  {
575
577
  className: i.tutorialButton,
576
578
  "data-variant": "ghost",
577
- onClick: n,
579
+ onClick: w,
578
580
  children: "SKIP"
579
581
  }
580
582
  ),
@@ -583,7 +585,7 @@ function Oe({
583
585
  {
584
586
  className: i.tutorialButton,
585
587
  "data-variant": "primary",
586
- onClick: b,
588
+ onClick: h,
587
589
  children: "LET'S GO"
588
590
  }
589
591
  )
@@ -592,8 +594,8 @@ function Oe({
592
594
  },
593
595
  "welcome"
594
596
  ),
595
- s === "stepping" && h && /* @__PURE__ */ p(
596
- v.div,
597
+ s === "stepping" && a && /* @__PURE__ */ p(
598
+ N.div,
597
599
  {
598
600
  className: i.tutorialCard,
599
601
  initial: { opacity: 0, y: 20 },
@@ -601,44 +603,44 @@ function Oe({
601
603
  exit: { opacity: 0, y: -10 },
602
604
  transition: { duration: 0.25 },
603
605
  children: [
604
- h.chipText && /* @__PURE__ */ t(
606
+ a.chipText && /* @__PURE__ */ t(
605
607
  "span",
606
608
  {
607
609
  className: i.tutorialChip,
608
610
  style: {
609
- background: `${h.chipColor ?? "#3b82f6"}22`,
610
- color: h.chipColor ?? "#3b82f6"
611
+ background: `${a.chipColor ?? "#3b82f6"}22`,
612
+ color: a.chipColor ?? "#3b82f6"
611
613
  },
612
- children: h.chipText
614
+ children: a.chipText
613
615
  }
614
616
  ),
615
- /* @__PURE__ */ t("h3", { className: i.tutorialCardTitle, children: h.title }),
616
- /* @__PURE__ */ t("p", { className: i.tutorialCardDesc, children: h.description }),
617
+ /* @__PURE__ */ t("h3", { className: i.tutorialCardTitle, children: a.title }),
618
+ /* @__PURE__ */ t("p", { className: i.tutorialCardDesc, children: a.description }),
617
619
  /* @__PURE__ */ t("div", { className: i.tutorialProgress, children: /* @__PURE__ */ t(
618
620
  "div",
619
621
  {
620
622
  className: i.tutorialProgressBar,
621
- style: { width: `${D}%` }
623
+ style: { width: `${$}%` }
622
624
  }
623
625
  ) }),
624
626
  /* @__PURE__ */ p("div", { className: i.tutorialCardFooter, children: [
625
627
  /* @__PURE__ */ p("span", { className: i.tutorialStepCounter, children: [
626
- a + 1,
628
+ o + 1,
627
629
  " / ",
628
630
  e.length
629
631
  ] }),
630
- /* @__PURE__ */ t("div", { className: i.tutorialDots, children: e.map((S, N) => /* @__PURE__ */ t(
632
+ /* @__PURE__ */ t("div", { className: i.tutorialDots, children: e.map((C, g) => /* @__PURE__ */ t(
631
633
  "div",
632
634
  {
633
635
  className: i.tutorialDot,
634
- "data-active": N === a || void 0,
635
- "data-done": N < a || void 0,
636
- onClick: () => c(N)
636
+ "data-active": g === o || void 0,
637
+ "data-done": g < o || void 0,
638
+ onClick: () => r(g)
637
639
  },
638
- N
640
+ g
639
641
  )) }),
640
642
  /* @__PURE__ */ p("div", { style: { display: "flex", gap: "0.5rem" }, children: [
641
- a > 0 && /* @__PURE__ */ t(
643
+ o > 0 && /* @__PURE__ */ t(
642
644
  "button",
643
645
  {
644
646
  className: i.tutorialButton,
@@ -654,18 +656,18 @@ function Oe({
654
656
  className: i.tutorialButton,
655
657
  "data-variant": "primary",
656
658
  style: { padding: "0.375rem 0.75rem", fontSize: "0.75rem" },
657
- onClick: C,
658
- children: a === e.length - 1 ? "Finish" : "→"
659
+ onClick: f,
660
+ children: o === e.length - 1 ? "Finish" : "→"
659
661
  }
660
662
  )
661
663
  ] })
662
664
  ] })
663
665
  ]
664
666
  },
665
- `step-${a}`
667
+ `step-${o}`
666
668
  ),
667
669
  s === "complete" && /* @__PURE__ */ t(
668
- v.div,
670
+ N.div,
669
671
  {
670
672
  className: i.tutorialOverlay,
671
673
  initial: { opacity: 0 },
@@ -673,7 +675,7 @@ function Oe({
673
675
  exit: { opacity: 0 },
674
676
  transition: { duration: 1 },
675
677
  children: /* @__PURE__ */ t(
676
- v.h1,
678
+ N.h1,
677
679
  {
678
680
  className: i.tutorialWelcomeTitle,
679
681
  initial: { scale: 0.8 },
@@ -687,169 +689,178 @@ function Oe({
687
689
  )
688
690
  ] });
689
691
  }
690
- const Ee = { planet: Mt }, Ge = { orbit: At };
691
- function Je({
692
+ const Je = { planet: At }, Ue = { orbit: Ot };
693
+ function je({
692
694
  planets: e,
693
695
  orbits: m,
694
696
  onPlanetClick: d,
695
- onPlanetEnter: r,
696
- onPlanetExit: o,
697
+ onPlanetEnter: l,
698
+ onPlanetExit: n,
697
699
  onSatelliteClick: s,
698
- tutorialSteps: l,
699
- showTutorial: a,
700
- onTutorialComplete: f,
701
- initialView: c,
702
- onViewChange: b,
703
- renderPlanetInterior: C,
704
- topBar: k,
705
- theme: n,
706
- starField: h = !0,
707
- nodeTypes: D,
708
- edgeTypes: S,
709
- className: N,
710
- style: it
700
+ onPlanetDrag: u,
701
+ tutorialSteps: o,
702
+ showTutorial: P,
703
+ onTutorialComplete: r,
704
+ initialView: h,
705
+ onViewChange: f,
706
+ renderPlanetInterior: k,
707
+ topBar: w,
708
+ theme: a,
709
+ starField: $ = !0,
710
+ nodeTypes: C,
711
+ edgeTypes: g,
712
+ className: it,
713
+ style: ot
711
714
  }) {
712
- const [I, ot] = R(c ?? { mode: "universe" }), [H, at] = R(a ?? !1), X = E(0), K = E(""), { setCenter: O } = wt(), w = P(
713
- (u) => {
714
- ot(u), b == null || b(u);
715
+ const [S, at] = R(h ?? { mode: "universe" }), [H, nt] = R(P ?? !1), X = E(0), _ = E(""), { setCenter: O } = kt(), I = v(
716
+ (c) => {
717
+ at(c), f == null || f(c);
715
718
  },
716
- [b]
717
- ), G = P(
718
- (u) => e.find((y) => y.id === u),
719
+ [f]
720
+ ), G = v(
721
+ (c) => e.find((y) => y.id === c),
719
722
  [e]
720
- ), nt = L(
721
- () => e.map((u) => ({
722
- id: u.id,
723
+ ), rt = D(
724
+ () => e.map((c) => ({
725
+ id: c.id,
723
726
  type: "planet",
724
- position: { x: u.x, y: u.y },
727
+ position: { x: c.x, y: c.y },
725
728
  data: {
726
- label: u.label,
727
- subtitle: u.subtitle,
728
- color: u.color,
729
- status: u.status ?? "idle",
729
+ label: c.label,
730
+ subtitle: c.subtitle,
731
+ color: c.color,
732
+ status: c.status ?? "idle",
730
733
  isSelected: !1
731
734
  }
732
735
  })),
733
736
  [e]
734
- ), rt = L(
735
- () => m.map((u, y) => ({
737
+ ), lt = D(
738
+ () => m.map((c, y) => ({
736
739
  id: `orbit-${y}`,
737
- source: u.source,
738
- target: u.target,
740
+ source: c.source,
741
+ target: c.target,
739
742
  type: "orbit",
740
- data: { label: u.label },
743
+ data: { label: c.label },
741
744
  animated: !0
742
745
  })),
743
746
  [m]
744
- ), [lt, W, st] = kt(nt), [ct, J, dt] = xt(rt), B = P(
745
- (u) => {
747
+ ), [st, W, ct] = Bt(rt), [dt, J, ut] = Tt(lt), B = v(
748
+ (c) => {
746
749
  W(
747
750
  (y) => y.map((x) => ({
748
751
  ...x,
749
- data: { ...x.data, isSelected: x.id === u }
752
+ data: { ...x.data, isSelected: x.id === c }
750
753
  }))
751
754
  );
752
755
  },
753
756
  [W]
754
- ), ut = P(
755
- (u) => {
756
- var F;
757
- if (!l) return;
758
- if (u < 0) {
757
+ ), mt = v(
758
+ (c) => {
759
+ var L;
760
+ if (!o) return;
761
+ if (c < 0) {
759
762
  W(
760
- (T) => T.map((g) => ({
761
- ...g,
762
- data: { ...g.data, status: "idle", isSelected: !1 }
763
+ (T) => T.map((b) => ({
764
+ ...b,
765
+ data: { ...b.data, status: "idle", isSelected: !1 }
763
766
  }))
764
767
  ), J(
765
- (T) => T.map((g) => ({
766
- ...g,
768
+ (T) => T.map((b) => ({
769
+ ...b,
767
770
  animated: !0,
768
- data: { ...g.data, isActive: !1, isDimmed: !1 }
771
+ data: { ...b.data, isActive: !1, isDimmed: !1 }
769
772
  }))
770
773
  );
771
774
  return;
772
775
  }
773
- const y = new Set(l.slice(0, u).map((T) => T.planetId)), x = (F = l[u]) == null ? void 0 : F.planetId;
776
+ const y = new Set(o.slice(0, c).map((T) => T.planetId)), x = (L = o[c]) == null ? void 0 : L.planetId;
774
777
  W(
775
- (T) => T.map((g) => {
778
+ (T) => T.map((b) => {
776
779
  let A = "idle";
777
- return g.id === x ? A = "running" : y.has(g.id) && (A = "success"), {
778
- ...g,
779
- data: { ...g.data, status: A, isSelected: g.id === x }
780
+ return b.id === x ? A = "running" : y.has(b.id) && (A = "success"), {
781
+ ...b,
782
+ data: { ...b.data, status: A, isSelected: b.id === x }
780
783
  };
781
784
  })
782
785
  );
783
786
  const U = /* @__PURE__ */ new Set([...y, x]);
784
787
  J(
785
- (T) => T.map((g) => {
786
- const A = y.has(g.source), Nt = U.has(g.target), j = A && Nt;
788
+ (T) => T.map((b) => {
789
+ const A = y.has(b.source), Ct = U.has(b.target), j = A && Ct;
787
790
  return {
788
- ...g,
791
+ ...b,
789
792
  animated: j,
790
- data: { ...g.data, isActive: j, isDimmed: !j }
793
+ data: { ...b.data, isActive: j, isDimmed: !j }
791
794
  };
792
795
  })
793
796
  );
794
797
  },
795
- [l, W, J]
796
- ), mt = P(
797
- (u, y) => {
798
- const x = Date.now(), U = x - X.current < 300 && K.current === y.id;
799
- X.current = x, K.current = y.id;
800
- const F = G(y.id);
801
- U && F ? _(F) : I.mode === "inspecting" && I.planetId === y.id ? (w({ mode: "universe" }), B(null)) : (w({ mode: "inspecting", planetId: y.id }), B(y.id), F && (d == null || d(F)));
798
+ [o, W, J]
799
+ ), pt = v(
800
+ (c, y) => {
801
+ const x = Date.now(), U = x - X.current < 300 && _.current === y.id;
802
+ X.current = x, _.current = y.id;
803
+ const L = G(y.id);
804
+ U && L ? K(L) : S.mode === "inspecting" && S.planetId === y.id ? (I({ mode: "universe" }), B(null)) : (I({ mode: "inspecting", planetId: y.id }), B(y.id), L && (d == null || d(L)));
802
805
  },
803
- [I, B, G, w, d]
804
- ), _ = P(
805
- (u) => {
806
- w({ mode: "entering", planetId: u.id }), B(null), r == null || r(u), O(u.x + 50, u.y + 50, { zoom: 6, duration: 800 }), setTimeout(() => {
807
- w({ mode: "planet", planetId: u.id });
806
+ [S, B, G, I, d]
807
+ ), K = v(
808
+ (c) => {
809
+ I({ mode: "entering", planetId: c.id }), B(null), l == null || l(c), O(c.x + 50, c.y + 50, { zoom: 6, duration: 800 }), setTimeout(() => {
810
+ I({ mode: "planet", planetId: c.id });
808
811
  }, 900);
809
812
  },
810
- [O, B, w, r]
811
- ), pt = P(() => {
812
- w({ mode: "universe" }), o == null || o(), setTimeout(() => {
813
+ [O, B, I, l]
814
+ ), yt = v(() => {
815
+ I({ mode: "universe" }), n == null || n(), setTimeout(() => {
813
816
  O(800, 400, { zoom: 0.8, duration: 600 });
814
817
  }, 100);
815
- }, [O, w, o]), yt = P(() => {
816
- I.mode === "inspecting" && (w({ mode: "universe" }), B(null));
817
- }, [I, B, w]), $ = I.mode !== "universe" ? G(I.planetId) : void 0, bt = I.mode !== "planet", ht = L(
818
- () => ({ ...Ee, ...D }),
819
- [D]
820
- ), gt = L(
821
- () => ({ ...Ge, ...S }),
822
- [S]
823
- ), ft = h !== !1, vt = typeof h == "object" ? h : {}, z = {};
824
- return n != null && n.background && (z["--cc-bg"] = n.background), n != null && n.textColor && (z["--cc-text"] = n.textColor), n != null && n.panelBackground && (z["--cc-panel-bg"] = n.panelBackground), n != null && n.panelBorder && (z["--cc-panel-border"] = n.panelBorder), n != null && n.controlsBackground && (z["--cc-controls-bg"] = n.controlsBackground), n != null && n.fontFamily && (z["--cc-font-family"] = n.fontFamily), /* @__PURE__ */ p(
818
+ }, [O, I, n]), bt = v(
819
+ (c, y) => {
820
+ u == null || u(y.id, { x: y.position.x, y: y.position.y });
821
+ },
822
+ [u]
823
+ ), ht = v(() => {
824
+ S.mode === "inspecting" && (I({ mode: "universe" }), B(null));
825
+ }, [S, B, I]), z = S.mode !== "universe" ? G(S.planetId) : void 0, ft = S.mode !== "planet", gt = D(
826
+ () => ({ ...Je, ...C }),
827
+ [C]
828
+ ), vt = D(
829
+ () => ({ ...Ue, ...g }),
830
+ [g]
831
+ ), Nt = $ !== !1, Pt = typeof $ == "object" ? $ : {}, F = {};
832
+ return a != null && a.background && (F["--cc-bg"] = a.background), a != null && a.textColor && (F["--cc-text"] = a.textColor), a != null && a.panelBackground && (F["--cc-panel-bg"] = a.panelBackground), a != null && a.panelBorder && (F["--cc-panel-border"] = a.panelBorder), a != null && a.controlsBackground && (F["--cc-controls-bg"] = a.controlsBackground), a != null && a.fontFamily && (F["--cc-font-family"] = a.fontFamily), /* @__PURE__ */ p(
825
833
  "div",
826
834
  {
827
- className: `${i.root} ${N ?? ""}`,
828
- style: { ...z, ...it },
835
+ className: `${i.root} ${it ?? ""}`,
836
+ style: { ...F, ...ot },
829
837
  children: [
830
- ft && /* @__PURE__ */ t("div", { className: i.layerStarField, children: /* @__PURE__ */ t(
831
- Et,
838
+ Nt && /* @__PURE__ */ t("div", { className: i.layerStarField, children: /* @__PURE__ */ t(
839
+ Jt,
832
840
  {
833
- config: vt,
834
- background: n == null ? void 0 : n.background
841
+ config: Pt,
842
+ background: a == null ? void 0 : a.background
835
843
  }
836
844
  ) }),
837
845
  /* @__PURE__ */ t(
838
846
  "div",
839
847
  {
840
848
  className: i.layerReactFlow,
841
- "data-hidden": !bt || void 0,
849
+ "data-hidden": !ft || void 0,
842
850
  children: /* @__PURE__ */ p(
843
- Bt,
851
+ $t,
844
852
  {
845
- nodes: lt,
846
- edges: ct,
847
- onNodesChange: st,
848
- onEdgesChange: dt,
849
- onNodeClick: mt,
850
- onPaneClick: yt,
851
- nodeTypes: ht,
852
- edgeTypes: gt,
853
+ nodes: st,
854
+ edges: dt,
855
+ onNodesChange: ct,
856
+ onEdgesChange: ut,
857
+ onNodeClick: pt,
858
+ onNodeDragStop: bt,
859
+ onPaneClick: ht,
860
+ nodeTypes: gt,
861
+ edgeTypes: vt,
862
+ nodesDraggable: !0,
863
+ nodeDragThreshold: 5,
853
864
  fitView: !0,
854
865
  proOptions: { hideAttribution: !0 },
855
866
  style: { background: "transparent" },
@@ -857,34 +868,34 @@ function Je({
857
868
  maxZoom: 8,
858
869
  children: [
859
870
  /* @__PURE__ */ t(
860
- Tt,
871
+ zt,
861
872
  {
862
- variant: $t.Dots,
873
+ variant: Ft.Dots,
863
874
  gap: 50,
864
875
  size: 1,
865
876
  color: "rgba(255, 255, 255, 0.05)"
866
877
  }
867
878
  ),
868
879
  /* @__PURE__ */ t(
869
- zt,
880
+ Lt,
870
881
  {
871
882
  style: {
872
883
  top: 60,
873
- background: (n == null ? void 0 : n.controlsBackground) ?? "rgba(20, 20, 40, 0.8)",
884
+ background: (a == null ? void 0 : a.controlsBackground) ?? "rgba(20, 20, 40, 0.8)",
874
885
  borderColor: "rgba(255, 255, 255, 0.1)"
875
886
  }
876
887
  }
877
888
  ),
878
889
  /* @__PURE__ */ t(
879
- Ft,
890
+ Dt,
880
891
  {
881
892
  style: {
882
893
  background: "rgba(10, 10, 26, 0.9)",
883
894
  border: "1px solid rgba(255, 255, 255, 0.1)"
884
895
  },
885
- nodeColor: (u) => {
896
+ nodeColor: (c) => {
886
897
  var y;
887
- return ((y = u.data) == null ? void 0 : y.color) || "#666";
898
+ return ((y = c.data) == null ? void 0 : y.color) || "#666";
888
899
  },
889
900
  maskColor: "rgba(10, 10, 26, 0.7)"
890
901
  }
@@ -894,36 +905,36 @@ function Je({
894
905
  )
895
906
  }
896
907
  ),
897
- /* @__PURE__ */ t(M, { children: I.mode === "entering" && $ && /* @__PURE__ */ t(Re, { planet: $ }) }),
898
- /* @__PURE__ */ t(M, { children: I.mode === "planet" && $ && /* @__PURE__ */ t(
899
- Ae,
908
+ /* @__PURE__ */ t(M, { children: S.mode === "entering" && z && /* @__PURE__ */ t(Ee, { planet: z }) }),
909
+ /* @__PURE__ */ t(M, { children: S.mode === "planet" && z && /* @__PURE__ */ t(
910
+ Oe,
900
911
  {
901
- planet: $,
902
- onExit: pt,
912
+ planet: z,
913
+ onExit: yt,
903
914
  onSatelliteClick: s,
904
- renderCustom: C
915
+ renderCustom: k
905
916
  }
906
917
  ) }),
907
- /* @__PURE__ */ t(M, { children: I.mode === "inspecting" && $ && /* @__PURE__ */ t(
908
- We,
918
+ /* @__PURE__ */ t(M, { children: S.mode === "inspecting" && z && /* @__PURE__ */ t(
919
+ Re,
909
920
  {
910
- planet: $,
921
+ planet: z,
911
922
  onClose: () => {
912
- w({ mode: "universe" }), B(null);
923
+ I({ mode: "universe" }), B(null);
913
924
  },
914
- onEnterPlanet: () => _($),
925
+ onEnterPlanet: () => K(z),
915
926
  onSatelliteClick: s
916
927
  }
917
928
  ) }),
918
- k && !H && /* @__PURE__ */ t("div", { className: i.topBarSlot, children: k }),
919
- /* @__PURE__ */ t(M, { children: H && l && l.length > 0 && /* @__PURE__ */ t(
920
- Oe,
929
+ w && !H && /* @__PURE__ */ t("div", { className: i.topBarSlot, children: w }),
930
+ /* @__PURE__ */ t(M, { children: H && o && o.length > 0 && /* @__PURE__ */ t(
931
+ Ge,
921
932
  {
922
- steps: l,
933
+ steps: o,
923
934
  onHighlightPlanet: B,
924
- onStepChange: ut,
935
+ onStepChange: mt,
925
936
  onFinish: () => {
926
- at(!1), f == null || f();
937
+ nt(!1), r == null || r();
927
938
  }
928
939
  }
929
940
  ) })
@@ -931,16 +942,16 @@ function Je({
931
942
  }
932
943
  );
933
944
  }
934
- function qe(e) {
935
- return /* @__PURE__ */ t(It, { children: /* @__PURE__ */ t(Je, { ...e }) });
945
+ function Ze(e) {
946
+ return /* @__PURE__ */ t(xt, { children: /* @__PURE__ */ t(je, { ...e }) });
936
947
  }
937
948
  export {
938
- qe as CosmosCanvas,
939
- Oe as CosmosTutorial,
940
- At as OrbitEdge,
941
- Ae as PlanetInterior,
942
- Mt as PlanetNode,
943
- We as SidePanel,
944
- Et as StarField,
945
- Re as ZoomTransition
949
+ Ze as CosmosCanvas,
950
+ Ge as CosmosTutorial,
951
+ Ot as OrbitEdge,
952
+ Oe as PlanetInterior,
953
+ At as PlanetNode,
954
+ Re as SidePanel,
955
+ Jt as StarField,
956
+ Ee as ZoomTransition
946
957
  };
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .cc-root-eSR-1{position:relative;width:100%;height:100%;overflow:hidden;font-family:var(--cc-font-family, system-ui, -apple-system, sans-serif);color:var(--cc-text, #fff)}.cc-layerStarField-jOb4M{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.cc-layerReactFlow-CeHI9{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;transition:opacity .4s ease}.cc-layerReactFlow-CeHI9[data-hidden=true]{opacity:0;pointer-events:none}.cc-sidePanel-PzU72{position:absolute;right:0;top:0;bottom:0;width:340px;z-index:15;background:var(--cc-panel-bg, rgba(10, 10, 30, .92));border-left:1px solid var(--cc-panel-border, rgba(255, 255, 255, .08));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;flex-direction:column;overflow-y:auto}.cc-sidePanelHeader-cWPCq{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1rem;border-bottom:1px solid rgba(255,255,255,.06)}.cc-sidePanelTitle-Yfh5N{display:flex;align-items:center;gap:.75rem}.cc-sidePanelPlanetIcon-aRuLt{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem}.cc-sidePanelName-TFFeE{font-size:1.125rem;font-weight:700;letter-spacing:.5px}.cc-sidePanelSubtitle-8fp2Y{font-size:.75rem;color:#ffffff80;margin-top:.125rem}.cc-sidePanelClose-Sdg-J{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:#ffffff0f;color:#ffffff80;border-radius:.375rem;cursor:pointer;font-size:1rem;transition:background .15s}.cc-sidePanelClose-Sdg-J:hover{background:#ffffff1f;color:#fff}.cc-sidePanelContent-QIEEQ{padding:1rem;flex:1}.cc-sidePanelFooter-DVOHi{padding:1rem;border-top:1px solid rgba(255,255,255,.06)}.cc-satelliteList--vkXn{display:flex;flex-direction:column;gap:.5rem}.cc-satelliteItem-JGdmG{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:.5rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);cursor:pointer;transition:background .15s,border-color .15s}.cc-satelliteItem-JGdmG:hover{background:#ffffff14;border-color:#ffffff1f}.cc-satelliteIcon-arUe3{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.125rem;background:#ffffff0f;flex-shrink:0}.cc-satelliteInfo-NaKLd{flex:1;min-width:0}.cc-satelliteName-zfOPN{font-size:.875rem;font-weight:500}.cc-satelliteSummary-XARVm{font-size:.6875rem;color:#fff6;margin-top:.125rem}.cc-enterButton-5Vnri{width:100%;padding:.625rem;border:1px solid rgba(255,255,255,.15);border-radius:.5rem;background:#ffffff0f;color:#fff;font-size:.875rem;font-weight:600;letter-spacing:.5px;cursor:pointer;transition:background .15s,border-color .2s}.cc-enterButton-5Vnri:hover{background:#ffffff1f;border-color:#ffffff40}.cc-zoomTransition-Wcju8{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,transparent 0%,rgba(0,0,10,.8) 100%);pointer-events:none}.cc-zoomPlanetLabel-3SJT2{font-size:3rem;font-weight:800;letter-spacing:6px;text-transform:uppercase;text-shadow:0 0 40px var(--planet-color, #fff)}.cc-planetInterior-GlnW1{position:absolute;top:0;right:0;bottom:0;left:0;z-index:25;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#0a0a28f2,#000008fa)}.cc-interiorBackButton-qJAiZ{position:absolute;top:1rem;left:1rem;padding:.5rem 1rem;border:1px solid rgba(255,255,255,.2);border-radius:.5rem;background:#ffffff0f;color:#fff;font-size:.8125rem;cursor:pointer;z-index:10;transition:background .15s}.cc-interiorBackButton-qJAiZ:hover{background:#ffffff1f}.cc-interiorCenter-xdKsX{position:relative;display:flex;align-items:center;justify-content:center}.cc-interiorPlanet--XIzf{width:120px;height:120px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2}.cc-interiorPlanetLabel-e7yxq{font-size:1rem;font-weight:700;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.8)}.cc-interiorPlanetSubtitle-e2vON{font-size:.6875rem;color:#fff9;margin-top:.125rem}.cc-orbitRing-hbvmD{position:absolute;border-radius:50%;border:1px dashed rgba(255,255,255,.08);pointer-events:none}.cc-satelliteNode-01STS{position:absolute;display:flex;flex-direction:column;align-items:center;gap:.375rem;cursor:pointer;transition:transform .2s}.cc-satelliteNode-01STS:hover{transform:scale(1.12)}.cc-satelliteNodeIcon-Xq45f{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;border:2px solid rgba(255,255,255,.15);background:#ffffff0f;transition:border-color .2s,box-shadow .2s}.cc-satelliteNode-01STS:hover .cc-satelliteNodeIcon-Xq45f{border-color:#ffffff4d}.cc-satelliteNodeLabel-LLOJ5{font-size:.6875rem;color:#ffffffb3;white-space:nowrap;max-width:80px;overflow:hidden;text-overflow:ellipsis;text-align:center}.cc-satelliteNodeBadge-HsUFp{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#2ecc71;color:#fff;font-size:.625rem;font-weight:700;display:flex;align-items:center;justify-content:center}.cc-tutorialOverlay-3GHo7{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#00000ab3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.cc-tutorialWelcome-21KDP{text-align:center;max-width:480px}.cc-tutorialWelcomeTitle-7GwS9{font-size:2rem;font-weight:800;letter-spacing:2px;margin-bottom:1rem}.cc-tutorialWelcomeDesc--pznv{font-size:1rem;color:#fff9;line-height:1.6;margin-bottom:2rem}.cc-tutorialActions-szJ0-{display:flex;align-items:center;justify-content:center;gap:1rem}.cc-tutorialButton-wL9-p{padding:.625rem 1.5rem;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s,transform .1s}.cc-tutorialButton-wL9-p:active{transform:scale(.97)}.cc-tutorialButton-wL9-p[data-variant=primary]{background:#fff;color:#0a0a2e;border:none}.cc-tutorialButton-wL9-p[data-variant=primary]:hover{background:#e2e8f0}.cc-tutorialButton-wL9-p[data-variant=ghost]{background:transparent;color:#ffffff80;border:1px solid rgba(255,255,255,.15)}.cc-tutorialButton-wL9-p[data-variant=ghost]:hover{background:#ffffff0f}.cc-tutorialCard-LGIkK{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);z-index:50;width:420px;padding:1.5rem;background:#0a0a1ef2;border:1px solid rgba(255,255,255,.1);border-radius:.75rem;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.cc-tutorialChip-bUoEb{display:inline-block;padding:.25rem .625rem;border-radius:9999px;font-size:.6875rem;font-weight:600;letter-spacing:.5px;margin-bottom:.75rem}.cc-tutorialCardTitle-r2Y1I{font-size:1.125rem;font-weight:700;margin-bottom:.5rem}.cc-tutorialCardDesc-nOS-M{font-size:.8125rem;color:#fff9;line-height:1.5;margin-bottom:1.25rem}.cc-tutorialProgress-wIAT9{width:100%;height:3px;background:#ffffff1a;border-radius:2px;margin-bottom:1rem}.cc-tutorialProgressBar-PFBdE{height:100%;border-radius:2px;background:#fff;transition:width .3s ease}.cc-tutorialCardFooter-bSdyM{display:flex;align-items:center;justify-content:space-between}.cc-tutorialStepCounter-i7c5G{font-size:.75rem;color:#fff6;font-family:monospace}.cc-tutorialDots-8M0QU{display:flex;gap:.375rem}.cc-tutorialDot-518t4{width:6px;height:6px;border-radius:50%;background:#fff3;cursor:pointer;transition:background .15s}.cc-tutorialDot-518t4[data-active=true]{background:#fff}.cc-tutorialDot-518t4[data-done=true]{background:#ffffff80}.cc-topBarSlot-EJGvM{position:absolute;top:0;left:0;right:0;z-index:50}
1
+ .cc-root-eSR-1{position:relative;width:100%;height:100%;overflow:hidden;font-family:var(--cc-font-family, system-ui, -apple-system, sans-serif);color:var(--cc-text, #fff)}.cc-layerStarField-jOb4M{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.cc-layerReactFlow-CeHI9{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;transition:opacity .4s ease}.cc-layerReactFlow-CeHI9[data-hidden=true]{opacity:0;pointer-events:none}.cc-sidePanel-PzU72{position:absolute;right:0;top:0;bottom:0;width:340px;z-index:15;background:var(--cc-panel-bg, rgba(10, 10, 30, .92));border-left:1px solid var(--cc-panel-border, rgba(255, 255, 255, .08));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;flex-direction:column;overflow-y:auto}.cc-sidePanelHeader-cWPCq{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1rem;border-bottom:1px solid rgba(255,255,255,.06)}.cc-sidePanelTitle-Yfh5N{display:flex;align-items:center;gap:.75rem}.cc-sidePanelPlanetIcon-aRuLt{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem}.cc-sidePanelName-TFFeE{font-size:1.125rem;font-weight:700;letter-spacing:.5px}.cc-sidePanelSubtitle-8fp2Y{font-size:.75rem;color:#ffffff80;margin-top:.125rem}.cc-sidePanelClose-Sdg-J{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:#ffffff0f;color:#ffffff80;border-radius:.375rem;cursor:pointer;font-size:1rem;transition:background .15s}.cc-sidePanelClose-Sdg-J:hover{background:#ffffff1f;color:#fff}.cc-sidePanelContent-QIEEQ{padding:1rem;flex:1}.cc-sidePanelFooter-DVOHi{padding:1rem;border-top:1px solid rgba(255,255,255,.06)}.cc-satelliteList--vkXn{display:flex;flex-direction:column;gap:.5rem}.cc-satelliteItem-JGdmG{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:.5rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);cursor:pointer;transition:background .15s,border-color .15s}.cc-satelliteItem-JGdmG:hover{background:#ffffff14;border-color:#ffffff1f}.cc-satelliteIcon-arUe3{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.125rem;background:#ffffff0f;flex-shrink:0}.cc-satelliteInfo-NaKLd{flex:1;min-width:0}.cc-satelliteName-zfOPN{font-size:.875rem;font-weight:500}.cc-satelliteSummary-XARVm{font-size:.6875rem;color:#fff6;margin-top:.125rem}.cc-enterButton-5Vnri{width:100%;padding:.625rem;border:1px solid rgba(255,255,255,.15);border-radius:.5rem;background:#ffffff0f;color:#fff;font-size:.875rem;font-weight:600;letter-spacing:.5px;cursor:pointer;transition:background .15s,border-color .2s}.cc-enterButton-5Vnri:hover{background:#ffffff1f;border-color:#ffffff40}.cc-zoomTransition-Wcju8{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,transparent 0%,rgba(0,0,10,.8) 100%);pointer-events:none}.cc-zoomPlanetLabel-3SJT2{font-size:3rem;font-weight:800;letter-spacing:6px;text-transform:uppercase;text-shadow:0 0 40px var(--planet-color, #fff)}.cc-planetInterior-GlnW1{position:absolute;top:0;right:0;bottom:0;left:0;z-index:25;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#0a0a28f2,#000008fa)}.cc-interiorBackButton-qJAiZ{position:absolute;top:1rem;left:1rem;padding:.5rem 1rem;border:1px solid rgba(255,255,255,.2);border-radius:.5rem;background:#ffffff0f;color:#fff;font-size:.8125rem;cursor:pointer;z-index:10;transition:background .15s}.cc-interiorBackButton-qJAiZ:hover{background:#ffffff1f}.cc-interiorCenter-xdKsX{position:relative;display:flex;align-items:center;justify-content:center}.cc-interiorPlanet--XIzf{width:120px;height:120px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2}.cc-interiorPlanetLabel-e7yxq{font-size:1rem;font-weight:700;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.8)}.cc-interiorPlanetSubtitle-e2vON{font-size:.6875rem;color:#fff9;margin-top:.125rem}.cc-orbitRing-hbvmD{position:absolute;border-radius:50%;border:1px dashed rgba(255,255,255,.08);pointer-events:none}.cc-satelliteNode-01STS{position:absolute;display:flex;flex-direction:column;align-items:center;gap:.375rem;cursor:pointer;transition:transform .2s}.cc-satelliteNode-01STS:hover{transform:scale(1.12)}.cc-satelliteNodeIcon-Xq45f{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;border:2px solid rgba(255,255,255,.15);background:#ffffff0f;transition:border-color .2s,box-shadow .2s}.cc-satelliteNode-01STS:hover .cc-satelliteNodeIcon-Xq45f{border-color:#ffffff4d}.cc-satelliteNodeLabel-LLOJ5{font-size:.6875rem;color:#ffffffb3;white-space:nowrap;max-width:80px;overflow:hidden;text-overflow:ellipsis;text-align:center}.cc-satelliteNodeBadge-HsUFp{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#2ecc71;color:#fff;font-size:.625rem;font-weight:700;display:flex;align-items:center;justify-content:center}.cc-tutorialOverlay-3GHo7{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#00000ab3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.cc-tutorialWelcome-21KDP{text-align:center;max-width:480px}.cc-tutorialWelcomeTitle-7GwS9{font-size:2rem;font-weight:800;letter-spacing:2px;margin-bottom:1rem}.cc-tutorialWelcomeDesc--pznv{font-size:1rem;color:#fff9;line-height:1.6;margin-bottom:2rem}.cc-tutorialActions-szJ0-{display:flex;align-items:center;justify-content:center;gap:1rem}.cc-tutorialButton-wL9-p{padding:.625rem 1.5rem;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s,transform .1s}.cc-tutorialButton-wL9-p:active{transform:scale(.97)}.cc-tutorialButton-wL9-p[data-variant=primary]{background:#fff;color:#0a0a2e;border:none}.cc-tutorialButton-wL9-p[data-variant=primary]:hover{background:#e2e8f0}.cc-tutorialButton-wL9-p[data-variant=ghost]{background:transparent;color:#ffffff80;border:1px solid rgba(255,255,255,.15)}.cc-tutorialButton-wL9-p[data-variant=ghost]:hover{background:#ffffff0f}.cc-tutorialCard-LGIkK{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);z-index:50;width:420px;padding:1.5rem;background:#0a0a1ef2;border:1px solid rgba(255,255,255,.1);border-radius:.75rem;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.cc-tutorialChip-bUoEb{display:inline-block;padding:.25rem .625rem;border-radius:9999px;font-size:.6875rem;font-weight:600;letter-spacing:.5px;margin-bottom:.75rem}.cc-tutorialCardTitle-r2Y1I{font-size:1.125rem;font-weight:700;margin-bottom:.5rem}.cc-tutorialCardDesc-nOS-M{font-size:.8125rem;color:#fff9;line-height:1.5;margin-bottom:1.25rem}.cc-tutorialProgress-wIAT9{width:100%;height:3px;background:#ffffff1a;border-radius:2px;margin-bottom:1rem}.cc-tutorialProgressBar-PFBdE{height:100%;border-radius:2px;background:#fff;transition:width .3s ease}.cc-tutorialCardFooter-bSdyM{display:flex;align-items:center;justify-content:space-between}.cc-tutorialStepCounter-i7c5G{font-size:.75rem;color:#fff6;font-family:monospace}.cc-tutorialDots-8M0QU{display:flex;gap:.375rem}.cc-tutorialDot-518t4{width:6px;height:6px;border-radius:50%;background:#fff3;cursor:pointer;transition:background .15s}.cc-tutorialDot-518t4[data-active=true]{background:#fff}.cc-tutorialDot-518t4[data-done=true]{background:#ffffff80}.cc-topBarSlot-EJGvM{position:absolute;top:0;left:0;right:0;z-index:50}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servantcdh/ez-planet-cosmos",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -11,7 +11,8 @@
11
11
  ".": {
12
12
  "import": "./dist/index.js",
13
13
  "types": "./dist/index.d.ts"
14
- }
14
+ },
15
+ "./dist/style.css": "./dist/style.css"
15
16
  },
16
17
  "repository": {
17
18
  "type": "git",