@ibgib/space-gib 0.0.33 → 0.0.35

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 (118) hide show
  1. package/dist/client/bootstrap.mjs +24 -51
  2. package/dist/client/chunk-FIAGRVBY.mjs +10933 -0
  3. package/dist/client/chunk-XLQ3UCQY.mjs +53 -0
  4. package/dist/client/css/activity-bar.css +435 -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 +1017 -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 +208 -31
  15. package/dist/client/index.mjs +22 -45
  16. package/dist/client/privacy.html +22 -22
  17. package/dist/client/script.mjs +1 -1
  18. package/dist/client/style.css +11 -1056
  19. package/dist/respec-gib.node.mjs +5 -0
  20. package/dist/server/server.mjs +6880 -3110
  21. package/package.json +6 -6
  22. package/src/client/AUTO-GENERATED-version.mts +1 -1
  23. package/src/client/cosmos/seed-cosmos-workspace.mts +83 -0
  24. package/src/client/css/activity-bar.css +435 -0
  25. package/src/client/css/base.css +167 -0
  26. package/src/client/css/components.css +218 -0
  27. package/src/client/css/cosmic.css +557 -0
  28. package/src/client/css/dev-tools.css +163 -0
  29. package/src/client/css/landing.css +184 -0
  30. package/src/client/css/layout.css +1017 -0
  31. package/src/client/css/onboarding.css +181 -0
  32. package/src/client/css/repos.css +740 -0
  33. package/src/client/css/variables.css +64 -0
  34. package/src/client/dev-tools/vcs-workspace.mts +7 -7
  35. package/src/client/index.html +208 -31
  36. package/src/client/privacy.html +22 -22
  37. package/src/client/style.css +11 -1056
  38. package/src/client/ui/component/changes/changes.css +413 -0
  39. package/src/client/ui/component/changes/changes.html +37 -0
  40. package/src/client/ui/component/changes/changes.mts +766 -0
  41. package/src/client/ui/component/changes/index.mts +9 -0
  42. package/src/client/ui/component/chat-view/IMPLEMENTATION.md +48 -0
  43. package/src/client/ui/component/chat-view/chat-view.css +381 -0
  44. package/src/client/ui/component/chat-view/chat-view.html +52 -0
  45. package/src/client/ui/component/chat-view/chat-view.mts +264 -0
  46. package/src/client/ui/component/chat-view/index.mts +9 -0
  47. package/src/client/ui/component/clone/IMPLEMENTATION.md +68 -0
  48. package/src/client/ui/component/clone/clone-constants.mts +16 -0
  49. package/src/client/ui/component/clone/clone-types.mts +60 -0
  50. package/src/client/ui/component/clone/clone.css +383 -0
  51. package/src/client/ui/component/clone/clone.html +89 -0
  52. package/src/client/ui/component/clone/clone.mts +648 -0
  53. package/src/client/ui/component/clone/index.mts +11 -0
  54. package/src/client/ui/component/code-editor/IMPLEMENTATION.md +89 -0
  55. package/src/client/ui/component/code-editor/code-editor.css +357 -0
  56. package/src/client/ui/component/code-editor/code-editor.html +67 -0
  57. package/src/client/ui/component/code-editor/code-editor.mts +643 -0
  58. package/src/client/ui/component/code-editor/index.mts +9 -0
  59. package/src/client/ui/component/cosmos-navigator/IMPLEMENTATION.md +31 -0
  60. package/src/client/ui/component/cosmos-navigator/cosmos-navigator.css +864 -0
  61. package/src/client/ui/component/cosmos-navigator/cosmos-navigator.html +92 -0
  62. package/src/client/ui/component/cosmos-navigator/cosmos-navigator.mts +1317 -0
  63. package/src/client/ui/component/cosmos-navigator/index.mts +18 -0
  64. package/src/client/ui/component/file-explorer/IMPLEMENTATION.md +42 -0
  65. package/src/client/ui/component/file-explorer/file-explorer.css +720 -0
  66. package/src/client/ui/component/file-explorer/file-explorer.html +55 -0
  67. package/src/client/ui/component/file-explorer/file-explorer.mts +1412 -0
  68. package/src/client/ui/component/file-explorer/index.mts +9 -0
  69. package/src/client/ui/component/nested-chat/IMPLEMENTATION.md +18 -0
  70. package/src/client/ui/component/nested-chat/chat/IMPLEMENTATION.md +14 -0
  71. package/src/client/ui/component/nested-chat/chat/chat-constants.mts +14 -0
  72. package/src/client/ui/component/nested-chat/chat/chat-helpers.mts +66 -0
  73. package/src/client/ui/component/nested-chat/chat/chat.css +654 -0
  74. package/src/client/ui/component/nested-chat/chat/chat.html +90 -0
  75. package/src/client/ui/component/nested-chat/chat/chat.mts +561 -0
  76. package/src/client/ui/component/nested-chat/chat/index.mts +7 -0
  77. package/src/client/ui/component/nested-chat/index.mts +14 -0
  78. package/src/client/ui/component/nested-chat/nested-chat-constants.mts +12 -0
  79. package/src/client/ui/component/nested-chat/nested-chat-types.mts +53 -0
  80. package/src/client/ui/component/nested-chat/nested-chat.css +142 -0
  81. package/src/client/ui/component/nested-chat/nested-chat.html +11 -0
  82. package/src/client/ui/component/nested-chat/nested-chat.mts +395 -0
  83. package/src/client/ui/component/notes-explorer/index.mts +9 -0
  84. package/src/client/ui/component/notes-explorer/notes-explorer.css +313 -0
  85. package/src/client/ui/component/notes-explorer/notes-explorer.html +136 -0
  86. package/src/client/ui/component/notes-explorer/notes-explorer.mts +240 -0
  87. package/src/client/ui/component/notes-inspector/index.mts +9 -0
  88. package/src/client/ui/component/notes-inspector/notes-inspector.css +244 -0
  89. package/src/client/ui/component/notes-inspector/notes-inspector.html +97 -0
  90. package/src/client/ui/component/notes-inspector/notes-inspector.mts +152 -0
  91. package/src/client/ui/component/pitch/IMPLEMENTATION.md +48 -0
  92. package/src/client/ui/component/pitch/index.mts +9 -0
  93. package/src/client/ui/component/pitch/pitch.css +295 -0
  94. package/src/client/ui/component/pitch/pitch.html +97 -0
  95. package/src/client/ui/component/pitch/pitch.mts +135 -0
  96. package/src/client/ui/component/timeline/IMPLEMENTATION.md +33 -0
  97. package/src/client/ui/component/timeline/index.mts +9 -0
  98. package/src/client/ui/component/timeline/timeline.css +279 -0
  99. package/src/client/ui/component/timeline/timeline.html +23 -0
  100. package/src/client/ui/component/timeline/timeline.mts +261 -0
  101. package/src/client/ui/component/timeline-item-details/IMPLEMENTATION.md +28 -0
  102. package/src/client/ui/component/timeline-item-details/index.mts +9 -0
  103. package/src/client/ui/component/timeline-item-details/timeline-item-details.css +286 -0
  104. package/src/client/ui/component/timeline-item-details/timeline-item-details.html +64 -0
  105. package/src/client/ui/component/timeline-item-details/timeline-item-details.mts +194 -0
  106. package/src/client/ui/router/index.mts +3 -0
  107. package/src/client/ui/router/space-gib-router-helpers.mts +72 -0
  108. package/src/client/ui/router/space-gib-router-helpers.respec.mts +529 -0
  109. package/src/client/ui/router/space-gib-router-service.mts +63 -0
  110. package/src/client/ui/router/space-gib-router-types.mts +49 -0
  111. package/src/client/ui/shell/cosmic-big-bang.mts +853 -0
  112. package/src/client/ui/shell/space-gib-shell-constants.mts +7 -0
  113. package/src/client/ui/shell/space-gib-shell-service.mts +2297 -32
  114. package/src/server/server.mts +20 -1
  115. package/tsconfig.test.json +5 -1
  116. package/dist/client/chunk-CRJV762I.mjs +0 -3102
  117. package/dist/client/chunk-LXRCF5OS.mjs +0 -25
  118. package/dist/client/chunk-UBDQUZZV.mjs +0 -1
@@ -0,0 +1,1017 @@
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
+ display: flex;
208
+ flex-direction: column;
209
+ height: 100%;
210
+ overflow: hidden;
211
+ }
212
+
213
+ .left-panel.collapsed {
214
+ width: 0 !important;
215
+ border: none;
216
+ }
217
+
218
+ .right-panel {
219
+ width: var(--right-panel-width);
220
+ border-left: 1px solid var(--clr-border);
221
+ }
222
+
223
+ .right-panel.collapsed {
224
+ width: 0 !important;
225
+ border: none;
226
+ }
227
+
228
+ .panel-content-inner {
229
+ padding: 1rem;
230
+ width: 100%;
231
+ min-width: 150px;
232
+ height: 100%;
233
+ overflow-y: auto;
234
+ box-sizing: border-box;
235
+ }
236
+
237
+ .left-panel-content {
238
+ padding: 0.35rem 0.5rem 0.5rem !important;
239
+ overflow: hidden !important;
240
+ display: flex;
241
+ flex-direction: column;
242
+ height: 100%;
243
+ box-sizing: border-box;
244
+ }
245
+
246
+ .left-panel-content > .space-side-view:not([style*="display: none"]):not([style*="display:none"]),
247
+ .left-panel-content > .space-side-view.active {
248
+ display: flex !important;
249
+ flex-direction: column !important;
250
+ height: 100% !important;
251
+ flex: 1 1 0px !important;
252
+ min-height: 0 !important;
253
+ overflow: hidden !important;
254
+ box-sizing: border-box !important;
255
+ }
256
+
257
+ .placeholder-text {
258
+ color: var(--clr-text-muted);
259
+ font-size: 0.9rem;
260
+ font-style: italic;
261
+ }
262
+
263
+ /* ── Resizers ── */
264
+ .resizer {
265
+ background: transparent;
266
+ transition: background var(--t-fast);
267
+ z-index: 10;
268
+ }
269
+
270
+ .resizer:hover,
271
+ .resizer:active {
272
+ background: var(--clr-accent-dim);
273
+ }
274
+
275
+ .resizer-v {
276
+ width: 6px;
277
+ cursor: col-resize;
278
+ margin-left: -3px;
279
+ margin-right: -3px;
280
+ }
281
+
282
+ .resizer-h {
283
+ height: 6px;
284
+ max-height: 6px;
285
+ cursor: row-resize;
286
+ margin-top: -3px;
287
+ margin-bottom: -3px;
288
+ transition: max-height 2.5s cubic-bezier(0.16, 1, 0.3, 1),
289
+ opacity 2.5s cubic-bezier(0.16, 1, 0.3, 1);
290
+ }
291
+
292
+ /* ── Footer ── */
293
+ .footer-panel {
294
+ height: var(--footer-panel-height);
295
+ max-height: var(--footer-panel-height);
296
+ display: flex;
297
+ align-items: center;
298
+ justify-content: center;
299
+ border-top: 1px solid var(--clr-border);
300
+ background: var(--clr-bg-glass);
301
+ position: relative;
302
+ padding: 0 0.75rem;
303
+ transition: max-height 2.5s cubic-bezier(0.16, 1, 0.3, 1),
304
+ opacity 2.5s cubic-bezier(0.16, 1, 0.3, 1),
305
+ border-top-color 2.5s cubic-bezier(0.16, 1, 0.3, 1);
306
+ }
307
+
308
+ /* ── Footer Agent Button (~95% footer height, circular, docked on right) ── */
309
+ .footer-agent-btn {
310
+ position: absolute;
311
+ right: 12px;
312
+ top: 50%;
313
+ transform: translateY(-50%);
314
+ width: calc(var(--footer-panel-height) * 0.95);
315
+ height: calc(var(--footer-panel-height) * 0.95);
316
+ max-width: 46px;
317
+ max-height: 46px;
318
+ display: inline-flex;
319
+ align-items: center;
320
+ justify-content: center;
321
+ padding: 0;
322
+ margin: 0;
323
+ background: linear-gradient(135deg, rgba(124, 92, 252, 0.16) 0%, rgba(99, 102, 241, 0.22) 100%);
324
+ border: 1.5px solid rgba(124, 92, 252, 0.5);
325
+ border-radius: 50%;
326
+ color: #c4b5fd;
327
+ cursor: pointer;
328
+ box-shadow: 0 0 16px rgba(124, 92, 252, 0.25), inset 0 0 8px rgba(124, 92, 252, 0.15);
329
+ transition: opacity 300ms ease, transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
330
+ z-index: 10;
331
+ opacity: 0;
332
+ pointer-events: none;
333
+ visibility: hidden;
334
+ }
335
+
336
+ .footer-agent-btn.is-docked {
337
+ opacity: 1 !important;
338
+ pointer-events: auto !important;
339
+ visibility: visible !important;
340
+ }
341
+
342
+ .footer-agent-btn:hover {
343
+ background: linear-gradient(135deg, rgba(124, 92, 252, 0.28) 0%, rgba(99, 102, 241, 0.35) 100%);
344
+ border-color: rgba(167, 139, 250, 0.85);
345
+ box-shadow: 0 0 24px rgba(124, 92, 252, 0.5), inset 0 0 12px rgba(124, 92, 252, 0.3);
346
+ color: #ffffff;
347
+ transform: translateY(-50%) scale(1.08);
348
+ }
349
+
350
+ .footer-agent-btn:active {
351
+ transform: translateY(-50%) scale(0.95);
352
+ }
353
+
354
+ .footer-agent-btn .footer-agent-emoji {
355
+ font-size: 1.35rem;
356
+ line-height: 1;
357
+ filter: drop-shadow(0 0 6px rgba(124, 92, 252, 0.7));
358
+ }
359
+
360
+ @keyframes agent-btn-docked-pulse {
361
+ 0% {
362
+ box-shadow: 0 0 0 0 rgba(124, 92, 252, 0.8);
363
+ transform: translateY(-50%) scale(1.2);
364
+ }
365
+ 70% {
366
+ box-shadow: 0 0 32px 14px rgba(124, 92, 252, 0);
367
+ transform: translateY(-50%) scale(1);
368
+ }
369
+ 100% {
370
+ box-shadow: 0 0 16px rgba(124, 92, 252, 0.25);
371
+ transform: translateY(-50%) scale(1);
372
+ }
373
+ }
374
+
375
+ .footer-agent-btn.agent-btn-docked-pulse {
376
+ animation: agent-btn-docked-pulse 1.8s ease-out;
377
+ }
378
+
379
+ .footer-text {
380
+ font-size: 0.8rem;
381
+ color: var(--clr-text-muted);
382
+ display: flex;
383
+ gap: 0.5rem;
384
+ flex-wrap: wrap;
385
+ justify-content: center;
386
+ align-items: center;
387
+ }
388
+
389
+ .footer-link {
390
+ color: var(--clr-text-secondary);
391
+ text-decoration: none;
392
+ transition: color var(--t-fast);
393
+ }
394
+
395
+ .footer-link:hover {
396
+ color: var(--clr-accent);
397
+ }
398
+
399
+ /* ── Responsive ── */
400
+ @media (max-width: 600px) {
401
+ .header-nav {
402
+ display: none;
403
+ }
404
+
405
+ .hero-section {
406
+ padding: 3rem 1rem 2.5rem;
407
+ }
408
+
409
+ .features-section {
410
+ padding: 0 1rem 3rem;
411
+ }
412
+ }
413
+
414
+ /* ── Identity Header Container ── */
415
+ #identity-header-container {
416
+ margin-left: auto;
417
+ display: flex;
418
+ align-items: center;
419
+ }
420
+
421
+ /* ── Header Breadcrumbs & Project Switcher ── */
422
+ .header-breadcrumbs {
423
+ display: flex;
424
+ align-items: center;
425
+ gap: 0.35rem;
426
+ margin-left: 0;
427
+ }
428
+
429
+ .breadcrumb-btn {
430
+ background: transparent;
431
+ border: 1px solid rgba(255, 255, 255, 0.08);
432
+ border-radius: var(--radius-sm);
433
+ color: var(--clr-text-secondary);
434
+ padding: 0.35rem 0.65rem;
435
+ font-size: 0.85rem;
436
+ font-weight: 500;
437
+ cursor: pointer;
438
+ display: flex;
439
+ align-items: center;
440
+ gap: 0.4rem;
441
+ transition: all var(--t-fast);
442
+ }
443
+
444
+ .polycosmos-btn {
445
+ padding: 0.3rem 0.5rem;
446
+ font-size: 1rem;
447
+ line-height: 1;
448
+ }
449
+
450
+ .breadcrumb-btn:hover {
451
+ background: rgba(255, 255, 255, 0.05);
452
+ color: var(--clr-text-primary);
453
+ border-color: rgba(255, 255, 255, 0.18);
454
+ }
455
+
456
+ .breadcrumb-sep {
457
+ color: rgba(255, 255, 255, 0.25);
458
+ font-size: 0.95rem;
459
+ font-weight: 300;
460
+ user-select: none;
461
+ padding: 0 0.15rem;
462
+ }
463
+
464
+ .cosmos-dropdown-wrapper {
465
+ position: relative;
466
+ }
467
+
468
+ .cosmos-select-btn {
469
+ border-color: rgba(124, 92, 252, 0.3);
470
+ color: #c4b5fd;
471
+ }
472
+
473
+ .cosmos-select-btn:hover {
474
+ border-color: rgba(167, 139, 250, 0.6);
475
+ color: #ffffff;
476
+ }
477
+
478
+ .dropdown-arrow {
479
+ font-size: 0.7rem;
480
+ opacity: 0.7;
481
+ margin-left: 2px;
482
+ }
483
+
484
+ .header-temp-badge {
485
+ font-size: 0.72rem;
486
+ font-weight: 500;
487
+ color: #c4b5fd;
488
+ background: rgba(124, 92, 252, 0.2);
489
+ border: 1px solid rgba(167, 139, 250, 0.45);
490
+ border-radius: 9999px;
491
+ padding: 2px 8px;
492
+ margin-left: 6px;
493
+ letter-spacing: 0.03em;
494
+ white-space: nowrap;
495
+ box-shadow: 0 0 10px rgba(124, 92, 252, 0.25);
496
+ display: inline-flex;
497
+ align-items: center;
498
+ user-select: none;
499
+ cursor: default;
500
+ }
501
+
502
+ .header-dropdown-menu {
503
+ position: absolute;
504
+ top: calc(100% + 6px);
505
+ left: 0;
506
+ background: #0d1117;
507
+ border: 1px solid rgba(124, 92, 252, 0.3);
508
+ border-radius: var(--radius-md);
509
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.7);
510
+ min-width: 190px;
511
+ z-index: 150;
512
+ padding: 0.4rem;
513
+ display: flex;
514
+ flex-direction: column;
515
+ gap: 2px;
516
+ }
517
+
518
+ .header-dropdown-menu.hidden {
519
+ display: none;
520
+ }
521
+
522
+ .header-menu-item {
523
+ background: transparent;
524
+ border: none;
525
+ border-radius: var(--radius-sm);
526
+ color: #cbd5e1;
527
+ font-size: 0.84rem;
528
+ padding: 0.5rem 0.75rem;
529
+ text-align: left;
530
+ cursor: pointer;
531
+ display: flex;
532
+ align-items: center;
533
+ justify-content: space-between;
534
+ gap: 0.5rem;
535
+ transition: all var(--t-fast);
536
+ }
537
+
538
+ .header-menu-item:hover {
539
+ background: rgba(124, 92, 252, 0.18);
540
+ color: #ffffff;
541
+ }
542
+
543
+ .header-menu-item.active {
544
+ background: rgba(124, 92, 252, 0.3);
545
+ color: #a78bfa;
546
+ font-weight: 600;
547
+ }
548
+
549
+ .header-menu-divider {
550
+ height: 1px;
551
+ background: rgba(255, 255, 255, 0.08);
552
+ margin: 4px 0;
553
+ }
554
+
555
+ /* ── Cosmos Navigator Container ── */
556
+ .cosmos-navigator-container {
557
+ position: relative;
558
+ width: 100%;
559
+ height: 100%;
560
+ flex: 1;
561
+ display: flex;
562
+ flex-direction: column;
563
+ align-items: stretch;
564
+ justify-content: stretch;
565
+ overflow: hidden;
566
+ min-height: 0;
567
+ }
568
+
569
+ .cosmos-navigator-container space-gib-cosmos-navigator,
570
+ space-gib-cosmos-navigator {
571
+ display: flex !important;
572
+ flex-direction: column !important;
573
+ flex: 1 !important;
574
+ width: 100% !important;
575
+ height: 100% !important;
576
+ min-height: 0 !important;
577
+ overflow: hidden !important;
578
+ }
579
+
580
+ /* ── Pre-Bang Initial Hidden State & Slow Fade-in ── */
581
+ .pre-bang-hidden {
582
+ max-height: 0 !important;
583
+ opacity: 0 !important;
584
+ overflow: hidden !important;
585
+ pointer-events: none !important;
586
+ border-color: transparent !important;
587
+ transition: max-height 2.5s cubic-bezier(0.16, 1, 0.3, 1),
588
+ opacity 2.5s cubic-bezier(0.16, 1, 0.3, 1),
589
+ border-color 2.5s cubic-bezier(0.16, 1, 0.3, 1);
590
+ }
591
+
592
+ #footer-resizer.pre-bang-hidden {
593
+ margin: 0 !important;
594
+ height: 0 !important;
595
+ max-height: 0 !important;
596
+ }
597
+
598
+ .chrome-fade-in {
599
+ opacity: 1 !important;
600
+ pointer-events: auto !important;
601
+ overflow: hidden;
602
+ transition: max-height 2.5s cubic-bezier(0.16, 1, 0.3, 1),
603
+ opacity 2.5s cubic-bezier(0.16, 1, 0.3, 1),
604
+ border-color 2.5s cubic-bezier(0.16, 1, 0.3, 1);
605
+ }
606
+
607
+ .chrome-revealed {
608
+ opacity: 1 !important;
609
+ pointer-events: auto !important;
610
+ max-height: none !important;
611
+ overflow: visible !important;
612
+ }
613
+
614
+ /* ── Code Space File Explorer & Timeline Containers ── */
615
+ .code-file-explorer-container {
616
+ width: 100%;
617
+ display: flex;
618
+ flex-direction: column;
619
+ margin: 0 !important;
620
+ padding: 0 !important;
621
+ gap: 0 !important;
622
+ overflow: hidden;
623
+ position: relative;
624
+ z-index: 30;
625
+ flex: 1 1 0px;
626
+ min-height: 76px;
627
+ }
628
+
629
+ .code-file-explorer-container:has(space-gib-file-explorer[collapsed]) {
630
+ flex: 0 0 auto !important;
631
+ height: auto !important;
632
+ min-height: 0 !important;
633
+ }
634
+
635
+ .code-file-explorer-container space-gib-file-explorer,
636
+ space-gib-file-explorer {
637
+ display: flex !important;
638
+ flex-direction: column !important;
639
+ width: 100% !important;
640
+ height: 100%;
641
+ min-height: 0;
642
+ margin: 0 !important;
643
+ padding: 0 !important;
644
+ }
645
+
646
+ .code-changes-container {
647
+ width: 100%;
648
+ display: flex;
649
+ flex-direction: column;
650
+ margin: 0 !important;
651
+ padding: 0 !important;
652
+ gap: 0 !important;
653
+ overflow: hidden;
654
+ position: relative;
655
+ z-index: 20;
656
+ flex: 1 1 0px;
657
+ min-height: 32px;
658
+ }
659
+
660
+ .code-changes-container:has(space-gib-changes[collapsed]) {
661
+ flex: 0 0 auto !important;
662
+ height: auto !important;
663
+ min-height: 0 !important;
664
+ }
665
+
666
+ .code-changes-container space-gib-changes,
667
+ space-gib-changes {
668
+ display: flex !important;
669
+ flex-direction: column !important;
670
+ width: 100% !important;
671
+ height: 100%;
672
+ min-height: 0;
673
+ margin: 0 !important;
674
+ padding: 0 !important;
675
+ }
676
+
677
+ .code-timeline-container {
678
+ width: 100%;
679
+ display: flex;
680
+ flex-direction: column;
681
+ margin: 0 !important;
682
+ padding: 0 !important;
683
+ gap: 0 !important;
684
+ overflow: hidden;
685
+ position: relative;
686
+ z-index: 10;
687
+ flex: 1 1 0px;
688
+ min-height: 32px;
689
+ }
690
+
691
+ .code-timeline-container:has(space-gib-timeline[collapsed]) {
692
+ flex: 0 0 auto !important;
693
+ height: auto !important;
694
+ min-height: 0 !important;
695
+ }
696
+
697
+ .code-timeline-container space-gib-timeline,
698
+ space-gib-timeline {
699
+ display: flex !important;
700
+ flex-direction: column !important;
701
+ width: 100% !important;
702
+ height: 100%;
703
+ min-height: 0;
704
+ margin: 0 !important;
705
+ padding: 0 !important;
706
+ }
707
+
708
+ /* ── Accordion Horizontal Resizers ── */
709
+ .accordion-resizer {
710
+ height: 6px;
711
+ background: transparent;
712
+ cursor: row-resize;
713
+ position: relative;
714
+ z-index: 25;
715
+ flex: 0 0 6px;
716
+ margin: 1px 0;
717
+ transition: background 0.15s ease;
718
+ }
719
+
720
+ .accordion-resizer::before {
721
+ content: '';
722
+ position: absolute;
723
+ top: -4px;
724
+ bottom: -4px;
725
+ left: 0;
726
+ right: 0;
727
+ z-index: 26;
728
+ }
729
+
730
+ .accordion-resizer:hover,
731
+ .accordion-resizer.active {
732
+ background: var(--clr-accent, #78f87e);
733
+ }
734
+
735
+ .code-file-explorer-container:has(space-gib-file-explorer[collapsed]) + #resizer-explorer-changes {
736
+ display: none !important;
737
+ }
738
+
739
+ #resizer-explorer-changes:has(+ .code-changes-container:has(space-gib-changes[collapsed])) {
740
+ display: none !important;
741
+ }
742
+
743
+ .code-changes-container:has(space-gib-changes[collapsed]) + #resizer-changes-timeline {
744
+ display: none !important;
745
+ }
746
+
747
+ #resizer-changes-timeline:has(+ .code-timeline-container:has(space-gib-timeline[collapsed])) {
748
+ display: none !important;
749
+ }
750
+
751
+ /* ── Right Panel & Chat View Container ── */
752
+ .right-panel-content {
753
+ padding: 0 !important;
754
+ overflow: hidden !important;
755
+ display: flex;
756
+ flex-direction: column;
757
+ height: 100%;
758
+ }
759
+
760
+ .code-chat-view-container {
761
+ width: 100%;
762
+ height: 100%;
763
+ flex: 1;
764
+ min-height: 0;
765
+ display: flex;
766
+ flex-direction: column;
767
+ overflow: hidden;
768
+ }
769
+
770
+ .code-chat-view-container space-gib-chat-view,
771
+ space-gib-chat-view,
772
+ .code-chat-view-container space-gib-nested-chat,
773
+ space-gib-nested-chat {
774
+ display: flex !important;
775
+ flex-direction: column !important;
776
+ width: 100% !important;
777
+ height: 100% !important;
778
+ flex: 1 !important;
779
+ min-height: 0 !important;
780
+ }
781
+
782
+ /* ── Header Pitch Button (~85% header height, dead smack in middle, gold glow, circular) ── */
783
+ .header-pitch-btn {
784
+ position: absolute;
785
+ left: 50%;
786
+ top: 50%;
787
+ transform: translate(-50%, -50%);
788
+ width: calc(var(--header-h) * 0.85);
789
+ height: calc(var(--header-h) * 0.85);
790
+ max-width: 52px;
791
+ max-height: 52px;
792
+ display: inline-flex;
793
+ align-items: center;
794
+ justify-content: center;
795
+ padding: 0;
796
+ background: linear-gradient(135deg, rgba(251, 191, 36, 0.16) 0%, rgba(217, 119, 6, 0.22) 100%);
797
+ border: 1.5px solid rgba(251, 191, 36, 0.5);
798
+ border-radius: 50%;
799
+ color: #fde047;
800
+ cursor: pointer;
801
+ box-shadow: 0 0 16px rgba(251, 191, 36, 0.25), inset 0 0 8px rgba(251, 191, 36, 0.15);
802
+ transition: opacity 300ms ease, transform 200ms ease, box-shadow 200ms ease;
803
+ z-index: 10;
804
+ opacity: 0;
805
+ pointer-events: none;
806
+ visibility: hidden;
807
+ }
808
+
809
+ .header-pitch-btn.is-docked {
810
+ opacity: 1 !important;
811
+ pointer-events: auto !important;
812
+ visibility: visible !important;
813
+ }
814
+
815
+ .header-pitch-btn:hover {
816
+ background: linear-gradient(135deg, rgba(251, 191, 36, 0.28) 0%, rgba(217, 119, 6, 0.35) 100%);
817
+ border-color: rgba(251, 191, 36, 0.85);
818
+ box-shadow: 0 0 24px rgba(251, 191, 36, 0.5), inset 0 0 12px rgba(251, 191, 36, 0.3);
819
+ color: #ffffff;
820
+ transform: translate(-50%, -50%) scale(1.08);
821
+ }
822
+
823
+ .header-pitch-btn:active {
824
+ transform: translate(-50%, -50%) scale(0.95);
825
+ }
826
+
827
+ .header-pitch-btn .pitch-btn-emoji {
828
+ font-size: 1.35rem;
829
+ line-height: 1;
830
+ filter: drop-shadow(0 0 6px rgba(251, 191, 36, 0.7));
831
+ }
832
+
833
+ /* ── Header Clone Button ── */
834
+ .header-clone-btn {
835
+ display: inline-flex;
836
+ align-items: center;
837
+ gap: 6px;
838
+ padding: 4px 10px;
839
+ background: rgba(99, 102, 241, 0.12);
840
+ border: 1px solid rgba(99, 102, 241, 0.35);
841
+ border-radius: 6px;
842
+ color: #c7d2fe;
843
+ font-size: 0.82rem;
844
+ font-weight: 500;
845
+ cursor: pointer;
846
+ transition: all 180ms ease;
847
+ margin-right: 8px;
848
+ }
849
+
850
+ .header-clone-btn:hover {
851
+ background: rgba(99, 102, 241, 0.25);
852
+ border-color: #818cf8;
853
+ color: #ffffff;
854
+ box-shadow: 0 0 10px rgba(99, 102, 241, 0.3);
855
+ }
856
+
857
+ .header-clone-btn .clone-btn-icon {
858
+ font-size: 0.95rem;
859
+ color: #a5b4fc;
860
+ }
861
+
862
+ #identity-header-container {
863
+ display: inline-flex;
864
+ align-items: center;
865
+ border-radius: var(--radius-lg, 20px) !important;
866
+ }
867
+
868
+ /* ── Pitch Workspace & Component ── */
869
+ .pitch-workspace {
870
+ width: 100%;
871
+ height: 100%;
872
+ display: flex;
873
+ flex-direction: column;
874
+ flex: 1;
875
+ min-height: 0;
876
+ overflow: hidden;
877
+ }
878
+
879
+ #pitch-component-container {
880
+ width: 100%;
881
+ height: 100%;
882
+ display: flex;
883
+ flex-direction: column;
884
+ flex: 1;
885
+ min-height: 0;
886
+ overflow: hidden;
887
+ }
888
+
889
+ #pitch-component-container space-gib-pitch,
890
+ space-gib-pitch {
891
+ display: flex !important;
892
+ flex-direction: column !important;
893
+ width: 100% !important;
894
+ height: 100% !important;
895
+ flex: 1 !important;
896
+ min-height: 0 !important;
897
+ }
898
+
899
+ /* ── Code File Editor Container & Component ── */
900
+ .code-editor-container,
901
+ #code-editor-container {
902
+ width: 100%;
903
+ height: 100%;
904
+ display: flex;
905
+ flex-direction: column;
906
+ flex: 1;
907
+ min-height: 0;
908
+ overflow: hidden;
909
+ }
910
+
911
+ #code-editor-container space-gib-code-editor,
912
+ space-gib-code-editor {
913
+ display: flex !important;
914
+ flex-direction: column !important;
915
+ width: 100% !important;
916
+ height: 100% !important;
917
+ flex: 1 !important;
918
+ min-height: 0 !important;
919
+ }
920
+
921
+ /* ── Timeline Item Details Container & Component ── */
922
+ .timeline-details-container,
923
+ #timeline-details-container,
924
+ space-gib-timeline-item-details {
925
+ display: flex !important;
926
+ flex-direction: column !important;
927
+ width: 100% !important;
928
+ height: 100% !important;
929
+ flex: 1 !important;
930
+ min-height: 0 !important;
931
+ overflow: hidden;
932
+ }
933
+
934
+ /* ── In-Memory Playground Warning Banner ── */
935
+ .playground-banner {
936
+ 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%);
937
+ border-bottom: 1px solid rgba(245, 158, 11, 0.35);
938
+ backdrop-filter: blur(12px);
939
+ -webkit-backdrop-filter: blur(12px);
940
+ padding: 0.4rem 1.5rem;
941
+ font-size: 0.85rem;
942
+ color: #fbbf24;
943
+ display: flex;
944
+ align-items: center;
945
+ justify-content: center;
946
+ z-index: 90;
947
+ transition: all 0.3s ease;
948
+ }
949
+
950
+ .playground-banner.hidden {
951
+ display: none !important;
952
+ }
953
+
954
+ .playground-banner-content {
955
+ display: flex;
956
+ align-items: center;
957
+ justify-content: space-between;
958
+ width: 100%;
959
+ max-width: 1400px;
960
+ gap: 1rem;
961
+ }
962
+
963
+ .playground-banner-icon {
964
+ font-size: 1rem;
965
+ flex-shrink: 0;
966
+ }
967
+
968
+ .playground-banner-text {
969
+ flex: 1;
970
+ color: #fef3c7;
971
+ }
972
+
973
+ .playground-banner-text strong {
974
+ color: #f59e0b;
975
+ }
976
+
977
+ .playground-banner-actions {
978
+ display: flex;
979
+ align-items: center;
980
+ gap: 0.75rem;
981
+ flex-shrink: 0;
982
+ }
983
+
984
+ .playground-banner-action-btn {
985
+ background: rgba(245, 158, 11, 0.25);
986
+ border: 1px solid rgba(245, 158, 11, 0.6);
987
+ color: #fff;
988
+ padding: 0.25rem 0.75rem;
989
+ border-radius: 4px;
990
+ font-size: 0.8rem;
991
+ font-weight: 600;
992
+ cursor: pointer;
993
+ transition: background 0.2s, border-color 0.2s, transform 0.1s;
994
+ }
995
+
996
+ .playground-banner-action-btn:hover {
997
+ background: rgba(245, 158, 11, 0.45);
998
+ border-color: #fbbf24;
999
+ transform: translateY(-1px);
1000
+ }
1001
+
1002
+ .playground-banner-dismiss-btn {
1003
+ background: transparent;
1004
+ border: none;
1005
+ color: #fbbf24;
1006
+ font-size: 1rem;
1007
+ cursor: pointer;
1008
+ padding: 0.2rem 0.4rem;
1009
+ border-radius: 4px;
1010
+ opacity: 0.75;
1011
+ transition: opacity 0.2s, background 0.2s;
1012
+ }
1013
+
1014
+ .playground-banner-dismiss-btn:hover {
1015
+ opacity: 1;
1016
+ background: rgba(245, 158, 11, 0.2);
1017
+ }