@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,477 +1,477 @@
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="changelog"] {
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
-
26
- --color-border: hsl(30, 2%, 81%);
27
- --color-border-weak: hsl(0, 1%, 85%);
28
-
29
- --color-icon: hsl(0, 1%, 55%);
30
-
31
- background: var(--color-background);
32
- font-family: var(--font-mono);
33
- color: var(--color-text);
34
- padding-bottom: 5rem;
35
-
36
- @media (prefers-color-scheme: dark) {
37
- --color-background: hsl(0, 9%, 7%);
38
- --color-background-weak: hsl(0, 6%, 10%);
39
- --color-background-weak-hover: hsl(0, 6%, 15%);
40
- --color-background-strong: hsl(0, 15%, 94%);
41
- --color-background-strong-hover: hsl(0, 15%, 97%);
42
- --color-background-interactive: hsl(62, 100%, 90%);
43
- --color-background-interactive-weaker: hsl(60, 20%, 8%);
44
-
45
- --color-text: hsl(0, 4%, 71%);
46
- --color-text-weak: hsl(0, 2%, 49%);
47
- --color-text-weaker: hsl(0, 3%, 28%);
48
- --color-text-strong: hsl(0, 15%, 94%);
49
- --color-text-inverted: hsl(0, 9%, 7%);
50
-
51
- --color-border: hsl(0, 3%, 28%);
52
- --color-border-weak: hsl(0, 4%, 23%);
53
-
54
- --color-icon: hsl(10, 3%, 43%);
55
- }
56
-
57
- /* Header styles - copied from download */
58
- [data-component="top"] {
59
- padding: 24px 5rem;
60
- height: 80px;
61
- position: sticky;
62
- top: 0;
63
- display: flex;
64
- justify-content: space-between;
65
- align-items: center;
66
- background: var(--color-background);
67
- border-bottom: 1px solid var(--color-border-weak);
68
- z-index: 10;
69
-
70
- @media (max-width: 60rem) {
71
- padding: 24px 1.5rem;
72
- }
73
-
74
- img {
75
- height: 34px;
76
- width: auto;
77
- }
78
-
79
- [data-component="nav-desktop"] {
80
- ul {
81
- display: flex;
82
- justify-content: space-between;
83
- align-items: center;
84
- gap: 48px;
85
-
86
- @media (max-width: 55rem) {
87
- gap: 32px;
88
- }
89
-
90
- @media (max-width: 48rem) {
91
- gap: 24px;
92
- }
93
- li {
94
- display: inline-block;
95
- a {
96
- text-decoration: none;
97
- span {
98
- color: var(--color-text-weak);
99
- }
100
- }
101
- a:hover {
102
- text-decoration: underline;
103
- text-underline-offset: 2px;
104
- text-decoration-thickness: 1px;
105
- }
106
- [data-slot="cta-button"] {
107
- background: var(--color-background-strong);
108
- color: var(--color-text-inverted);
109
- padding: 8px 16px;
110
- border-radius: 4px;
111
- font-weight: 500;
112
- text-decoration: none;
113
-
114
- @media (max-width: 55rem) {
115
- display: none;
116
- }
117
- }
118
- [data-slot="cta-button"]:hover {
119
- background: var(--color-background-strong-hover);
120
- text-decoration: none;
121
- }
122
- }
123
- }
124
-
125
- @media (max-width: 40rem) {
126
- display: none;
127
- }
128
- }
129
-
130
- [data-component="nav-mobile"] {
131
- button > svg {
132
- color: var(--color-icon);
133
- }
134
- }
135
-
136
- [data-component="nav-mobile-toggle"] {
137
- border: none;
138
- background: none;
139
- outline: none;
140
- height: 40px;
141
- width: 40px;
142
- cursor: pointer;
143
- margin-right: -8px;
144
- }
145
-
146
- [data-component="nav-mobile-toggle"]:hover {
147
- background: var(--color-background-weak);
148
- }
149
-
150
- [data-component="nav-mobile"] {
151
- display: none;
152
-
153
- @media (max-width: 40rem) {
154
- display: block;
155
-
156
- [data-component="nav-mobile-icon"] {
157
- cursor: pointer;
158
- height: 40px;
159
- width: 40px;
160
- display: flex;
161
- align-items: center;
162
- justify-content: center;
163
- }
164
-
165
- [data-component="nav-mobile-menu-list"] {
166
- position: fixed;
167
- background: var(--color-background);
168
- top: 80px;
169
- left: 0;
170
- right: 0;
171
- height: 100vh;
172
-
173
- ul {
174
- list-style: none;
175
- padding: 20px 0;
176
-
177
- li {
178
- a {
179
- text-decoration: none;
180
- padding: 20px;
181
- display: block;
182
-
183
- span {
184
- color: var(--color-text-weak);
185
- }
186
- }
187
-
188
- a:hover {
189
- background: var(--color-background-weak);
190
- }
191
- }
192
- }
193
- }
194
- }
195
- }
196
-
197
- [data-slot="logo dark"] {
198
- display: none;
199
- }
200
-
201
- @media (prefers-color-scheme: dark) {
202
- [data-slot="logo light"] {
203
- display: none;
204
- }
205
- [data-slot="logo dark"] {
206
- display: block;
207
- }
208
- }
209
- }
210
-
211
- [data-component="footer"] {
212
- border-top: 1px solid var(--color-border-weak);
213
- display: flex;
214
- flex-direction: row;
215
- margin-top: 4rem;
216
-
217
- @media (max-width: 65rem) {
218
- border-bottom: 1px solid var(--color-border-weak);
219
- }
220
-
221
- [data-slot="cell"] {
222
- flex: 1;
223
- text-align: center;
224
-
225
- a {
226
- text-decoration: none;
227
- padding: 2rem 0;
228
- width: 100%;
229
- display: block;
230
-
231
- span {
232
- color: var(--color-text-weak);
233
-
234
- @media (max-width: 40rem) {
235
- display: none;
236
- }
237
- }
238
- }
239
-
240
- a:hover {
241
- background: var(--color-background-weak);
242
- text-decoration: underline;
243
- text-underline-offset: 2px;
244
- text-decoration-thickness: 1px;
245
- }
246
- }
247
-
248
- [data-slot="cell"] + [data-slot="cell"] {
249
- border-left: 1px solid var(--color-border-weak);
250
-
251
- @media (max-width: 40rem) {
252
- border-left: none;
253
- }
254
- }
255
-
256
- @media (max-width: 25rem) {
257
- flex-wrap: wrap;
258
-
259
- [data-slot="cell"] {
260
- flex: 1 0 100%;
261
- border-left: none;
262
- border-top: 1px solid var(--color-border-weak);
263
- }
264
-
265
- [data-slot="cell"]:nth-child(1) {
266
- border-top: none;
267
- }
268
- }
269
- }
270
-
271
- [data-component="container"] {
272
- max-width: 67.5rem;
273
- margin: 0 auto;
274
- border: 1px solid var(--color-border-weak);
275
- border-top: none;
276
-
277
- @media (max-width: 65rem) {
278
- border: none;
279
- }
280
- }
281
-
282
- [data-component="content"] {
283
- padding: 6rem 5rem;
284
-
285
- @media (max-width: 60rem) {
286
- padding: 4rem 1.5rem;
287
- }
288
- }
289
-
290
- [data-component="legal"] {
291
- color: var(--color-text-weak);
292
- text-align: center;
293
- padding: 2rem 5rem;
294
- display: flex;
295
- gap: 32px;
296
- justify-content: center;
297
-
298
- @media (max-width: 60rem) {
299
- padding: 2rem 1.5rem;
300
- }
301
-
302
- a {
303
- color: var(--color-text-weak);
304
- text-decoration: none;
305
- }
306
-
307
- a:hover {
308
- color: var(--color-text);
309
- text-decoration: underline;
310
- }
311
- }
312
-
313
- /* Changelog Hero */
314
- [data-component="changelog-hero"] {
315
- margin-bottom: 4rem;
316
- padding-bottom: 2rem;
317
- border-bottom: 1px solid var(--color-border-weak);
318
-
319
- @media (max-width: 50rem) {
320
- margin-bottom: 2rem;
321
- padding-bottom: 1.5rem;
322
- }
323
-
324
- h1 {
325
- font-size: 1.5rem;
326
- font-weight: 700;
327
- color: var(--color-text-strong);
328
- margin-bottom: 8px;
329
- }
330
-
331
- p {
332
- color: var(--color-text);
333
- }
334
- }
335
-
336
- /* Releases */
337
- [data-component="releases"] {
338
- display: flex;
339
- flex-direction: column;
340
- gap: 0;
341
- }
342
-
343
- [data-component="release"] {
344
- display: grid;
345
- grid-template-columns: 180px 1fr;
346
- gap: 3rem;
347
- padding: 2rem 0;
348
- border-bottom: 1px solid var(--color-border-weak);
349
-
350
- @media (max-width: 50rem) {
351
- grid-template-columns: 1fr;
352
- gap: 1rem;
353
- }
354
-
355
- &:first-child {
356
- padding-top: 0;
357
- }
358
-
359
- &:last-child {
360
- border-bottom: none;
361
- }
362
-
363
- header {
364
- display: flex;
365
- flex-direction: column;
366
- gap: 4px;
367
-
368
- @media (max-width: 50rem) {
369
- flex-direction: row;
370
- align-items: center;
371
- gap: 12px;
372
- }
373
-
374
- [data-slot="version"] {
375
- a {
376
- font-weight: 600;
377
- color: var(--color-text-strong);
378
- text-decoration: none;
379
-
380
- &:hover {
381
- text-decoration: underline;
382
- text-underline-offset: 2px;
383
- text-decoration-thickness: 1px;
384
- }
385
- }
386
- }
387
-
388
- time {
389
- color: var(--color-text-weak);
390
- font-size: 14px;
391
- }
392
- }
393
-
394
- [data-slot="content"] {
395
- display: flex;
396
- flex-direction: column;
397
- gap: 1.5rem;
398
- }
399
-
400
- [data-component="section"] {
401
- h3 {
402
- font-size: 14px;
403
- font-weight: 600;
404
- color: var(--color-text-strong);
405
- margin-bottom: 8px;
406
- }
407
-
408
- ul {
409
- list-style: none;
410
- padding: 0;
411
- margin: 0;
412
- display: flex;
413
- flex-direction: column;
414
- gap: 6px;
415
-
416
- li {
417
- color: var(--color-text);
418
- line-height: 1.5;
419
- padding-left: 16px;
420
- position: relative;
421
-
422
- &::before {
423
- content: "-";
424
- position: absolute;
425
- left: 0;
426
- color: var(--color-text-weak);
427
- }
428
-
429
- [data-slot="author"] {
430
- color: var(--color-text-weak);
431
- font-size: 13px;
432
- margin-left: 4px;
433
- text-decoration: none;
434
-
435
- &:hover {
436
- text-decoration: underline;
437
- text-underline-offset: 2px;
438
- text-decoration-thickness: 1px;
439
- }
440
- }
441
- }
442
- }
443
- }
444
-
445
- [data-component="contributors"] {
446
- font-size: 13px;
447
- color: var(--color-text-weak);
448
- padding-top: 0.5rem;
449
-
450
- span {
451
- color: var(--color-text-weak);
452
- }
453
-
454
- a {
455
- color: var(--color-text);
456
- text-decoration: none;
457
-
458
- &:hover {
459
- text-decoration: underline;
460
- text-underline-offset: 2px;
461
- text-decoration-thickness: 1px;
462
- }
463
- }
464
- }
465
- }
466
-
467
- a {
468
- color: var(--color-text-strong);
469
- text-decoration: underline;
470
- text-underline-offset: 2px;
471
- text-decoration-thickness: 1px;
472
-
473
- &:hover {
474
- text-decoration-thickness: 2px;
475
- }
476
- }
477
- }
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="changelog"] {
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
+
26
+ --color-border: hsl(30, 2%, 81%);
27
+ --color-border-weak: hsl(0, 1%, 85%);
28
+
29
+ --color-icon: hsl(0, 1%, 55%);
30
+
31
+ background: var(--color-background);
32
+ font-family: var(--font-mono);
33
+ color: var(--color-text);
34
+ padding-bottom: 5rem;
35
+
36
+ @media (prefers-color-scheme: dark) {
37
+ --color-background: hsl(0, 9%, 7%);
38
+ --color-background-weak: hsl(0, 6%, 10%);
39
+ --color-background-weak-hover: hsl(0, 6%, 15%);
40
+ --color-background-strong: hsl(0, 15%, 94%);
41
+ --color-background-strong-hover: hsl(0, 15%, 97%);
42
+ --color-background-interactive: hsl(62, 100%, 90%);
43
+ --color-background-interactive-weaker: hsl(60, 20%, 8%);
44
+
45
+ --color-text: hsl(0, 4%, 71%);
46
+ --color-text-weak: hsl(0, 2%, 49%);
47
+ --color-text-weaker: hsl(0, 3%, 28%);
48
+ --color-text-strong: hsl(0, 15%, 94%);
49
+ --color-text-inverted: hsl(0, 9%, 7%);
50
+
51
+ --color-border: hsl(0, 3%, 28%);
52
+ --color-border-weak: hsl(0, 4%, 23%);
53
+
54
+ --color-icon: hsl(10, 3%, 43%);
55
+ }
56
+
57
+ /* Header styles - copied from download */
58
+ [data-component="top"] {
59
+ padding: 24px 5rem;
60
+ height: 80px;
61
+ position: sticky;
62
+ top: 0;
63
+ display: flex;
64
+ justify-content: space-between;
65
+ align-items: center;
66
+ background: var(--color-background);
67
+ border-bottom: 1px solid var(--color-border-weak);
68
+ z-index: 10;
69
+
70
+ @media (max-width: 60rem) {
71
+ padding: 24px 1.5rem;
72
+ }
73
+
74
+ img {
75
+ height: 34px;
76
+ width: auto;
77
+ }
78
+
79
+ [data-component="nav-desktop"] {
80
+ ul {
81
+ display: flex;
82
+ justify-content: space-between;
83
+ align-items: center;
84
+ gap: 48px;
85
+
86
+ @media (max-width: 55rem) {
87
+ gap: 32px;
88
+ }
89
+
90
+ @media (max-width: 48rem) {
91
+ gap: 24px;
92
+ }
93
+ li {
94
+ display: inline-block;
95
+ a {
96
+ text-decoration: none;
97
+ span {
98
+ color: var(--color-text-weak);
99
+ }
100
+ }
101
+ a:hover {
102
+ text-decoration: underline;
103
+ text-underline-offset: 2px;
104
+ text-decoration-thickness: 1px;
105
+ }
106
+ [data-slot="cta-button"] {
107
+ background: var(--color-background-strong);
108
+ color: var(--color-text-inverted);
109
+ padding: 8px 16px;
110
+ border-radius: 4px;
111
+ font-weight: 500;
112
+ text-decoration: none;
113
+
114
+ @media (max-width: 55rem) {
115
+ display: none;
116
+ }
117
+ }
118
+ [data-slot="cta-button"]:hover {
119
+ background: var(--color-background-strong-hover);
120
+ text-decoration: none;
121
+ }
122
+ }
123
+ }
124
+
125
+ @media (max-width: 40rem) {
126
+ display: none;
127
+ }
128
+ }
129
+
130
+ [data-component="nav-mobile"] {
131
+ button > svg {
132
+ color: var(--color-icon);
133
+ }
134
+ }
135
+
136
+ [data-component="nav-mobile-toggle"] {
137
+ border: none;
138
+ background: none;
139
+ outline: none;
140
+ height: 40px;
141
+ width: 40px;
142
+ cursor: pointer;
143
+ margin-right: -8px;
144
+ }
145
+
146
+ [data-component="nav-mobile-toggle"]:hover {
147
+ background: var(--color-background-weak);
148
+ }
149
+
150
+ [data-component="nav-mobile"] {
151
+ display: none;
152
+
153
+ @media (max-width: 40rem) {
154
+ display: block;
155
+
156
+ [data-component="nav-mobile-icon"] {
157
+ cursor: pointer;
158
+ height: 40px;
159
+ width: 40px;
160
+ display: flex;
161
+ align-items: center;
162
+ justify-content: center;
163
+ }
164
+
165
+ [data-component="nav-mobile-menu-list"] {
166
+ position: fixed;
167
+ background: var(--color-background);
168
+ top: 80px;
169
+ left: 0;
170
+ right: 0;
171
+ height: 100vh;
172
+
173
+ ul {
174
+ list-style: none;
175
+ padding: 20px 0;
176
+
177
+ li {
178
+ a {
179
+ text-decoration: none;
180
+ padding: 20px;
181
+ display: block;
182
+
183
+ span {
184
+ color: var(--color-text-weak);
185
+ }
186
+ }
187
+
188
+ a:hover {
189
+ background: var(--color-background-weak);
190
+ }
191
+ }
192
+ }
193
+ }
194
+ }
195
+ }
196
+
197
+ [data-slot="logo dark"] {
198
+ display: none;
199
+ }
200
+
201
+ @media (prefers-color-scheme: dark) {
202
+ [data-slot="logo light"] {
203
+ display: none;
204
+ }
205
+ [data-slot="logo dark"] {
206
+ display: block;
207
+ }
208
+ }
209
+ }
210
+
211
+ [data-component="footer"] {
212
+ border-top: 1px solid var(--color-border-weak);
213
+ display: flex;
214
+ flex-direction: row;
215
+ margin-top: 4rem;
216
+
217
+ @media (max-width: 65rem) {
218
+ border-bottom: 1px solid var(--color-border-weak);
219
+ }
220
+
221
+ [data-slot="cell"] {
222
+ flex: 1;
223
+ text-align: center;
224
+
225
+ a {
226
+ text-decoration: none;
227
+ padding: 2rem 0;
228
+ width: 100%;
229
+ display: block;
230
+
231
+ span {
232
+ color: var(--color-text-weak);
233
+
234
+ @media (max-width: 40rem) {
235
+ display: none;
236
+ }
237
+ }
238
+ }
239
+
240
+ a:hover {
241
+ background: var(--color-background-weak);
242
+ text-decoration: underline;
243
+ text-underline-offset: 2px;
244
+ text-decoration-thickness: 1px;
245
+ }
246
+ }
247
+
248
+ [data-slot="cell"] + [data-slot="cell"] {
249
+ border-left: 1px solid var(--color-border-weak);
250
+
251
+ @media (max-width: 40rem) {
252
+ border-left: none;
253
+ }
254
+ }
255
+
256
+ @media (max-width: 25rem) {
257
+ flex-wrap: wrap;
258
+
259
+ [data-slot="cell"] {
260
+ flex: 1 0 100%;
261
+ border-left: none;
262
+ border-top: 1px solid var(--color-border-weak);
263
+ }
264
+
265
+ [data-slot="cell"]:nth-child(1) {
266
+ border-top: none;
267
+ }
268
+ }
269
+ }
270
+
271
+ [data-component="container"] {
272
+ max-width: 67.5rem;
273
+ margin: 0 auto;
274
+ border: 1px solid var(--color-border-weak);
275
+ border-top: none;
276
+
277
+ @media (max-width: 65rem) {
278
+ border: none;
279
+ }
280
+ }
281
+
282
+ [data-component="content"] {
283
+ padding: 6rem 5rem;
284
+
285
+ @media (max-width: 60rem) {
286
+ padding: 4rem 1.5rem;
287
+ }
288
+ }
289
+
290
+ [data-component="legal"] {
291
+ color: var(--color-text-weak);
292
+ text-align: center;
293
+ padding: 2rem 5rem;
294
+ display: flex;
295
+ gap: 32px;
296
+ justify-content: center;
297
+
298
+ @media (max-width: 60rem) {
299
+ padding: 2rem 1.5rem;
300
+ }
301
+
302
+ a {
303
+ color: var(--color-text-weak);
304
+ text-decoration: none;
305
+ }
306
+
307
+ a:hover {
308
+ color: var(--color-text);
309
+ text-decoration: underline;
310
+ }
311
+ }
312
+
313
+ /* Changelog Hero */
314
+ [data-component="changelog-hero"] {
315
+ margin-bottom: 4rem;
316
+ padding-bottom: 2rem;
317
+ border-bottom: 1px solid var(--color-border-weak);
318
+
319
+ @media (max-width: 50rem) {
320
+ margin-bottom: 2rem;
321
+ padding-bottom: 1.5rem;
322
+ }
323
+
324
+ h1 {
325
+ font-size: 1.5rem;
326
+ font-weight: 700;
327
+ color: var(--color-text-strong);
328
+ margin-bottom: 8px;
329
+ }
330
+
331
+ p {
332
+ color: var(--color-text);
333
+ }
334
+ }
335
+
336
+ /* Releases */
337
+ [data-component="releases"] {
338
+ display: flex;
339
+ flex-direction: column;
340
+ gap: 0;
341
+ }
342
+
343
+ [data-component="release"] {
344
+ display: grid;
345
+ grid-template-columns: 180px 1fr;
346
+ gap: 3rem;
347
+ padding: 2rem 0;
348
+ border-bottom: 1px solid var(--color-border-weak);
349
+
350
+ @media (max-width: 50rem) {
351
+ grid-template-columns: 1fr;
352
+ gap: 1rem;
353
+ }
354
+
355
+ &:first-child {
356
+ padding-top: 0;
357
+ }
358
+
359
+ &:last-child {
360
+ border-bottom: none;
361
+ }
362
+
363
+ header {
364
+ display: flex;
365
+ flex-direction: column;
366
+ gap: 4px;
367
+
368
+ @media (max-width: 50rem) {
369
+ flex-direction: row;
370
+ align-items: center;
371
+ gap: 12px;
372
+ }
373
+
374
+ [data-slot="version"] {
375
+ a {
376
+ font-weight: 600;
377
+ color: var(--color-text-strong);
378
+ text-decoration: none;
379
+
380
+ &:hover {
381
+ text-decoration: underline;
382
+ text-underline-offset: 2px;
383
+ text-decoration-thickness: 1px;
384
+ }
385
+ }
386
+ }
387
+
388
+ time {
389
+ color: var(--color-text-weak);
390
+ font-size: 14px;
391
+ }
392
+ }
393
+
394
+ [data-slot="content"] {
395
+ display: flex;
396
+ flex-direction: column;
397
+ gap: 1.5rem;
398
+ }
399
+
400
+ [data-component="section"] {
401
+ h3 {
402
+ font-size: 14px;
403
+ font-weight: 600;
404
+ color: var(--color-text-strong);
405
+ margin-bottom: 8px;
406
+ }
407
+
408
+ ul {
409
+ list-style: none;
410
+ padding: 0;
411
+ margin: 0;
412
+ display: flex;
413
+ flex-direction: column;
414
+ gap: 6px;
415
+
416
+ li {
417
+ color: var(--color-text);
418
+ line-height: 1.5;
419
+ padding-left: 16px;
420
+ position: relative;
421
+
422
+ &::before {
423
+ content: "-";
424
+ position: absolute;
425
+ left: 0;
426
+ color: var(--color-text-weak);
427
+ }
428
+
429
+ [data-slot="author"] {
430
+ color: var(--color-text-weak);
431
+ font-size: 13px;
432
+ margin-left: 4px;
433
+ text-decoration: none;
434
+
435
+ &:hover {
436
+ text-decoration: underline;
437
+ text-underline-offset: 2px;
438
+ text-decoration-thickness: 1px;
439
+ }
440
+ }
441
+ }
442
+ }
443
+ }
444
+
445
+ [data-component="contributors"] {
446
+ font-size: 13px;
447
+ color: var(--color-text-weak);
448
+ padding-top: 0.5rem;
449
+
450
+ span {
451
+ color: var(--color-text-weak);
452
+ }
453
+
454
+ a {
455
+ color: var(--color-text);
456
+ text-decoration: none;
457
+
458
+ &:hover {
459
+ text-decoration: underline;
460
+ text-underline-offset: 2px;
461
+ text-decoration-thickness: 1px;
462
+ }
463
+ }
464
+ }
465
+ }
466
+
467
+ a {
468
+ color: var(--color-text-strong);
469
+ text-decoration: underline;
470
+ text-underline-offset: 2px;
471
+ text-decoration-thickness: 1px;
472
+
473
+ &:hover {
474
+ text-decoration-thickness: 2px;
475
+ }
476
+ }
477
+ }