@ibgib/space-gib 0.0.33 → 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 +32 -32
  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-CRJV762I.mjs +0 -3102
  111. package/dist/client/chunk-LXRCF5OS.mjs +0 -25
  112. package/dist/client/chunk-UBDQUZZV.mjs +0 -1
@@ -0,0 +1,896 @@
1
+ /* ── App root layout ── */
2
+ .app-root {
3
+ position: relative;
4
+ z-index: 1;
5
+ display: flex;
6
+ flex-direction: column;
7
+ height: 100dvh;
8
+ overflow: hidden;
9
+ }
10
+
11
+ .middle-row {
12
+ display: flex;
13
+ flex: 1;
14
+ overflow: hidden;
15
+ position: relative;
16
+ }
17
+
18
+ /* ── Header ── */
19
+ .header-panel {
20
+ position: sticky;
21
+ top: 0;
22
+ z-index: 100;
23
+ height: var(--header-h);
24
+ max-height: var(--header-h);
25
+ background: var(--clr-bg-glass);
26
+ border-bottom: 1px solid var(--clr-border);
27
+ backdrop-filter: blur(16px);
28
+ -webkit-backdrop-filter: blur(16px);
29
+ transition: max-height 2.5s cubic-bezier(0.16, 1, 0.3, 1),
30
+ opacity 2.5s cubic-bezier(0.16, 1, 0.3, 1),
31
+ border-bottom-color 2.5s cubic-bezier(0.16, 1, 0.3, 1);
32
+ }
33
+
34
+ .header-content {
35
+ margin: 0 auto;
36
+ height: 100%;
37
+ display: flex;
38
+ align-items: center;
39
+ padding: 0 1.5rem;
40
+ gap: 1rem;
41
+ position: relative;
42
+ }
43
+
44
+ .brand-link {
45
+ text-decoration: none;
46
+ display: flex;
47
+ align-items: center;
48
+ gap: 0.4rem;
49
+ font-size: 1.2rem;
50
+ font-weight: 700;
51
+ color: var(--clr-text-primary);
52
+ letter-spacing: -0.02em;
53
+ transition: color var(--t-fast);
54
+ margin-right: 0.25rem;
55
+ }
56
+
57
+ .brand-link:hover {
58
+ color: var(--clr-accent);
59
+ }
60
+
61
+ .brand-icon {
62
+ color: var(--clr-accent);
63
+ font-size: 1.4rem;
64
+ animation: spin-slow 12s linear infinite;
65
+ }
66
+
67
+ .brand-accent {
68
+ color: var(--clr-accent);
69
+ }
70
+
71
+ @keyframes spin-slow {
72
+ from {
73
+ transform: rotate(0deg);
74
+ }
75
+
76
+ to {
77
+ transform: rotate(360deg);
78
+ }
79
+ }
80
+
81
+ .header-nav {
82
+ display: flex;
83
+ gap: 0.25rem;
84
+ }
85
+
86
+ .nav-link {
87
+ text-decoration: none;
88
+ color: var(--clr-text-secondary);
89
+ font-size: 0.875rem;
90
+ font-weight: 500;
91
+ padding: 0.35rem 0.75rem;
92
+ border-radius: var(--radius-sm);
93
+ transition: color var(--t-fast), background var(--t-fast);
94
+ }
95
+
96
+ .nav-link:hover {
97
+ color: var(--clr-text-primary);
98
+ background: rgba(255, 255, 255, 0.04);
99
+ }
100
+
101
+ .config-btn {
102
+ background: none;
103
+ border: 1px solid var(--clr-border);
104
+ border-radius: var(--radius-sm);
105
+ padding: 0.3rem 0.6rem;
106
+ color: var(--clr-text-secondary);
107
+ cursor: pointer;
108
+ font-size: 1rem;
109
+ transition: border-color var(--t-fast), color var(--t-fast);
110
+ }
111
+
112
+ .config-btn:hover {
113
+ border-color: var(--clr-border-hover);
114
+ color: var(--clr-text-primary);
115
+ }
116
+
117
+ .config-popover {
118
+ position: absolute;
119
+ top: var(--header-h);
120
+ right: 1rem;
121
+ background: var(--clr-bg-surface);
122
+ border: 1px solid var(--clr-border);
123
+ border-radius: var(--radius-md);
124
+ box-shadow: var(--shadow-card);
125
+ padding: 0.5rem;
126
+ min-width: 200px;
127
+ margin: 0;
128
+ }
129
+
130
+ .config-popover-option {
131
+ display: block;
132
+ width: 100%;
133
+ text-align: left;
134
+ padding: 0.6rem 0.9rem;
135
+ border: none;
136
+ border-radius: var(--radius-sm);
137
+ background: transparent;
138
+ color: var(--clr-text-primary);
139
+ font-family: var(--font-sans);
140
+ font-size: 0.875rem;
141
+ cursor: pointer;
142
+ transition: background var(--t-fast);
143
+ }
144
+
145
+ .config-popover-option:hover {
146
+ background: rgba(120, 248, 126, 0.08);
147
+ }
148
+
149
+ /* ── Header Toggle Buttons ── */
150
+ .panel-toggle-btn {
151
+ background: none;
152
+ border: none;
153
+ color: var(--clr-text-secondary);
154
+ font-size: 1.4rem;
155
+ cursor: pointer;
156
+ padding: 0.2rem 0.5rem;
157
+ transition: color var(--t-fast);
158
+ }
159
+
160
+ .panel-toggle-btn:hover {
161
+ color: var(--clr-accent);
162
+ }
163
+
164
+ /* ── Center panel / main ── */
165
+ .center-panel {
166
+ flex: 1;
167
+ display: flex;
168
+ flex-direction: column;
169
+ overflow: hidden;
170
+ height: 100%;
171
+ min-height: 0;
172
+ }
173
+
174
+ .center-panel-content {
175
+ flex: 1;
176
+ display: flex;
177
+ flex-direction: column;
178
+ overflow: hidden;
179
+ height: 100%;
180
+ width: 100%;
181
+ min-height: 0;
182
+ position: relative;
183
+ }
184
+
185
+ .center-panel-content > * {
186
+ width: 100% !important;
187
+ height: 100% !important;
188
+ display: flex !important;
189
+ flex-direction: column !important;
190
+ flex: 1 !important;
191
+ min-height: 0 !important;
192
+ overflow-y: auto !important;
193
+ overflow-x: hidden !important;
194
+ }
195
+
196
+ /* ── Side Panels ── */
197
+ .side-panel {
198
+ background: var(--clr-bg-glass);
199
+ overflow: hidden;
200
+ transition: width var(--t-fast);
201
+ z-index: 5;
202
+ }
203
+
204
+ .left-panel {
205
+ width: var(--left-panel-width);
206
+ border-right: 1px solid var(--clr-border);
207
+ }
208
+
209
+ .left-panel.collapsed {
210
+ width: 0 !important;
211
+ border: none;
212
+ }
213
+
214
+ .right-panel {
215
+ width: var(--right-panel-width);
216
+ border-left: 1px solid var(--clr-border);
217
+ }
218
+
219
+ .right-panel.collapsed {
220
+ width: 0 !important;
221
+ border: none;
222
+ }
223
+
224
+ .panel-content-inner {
225
+ padding: 1rem;
226
+ width: 100%;
227
+ min-width: 150px;
228
+ height: 100%;
229
+ overflow-y: auto;
230
+ }
231
+
232
+ .placeholder-text {
233
+ color: var(--clr-text-muted);
234
+ font-size: 0.9rem;
235
+ font-style: italic;
236
+ }
237
+
238
+ /* ── Resizers ── */
239
+ .resizer {
240
+ background: transparent;
241
+ transition: background var(--t-fast);
242
+ z-index: 10;
243
+ }
244
+
245
+ .resizer:hover,
246
+ .resizer:active {
247
+ background: var(--clr-accent-dim);
248
+ }
249
+
250
+ .resizer-v {
251
+ width: 6px;
252
+ cursor: col-resize;
253
+ margin-left: -3px;
254
+ margin-right: -3px;
255
+ }
256
+
257
+ .resizer-h {
258
+ height: 6px;
259
+ max-height: 6px;
260
+ cursor: row-resize;
261
+ margin-top: -3px;
262
+ margin-bottom: -3px;
263
+ transition: max-height 2.5s cubic-bezier(0.16, 1, 0.3, 1),
264
+ opacity 2.5s cubic-bezier(0.16, 1, 0.3, 1);
265
+ }
266
+
267
+ /* ── Footer ── */
268
+ .footer-panel {
269
+ height: var(--footer-panel-height);
270
+ max-height: var(--footer-panel-height);
271
+ display: flex;
272
+ align-items: center;
273
+ justify-content: center;
274
+ border-top: 1px solid var(--clr-border);
275
+ background: var(--clr-bg-glass);
276
+ position: relative;
277
+ padding: 0 0.75rem;
278
+ transition: max-height 2.5s cubic-bezier(0.16, 1, 0.3, 1),
279
+ opacity 2.5s cubic-bezier(0.16, 1, 0.3, 1),
280
+ border-top-color 2.5s cubic-bezier(0.16, 1, 0.3, 1);
281
+ }
282
+
283
+ /* ── Footer Agent Button (~95% footer height, circular, docked on right) ── */
284
+ .footer-agent-btn {
285
+ position: absolute;
286
+ right: 12px;
287
+ top: 50%;
288
+ transform: translateY(-50%);
289
+ width: calc(var(--footer-panel-height) * 0.95);
290
+ height: calc(var(--footer-panel-height) * 0.95);
291
+ max-width: 46px;
292
+ max-height: 46px;
293
+ display: inline-flex;
294
+ align-items: center;
295
+ justify-content: center;
296
+ padding: 0;
297
+ margin: 0;
298
+ background: linear-gradient(135deg, rgba(124, 92, 252, 0.16) 0%, rgba(99, 102, 241, 0.22) 100%);
299
+ border: 1.5px solid rgba(124, 92, 252, 0.5);
300
+ border-radius: 50%;
301
+ color: #c4b5fd;
302
+ cursor: pointer;
303
+ box-shadow: 0 0 16px rgba(124, 92, 252, 0.25), inset 0 0 8px rgba(124, 92, 252, 0.15);
304
+ transition: opacity 300ms ease, transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
305
+ z-index: 10;
306
+ opacity: 0;
307
+ pointer-events: none;
308
+ visibility: hidden;
309
+ }
310
+
311
+ .footer-agent-btn.is-docked {
312
+ opacity: 1 !important;
313
+ pointer-events: auto !important;
314
+ visibility: visible !important;
315
+ }
316
+
317
+ .footer-agent-btn:hover {
318
+ background: linear-gradient(135deg, rgba(124, 92, 252, 0.28) 0%, rgba(99, 102, 241, 0.35) 100%);
319
+ border-color: rgba(167, 139, 250, 0.85);
320
+ box-shadow: 0 0 24px rgba(124, 92, 252, 0.5), inset 0 0 12px rgba(124, 92, 252, 0.3);
321
+ color: #ffffff;
322
+ transform: translateY(-50%) scale(1.08);
323
+ }
324
+
325
+ .footer-agent-btn:active {
326
+ transform: translateY(-50%) scale(0.95);
327
+ }
328
+
329
+ .footer-agent-btn .footer-agent-emoji {
330
+ font-size: 1.35rem;
331
+ line-height: 1;
332
+ filter: drop-shadow(0 0 6px rgba(124, 92, 252, 0.7));
333
+ }
334
+
335
+ @keyframes agent-btn-docked-pulse {
336
+ 0% {
337
+ box-shadow: 0 0 0 0 rgba(124, 92, 252, 0.8);
338
+ transform: translateY(-50%) scale(1.2);
339
+ }
340
+ 70% {
341
+ box-shadow: 0 0 32px 14px rgba(124, 92, 252, 0);
342
+ transform: translateY(-50%) scale(1);
343
+ }
344
+ 100% {
345
+ box-shadow: 0 0 16px rgba(124, 92, 252, 0.25);
346
+ transform: translateY(-50%) scale(1);
347
+ }
348
+ }
349
+
350
+ .footer-agent-btn.agent-btn-docked-pulse {
351
+ animation: agent-btn-docked-pulse 1.8s ease-out;
352
+ }
353
+
354
+ .footer-text {
355
+ font-size: 0.8rem;
356
+ color: var(--clr-text-muted);
357
+ display: flex;
358
+ gap: 0.5rem;
359
+ flex-wrap: wrap;
360
+ justify-content: center;
361
+ align-items: center;
362
+ }
363
+
364
+ .footer-link {
365
+ color: var(--clr-text-secondary);
366
+ text-decoration: none;
367
+ transition: color var(--t-fast);
368
+ }
369
+
370
+ .footer-link:hover {
371
+ color: var(--clr-accent);
372
+ }
373
+
374
+ /* ── Responsive ── */
375
+ @media (max-width: 600px) {
376
+ .header-nav {
377
+ display: none;
378
+ }
379
+
380
+ .hero-section {
381
+ padding: 3rem 1rem 2.5rem;
382
+ }
383
+
384
+ .features-section {
385
+ padding: 0 1rem 3rem;
386
+ }
387
+ }
388
+
389
+ /* ── Identity Header Container ── */
390
+ #identity-header-container {
391
+ margin-left: auto;
392
+ display: flex;
393
+ align-items: center;
394
+ }
395
+
396
+ /* ── Header Breadcrumbs & Project Switcher ── */
397
+ .header-breadcrumbs {
398
+ display: flex;
399
+ align-items: center;
400
+ gap: 0.35rem;
401
+ margin-left: 0;
402
+ }
403
+
404
+ .breadcrumb-btn {
405
+ background: transparent;
406
+ border: 1px solid rgba(255, 255, 255, 0.08);
407
+ border-radius: var(--radius-sm);
408
+ color: var(--clr-text-secondary);
409
+ padding: 0.35rem 0.65rem;
410
+ font-size: 0.85rem;
411
+ font-weight: 500;
412
+ cursor: pointer;
413
+ display: flex;
414
+ align-items: center;
415
+ gap: 0.4rem;
416
+ transition: all var(--t-fast);
417
+ }
418
+
419
+ .polycosmos-btn {
420
+ padding: 0.3rem 0.5rem;
421
+ font-size: 1rem;
422
+ line-height: 1;
423
+ }
424
+
425
+ .breadcrumb-btn:hover {
426
+ background: rgba(255, 255, 255, 0.05);
427
+ color: var(--clr-text-primary);
428
+ border-color: rgba(255, 255, 255, 0.18);
429
+ }
430
+
431
+ .breadcrumb-sep {
432
+ color: rgba(255, 255, 255, 0.25);
433
+ font-size: 0.95rem;
434
+ font-weight: 300;
435
+ user-select: none;
436
+ padding: 0 0.15rem;
437
+ }
438
+
439
+ .cosmos-dropdown-wrapper {
440
+ position: relative;
441
+ }
442
+
443
+ .cosmos-select-btn {
444
+ border-color: rgba(124, 92, 252, 0.3);
445
+ color: #c4b5fd;
446
+ }
447
+
448
+ .cosmos-select-btn:hover {
449
+ border-color: rgba(167, 139, 250, 0.6);
450
+ color: #ffffff;
451
+ }
452
+
453
+ .dropdown-arrow {
454
+ font-size: 0.7rem;
455
+ opacity: 0.7;
456
+ margin-left: 2px;
457
+ }
458
+
459
+ .header-temp-badge {
460
+ font-size: 0.72rem;
461
+ font-weight: 500;
462
+ color: #c4b5fd;
463
+ background: rgba(124, 92, 252, 0.2);
464
+ border: 1px solid rgba(167, 139, 250, 0.45);
465
+ border-radius: 9999px;
466
+ padding: 2px 8px;
467
+ margin-left: 6px;
468
+ letter-spacing: 0.03em;
469
+ white-space: nowrap;
470
+ box-shadow: 0 0 10px rgba(124, 92, 252, 0.25);
471
+ display: inline-flex;
472
+ align-items: center;
473
+ user-select: none;
474
+ cursor: default;
475
+ }
476
+
477
+ .header-dropdown-menu {
478
+ position: absolute;
479
+ top: calc(100% + 6px);
480
+ left: 0;
481
+ background: #0d1117;
482
+ border: 1px solid rgba(124, 92, 252, 0.3);
483
+ border-radius: var(--radius-md);
484
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.7);
485
+ min-width: 190px;
486
+ z-index: 150;
487
+ padding: 0.4rem;
488
+ display: flex;
489
+ flex-direction: column;
490
+ gap: 2px;
491
+ }
492
+
493
+ .header-dropdown-menu.hidden {
494
+ display: none;
495
+ }
496
+
497
+ .header-menu-item {
498
+ background: transparent;
499
+ border: none;
500
+ border-radius: var(--radius-sm);
501
+ color: #cbd5e1;
502
+ font-size: 0.84rem;
503
+ padding: 0.5rem 0.75rem;
504
+ text-align: left;
505
+ cursor: pointer;
506
+ display: flex;
507
+ align-items: center;
508
+ justify-content: space-between;
509
+ gap: 0.5rem;
510
+ transition: all var(--t-fast);
511
+ }
512
+
513
+ .header-menu-item:hover {
514
+ background: rgba(124, 92, 252, 0.18);
515
+ color: #ffffff;
516
+ }
517
+
518
+ .header-menu-item.active {
519
+ background: rgba(124, 92, 252, 0.3);
520
+ color: #a78bfa;
521
+ font-weight: 600;
522
+ }
523
+
524
+ .header-menu-divider {
525
+ height: 1px;
526
+ background: rgba(255, 255, 255, 0.08);
527
+ margin: 4px 0;
528
+ }
529
+
530
+ /* ── Cosmos Navigator Container ── */
531
+ .cosmos-navigator-container {
532
+ position: relative;
533
+ width: 100%;
534
+ height: 100%;
535
+ flex: 1;
536
+ display: flex;
537
+ flex-direction: column;
538
+ align-items: stretch;
539
+ justify-content: stretch;
540
+ overflow: hidden;
541
+ min-height: 0;
542
+ }
543
+
544
+ .cosmos-navigator-container space-gib-cosmos-navigator,
545
+ space-gib-cosmos-navigator {
546
+ display: flex !important;
547
+ flex-direction: column !important;
548
+ flex: 1 !important;
549
+ width: 100% !important;
550
+ height: 100% !important;
551
+ min-height: 0 !important;
552
+ overflow: hidden !important;
553
+ }
554
+
555
+ /* ── Pre-Bang Initial Hidden State & Slow Fade-in ── */
556
+ .pre-bang-hidden {
557
+ max-height: 0 !important;
558
+ opacity: 0 !important;
559
+ overflow: hidden !important;
560
+ pointer-events: none !important;
561
+ border-color: transparent !important;
562
+ transition: max-height 2.5s cubic-bezier(0.16, 1, 0.3, 1),
563
+ opacity 2.5s cubic-bezier(0.16, 1, 0.3, 1),
564
+ border-color 2.5s cubic-bezier(0.16, 1, 0.3, 1);
565
+ }
566
+
567
+ #footer-resizer.pre-bang-hidden {
568
+ margin: 0 !important;
569
+ height: 0 !important;
570
+ max-height: 0 !important;
571
+ }
572
+
573
+ .chrome-fade-in {
574
+ opacity: 1 !important;
575
+ pointer-events: auto !important;
576
+ overflow: hidden;
577
+ transition: max-height 2.5s cubic-bezier(0.16, 1, 0.3, 1),
578
+ opacity 2.5s cubic-bezier(0.16, 1, 0.3, 1),
579
+ border-color 2.5s cubic-bezier(0.16, 1, 0.3, 1);
580
+ }
581
+
582
+ .chrome-revealed {
583
+ opacity: 1 !important;
584
+ pointer-events: auto !important;
585
+ max-height: none !important;
586
+ overflow: visible !important;
587
+ }
588
+
589
+ /* ── Code Space File Explorer & Timeline Containers (Zero vertical margin) ── */
590
+ .code-file-explorer-container {
591
+ width: 100%;
592
+ display: flex;
593
+ flex-direction: column;
594
+ margin: 0 !important;
595
+ padding: 0 !important;
596
+ gap: 0 !important;
597
+ overflow-y: auto;
598
+ overflow-x: hidden;
599
+ }
600
+
601
+ .code-file-explorer-container space-gib-file-explorer,
602
+ space-gib-file-explorer {
603
+ display: flex !important;
604
+ flex-direction: column !important;
605
+ width: 100% !important;
606
+ margin: 0 !important;
607
+ padding: 0 !important;
608
+ }
609
+
610
+ .code-timeline-container {
611
+ width: 100%;
612
+ display: flex;
613
+ flex-direction: column;
614
+ margin: 0 !important;
615
+ padding: 0 !important;
616
+ gap: 0 !important;
617
+ overflow-y: auto;
618
+ overflow-x: hidden;
619
+ }
620
+
621
+ .code-timeline-container space-gib-timeline,
622
+ space-gib-timeline {
623
+ display: flex !important;
624
+ flex-direction: column !important;
625
+ width: 100% !important;
626
+ margin: 0 !important;
627
+ padding: 0 !important;
628
+ }
629
+
630
+ /* ── Right Panel & Chat View Container ── */
631
+ .right-panel-content {
632
+ padding: 0 !important;
633
+ overflow: hidden !important;
634
+ display: flex;
635
+ flex-direction: column;
636
+ height: 100%;
637
+ }
638
+
639
+ .code-chat-view-container {
640
+ width: 100%;
641
+ height: 100%;
642
+ flex: 1;
643
+ min-height: 0;
644
+ display: flex;
645
+ flex-direction: column;
646
+ overflow: hidden;
647
+ }
648
+
649
+ .code-chat-view-container space-gib-chat-view,
650
+ space-gib-chat-view,
651
+ .code-chat-view-container space-gib-nested-chat,
652
+ space-gib-nested-chat {
653
+ display: flex !important;
654
+ flex-direction: column !important;
655
+ width: 100% !important;
656
+ height: 100% !important;
657
+ flex: 1 !important;
658
+ min-height: 0 !important;
659
+ }
660
+
661
+ /* ── Header Pitch Button (~85% header height, dead smack in middle, gold glow, circular) ── */
662
+ .header-pitch-btn {
663
+ position: absolute;
664
+ left: 50%;
665
+ top: 50%;
666
+ transform: translate(-50%, -50%);
667
+ width: calc(var(--header-h) * 0.85);
668
+ height: calc(var(--header-h) * 0.85);
669
+ max-width: 52px;
670
+ max-height: 52px;
671
+ display: inline-flex;
672
+ align-items: center;
673
+ justify-content: center;
674
+ padding: 0;
675
+ background: linear-gradient(135deg, rgba(251, 191, 36, 0.16) 0%, rgba(217, 119, 6, 0.22) 100%);
676
+ border: 1.5px solid rgba(251, 191, 36, 0.5);
677
+ border-radius: 50%;
678
+ color: #fde047;
679
+ cursor: pointer;
680
+ box-shadow: 0 0 16px rgba(251, 191, 36, 0.25), inset 0 0 8px rgba(251, 191, 36, 0.15);
681
+ transition: opacity 300ms ease, transform 200ms ease, box-shadow 200ms ease;
682
+ z-index: 10;
683
+ opacity: 0;
684
+ pointer-events: none;
685
+ visibility: hidden;
686
+ }
687
+
688
+ .header-pitch-btn.is-docked {
689
+ opacity: 1 !important;
690
+ pointer-events: auto !important;
691
+ visibility: visible !important;
692
+ }
693
+
694
+ .header-pitch-btn:hover {
695
+ background: linear-gradient(135deg, rgba(251, 191, 36, 0.28) 0%, rgba(217, 119, 6, 0.35) 100%);
696
+ border-color: rgba(251, 191, 36, 0.85);
697
+ box-shadow: 0 0 24px rgba(251, 191, 36, 0.5), inset 0 0 12px rgba(251, 191, 36, 0.3);
698
+ color: #ffffff;
699
+ transform: translate(-50%, -50%) scale(1.08);
700
+ }
701
+
702
+ .header-pitch-btn:active {
703
+ transform: translate(-50%, -50%) scale(0.95);
704
+ }
705
+
706
+ .header-pitch-btn .pitch-btn-emoji {
707
+ font-size: 1.35rem;
708
+ line-height: 1;
709
+ filter: drop-shadow(0 0 6px rgba(251, 191, 36, 0.7));
710
+ }
711
+
712
+ /* ── Header Clone Button ── */
713
+ .header-clone-btn {
714
+ display: inline-flex;
715
+ align-items: center;
716
+ gap: 6px;
717
+ padding: 4px 10px;
718
+ background: rgba(99, 102, 241, 0.12);
719
+ border: 1px solid rgba(99, 102, 241, 0.35);
720
+ border-radius: 6px;
721
+ color: #c7d2fe;
722
+ font-size: 0.82rem;
723
+ font-weight: 500;
724
+ cursor: pointer;
725
+ transition: all 180ms ease;
726
+ margin-right: 8px;
727
+ }
728
+
729
+ .header-clone-btn:hover {
730
+ background: rgba(99, 102, 241, 0.25);
731
+ border-color: #818cf8;
732
+ color: #ffffff;
733
+ box-shadow: 0 0 10px rgba(99, 102, 241, 0.3);
734
+ }
735
+
736
+ .header-clone-btn .clone-btn-icon {
737
+ font-size: 0.95rem;
738
+ color: #a5b4fc;
739
+ }
740
+
741
+ #identity-header-container {
742
+ display: inline-flex;
743
+ align-items: center;
744
+ border-radius: var(--radius-lg, 20px) !important;
745
+ }
746
+
747
+ /* ── Pitch Workspace & Component ── */
748
+ .pitch-workspace {
749
+ width: 100%;
750
+ height: 100%;
751
+ display: flex;
752
+ flex-direction: column;
753
+ flex: 1;
754
+ min-height: 0;
755
+ overflow: hidden;
756
+ }
757
+
758
+ #pitch-component-container {
759
+ width: 100%;
760
+ height: 100%;
761
+ display: flex;
762
+ flex-direction: column;
763
+ flex: 1;
764
+ min-height: 0;
765
+ overflow: hidden;
766
+ }
767
+
768
+ #pitch-component-container space-gib-pitch,
769
+ space-gib-pitch {
770
+ display: flex !important;
771
+ flex-direction: column !important;
772
+ width: 100% !important;
773
+ height: 100% !important;
774
+ flex: 1 !important;
775
+ min-height: 0 !important;
776
+ }
777
+
778
+ /* ── Code File Editor Container & Component ── */
779
+ .code-editor-container,
780
+ #code-editor-container {
781
+ width: 100%;
782
+ height: 100%;
783
+ display: flex;
784
+ flex-direction: column;
785
+ flex: 1;
786
+ min-height: 0;
787
+ overflow: hidden;
788
+ }
789
+
790
+ #code-editor-container space-gib-code-editor,
791
+ space-gib-code-editor {
792
+ display: flex !important;
793
+ flex-direction: column !important;
794
+ width: 100% !important;
795
+ height: 100% !important;
796
+ flex: 1 !important;
797
+ min-height: 0 !important;
798
+ }
799
+
800
+ /* ── Timeline Item Details Container & Component ── */
801
+ .timeline-details-container,
802
+ #timeline-details-container,
803
+ space-gib-timeline-item-details {
804
+ display: flex !important;
805
+ flex-direction: column !important;
806
+ width: 100% !important;
807
+ height: 100% !important;
808
+ flex: 1 !important;
809
+ min-height: 0 !important;
810
+ overflow: hidden;
811
+ }
812
+
813
+ /* ── In-Memory Playground Warning Banner ── */
814
+ .playground-banner {
815
+ background: linear-gradient(90deg, rgba(245, 158, 11, 0.15) 0%, rgba(234, 88, 12, 0.15) 50%, rgba(245, 158, 11, 0.15) 100%);
816
+ border-bottom: 1px solid rgba(245, 158, 11, 0.35);
817
+ backdrop-filter: blur(12px);
818
+ -webkit-backdrop-filter: blur(12px);
819
+ padding: 0.4rem 1.5rem;
820
+ font-size: 0.85rem;
821
+ color: #fbbf24;
822
+ display: flex;
823
+ align-items: center;
824
+ justify-content: center;
825
+ z-index: 90;
826
+ transition: all 0.3s ease;
827
+ }
828
+
829
+ .playground-banner.hidden {
830
+ display: none !important;
831
+ }
832
+
833
+ .playground-banner-content {
834
+ display: flex;
835
+ align-items: center;
836
+ justify-content: space-between;
837
+ width: 100%;
838
+ max-width: 1400px;
839
+ gap: 1rem;
840
+ }
841
+
842
+ .playground-banner-icon {
843
+ font-size: 1rem;
844
+ flex-shrink: 0;
845
+ }
846
+
847
+ .playground-banner-text {
848
+ flex: 1;
849
+ color: #fef3c7;
850
+ }
851
+
852
+ .playground-banner-text strong {
853
+ color: #f59e0b;
854
+ }
855
+
856
+ .playground-banner-actions {
857
+ display: flex;
858
+ align-items: center;
859
+ gap: 0.75rem;
860
+ flex-shrink: 0;
861
+ }
862
+
863
+ .playground-banner-action-btn {
864
+ background: rgba(245, 158, 11, 0.25);
865
+ border: 1px solid rgba(245, 158, 11, 0.6);
866
+ color: #fff;
867
+ padding: 0.25rem 0.75rem;
868
+ border-radius: 4px;
869
+ font-size: 0.8rem;
870
+ font-weight: 600;
871
+ cursor: pointer;
872
+ transition: background 0.2s, border-color 0.2s, transform 0.1s;
873
+ }
874
+
875
+ .playground-banner-action-btn:hover {
876
+ background: rgba(245, 158, 11, 0.45);
877
+ border-color: #fbbf24;
878
+ transform: translateY(-1px);
879
+ }
880
+
881
+ .playground-banner-dismiss-btn {
882
+ background: transparent;
883
+ border: none;
884
+ color: #fbbf24;
885
+ font-size: 1rem;
886
+ cursor: pointer;
887
+ padding: 0.2rem 0.4rem;
888
+ border-radius: 4px;
889
+ opacity: 0.75;
890
+ transition: opacity 0.2s, background 0.2s;
891
+ }
892
+
893
+ .playground-banner-dismiss-btn:hover {
894
+ opacity: 1;
895
+ background: rgba(245, 158, 11, 0.2);
896
+ }