@jonsoc/console-app 1.1.34 → 1.1.46

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 (83) hide show
  1. package/package.json +5 -1
  2. package/public/robots.txt +5 -5
  3. package/script/generate-sitemap.ts +0 -0
  4. package/src/app.css +1 -1
  5. package/src/asset/brand/opencode-logo-dark.svg +16 -16
  6. package/src/asset/brand/opencode-logo-light.svg +16 -16
  7. package/src/asset/brand/opencode-wordmark-dark.svg +30 -30
  8. package/src/asset/brand/opencode-wordmark-light.svg +30 -30
  9. package/src/asset/brand/opencode-wordmark-simple-dark.svg +22 -22
  10. package/src/asset/brand/opencode-wordmark-simple-light.svg +22 -22
  11. package/src/asset/lander/brand-assets-dark.svg +10 -10
  12. package/src/asset/lander/brand-assets-light.svg +10 -10
  13. package/src/asset/lander/check.svg +3 -3
  14. package/src/asset/lander/copy.svg +3 -3
  15. package/src/asset/lander/logo-dark.svg +11 -11
  16. package/src/asset/lander/logo-light.svg +11 -11
  17. package/src/asset/lander/opencode-logo-dark.svg +11 -11
  18. package/src/asset/lander/opencode-logo-light.svg +11 -11
  19. package/src/asset/lander/opencode-wordmark-dark.svg +25 -25
  20. package/src/asset/lander/opencode-wordmark-light.svg +25 -25
  21. package/src/asset/lander/wordmark-dark.svg +3 -3
  22. package/src/asset/lander/wordmark-light.svg +3 -3
  23. package/src/asset/logo-ornate-dark.svg +18 -18
  24. package/src/asset/logo-ornate-light.svg +18 -18
  25. package/src/asset/logo.svg +18 -18
  26. package/src/asset/zen-ornate-dark.svg +8 -8
  27. package/src/asset/zen-ornate-light.svg +8 -8
  28. package/src/component/dropdown.css +80 -80
  29. package/src/component/header-context-menu.css +63 -63
  30. package/src/component/modal.css +66 -66
  31. package/src/component/spotlight.css +15 -15
  32. package/src/routes/[...404].css +130 -130
  33. package/src/routes/black/workspace.css +214 -214
  34. package/src/routes/black.css +828 -828
  35. package/src/routes/brand/index.css +555 -555
  36. package/src/routes/changelog/index.css +477 -477
  37. package/src/routes/download/index.css +750 -750
  38. package/src/routes/enterprise/index.css +578 -578
  39. package/src/routes/index.css +1251 -1251
  40. package/src/routes/legal/privacy-policy/index.css +343 -343
  41. package/src/routes/legal/terms-of-service/index.css +254 -254
  42. package/src/routes/user-menu.css +18 -18
  43. package/src/routes/workspace/[id]/billing/billing-section.module.css +185 -185
  44. package/src/routes/workspace/[id]/billing/black-section.module.css +142 -142
  45. package/src/routes/workspace/[id]/billing/black-waitlist-section.module.css +23 -23
  46. package/src/routes/workspace/[id]/billing/monthly-limit-section.module.css +96 -96
  47. package/src/routes/workspace/[id]/billing/payment-section.module.css +93 -93
  48. package/src/routes/workspace/[id]/billing/reload-section.module.css +261 -261
  49. package/src/routes/workspace/[id]/graph-section.module.css +145 -145
  50. package/src/routes/workspace/[id]/keys/key-section.module.css +197 -197
  51. package/src/routes/workspace/[id]/members/member-section.module.css +249 -249
  52. package/src/routes/workspace/[id]/members/role-dropdown.css +72 -72
  53. package/src/routes/workspace/[id]/model-section.module.css +173 -173
  54. package/src/routes/workspace/[id]/new-user-section.module.css +143 -143
  55. package/src/routes/workspace/[id]/provider-section.module.css +138 -138
  56. package/src/routes/workspace/[id]/settings/settings-section.module.css +94 -94
  57. package/src/routes/workspace/[id]/usage-section.module.css +185 -185
  58. package/src/routes/workspace/[id].css +308 -308
  59. package/src/routes/workspace-picker.css +74 -74
  60. package/src/routes/workspace.css +107 -107
  61. package/src/routes/zen/index.css +866 -866
  62. package/src/style/base.css +21 -21
  63. package/src/style/component/button.css +102 -102
  64. package/src/style/index.css +8 -8
  65. package/src/style/reset.css +76 -76
  66. package/src/style/token/color.css +91 -91
  67. package/src/style/token/font.css +21 -21
  68. package/src/style/token/space.css +46 -46
  69. package/public/apple-touch-icon-v3.png +0 -1
  70. package/public/apple-touch-icon.png +0 -1
  71. package/public/email +0 -1
  72. package/public/favicon-96x96-v3.png +0 -1
  73. package/public/favicon-96x96.png +0 -1
  74. package/public/favicon-v3.ico +0 -1
  75. package/public/favicon-v3.svg +0 -1
  76. package/public/favicon.ico +0 -1
  77. package/public/favicon.svg +0 -1
  78. package/public/site.webmanifest +0 -1
  79. package/public/social-share-black.png +0 -1
  80. package/public/social-share-zen.png +0 -1
  81. package/public/social-share.png +0 -1
  82. package/public/web-app-manifest-192x192.png +0 -1
  83. package/public/web-app-manifest-512x512.png +0 -1
@@ -1,750 +1,750 @@
1
- ::selection {
2
- background: var(--color-background-interactive);
3
- color: var(--color-text-strong);
4
-
5
- @media (prefers-color-scheme: dark) {
6
- background: var(--color-background-interactive);
7
- color: var(--color-text-inverted);
8
- }
9
- }
10
-
11
- [data-page="download"] {
12
- --color-background: hsl(0, 20%, 99%);
13
- --color-background-weak: hsl(0, 8%, 97%);
14
- --color-background-weak-hover: hsl(0, 8%, 94%);
15
- --color-background-strong: hsl(0, 5%, 12%);
16
- --color-background-strong-hover: hsl(0, 5%, 18%);
17
- --color-background-interactive: hsl(62, 84%, 88%);
18
- --color-background-interactive-weaker: hsl(64, 74%, 95%);
19
-
20
- --color-text: hsl(0, 1%, 39%);
21
- --color-text-weak: hsl(0, 1%, 60%);
22
- --color-text-weaker: hsl(30, 2%, 81%);
23
- --color-text-strong: hsl(0, 5%, 12%);
24
- --color-text-inverted: hsl(0, 20%, 99%);
25
- --color-text-success: hsl(119, 100%, 35%);
26
-
27
- --color-border: hsl(30, 2%, 81%);
28
- --color-border-weak: hsl(0, 1%, 85%);
29
-
30
- --color-icon: hsl(0, 1%, 55%);
31
- --color-success: hsl(142, 76%, 36%);
32
-
33
- background: var(--color-background);
34
- font-family: var(--font-mono);
35
- color: var(--color-text);
36
- padding-bottom: 5rem;
37
-
38
- @media (prefers-color-scheme: dark) {
39
- --color-background: hsl(0, 9%, 7%);
40
- --color-background-weak: hsl(0, 6%, 10%);
41
- --color-background-weak-hover: hsl(0, 6%, 15%);
42
- --color-background-strong: hsl(0, 15%, 94%);
43
- --color-background-strong-hover: hsl(0, 15%, 97%);
44
- --color-background-interactive: hsl(62, 100%, 90%);
45
- --color-background-interactive-weaker: hsl(60, 20%, 8%);
46
-
47
- --color-text: hsl(0, 4%, 71%);
48
- --color-text-weak: hsl(0, 2%, 49%);
49
- --color-text-weaker: hsl(0, 3%, 28%);
50
- --color-text-strong: hsl(0, 15%, 94%);
51
- --color-text-inverted: hsl(0, 9%, 7%);
52
- --color-text-success: hsl(119, 60%, 72%);
53
-
54
- --color-border: hsl(0, 3%, 28%);
55
- --color-border-weak: hsl(0, 4%, 23%);
56
-
57
- --color-icon: hsl(10, 3%, 43%);
58
- --color-success: hsl(142, 76%, 46%);
59
- }
60
-
61
- /* Header and Footer styles - copied from enterprise */
62
- [data-component="top"] {
63
- padding: 24px 5rem;
64
- height: 80px;
65
- position: sticky;
66
- top: 0;
67
- display: flex;
68
- justify-content: space-between;
69
- align-items: center;
70
- background: var(--color-background);
71
- border-bottom: 1px solid var(--color-border-weak);
72
- z-index: 10;
73
-
74
- @media (max-width: 60rem) {
75
- padding: 24px 1.5rem;
76
- }
77
-
78
- img {
79
- height: 34px;
80
- width: auto;
81
- }
82
-
83
- [data-component="nav-desktop"] {
84
- ul {
85
- display: flex;
86
- justify-content: space-between;
87
- align-items: center;
88
- gap: 48px;
89
-
90
- @media (max-width: 55rem) {
91
- gap: 32px;
92
- }
93
-
94
- @media (max-width: 48rem) {
95
- gap: 24px;
96
- }
97
- li {
98
- display: inline-block;
99
- a {
100
- text-decoration: none;
101
- span {
102
- color: var(--color-text-weak);
103
- }
104
- }
105
- a:hover {
106
- text-decoration: underline;
107
- text-underline-offset: 2px;
108
- text-decoration-thickness: 1px;
109
- }
110
- [data-slot="cta-button"] {
111
- background: var(--color-background-strong);
112
- color: var(--color-text-inverted);
113
- padding: 8px 16px;
114
- border-radius: 4px;
115
- font-weight: 500;
116
- text-decoration: none;
117
-
118
- @media (max-width: 55rem) {
119
- display: none;
120
- }
121
- }
122
- [data-slot="cta-button"]:hover {
123
- background: var(--color-background-strong-hover);
124
- text-decoration: none;
125
- }
126
- }
127
- }
128
-
129
- @media (max-width: 40rem) {
130
- display: none;
131
- }
132
- }
133
-
134
- [data-component="nav-mobile"] {
135
- button > svg {
136
- color: var(--color-icon);
137
- }
138
- }
139
-
140
- [data-component="nav-mobile-toggle"] {
141
- border: none;
142
- background: none;
143
- outline: none;
144
- height: 40px;
145
- width: 40px;
146
- cursor: pointer;
147
- margin-right: -8px;
148
- }
149
-
150
- [data-component="nav-mobile-toggle"]:hover {
151
- background: var(--color-background-weak);
152
- }
153
-
154
- [data-component="nav-mobile"] {
155
- display: none;
156
-
157
- @media (max-width: 40rem) {
158
- display: block;
159
-
160
- [data-component="nav-mobile-icon"] {
161
- cursor: pointer;
162
- height: 40px;
163
- width: 40px;
164
- display: flex;
165
- align-items: center;
166
- justify-content: center;
167
- }
168
-
169
- [data-component="nav-mobile-menu-list"] {
170
- position: fixed;
171
- background: var(--color-background);
172
- top: 80px;
173
- left: 0;
174
- right: 0;
175
- height: 100vh;
176
-
177
- ul {
178
- list-style: none;
179
- padding: 20px 0;
180
-
181
- li {
182
- a {
183
- text-decoration: none;
184
- padding: 20px;
185
- display: block;
186
-
187
- span {
188
- color: var(--color-text-weak);
189
- }
190
- }
191
-
192
- a:hover {
193
- background: var(--color-background-weak);
194
- }
195
- }
196
- }
197
- }
198
- }
199
- }
200
-
201
- [data-slot="logo dark"] {
202
- display: none;
203
- }
204
-
205
- @media (prefers-color-scheme: dark) {
206
- [data-slot="logo light"] {
207
- display: none;
208
- }
209
- [data-slot="logo dark"] {
210
- display: block;
211
- }
212
- }
213
- }
214
-
215
- [data-component="footer"] {
216
- border-top: 1px solid var(--color-border-weak);
217
- display: flex;
218
- flex-direction: row;
219
-
220
- @media (max-width: 65rem) {
221
- border-bottom: 1px solid var(--color-border-weak);
222
- }
223
-
224
- [data-slot="cell"] {
225
- flex: 1;
226
- text-align: center;
227
-
228
- a {
229
- text-decoration: none;
230
- padding: 2rem 0;
231
- width: 100%;
232
- display: block;
233
-
234
- span {
235
- color: var(--color-text-weak);
236
-
237
- @media (max-width: 40rem) {
238
- display: none;
239
- }
240
- }
241
- }
242
-
243
- a:hover {
244
- background: var(--color-background-weak);
245
- text-decoration: underline;
246
- text-underline-offset: 2px;
247
- text-decoration-thickness: 1px;
248
- }
249
- }
250
-
251
- [data-slot="cell"] + [data-slot="cell"] {
252
- border-left: 1px solid var(--color-border-weak);
253
-
254
- @media (max-width: 40rem) {
255
- border-left: none;
256
- }
257
- }
258
-
259
- @media (max-width: 25rem) {
260
- flex-wrap: wrap;
261
-
262
- [data-slot="cell"] {
263
- flex: 1 0 100%;
264
- border-left: none;
265
- border-top: 1px solid var(--color-border-weak);
266
- }
267
-
268
- [data-slot="cell"]:nth-child(1) {
269
- border-top: none;
270
- }
271
- }
272
- }
273
-
274
- [data-component="container"] {
275
- max-width: 67.5rem;
276
- margin: 0 auto;
277
- border: 1px solid var(--color-border-weak);
278
- border-top: none;
279
-
280
- @media (max-width: 65rem) {
281
- border: none;
282
- }
283
- }
284
-
285
- [data-component="content"] {
286
- padding: 6rem 5rem;
287
-
288
- @media (max-width: 60rem) {
289
- padding: 4rem 1.5rem;
290
- }
291
- }
292
-
293
- [data-component="legal"] {
294
- color: var(--color-text-weak);
295
- text-align: center;
296
- padding: 2rem 5rem;
297
- display: flex;
298
- gap: 32px;
299
- justify-content: center;
300
-
301
- @media (max-width: 60rem) {
302
- padding: 2rem 1.5rem;
303
- }
304
-
305
- a {
306
- color: var(--color-text-weak);
307
- text-decoration: none;
308
- }
309
-
310
- a:hover {
311
- color: var(--color-text);
312
- text-decoration: underline;
313
- }
314
- }
315
-
316
- /* Download Hero Section */
317
- [data-component="download-hero"] {
318
- display: grid;
319
- grid-template-columns: 260px 1fr;
320
- gap: 4rem;
321
- padding-bottom: 2rem;
322
- margin-bottom: 4rem;
323
-
324
- @media (max-width: 50rem) {
325
- grid-template-columns: 1fr;
326
- gap: 1.5rem;
327
- padding-bottom: 2rem;
328
- margin-bottom: 2rem;
329
- }
330
-
331
- [data-component="hero-icon"] {
332
- display: flex;
333
- justify-content: flex-end;
334
- align-items: center;
335
-
336
- @media (max-width: 40rem) {
337
- display: none;
338
- }
339
-
340
- [data-slot="icon-placeholder"] {
341
- width: 120px;
342
- height: 120px;
343
- background: var(--color-background-weak);
344
- border: 1px solid var(--color-border-weak);
345
- border-radius: 24px;
346
-
347
- @media (max-width: 50rem) {
348
- width: 80px;
349
- height: 80px;
350
- }
351
- }
352
-
353
- img {
354
- width: 120px;
355
- height: 120px;
356
- border-radius: 24px;
357
- box-shadow:
358
- 0 1.467px 2.847px 0 rgba(0, 0, 0, 0.42),
359
- 0 0.779px 1.512px 0 rgba(0, 0, 0, 0.34),
360
- 0 0.324px 0.629px 0 rgba(0, 0, 0, 0.24);
361
-
362
- @media (max-width: 50rem) {
363
- width: 80px;
364
- height: 80px;
365
- border-radius: 16px;
366
- }
367
- }
368
-
369
- @media (max-width: 50rem) {
370
- justify-content: flex-start;
371
- }
372
- }
373
-
374
- [data-component="hero-text"] {
375
- display: flex;
376
- flex-direction: column;
377
- justify-content: center;
378
-
379
- h1 {
380
- font-size: 1.5rem;
381
- font-weight: 700;
382
- color: var(--color-text-strong);
383
- margin-bottom: 4px;
384
-
385
- @media (max-width: 40rem) {
386
- margin-bottom: 1rem;
387
- }
388
- }
389
-
390
- p {
391
- color: var(--color-text);
392
- margin-bottom: 12px;
393
-
394
- @media (max-width: 40rem) {
395
- margin-bottom: 2.5rem;
396
- line-height: 1.6;
397
- }
398
- }
399
-
400
- [data-component="download-button"] {
401
- padding: 8px 20px 8px 16px;
402
- background: var(--color-background-strong);
403
- color: var(--color-text-inverted);
404
- border: none;
405
- border-radius: 4px;
406
- font-weight: 500;
407
- cursor: pointer;
408
- display: inline-flex;
409
- align-items: center;
410
- gap: 10px;
411
- transition: all 0.2s ease;
412
- text-decoration: none;
413
- width: fit-content;
414
-
415
- &:hover:not(:disabled) {
416
- background: var(--color-background-strong-hover);
417
- }
418
-
419
- &:active {
420
- transform: scale(0.98);
421
- }
422
-
423
- &:disabled {
424
- opacity: 0.6;
425
- cursor: not-allowed;
426
- }
427
- }
428
- }
429
- }
430
-
431
- /* Download Sections */
432
- [data-component="download-section"] {
433
- display: grid;
434
- grid-template-columns: 260px 1fr;
435
- gap: 4rem;
436
- margin-bottom: 4rem;
437
-
438
- @media (max-width: 50rem) {
439
- grid-template-columns: 1fr;
440
- gap: 1rem;
441
- margin-bottom: 3rem;
442
- }
443
-
444
- &:last-child {
445
- margin-bottom: 0;
446
- }
447
-
448
- [data-component="section-label"] {
449
- font-weight: 500;
450
- color: var(--color-text-strong);
451
- padding-top: 1rem;
452
-
453
- span {
454
- color: var(--color-text-weaker);
455
- }
456
-
457
- @media (max-width: 50rem) {
458
- padding-top: 0;
459
- padding-bottom: 0.5rem;
460
- }
461
- }
462
-
463
- [data-component="section-content"] {
464
- display: flex;
465
- flex-direction: column;
466
- gap: 0;
467
- }
468
- }
469
-
470
- /* CLI Rows */
471
- button[data-component="cli-row"] {
472
- display: flex;
473
- align-items: center;
474
- gap: 12px;
475
- padding: 1rem 0.5rem 1rem 1.5rem;
476
- margin: 0 -0.5rem 0 -1.5rem;
477
- background: none;
478
- border: none;
479
- border-radius: 4px;
480
- width: calc(100% + 2rem);
481
- text-align: left;
482
- cursor: pointer;
483
- transition: background 0.15s ease;
484
-
485
- &:hover {
486
- background: var(--color-background-weak);
487
- }
488
-
489
- code {
490
- font-family: var(--font-mono);
491
- color: var(--color-text-weak);
492
-
493
- strong {
494
- color: var(--color-text-strong);
495
- font-weight: 500;
496
- }
497
- }
498
-
499
- [data-component="copy-status"] {
500
- display: flex;
501
- align-items: center;
502
- opacity: 0;
503
- transition: opacity 0.15s ease;
504
- color: var(--color-icon);
505
-
506
- svg {
507
- width: 18px;
508
- height: 18px;
509
- }
510
-
511
- [data-slot="copy"] {
512
- display: block;
513
- }
514
-
515
- [data-slot="check"] {
516
- display: none;
517
- }
518
- }
519
-
520
- &:hover [data-component="copy-status"] {
521
- opacity: 1;
522
- }
523
-
524
- &[data-copied] [data-component="copy-status"] {
525
- opacity: 1;
526
-
527
- [data-slot="copy"] {
528
- display: none;
529
- }
530
-
531
- [data-slot="check"] {
532
- display: block;
533
- }
534
- }
535
- }
536
-
537
- /* Download Rows */
538
- [data-component="download-row"] {
539
- display: flex;
540
- justify-content: space-between;
541
- align-items: center;
542
- padding: 0.75rem 0.5rem 0.75rem 1.5rem;
543
- margin: 0 -0.5rem 0 -1.5rem;
544
- border-radius: 4px;
545
- transition: background 0.15s ease;
546
-
547
- &:hover {
548
- background: var(--color-background-weak);
549
- }
550
-
551
- [data-component="download-info"] {
552
- display: flex;
553
- align-items: center;
554
- gap: 0.75rem;
555
-
556
- [data-slot="icon"] {
557
- width: 20px;
558
- height: 20px;
559
- display: flex;
560
- align-items: center;
561
- justify-content: center;
562
- color: var(--color-icon);
563
-
564
- svg {
565
- width: 20px;
566
- height: 20px;
567
- }
568
-
569
- img {
570
- width: 20px;
571
- height: 20px;
572
- }
573
- }
574
-
575
- span {
576
- color: var(--color-text);
577
- }
578
- }
579
-
580
- [data-component="action-button"] {
581
- padding: 6px 16px;
582
- background: var(--color-background);
583
- color: var(--color-text);
584
- border: 1px solid var(--color-border);
585
- border-radius: 4px;
586
- font-weight: 500;
587
- cursor: pointer;
588
- text-decoration: none;
589
- transition: all 0.2s ease;
590
-
591
- &:hover {
592
- background: var(--color-background-weak);
593
- border-color: var(--color-border);
594
- text-decoration: none;
595
- }
596
-
597
- &:active {
598
- transform: scale(0.98);
599
- }
600
- }
601
- }
602
-
603
- a {
604
- color: var(--color-text-strong);
605
- text-decoration: underline;
606
- text-underline-offset: 2px;
607
- text-decoration-thickness: 1px;
608
-
609
- &:hover {
610
- text-decoration-thickness: 2px;
611
- }
612
- }
613
-
614
- /* Narrow screen font sizes */
615
- @media (max-width: 40rem) {
616
- [data-component="download-section"] {
617
- [data-component="section-label"] {
618
- font-size: 14px;
619
- }
620
- }
621
-
622
- button[data-component="cli-row"] {
623
- margin: 0;
624
- padding: 1rem 0;
625
- width: 100%;
626
- overflow: hidden;
627
-
628
- code {
629
- font-size: 14px;
630
- overflow: hidden;
631
- text-overflow: ellipsis;
632
- white-space: nowrap;
633
- display: block;
634
- max-width: calc(100vw - 80px);
635
- }
636
-
637
- [data-component="copy-status"] {
638
- opacity: 1 !important;
639
- flex-shrink: 0;
640
- }
641
- }
642
-
643
- [data-component="download-row"] {
644
- margin: 0;
645
- padding: 0.75rem 0;
646
-
647
- [data-component="download-info"] span {
648
- font-size: 14px;
649
- }
650
-
651
- [data-component="action-button"] {
652
- font-size: 14px;
653
- padding-left: 8px;
654
- padding-right: 8px;
655
- }
656
- }
657
- }
658
-
659
- @media (max-width: 22.5rem) {
660
- [data-slot="hide-narrow"] {
661
- display: none;
662
- }
663
- }
664
-
665
- /* FAQ Section */
666
- [data-component="faq"] {
667
- border-top: 1px solid var(--color-border-weak);
668
- padding: 4rem 5rem;
669
- margin-top: 4rem;
670
-
671
- @media (max-width: 60rem) {
672
- padding: 3rem 1.5rem;
673
- margin-top: 3rem;
674
- }
675
-
676
- [data-slot="section-title"] {
677
- margin-bottom: 24px;
678
-
679
- h3 {
680
- font-size: 16px;
681
- font-weight: 700;
682
- color: var(--color-text-strong);
683
- margin-bottom: 12px;
684
- }
685
- }
686
-
687
- ul {
688
- padding: 0;
689
-
690
- li {
691
- list-style: none;
692
- margin-bottom: 24px;
693
- line-height: 200%;
694
- }
695
- }
696
-
697
- [data-slot="faq-question"] {
698
- display: flex;
699
- gap: 16px;
700
- margin-bottom: 8px;
701
- color: var(--color-text-strong);
702
- font-weight: 500;
703
- cursor: pointer;
704
- background: none;
705
- border: none;
706
- padding: 0;
707
- align-items: start;
708
- min-height: 24px;
709
-
710
- svg {
711
- margin-top: 2px;
712
- }
713
-
714
- [data-slot="faq-icon-plus"] {
715
- flex-shrink: 0;
716
- color: var(--color-text-weak);
717
- margin-top: 2px;
718
-
719
- [data-closed] & {
720
- display: block;
721
- }
722
- [data-expanded] & {
723
- display: none;
724
- }
725
- }
726
- [data-slot="faq-icon-minus"] {
727
- flex-shrink: 0;
728
- color: var(--color-text-weak);
729
- margin-top: 2px;
730
-
731
- [data-closed] & {
732
- display: none;
733
- }
734
- [data-expanded] & {
735
- display: block;
736
- }
737
- }
738
- [data-slot="faq-question-text"] {
739
- flex-grow: 1;
740
- text-align: left;
741
- }
742
- }
743
-
744
- [data-slot="faq-answer"] {
745
- margin-left: 40px;
746
- margin-bottom: 32px;
747
- line-height: 200%;
748
- }
749
- }
750
- }
1
+ ::selection {
2
+ background: var(--color-background-interactive);
3
+ color: var(--color-text-strong);
4
+
5
+ @media (prefers-color-scheme: dark) {
6
+ background: var(--color-background-interactive);
7
+ color: var(--color-text-inverted);
8
+ }
9
+ }
10
+
11
+ [data-page="download"] {
12
+ --color-background: hsl(0, 20%, 99%);
13
+ --color-background-weak: hsl(0, 8%, 97%);
14
+ --color-background-weak-hover: hsl(0, 8%, 94%);
15
+ --color-background-strong: hsl(0, 5%, 12%);
16
+ --color-background-strong-hover: hsl(0, 5%, 18%);
17
+ --color-background-interactive: hsl(62, 84%, 88%);
18
+ --color-background-interactive-weaker: hsl(64, 74%, 95%);
19
+
20
+ --color-text: hsl(0, 1%, 39%);
21
+ --color-text-weak: hsl(0, 1%, 60%);
22
+ --color-text-weaker: hsl(30, 2%, 81%);
23
+ --color-text-strong: hsl(0, 5%, 12%);
24
+ --color-text-inverted: hsl(0, 20%, 99%);
25
+ --color-text-success: hsl(119, 100%, 35%);
26
+
27
+ --color-border: hsl(30, 2%, 81%);
28
+ --color-border-weak: hsl(0, 1%, 85%);
29
+
30
+ --color-icon: hsl(0, 1%, 55%);
31
+ --color-success: hsl(142, 76%, 36%);
32
+
33
+ background: var(--color-background);
34
+ font-family: var(--font-mono);
35
+ color: var(--color-text);
36
+ padding-bottom: 5rem;
37
+
38
+ @media (prefers-color-scheme: dark) {
39
+ --color-background: hsl(0, 9%, 7%);
40
+ --color-background-weak: hsl(0, 6%, 10%);
41
+ --color-background-weak-hover: hsl(0, 6%, 15%);
42
+ --color-background-strong: hsl(0, 15%, 94%);
43
+ --color-background-strong-hover: hsl(0, 15%, 97%);
44
+ --color-background-interactive: hsl(62, 100%, 90%);
45
+ --color-background-interactive-weaker: hsl(60, 20%, 8%);
46
+
47
+ --color-text: hsl(0, 4%, 71%);
48
+ --color-text-weak: hsl(0, 2%, 49%);
49
+ --color-text-weaker: hsl(0, 3%, 28%);
50
+ --color-text-strong: hsl(0, 15%, 94%);
51
+ --color-text-inverted: hsl(0, 9%, 7%);
52
+ --color-text-success: hsl(119, 60%, 72%);
53
+
54
+ --color-border: hsl(0, 3%, 28%);
55
+ --color-border-weak: hsl(0, 4%, 23%);
56
+
57
+ --color-icon: hsl(10, 3%, 43%);
58
+ --color-success: hsl(142, 76%, 46%);
59
+ }
60
+
61
+ /* Header and Footer styles - copied from enterprise */
62
+ [data-component="top"] {
63
+ padding: 24px 5rem;
64
+ height: 80px;
65
+ position: sticky;
66
+ top: 0;
67
+ display: flex;
68
+ justify-content: space-between;
69
+ align-items: center;
70
+ background: var(--color-background);
71
+ border-bottom: 1px solid var(--color-border-weak);
72
+ z-index: 10;
73
+
74
+ @media (max-width: 60rem) {
75
+ padding: 24px 1.5rem;
76
+ }
77
+
78
+ img {
79
+ height: 34px;
80
+ width: auto;
81
+ }
82
+
83
+ [data-component="nav-desktop"] {
84
+ ul {
85
+ display: flex;
86
+ justify-content: space-between;
87
+ align-items: center;
88
+ gap: 48px;
89
+
90
+ @media (max-width: 55rem) {
91
+ gap: 32px;
92
+ }
93
+
94
+ @media (max-width: 48rem) {
95
+ gap: 24px;
96
+ }
97
+ li {
98
+ display: inline-block;
99
+ a {
100
+ text-decoration: none;
101
+ span {
102
+ color: var(--color-text-weak);
103
+ }
104
+ }
105
+ a:hover {
106
+ text-decoration: underline;
107
+ text-underline-offset: 2px;
108
+ text-decoration-thickness: 1px;
109
+ }
110
+ [data-slot="cta-button"] {
111
+ background: var(--color-background-strong);
112
+ color: var(--color-text-inverted);
113
+ padding: 8px 16px;
114
+ border-radius: 4px;
115
+ font-weight: 500;
116
+ text-decoration: none;
117
+
118
+ @media (max-width: 55rem) {
119
+ display: none;
120
+ }
121
+ }
122
+ [data-slot="cta-button"]:hover {
123
+ background: var(--color-background-strong-hover);
124
+ text-decoration: none;
125
+ }
126
+ }
127
+ }
128
+
129
+ @media (max-width: 40rem) {
130
+ display: none;
131
+ }
132
+ }
133
+
134
+ [data-component="nav-mobile"] {
135
+ button > svg {
136
+ color: var(--color-icon);
137
+ }
138
+ }
139
+
140
+ [data-component="nav-mobile-toggle"] {
141
+ border: none;
142
+ background: none;
143
+ outline: none;
144
+ height: 40px;
145
+ width: 40px;
146
+ cursor: pointer;
147
+ margin-right: -8px;
148
+ }
149
+
150
+ [data-component="nav-mobile-toggle"]:hover {
151
+ background: var(--color-background-weak);
152
+ }
153
+
154
+ [data-component="nav-mobile"] {
155
+ display: none;
156
+
157
+ @media (max-width: 40rem) {
158
+ display: block;
159
+
160
+ [data-component="nav-mobile-icon"] {
161
+ cursor: pointer;
162
+ height: 40px;
163
+ width: 40px;
164
+ display: flex;
165
+ align-items: center;
166
+ justify-content: center;
167
+ }
168
+
169
+ [data-component="nav-mobile-menu-list"] {
170
+ position: fixed;
171
+ background: var(--color-background);
172
+ top: 80px;
173
+ left: 0;
174
+ right: 0;
175
+ height: 100vh;
176
+
177
+ ul {
178
+ list-style: none;
179
+ padding: 20px 0;
180
+
181
+ li {
182
+ a {
183
+ text-decoration: none;
184
+ padding: 20px;
185
+ display: block;
186
+
187
+ span {
188
+ color: var(--color-text-weak);
189
+ }
190
+ }
191
+
192
+ a:hover {
193
+ background: var(--color-background-weak);
194
+ }
195
+ }
196
+ }
197
+ }
198
+ }
199
+ }
200
+
201
+ [data-slot="logo dark"] {
202
+ display: none;
203
+ }
204
+
205
+ @media (prefers-color-scheme: dark) {
206
+ [data-slot="logo light"] {
207
+ display: none;
208
+ }
209
+ [data-slot="logo dark"] {
210
+ display: block;
211
+ }
212
+ }
213
+ }
214
+
215
+ [data-component="footer"] {
216
+ border-top: 1px solid var(--color-border-weak);
217
+ display: flex;
218
+ flex-direction: row;
219
+
220
+ @media (max-width: 65rem) {
221
+ border-bottom: 1px solid var(--color-border-weak);
222
+ }
223
+
224
+ [data-slot="cell"] {
225
+ flex: 1;
226
+ text-align: center;
227
+
228
+ a {
229
+ text-decoration: none;
230
+ padding: 2rem 0;
231
+ width: 100%;
232
+ display: block;
233
+
234
+ span {
235
+ color: var(--color-text-weak);
236
+
237
+ @media (max-width: 40rem) {
238
+ display: none;
239
+ }
240
+ }
241
+ }
242
+
243
+ a:hover {
244
+ background: var(--color-background-weak);
245
+ text-decoration: underline;
246
+ text-underline-offset: 2px;
247
+ text-decoration-thickness: 1px;
248
+ }
249
+ }
250
+
251
+ [data-slot="cell"] + [data-slot="cell"] {
252
+ border-left: 1px solid var(--color-border-weak);
253
+
254
+ @media (max-width: 40rem) {
255
+ border-left: none;
256
+ }
257
+ }
258
+
259
+ @media (max-width: 25rem) {
260
+ flex-wrap: wrap;
261
+
262
+ [data-slot="cell"] {
263
+ flex: 1 0 100%;
264
+ border-left: none;
265
+ border-top: 1px solid var(--color-border-weak);
266
+ }
267
+
268
+ [data-slot="cell"]:nth-child(1) {
269
+ border-top: none;
270
+ }
271
+ }
272
+ }
273
+
274
+ [data-component="container"] {
275
+ max-width: 67.5rem;
276
+ margin: 0 auto;
277
+ border: 1px solid var(--color-border-weak);
278
+ border-top: none;
279
+
280
+ @media (max-width: 65rem) {
281
+ border: none;
282
+ }
283
+ }
284
+
285
+ [data-component="content"] {
286
+ padding: 6rem 5rem;
287
+
288
+ @media (max-width: 60rem) {
289
+ padding: 4rem 1.5rem;
290
+ }
291
+ }
292
+
293
+ [data-component="legal"] {
294
+ color: var(--color-text-weak);
295
+ text-align: center;
296
+ padding: 2rem 5rem;
297
+ display: flex;
298
+ gap: 32px;
299
+ justify-content: center;
300
+
301
+ @media (max-width: 60rem) {
302
+ padding: 2rem 1.5rem;
303
+ }
304
+
305
+ a {
306
+ color: var(--color-text-weak);
307
+ text-decoration: none;
308
+ }
309
+
310
+ a:hover {
311
+ color: var(--color-text);
312
+ text-decoration: underline;
313
+ }
314
+ }
315
+
316
+ /* Download Hero Section */
317
+ [data-component="download-hero"] {
318
+ display: grid;
319
+ grid-template-columns: 260px 1fr;
320
+ gap: 4rem;
321
+ padding-bottom: 2rem;
322
+ margin-bottom: 4rem;
323
+
324
+ @media (max-width: 50rem) {
325
+ grid-template-columns: 1fr;
326
+ gap: 1.5rem;
327
+ padding-bottom: 2rem;
328
+ margin-bottom: 2rem;
329
+ }
330
+
331
+ [data-component="hero-icon"] {
332
+ display: flex;
333
+ justify-content: flex-end;
334
+ align-items: center;
335
+
336
+ @media (max-width: 40rem) {
337
+ display: none;
338
+ }
339
+
340
+ [data-slot="icon-placeholder"] {
341
+ width: 120px;
342
+ height: 120px;
343
+ background: var(--color-background-weak);
344
+ border: 1px solid var(--color-border-weak);
345
+ border-radius: 24px;
346
+
347
+ @media (max-width: 50rem) {
348
+ width: 80px;
349
+ height: 80px;
350
+ }
351
+ }
352
+
353
+ img {
354
+ width: 120px;
355
+ height: 120px;
356
+ border-radius: 24px;
357
+ box-shadow:
358
+ 0 1.467px 2.847px 0 rgba(0, 0, 0, 0.42),
359
+ 0 0.779px 1.512px 0 rgba(0, 0, 0, 0.34),
360
+ 0 0.324px 0.629px 0 rgba(0, 0, 0, 0.24);
361
+
362
+ @media (max-width: 50rem) {
363
+ width: 80px;
364
+ height: 80px;
365
+ border-radius: 16px;
366
+ }
367
+ }
368
+
369
+ @media (max-width: 50rem) {
370
+ justify-content: flex-start;
371
+ }
372
+ }
373
+
374
+ [data-component="hero-text"] {
375
+ display: flex;
376
+ flex-direction: column;
377
+ justify-content: center;
378
+
379
+ h1 {
380
+ font-size: 1.5rem;
381
+ font-weight: 700;
382
+ color: var(--color-text-strong);
383
+ margin-bottom: 4px;
384
+
385
+ @media (max-width: 40rem) {
386
+ margin-bottom: 1rem;
387
+ }
388
+ }
389
+
390
+ p {
391
+ color: var(--color-text);
392
+ margin-bottom: 12px;
393
+
394
+ @media (max-width: 40rem) {
395
+ margin-bottom: 2.5rem;
396
+ line-height: 1.6;
397
+ }
398
+ }
399
+
400
+ [data-component="download-button"] {
401
+ padding: 8px 20px 8px 16px;
402
+ background: var(--color-background-strong);
403
+ color: var(--color-text-inverted);
404
+ border: none;
405
+ border-radius: 4px;
406
+ font-weight: 500;
407
+ cursor: pointer;
408
+ display: inline-flex;
409
+ align-items: center;
410
+ gap: 10px;
411
+ transition: all 0.2s ease;
412
+ text-decoration: none;
413
+ width: fit-content;
414
+
415
+ &:hover:not(:disabled) {
416
+ background: var(--color-background-strong-hover);
417
+ }
418
+
419
+ &:active {
420
+ transform: scale(0.98);
421
+ }
422
+
423
+ &:disabled {
424
+ opacity: 0.6;
425
+ cursor: not-allowed;
426
+ }
427
+ }
428
+ }
429
+ }
430
+
431
+ /* Download Sections */
432
+ [data-component="download-section"] {
433
+ display: grid;
434
+ grid-template-columns: 260px 1fr;
435
+ gap: 4rem;
436
+ margin-bottom: 4rem;
437
+
438
+ @media (max-width: 50rem) {
439
+ grid-template-columns: 1fr;
440
+ gap: 1rem;
441
+ margin-bottom: 3rem;
442
+ }
443
+
444
+ &:last-child {
445
+ margin-bottom: 0;
446
+ }
447
+
448
+ [data-component="section-label"] {
449
+ font-weight: 500;
450
+ color: var(--color-text-strong);
451
+ padding-top: 1rem;
452
+
453
+ span {
454
+ color: var(--color-text-weaker);
455
+ }
456
+
457
+ @media (max-width: 50rem) {
458
+ padding-top: 0;
459
+ padding-bottom: 0.5rem;
460
+ }
461
+ }
462
+
463
+ [data-component="section-content"] {
464
+ display: flex;
465
+ flex-direction: column;
466
+ gap: 0;
467
+ }
468
+ }
469
+
470
+ /* CLI Rows */
471
+ button[data-component="cli-row"] {
472
+ display: flex;
473
+ align-items: center;
474
+ gap: 12px;
475
+ padding: 1rem 0.5rem 1rem 1.5rem;
476
+ margin: 0 -0.5rem 0 -1.5rem;
477
+ background: none;
478
+ border: none;
479
+ border-radius: 4px;
480
+ width: calc(100% + 2rem);
481
+ text-align: left;
482
+ cursor: pointer;
483
+ transition: background 0.15s ease;
484
+
485
+ &:hover {
486
+ background: var(--color-background-weak);
487
+ }
488
+
489
+ code {
490
+ font-family: var(--font-mono);
491
+ color: var(--color-text-weak);
492
+
493
+ strong {
494
+ color: var(--color-text-strong);
495
+ font-weight: 500;
496
+ }
497
+ }
498
+
499
+ [data-component="copy-status"] {
500
+ display: flex;
501
+ align-items: center;
502
+ opacity: 0;
503
+ transition: opacity 0.15s ease;
504
+ color: var(--color-icon);
505
+
506
+ svg {
507
+ width: 18px;
508
+ height: 18px;
509
+ }
510
+
511
+ [data-slot="copy"] {
512
+ display: block;
513
+ }
514
+
515
+ [data-slot="check"] {
516
+ display: none;
517
+ }
518
+ }
519
+
520
+ &:hover [data-component="copy-status"] {
521
+ opacity: 1;
522
+ }
523
+
524
+ &[data-copied] [data-component="copy-status"] {
525
+ opacity: 1;
526
+
527
+ [data-slot="copy"] {
528
+ display: none;
529
+ }
530
+
531
+ [data-slot="check"] {
532
+ display: block;
533
+ }
534
+ }
535
+ }
536
+
537
+ /* Download Rows */
538
+ [data-component="download-row"] {
539
+ display: flex;
540
+ justify-content: space-between;
541
+ align-items: center;
542
+ padding: 0.75rem 0.5rem 0.75rem 1.5rem;
543
+ margin: 0 -0.5rem 0 -1.5rem;
544
+ border-radius: 4px;
545
+ transition: background 0.15s ease;
546
+
547
+ &:hover {
548
+ background: var(--color-background-weak);
549
+ }
550
+
551
+ [data-component="download-info"] {
552
+ display: flex;
553
+ align-items: center;
554
+ gap: 0.75rem;
555
+
556
+ [data-slot="icon"] {
557
+ width: 20px;
558
+ height: 20px;
559
+ display: flex;
560
+ align-items: center;
561
+ justify-content: center;
562
+ color: var(--color-icon);
563
+
564
+ svg {
565
+ width: 20px;
566
+ height: 20px;
567
+ }
568
+
569
+ img {
570
+ width: 20px;
571
+ height: 20px;
572
+ }
573
+ }
574
+
575
+ span {
576
+ color: var(--color-text);
577
+ }
578
+ }
579
+
580
+ [data-component="action-button"] {
581
+ padding: 6px 16px;
582
+ background: var(--color-background);
583
+ color: var(--color-text);
584
+ border: 1px solid var(--color-border);
585
+ border-radius: 4px;
586
+ font-weight: 500;
587
+ cursor: pointer;
588
+ text-decoration: none;
589
+ transition: all 0.2s ease;
590
+
591
+ &:hover {
592
+ background: var(--color-background-weak);
593
+ border-color: var(--color-border);
594
+ text-decoration: none;
595
+ }
596
+
597
+ &:active {
598
+ transform: scale(0.98);
599
+ }
600
+ }
601
+ }
602
+
603
+ a {
604
+ color: var(--color-text-strong);
605
+ text-decoration: underline;
606
+ text-underline-offset: 2px;
607
+ text-decoration-thickness: 1px;
608
+
609
+ &:hover {
610
+ text-decoration-thickness: 2px;
611
+ }
612
+ }
613
+
614
+ /* Narrow screen font sizes */
615
+ @media (max-width: 40rem) {
616
+ [data-component="download-section"] {
617
+ [data-component="section-label"] {
618
+ font-size: 14px;
619
+ }
620
+ }
621
+
622
+ button[data-component="cli-row"] {
623
+ margin: 0;
624
+ padding: 1rem 0;
625
+ width: 100%;
626
+ overflow: hidden;
627
+
628
+ code {
629
+ font-size: 14px;
630
+ overflow: hidden;
631
+ text-overflow: ellipsis;
632
+ white-space: nowrap;
633
+ display: block;
634
+ max-width: calc(100vw - 80px);
635
+ }
636
+
637
+ [data-component="copy-status"] {
638
+ opacity: 1 !important;
639
+ flex-shrink: 0;
640
+ }
641
+ }
642
+
643
+ [data-component="download-row"] {
644
+ margin: 0;
645
+ padding: 0.75rem 0;
646
+
647
+ [data-component="download-info"] span {
648
+ font-size: 14px;
649
+ }
650
+
651
+ [data-component="action-button"] {
652
+ font-size: 14px;
653
+ padding-left: 8px;
654
+ padding-right: 8px;
655
+ }
656
+ }
657
+ }
658
+
659
+ @media (max-width: 22.5rem) {
660
+ [data-slot="hide-narrow"] {
661
+ display: none;
662
+ }
663
+ }
664
+
665
+ /* FAQ Section */
666
+ [data-component="faq"] {
667
+ border-top: 1px solid var(--color-border-weak);
668
+ padding: 4rem 5rem;
669
+ margin-top: 4rem;
670
+
671
+ @media (max-width: 60rem) {
672
+ padding: 3rem 1.5rem;
673
+ margin-top: 3rem;
674
+ }
675
+
676
+ [data-slot="section-title"] {
677
+ margin-bottom: 24px;
678
+
679
+ h3 {
680
+ font-size: 16px;
681
+ font-weight: 700;
682
+ color: var(--color-text-strong);
683
+ margin-bottom: 12px;
684
+ }
685
+ }
686
+
687
+ ul {
688
+ padding: 0;
689
+
690
+ li {
691
+ list-style: none;
692
+ margin-bottom: 24px;
693
+ line-height: 200%;
694
+ }
695
+ }
696
+
697
+ [data-slot="faq-question"] {
698
+ display: flex;
699
+ gap: 16px;
700
+ margin-bottom: 8px;
701
+ color: var(--color-text-strong);
702
+ font-weight: 500;
703
+ cursor: pointer;
704
+ background: none;
705
+ border: none;
706
+ padding: 0;
707
+ align-items: start;
708
+ min-height: 24px;
709
+
710
+ svg {
711
+ margin-top: 2px;
712
+ }
713
+
714
+ [data-slot="faq-icon-plus"] {
715
+ flex-shrink: 0;
716
+ color: var(--color-text-weak);
717
+ margin-top: 2px;
718
+
719
+ [data-closed] & {
720
+ display: block;
721
+ }
722
+ [data-expanded] & {
723
+ display: none;
724
+ }
725
+ }
726
+ [data-slot="faq-icon-minus"] {
727
+ flex-shrink: 0;
728
+ color: var(--color-text-weak);
729
+ margin-top: 2px;
730
+
731
+ [data-closed] & {
732
+ display: none;
733
+ }
734
+ [data-expanded] & {
735
+ display: block;
736
+ }
737
+ }
738
+ [data-slot="faq-question-text"] {
739
+ flex-grow: 1;
740
+ text-align: left;
741
+ }
742
+ }
743
+
744
+ [data-slot="faq-answer"] {
745
+ margin-left: 40px;
746
+ margin-bottom: 32px;
747
+ line-height: 200%;
748
+ }
749
+ }
750
+ }