@ibgib/space-gib 0.0.32 → 0.0.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/dist/client/bootstrap.mjs +24 -51
  2. package/dist/client/chunk-25PXC4HP.mjs +9914 -0
  3. package/dist/client/chunk-RXWLL2AI.mjs +30 -0
  4. package/dist/client/css/activity-bar.css +417 -0
  5. package/dist/client/css/base.css +167 -0
  6. package/dist/client/css/components.css +218 -0
  7. package/dist/client/css/cosmic.css +557 -0
  8. package/dist/client/css/dev-tools.css +163 -0
  9. package/dist/client/css/landing.css +184 -0
  10. package/dist/client/css/layout.css +896 -0
  11. package/dist/client/css/onboarding.css +181 -0
  12. package/dist/client/css/repos.css +740 -0
  13. package/dist/client/css/variables.css +64 -0
  14. package/dist/client/index.html +202 -31
  15. package/dist/client/index.mjs +31 -31
  16. package/dist/client/script.mjs +1 -1
  17. package/dist/client/style.css +11 -1056
  18. package/dist/respec-gib.node.mjs +5 -0
  19. package/dist/server/server.mjs +6879 -3109
  20. package/package.json +6 -6
  21. package/src/client/AUTO-GENERATED-version.mts +1 -1
  22. package/src/client/cosmos/seed-cosmos-workspace.mts +69 -0
  23. package/src/client/css/activity-bar.css +417 -0
  24. package/src/client/css/base.css +167 -0
  25. package/src/client/css/components.css +218 -0
  26. package/src/client/css/cosmic.css +557 -0
  27. package/src/client/css/dev-tools.css +163 -0
  28. package/src/client/css/landing.css +184 -0
  29. package/src/client/css/layout.css +896 -0
  30. package/src/client/css/onboarding.css +181 -0
  31. package/src/client/css/repos.css +740 -0
  32. package/src/client/css/variables.css +64 -0
  33. package/src/client/dev-tools/vcs-workspace.mts +3 -3
  34. package/src/client/index.html +202 -31
  35. package/src/client/style.css +11 -1056
  36. package/src/client/ui/component/chat-view/IMPLEMENTATION.md +48 -0
  37. package/src/client/ui/component/chat-view/chat-view.css +381 -0
  38. package/src/client/ui/component/chat-view/chat-view.html +104 -0
  39. package/src/client/ui/component/chat-view/chat-view.mts +277 -0
  40. package/src/client/ui/component/chat-view/index.mts +9 -0
  41. package/src/client/ui/component/clone/IMPLEMENTATION.md +68 -0
  42. package/src/client/ui/component/clone/clone-constants.mts +16 -0
  43. package/src/client/ui/component/clone/clone-types.mts +60 -0
  44. package/src/client/ui/component/clone/clone.css +383 -0
  45. package/src/client/ui/component/clone/clone.html +89 -0
  46. package/src/client/ui/component/clone/clone.mts +620 -0
  47. package/src/client/ui/component/clone/index.mts +11 -0
  48. package/src/client/ui/component/code-editor/IMPLEMENTATION.md +89 -0
  49. package/src/client/ui/component/code-editor/code-editor.css +275 -0
  50. package/src/client/ui/component/code-editor/code-editor.html +54 -0
  51. package/src/client/ui/component/code-editor/code-editor.mts +427 -0
  52. package/src/client/ui/component/code-editor/index.mts +9 -0
  53. package/src/client/ui/component/cosmos-navigator/IMPLEMENTATION.md +31 -0
  54. package/src/client/ui/component/cosmos-navigator/cosmos-navigator.css +864 -0
  55. package/src/client/ui/component/cosmos-navigator/cosmos-navigator.html +97 -0
  56. package/src/client/ui/component/cosmos-navigator/cosmos-navigator.mts +1084 -0
  57. package/src/client/ui/component/cosmos-navigator/index.mts +18 -0
  58. package/src/client/ui/component/file-explorer/IMPLEMENTATION.md +42 -0
  59. package/src/client/ui/component/file-explorer/file-explorer.css +256 -0
  60. package/src/client/ui/component/file-explorer/file-explorer.html +75 -0
  61. package/src/client/ui/component/file-explorer/file-explorer.mts +346 -0
  62. package/src/client/ui/component/file-explorer/index.mts +9 -0
  63. package/src/client/ui/component/nested-chat/IMPLEMENTATION.md +18 -0
  64. package/src/client/ui/component/nested-chat/chat/IMPLEMENTATION.md +14 -0
  65. package/src/client/ui/component/nested-chat/chat/chat-constants.mts +14 -0
  66. package/src/client/ui/component/nested-chat/chat/chat-helpers.mts +66 -0
  67. package/src/client/ui/component/nested-chat/chat/chat.css +654 -0
  68. package/src/client/ui/component/nested-chat/chat/chat.html +90 -0
  69. package/src/client/ui/component/nested-chat/chat/chat.mts +646 -0
  70. package/src/client/ui/component/nested-chat/chat/index.mts +7 -0
  71. package/src/client/ui/component/nested-chat/index.mts +14 -0
  72. package/src/client/ui/component/nested-chat/nested-chat-constants.mts +12 -0
  73. package/src/client/ui/component/nested-chat/nested-chat-types.mts +53 -0
  74. package/src/client/ui/component/nested-chat/nested-chat.css +142 -0
  75. package/src/client/ui/component/nested-chat/nested-chat.html +11 -0
  76. package/src/client/ui/component/nested-chat/nested-chat.mts +393 -0
  77. package/src/client/ui/component/notes-explorer/index.mts +9 -0
  78. package/src/client/ui/component/notes-explorer/notes-explorer.css +313 -0
  79. package/src/client/ui/component/notes-explorer/notes-explorer.html +136 -0
  80. package/src/client/ui/component/notes-explorer/notes-explorer.mts +240 -0
  81. package/src/client/ui/component/notes-inspector/index.mts +9 -0
  82. package/src/client/ui/component/notes-inspector/notes-inspector.css +244 -0
  83. package/src/client/ui/component/notes-inspector/notes-inspector.html +97 -0
  84. package/src/client/ui/component/notes-inspector/notes-inspector.mts +152 -0
  85. package/src/client/ui/component/pitch/IMPLEMENTATION.md +48 -0
  86. package/src/client/ui/component/pitch/index.mts +9 -0
  87. package/src/client/ui/component/pitch/pitch.css +295 -0
  88. package/src/client/ui/component/pitch/pitch.html +97 -0
  89. package/src/client/ui/component/pitch/pitch.mts +135 -0
  90. package/src/client/ui/component/timeline/IMPLEMENTATION.md +33 -0
  91. package/src/client/ui/component/timeline/index.mts +9 -0
  92. package/src/client/ui/component/timeline/timeline.css +264 -0
  93. package/src/client/ui/component/timeline/timeline.html +23 -0
  94. package/src/client/ui/component/timeline/timeline.mts +317 -0
  95. package/src/client/ui/component/timeline-item-details/IMPLEMENTATION.md +28 -0
  96. package/src/client/ui/component/timeline-item-details/index.mts +9 -0
  97. package/src/client/ui/component/timeline-item-details/timeline-item-details.css +286 -0
  98. package/src/client/ui/component/timeline-item-details/timeline-item-details.html +64 -0
  99. package/src/client/ui/component/timeline-item-details/timeline-item-details.mts +194 -0
  100. package/src/client/ui/router/index.mts +3 -0
  101. package/src/client/ui/router/space-gib-router-helpers.mts +272 -0
  102. package/src/client/ui/router/space-gib-router-helpers.respec.mts +353 -0
  103. package/src/client/ui/router/space-gib-router-service.mts +186 -0
  104. package/src/client/ui/router/space-gib-router-types.mts +93 -0
  105. package/src/client/ui/shell/cosmic-big-bang.mts +844 -0
  106. package/src/client/ui/shell/space-gib-shell-constants.mts +7 -0
  107. package/src/client/ui/shell/space-gib-shell-service.mts +1728 -31
  108. package/src/server/server.mts +20 -1
  109. package/tsconfig.test.json +5 -1
  110. package/dist/client/chunk-AX6BROMT.mjs +0 -1
  111. package/dist/client/chunk-CIQUGV7U.mjs +0 -25
  112. package/dist/client/chunk-YPCHYDKL.mjs +0 -3102
@@ -0,0 +1,557 @@
1
+ /* =========================================================================
2
+ Cosmic Big Bang & Spaces Wireframe Styles
3
+ ========================================================================= */
4
+
5
+ /* Reflected Left Panel Toggle Icon */
6
+ .reflected-icon {
7
+ display: inline-block;
8
+ transform: scaleX(-1);
9
+ font-size: 1.15rem;
10
+ line-height: 1;
11
+ }
12
+
13
+ /* Galaxy Brand Icon Animation */
14
+ .brand-galaxy {
15
+ font-size: 1.25rem;
16
+ margin-left: 0.35rem;
17
+ display: inline-block;
18
+ animation: galaxy-slow-spin 30s linear infinite;
19
+ }
20
+
21
+ @keyframes galaxy-slow-spin {
22
+ from { transform: rotate(0deg); }
23
+ to { transform: rotate(360deg); }
24
+ }
25
+
26
+ /* Spaces Workspace & Cosmic Stage */
27
+ .spaces-workspace {
28
+ display: flex;
29
+ flex-direction: column;
30
+ width: 100%;
31
+ height: 100%;
32
+ flex: 1;
33
+ min-height: 0;
34
+ background: #000000;
35
+ position: relative;
36
+ overflow: hidden;
37
+ }
38
+
39
+ .cosmic-stage {
40
+ position: relative;
41
+ width: 100%;
42
+ height: calc(100vh - var(--header-h) - var(--footer-h));
43
+ min-height: 520px;
44
+ background: radial-gradient(circle at center, #070c18 0%, #000206 100%);
45
+ overflow: hidden;
46
+ display: flex;
47
+ align-items: center;
48
+ justify-content: center;
49
+ }
50
+
51
+ /* Canvas Background */
52
+ .cosmic-canvas {
53
+ position: absolute;
54
+ inset: 0;
55
+ width: 100%;
56
+ height: 100%;
57
+ pointer-events: none;
58
+ z-index: 1;
59
+ }
60
+
61
+ /* Singularity Orb Container */
62
+ .cosmic-singularity-container {
63
+ position: absolute;
64
+ top: 50%;
65
+ left: 50%;
66
+ transform: translate(-50%, -50%);
67
+ z-index: 10;
68
+ display: flex;
69
+ align-items: center;
70
+ justify-content: center;
71
+ transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.5s ease;
72
+ }
73
+
74
+ .cosmic-singularity-container.collapsed {
75
+ transform: translate(-50%, -50%) scale(0);
76
+ opacity: 0;
77
+ pointer-events: none;
78
+ visibility: hidden;
79
+ }
80
+
81
+ /* Singularity Button */
82
+ .singularity-btn {
83
+ position: relative;
84
+ width: 130px;
85
+ height: 130px;
86
+ border-radius: 50%;
87
+ background: transparent;
88
+ border: none;
89
+ cursor: pointer;
90
+ display: flex;
91
+ flex-direction: column;
92
+ align-items: center;
93
+ justify-content: center;
94
+ outline: none;
95
+ transition: transform 0.3s ease;
96
+ }
97
+
98
+ .singularity-btn:hover {
99
+ transform: scale(1.08);
100
+ }
101
+
102
+ .singularity-glow {
103
+ position: absolute;
104
+ inset: 15px;
105
+ border-radius: 50%;
106
+ background: radial-gradient(circle, rgba(120, 248, 126, 0.7) 0%, rgba(68, 170, 255, 0.3) 50%, transparent 75%);
107
+ animation: singularity-pulse-glow 2.5s ease-in-out infinite;
108
+ z-index: 2;
109
+ }
110
+
111
+ @keyframes singularity-pulse-glow {
112
+ 0%, 100% {
113
+ transform: scale(0.9);
114
+ opacity: 0.6;
115
+ }
116
+ 50% {
117
+ transform: scale(1.3);
118
+ opacity: 1;
119
+ box-shadow: 0 0 45px rgba(120, 248, 126, 0.6), 0 0 70px rgba(68, 170, 255, 0.4);
120
+ }
121
+ }
122
+
123
+ .singularity-core {
124
+ position: relative;
125
+ width: 32px;
126
+ height: 32px;
127
+ border-radius: 50%;
128
+ background: #ffffff;
129
+ box-shadow: 0 0 24px #ffffff, 0 0 45px var(--clr-accent);
130
+ z-index: 3;
131
+ animation: core-shimmer 1.8s ease-in-out infinite alternate;
132
+ }
133
+
134
+ @keyframes core-shimmer {
135
+ from { transform: scale(0.92); opacity: 0.85; }
136
+ to { transform: scale(1.08); opacity: 1; }
137
+ }
138
+
139
+ .singularity-ring {
140
+ position: absolute;
141
+ border-radius: 50%;
142
+ border: 1px dashed;
143
+ pointer-events: none;
144
+ }
145
+
146
+ .ring-outer {
147
+ inset: 0;
148
+ border-color: rgba(120, 248, 126, 0.35);
149
+ animation: spin-clockwise 14s linear infinite;
150
+ }
151
+
152
+ .ring-middle {
153
+ inset: 16px;
154
+ border-color: rgba(180, 100, 255, 0.4);
155
+ animation: spin-counter-clockwise 9s linear infinite;
156
+ }
157
+
158
+ .ring-inner {
159
+ inset: 32px;
160
+ border-color: rgba(68, 170, 255, 0.5);
161
+ animation: spin-clockwise 5s linear infinite;
162
+ }
163
+
164
+ @keyframes spin-clockwise {
165
+ from { transform: rotate(0deg); }
166
+ to { transform: rotate(360deg); }
167
+ }
168
+
169
+ @keyframes spin-counter-clockwise {
170
+ from { transform: rotate(360deg); }
171
+ to { transform: rotate(0deg); }
172
+ }
173
+
174
+ .singularity-label {
175
+ position: absolute;
176
+ bottom: -32px;
177
+ white-space: nowrap;
178
+ font-family: var(--font-sans);
179
+ font-size: 0.85rem;
180
+ font-weight: 600;
181
+ letter-spacing: 0.08em;
182
+ text-transform: uppercase;
183
+ color: var(--clr-accent);
184
+ text-shadow: 0 0 12px rgba(120, 248, 126, 0.5);
185
+ z-index: 4;
186
+ transition: opacity 0.3s ease;
187
+ }
188
+
189
+ /* Cosmic Cluster (Post-Big Bang) */
190
+ .cosmic-cluster {
191
+ position: absolute;
192
+ inset: 0;
193
+ width: 100%;
194
+ height: 100%;
195
+ z-index: 10;
196
+ pointer-events: none;
197
+ transition: opacity 0.5s ease;
198
+ }
199
+
200
+ .cosmic-cluster.hidden {
201
+ display: none;
202
+ opacity: 0;
203
+ }
204
+
205
+ .cosmic-cluster.expanded {
206
+ display: block;
207
+ opacity: 1;
208
+ }
209
+
210
+ /* Node Wrapper & Positions */
211
+ .node-wrapper {
212
+ position: absolute;
213
+ display: flex;
214
+ flex-direction: column;
215
+ align-items: center;
216
+ gap: 0.4rem;
217
+ pointer-events: auto;
218
+ z-index: 10;
219
+ }
220
+
221
+ /* 1st-Order Layout:
222
+ - Superspace (Galaxy) sits dead center.
223
+ - Identity starts in top-right sector and drifts slowly towards top-right header.
224
+ - Robot starts in bottom-right sector and drifts slowly towards bottom-right FAB.
225
+ */
226
+ .node-superspace-pos {
227
+ top: 50%;
228
+ left: 50%;
229
+ transform: translate(-50%, -50%);
230
+ transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
231
+ }
232
+
233
+ .node-identity-pos {
234
+ top: 50%;
235
+ left: 50%;
236
+ animation: drift-identity-to-corner 28s cubic-bezier(0.2, 0.8, 0.4, 1) forwards;
237
+ }
238
+
239
+ .node-identity-pos:hover {
240
+ animation-play-state: paused;
241
+ }
242
+
243
+ @keyframes drift-identity-to-corner {
244
+ 0% {
245
+ transform: translate(calc(-50% + 140px), calc(-50% - 100px));
246
+ }
247
+ 100% {
248
+ transform: translate(calc(-50% + 38vw), calc(-50% - 38vh));
249
+ }
250
+ }
251
+
252
+ .node-agent-pos {
253
+ top: 50%;
254
+ left: 50%;
255
+ animation: drift-agent-to-corner 28s cubic-bezier(0.2, 0.8, 0.4, 1) forwards;
256
+ }
257
+
258
+ .node-agent-pos:hover {
259
+ animation-play-state: paused;
260
+ }
261
+
262
+ @keyframes drift-agent-to-corner {
263
+ 0% {
264
+ transform: translate(calc(-50% + 140px), calc(-50% + 110px));
265
+ }
266
+ 100% {
267
+ transform: translate(calc(-50% + 38vw), calc(-50% + 38vh));
268
+ }
269
+ }
270
+
271
+ /* Node Buttons */
272
+ .cosmic-node-btn {
273
+ position: relative;
274
+ width: 76px;
275
+ height: 76px;
276
+ border-radius: 50%;
277
+ background: rgba(11, 17, 32, 0.85);
278
+ border: 2px solid rgba(120, 248, 126, 0.35);
279
+ backdrop-filter: blur(14px);
280
+ -webkit-backdrop-filter: blur(14px);
281
+ display: flex;
282
+ align-items: center;
283
+ justify-content: center;
284
+ cursor: pointer;
285
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.8), 0 0 20px rgba(120, 248, 126, 0.15);
286
+ outline: none;
287
+ transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
288
+ }
289
+
290
+ .cosmic-node-btn:hover {
291
+ transform: scale(1.12);
292
+ border-color: var(--clr-accent);
293
+ box-shadow: 0 12px 36px rgba(0, 0, 0, 0.9), 0 0 28px rgba(120, 248, 126, 0.45);
294
+ }
295
+
296
+ .node-emoji {
297
+ font-size: 2rem;
298
+ line-height: 1;
299
+ z-index: 2;
300
+ transition: transform 0.25s ease;
301
+ }
302
+
303
+ .cosmic-node-btn:hover .node-emoji {
304
+ transform: scale(1.1);
305
+ }
306
+
307
+ .node-caption {
308
+ font-size: 0.78rem;
309
+ font-weight: 600;
310
+ letter-spacing: 0.06em;
311
+ text-transform: uppercase;
312
+ color: var(--clr-text-secondary);
313
+ text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8);
314
+ pointer-events: none;
315
+ white-space: nowrap;
316
+ }
317
+
318
+ .galaxy-node {
319
+ border-color: rgba(180, 100, 255, 0.5);
320
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.8), 0 0 22px rgba(180, 100, 255, 0.25);
321
+ }
322
+
323
+ .galaxy-node:hover {
324
+ border-color: #d18aff;
325
+ box-shadow: 0 12px 36px rgba(0, 0, 0, 0.9), 0 0 32px rgba(180, 100, 255, 0.55);
326
+ }
327
+
328
+ .galaxy-orbit-ring {
329
+ position: absolute;
330
+ inset: -12px;
331
+ border-radius: 50%;
332
+ border: 1px dashed rgba(180, 100, 255, 0.3);
333
+ animation: spin-clockwise 16s linear infinite;
334
+ pointer-events: none;
335
+ }
336
+
337
+ /* Second-Order Satellites (Around Galaxy) */
338
+ .superspace-satellites {
339
+ position: absolute;
340
+ top: 50%;
341
+ left: 50%;
342
+ width: 0;
343
+ height: 0;
344
+ pointer-events: none;
345
+ transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
346
+ }
347
+
348
+ .superspace-satellites.collapsed {
349
+ opacity: 0;
350
+ transform: scale(0.2);
351
+ }
352
+
353
+ .superspace-satellites.unfolded {
354
+ opacity: 1;
355
+ pointer-events: auto;
356
+ transform: scale(1);
357
+ }
358
+
359
+ .satellite-wrapper {
360
+ position: absolute;
361
+ top: 50%;
362
+ left: 50%;
363
+ display: flex;
364
+ flex-direction: column;
365
+ align-items: center;
366
+ gap: 0.3rem;
367
+ pointer-events: auto;
368
+ transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
369
+ }
370
+
371
+ /* Symmetrically centered above the galaxy node: midpoint is 0px (perfect alignment) */
372
+ .sat-code-pos {
373
+ transform: translate(calc(-50% - 85px), calc(-50% - 85px));
374
+ }
375
+
376
+ .sat-notes-pos {
377
+ transform: translate(calc(-50% + 85px), calc(-50% - 85px));
378
+ }
379
+
380
+ .satellite-node-btn {
381
+ position: relative;
382
+ width: 60px;
383
+ height: 60px;
384
+ border-radius: 50%;
385
+ background: rgba(5, 8, 15, 0.92);
386
+ border: 2px solid rgba(68, 170, 255, 0.6);
387
+ backdrop-filter: blur(12px);
388
+ display: flex;
389
+ align-items: center;
390
+ justify-content: center;
391
+ cursor: pointer;
392
+ box-shadow: 0 6px 20px rgba(0, 0, 0, 0.7), 0 0 16px rgba(68, 170, 255, 0.3);
393
+ outline: none;
394
+ transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
395
+ }
396
+
397
+ .satellite-node-btn:hover {
398
+ transform: scale(1.15);
399
+ border-color: #66c2ff;
400
+ box-shadow: 0 8px 26px rgba(0, 0, 0, 0.8), 0 0 24px rgba(68, 170, 255, 0.6);
401
+ }
402
+
403
+ .satellite-emoji {
404
+ font-family: var(--font-mono);
405
+ font-size: 1.15rem;
406
+ font-weight: 700;
407
+ color: #44aaff;
408
+ line-height: 1;
409
+ }
410
+
411
+ .sat-notes-pos .satellite-node-btn {
412
+ border-color: rgba(255, 204, 68, 0.6);
413
+ box-shadow: 0 6px 20px rgba(0, 0, 0, 0.7), 0 0 16px rgba(255, 204, 68, 0.3);
414
+ }
415
+
416
+ .sat-notes-pos .satellite-node-btn:hover {
417
+ border-color: #ffe066;
418
+ box-shadow: 0 8px 26px rgba(0, 0, 0, 0.8), 0 0 24px rgba(255, 204, 68, 0.6);
419
+ }
420
+
421
+ .sat-notes-pos .satellite-emoji {
422
+ font-family: var(--font-sans);
423
+ font-size: 1.25rem;
424
+ }
425
+
426
+ .satellite-caption {
427
+ font-size: 0.72rem;
428
+ font-weight: 600;
429
+ letter-spacing: 0.04em;
430
+ text-transform: uppercase;
431
+ color: var(--clr-text-primary);
432
+ white-space: nowrap;
433
+ text-shadow: 0 2px 4px rgba(0, 0, 0, 0.9);
434
+ }
435
+
436
+ /* Shooting Animations */
437
+ .shooting-to-top-right {
438
+ animation: none !important;
439
+ transition: transform 0.65s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.5s ease !important;
440
+ transform: translate(calc(45vw - 120px), -45vh) scale(0.25) !important;
441
+ opacity: 0 !important;
442
+ pointer-events: none !important;
443
+ }
444
+
445
+ .identity-active-highlight {
446
+ border-radius: var(--radius-lg, 20px) !important;
447
+ animation: identity-glow-ring 2s ease-in-out infinite alternate;
448
+ }
449
+
450
+ @keyframes identity-glow-ring {
451
+ from {
452
+ box-shadow: 0 0 8px rgba(120, 248, 126, 0.25);
453
+ }
454
+ to {
455
+ box-shadow: 0 0 22px rgba(120, 248, 126, 0.8), 0 0 35px rgba(68, 170, 255, 0.5);
456
+ }
457
+ }
458
+
459
+ .shooting-to-bottom-right {
460
+ animation: none !important;
461
+ transition: transform 0.65s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.5s ease !important;
462
+ transform: translate(calc(45vw - 80px), calc(45vh - 70px)) scale(0.3) !important;
463
+ opacity: 0 !important;
464
+ pointer-events: none !important;
465
+ }
466
+
467
+ /* Agent FAB Container */
468
+ .agent-fab-container {
469
+ position: fixed;
470
+ bottom: 24px;
471
+ right: 24px;
472
+ z-index: 200;
473
+ display: flex;
474
+ align-items: center;
475
+ gap: 0.6rem;
476
+ transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
477
+ }
478
+
479
+ .agent-fab-container.hidden {
480
+ transform: scale(0) translateY(30px);
481
+ opacity: 0;
482
+ pointer-events: none;
483
+ }
484
+
485
+ .agent-fab-container.visible {
486
+ transform: scale(1) translateY(0);
487
+ opacity: 1;
488
+ pointer-events: auto;
489
+ }
490
+
491
+ .agent-fab-btn {
492
+ width: 60px;
493
+ height: 60px;
494
+ border-radius: 50%;
495
+ background: linear-gradient(135deg, #111d33 0%, #0d1527 100%);
496
+ border: 2px solid var(--clr-accent);
497
+ color: #fff;
498
+ cursor: pointer;
499
+ display: flex;
500
+ align-items: center;
501
+ justify-content: center;
502
+ box-shadow: 0 8px 30px rgba(0, 0, 0, 0.75), 0 0 18px var(--clr-accent-glow);
503
+ transition: all 0.25s ease;
504
+ }
505
+
506
+ .agent-fab-btn:hover {
507
+ transform: scale(1.1);
508
+ box-shadow: 0 12px 36px rgba(0, 0, 0, 0.85), 0 0 28px rgba(120, 248, 126, 0.5);
509
+ }
510
+
511
+ .fab-emoji {
512
+ font-size: 1.85rem;
513
+ line-height: 1;
514
+ }
515
+
516
+ .agent-fab-badge {
517
+ background: rgba(11, 17, 32, 0.85);
518
+ border: 1px solid var(--clr-border);
519
+ border-radius: 999px;
520
+ padding: 0.25rem 0.65rem;
521
+ font-size: 0.75rem;
522
+ font-weight: 600;
523
+ color: var(--clr-accent);
524
+ box-shadow: var(--shadow-card);
525
+ white-space: nowrap;
526
+ }
527
+
528
+ /* Cosmic Controls (Reset Button) */
529
+ .cosmic-controls {
530
+ position: absolute;
531
+ bottom: 24px;
532
+ z-index: 15;
533
+ transition: opacity 0.3s ease;
534
+ }
535
+
536
+ .cosmic-controls.hidden {
537
+ opacity: 0;
538
+ pointer-events: none;
539
+ }
540
+
541
+ .cosmic-reset-btn {
542
+ background: rgba(255, 255, 255, 0.04);
543
+ border: 1px solid var(--clr-border);
544
+ border-radius: 999px;
545
+ padding: 0.4rem 1.1rem;
546
+ font-family: var(--font-sans);
547
+ font-size: 0.8rem;
548
+ color: var(--clr-text-secondary);
549
+ cursor: pointer;
550
+ transition: all var(--t-fast);
551
+ }
552
+
553
+ .cosmic-reset-btn:hover {
554
+ background: rgba(255, 255, 255, 0.08);
555
+ border-color: var(--clr-border-hover);
556
+ color: var(--clr-text-primary);
557
+ }
@@ -0,0 +1,163 @@
1
+ /* ── Dev Tools Panel (diagnostic only — remove when WS sync confirmed) ── */
2
+ .dev-panel {
3
+ max-width: 100%;
4
+ width: 100%;
5
+ margin: 0 auto;
6
+ padding: 1.5rem;
7
+ border: 1px dashed rgba(255, 204, 68, 0.35);
8
+ border-radius: var(--radius-md);
9
+ background: rgba(255, 204, 68, 0.04);
10
+ display: flex;
11
+ flex-direction: column;
12
+ gap: 1rem;
13
+ margin-bottom: 3rem;
14
+ max-height: none;
15
+ }
16
+
17
+ .dev-panel-title {
18
+ font-size: 0.8rem;
19
+ font-weight: 600;
20
+ text-transform: uppercase;
21
+ letter-spacing: 0.12em;
22
+ color: var(--clr-warn);
23
+ opacity: 0.7;
24
+ }
25
+
26
+ .dev-panel-select-container {
27
+ display: flex;
28
+ align-items: center;
29
+ gap: 0.75rem;
30
+ margin-bottom: 0.5rem;
31
+ }
32
+
33
+ .dev-select {
34
+ background: var(--clr-bg-surface);
35
+ color: var(--clr-text-primary);
36
+ border: 1px solid rgba(255, 204, 68, 0.4);
37
+ padding: 0.5rem 1rem;
38
+ border-radius: var(--radius-sm);
39
+ font-family: var(--font-sans);
40
+ outline: none;
41
+ cursor: pointer;
42
+ font-size: 0.9rem;
43
+ transition: border-color var(--t-fast);
44
+ }
45
+
46
+ .dev-select:hover {
47
+ border-color: rgba(255, 204, 68, 0.7);
48
+ }
49
+
50
+ .dev-panel-row {
51
+ display: flex;
52
+ gap: 0.75rem;
53
+ flex-wrap: wrap;
54
+ }
55
+
56
+ .dev-btn {
57
+ padding: 0.55rem 1.25rem;
58
+ border-radius: var(--radius-sm);
59
+ background: transparent;
60
+ border: 1px solid rgba(255, 204, 68, 0.4);
61
+ color: var(--clr-warn);
62
+ font-family: var(--font-sans);
63
+ font-size: 0.875rem;
64
+ font-weight: 500;
65
+ cursor: pointer;
66
+ transition: background var(--t-fast), border-color var(--t-fast);
67
+ }
68
+
69
+ .dev-btn:hover:not(:disabled) {
70
+ background: rgba(255, 204, 68, 0.08);
71
+ border-color: rgba(255, 204, 68, 0.7);
72
+ }
73
+
74
+ .dev-btn:disabled {
75
+ opacity: 0.5;
76
+ cursor: not-allowed;
77
+ border-color: rgba(255, 204, 68, 0.2);
78
+ }
79
+
80
+ .dev-panel-log {
81
+ font-family: var(--font-mono);
82
+ font-size: 0.75rem;
83
+ color: var(--clr-text-secondary);
84
+ background: rgba(0, 0, 0, 0.35);
85
+ border: 1px solid var(--clr-border);
86
+ border-radius: var(--radius-sm);
87
+ padding: 0.75rem 1rem;
88
+ max-height: 800px;
89
+ overflow-y: auto;
90
+ white-space: pre-wrap;
91
+ word-break: break-all;
92
+ min-height: 10rem;
93
+ }
94
+
95
+ /* dev tools row styles */
96
+ .dev-panel-row-container {
97
+ display: flex;
98
+ align-items: center;
99
+ gap: 1.25rem;
100
+ border-bottom: 1px solid rgba(255, 204, 68, 0.08);
101
+ padding-bottom: 0.85rem;
102
+ }
103
+
104
+ .dev-panel-row-container:last-of-type {
105
+ border-bottom: none;
106
+ padding-bottom: 0;
107
+ }
108
+
109
+ .dev-panel-row-label {
110
+ font-family: var(--font-mono);
111
+ font-size: 0.85rem;
112
+ font-weight: 700;
113
+ color: var(--clr-warn);
114
+ min-width: 2.2rem;
115
+ text-align: center;
116
+ border: 1px solid rgba(255, 204, 68, 0.25);
117
+ border-radius: var(--radius-sm);
118
+ padding: 0.25rem 0.45rem;
119
+ background: rgba(255, 204, 68, 0.06);
120
+ user-select: none;
121
+ }
122
+
123
+ @keyframes spin-bounce {
124
+ 0% {
125
+ transform: translate(0, 0) scale(1);
126
+ }
127
+ 25% {
128
+ transform: translate(10px, -6px) scale(1.05);
129
+ }
130
+ 50% {
131
+ transform: translate(0, -12px) scale(1.1);
132
+ }
133
+ 75% {
134
+ transform: translate(-10px, -6px) scale(1.05);
135
+ }
136
+ 100% {
137
+ transform: translate(0, 0) scale(1);
138
+ }
139
+ }
140
+
141
+ /* Collapsible Dev Tools */
142
+ .dev-tools-collapsible {
143
+ margin: 1.5rem 2rem 3rem;
144
+ border: 1px dashed rgba(255, 204, 68, 0.3);
145
+ border-radius: var(--radius-md);
146
+ padding: 0.85rem 1.25rem;
147
+ background: rgba(11, 17, 32, 0.5);
148
+ z-index: 5;
149
+ }
150
+
151
+ .dev-tools-summary {
152
+ color: var(--clr-warn);
153
+ font-size: 0.875rem;
154
+ font-weight: 600;
155
+ cursor: pointer;
156
+ user-select: none;
157
+ outline: none;
158
+ padding: 0.25rem 0;
159
+ }
160
+
161
+ .dev-tools-summary:hover {
162
+ color: #ffe066;
163
+ }