@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,173 +1,173 @@
1
- [data-slot="models-list"] {
2
- display: flex;
3
- flex-direction: column;
4
- }
5
-
6
- [data-slot="models-table"] {
7
- overflow-x: auto;
8
- }
9
-
10
- [data-slot="models-table-element"] {
11
- width: 100%;
12
- border-collapse: collapse;
13
- font-size: var(--font-size-sm);
14
-
15
- thead {
16
- border-bottom: 1px solid var(--color-border);
17
- }
18
-
19
- th {
20
- padding: var(--space-3) var(--space-4);
21
- text-align: left;
22
- font-weight: normal;
23
- color: var(--color-text-muted);
24
- text-transform: uppercase;
25
- }
26
-
27
- td {
28
- padding: var(--space-3) var(--space-4);
29
- border-bottom: 1px solid var(--color-border-muted);
30
- color: var(--color-text-muted);
31
- font-family: var(--font-mono);
32
-
33
- &[data-slot="model-name"] {
34
- color: var(--color-text);
35
- font-family: var(--font-mono);
36
- font-weight: 500;
37
-
38
- div {
39
- display: flex;
40
- align-items: center;
41
- gap: 8px;
42
- }
43
- }
44
-
45
- &[data-slot="training-data"] {
46
- text-align: center;
47
- color: var(--color-text);
48
- }
49
-
50
- &[data-slot="model-toggle"] {
51
- text-align: left;
52
- font-family: var(--font-sans);
53
- }
54
-
55
- [data-slot="model-toggle-label"] {
56
- /* Toggle container */
57
- position: relative;
58
- display: inline-block;
59
- width: 2.5rem;
60
- height: 1.5rem;
61
- cursor: pointer;
62
-
63
- /* Hidden checkbox input */
64
- input {
65
- opacity: 0;
66
- width: 0;
67
- height: 0;
68
- }
69
-
70
- /* Toggle track (background) */
71
- span {
72
- position: absolute;
73
- inset: 0;
74
- background-color: #ccc;
75
- border: 1px solid #bbb;
76
- border-radius: 1.5rem;
77
- transition: all 0.3s ease;
78
- cursor: pointer;
79
-
80
- /* Toggle handle (slider) */
81
- &::before {
82
- content: "";
83
- position: absolute;
84
- top: 50%;
85
- left: 0.125rem;
86
- width: 1.25rem;
87
- height: 1.25rem;
88
- background-color: white;
89
- border: 1px solid #ddd;
90
- border-radius: 50%;
91
- transform: translateY(-50%);
92
- transition: all 0.3s ease;
93
- }
94
- }
95
-
96
- /* Checked state - track */
97
- input:checked + span {
98
- background-color: #21ad0e;
99
- border-color: #148605;
100
-
101
- /* Checked state - handle */
102
- &::before {
103
- transform: translateX(1rem) translateY(-50%);
104
- }
105
- }
106
-
107
- /* Hover states */
108
- &:hover span {
109
- box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.2);
110
- }
111
-
112
- input:checked:hover + span {
113
- box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.3);
114
- }
115
-
116
- /* Disabled state */
117
- &:has(input:disabled) {
118
- cursor: not-allowed;
119
- }
120
-
121
- input:disabled + span {
122
- opacity: 0.5;
123
- cursor: not-allowed;
124
- }
125
-
126
- input:disabled:checked + span {
127
- opacity: 0.5;
128
- }
129
-
130
- input:disabled ~ span:hover {
131
- box-shadow: none;
132
- }
133
- }
134
- }
135
-
136
- tbody tr {
137
- &:last-child td {
138
- border-bottom: none;
139
- }
140
-
141
- &[data-disabled="true"] {
142
- td[data-slot="model-name"] {
143
- color: var(--color-text-muted);
144
- }
145
- }
146
- }
147
- }
148
-
149
- @media (max-width: 40rem) {
150
- [data-slot="models-table-element"] {
151
- th,
152
- td {
153
- padding: var(--space-2) var(--space-3);
154
- font-size: var(--font-size-xs);
155
- }
156
-
157
- th {
158
- &:nth-child(2)
159
-
160
- /* Training Data */ {
161
- display: none;
162
- }
163
- }
164
-
165
- td {
166
- &:nth-child(2)
167
-
168
- /* Training Data */ {
169
- display: none;
170
- }
171
- }
172
- }
173
- }
1
+ [data-slot="models-list"] {
2
+ display: flex;
3
+ flex-direction: column;
4
+ }
5
+
6
+ [data-slot="models-table"] {
7
+ overflow-x: auto;
8
+ }
9
+
10
+ [data-slot="models-table-element"] {
11
+ width: 100%;
12
+ border-collapse: collapse;
13
+ font-size: var(--font-size-sm);
14
+
15
+ thead {
16
+ border-bottom: 1px solid var(--color-border);
17
+ }
18
+
19
+ th {
20
+ padding: var(--space-3) var(--space-4);
21
+ text-align: left;
22
+ font-weight: normal;
23
+ color: var(--color-text-muted);
24
+ text-transform: uppercase;
25
+ }
26
+
27
+ td {
28
+ padding: var(--space-3) var(--space-4);
29
+ border-bottom: 1px solid var(--color-border-muted);
30
+ color: var(--color-text-muted);
31
+ font-family: var(--font-mono);
32
+
33
+ &[data-slot="model-name"] {
34
+ color: var(--color-text);
35
+ font-family: var(--font-mono);
36
+ font-weight: 500;
37
+
38
+ div {
39
+ display: flex;
40
+ align-items: center;
41
+ gap: 8px;
42
+ }
43
+ }
44
+
45
+ &[data-slot="training-data"] {
46
+ text-align: center;
47
+ color: var(--color-text);
48
+ }
49
+
50
+ &[data-slot="model-toggle"] {
51
+ text-align: left;
52
+ font-family: var(--font-sans);
53
+ }
54
+
55
+ [data-slot="model-toggle-label"] {
56
+ /* Toggle container */
57
+ position: relative;
58
+ display: inline-block;
59
+ width: 2.5rem;
60
+ height: 1.5rem;
61
+ cursor: pointer;
62
+
63
+ /* Hidden checkbox input */
64
+ input {
65
+ opacity: 0;
66
+ width: 0;
67
+ height: 0;
68
+ }
69
+
70
+ /* Toggle track (background) */
71
+ span {
72
+ position: absolute;
73
+ inset: 0;
74
+ background-color: #ccc;
75
+ border: 1px solid #bbb;
76
+ border-radius: 1.5rem;
77
+ transition: all 0.3s ease;
78
+ cursor: pointer;
79
+
80
+ /* Toggle handle (slider) */
81
+ &::before {
82
+ content: "";
83
+ position: absolute;
84
+ top: 50%;
85
+ left: 0.125rem;
86
+ width: 1.25rem;
87
+ height: 1.25rem;
88
+ background-color: white;
89
+ border: 1px solid #ddd;
90
+ border-radius: 50%;
91
+ transform: translateY(-50%);
92
+ transition: all 0.3s ease;
93
+ }
94
+ }
95
+
96
+ /* Checked state - track */
97
+ input:checked + span {
98
+ background-color: #21ad0e;
99
+ border-color: #148605;
100
+
101
+ /* Checked state - handle */
102
+ &::before {
103
+ transform: translateX(1rem) translateY(-50%);
104
+ }
105
+ }
106
+
107
+ /* Hover states */
108
+ &:hover span {
109
+ box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.2);
110
+ }
111
+
112
+ input:checked:hover + span {
113
+ box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.3);
114
+ }
115
+
116
+ /* Disabled state */
117
+ &:has(input:disabled) {
118
+ cursor: not-allowed;
119
+ }
120
+
121
+ input:disabled + span {
122
+ opacity: 0.5;
123
+ cursor: not-allowed;
124
+ }
125
+
126
+ input:disabled:checked + span {
127
+ opacity: 0.5;
128
+ }
129
+
130
+ input:disabled ~ span:hover {
131
+ box-shadow: none;
132
+ }
133
+ }
134
+ }
135
+
136
+ tbody tr {
137
+ &:last-child td {
138
+ border-bottom: none;
139
+ }
140
+
141
+ &[data-disabled="true"] {
142
+ td[data-slot="model-name"] {
143
+ color: var(--color-text-muted);
144
+ }
145
+ }
146
+ }
147
+ }
148
+
149
+ @media (max-width: 40rem) {
150
+ [data-slot="models-table-element"] {
151
+ th,
152
+ td {
153
+ padding: var(--space-2) var(--space-3);
154
+ font-size: var(--font-size-xs);
155
+ }
156
+
157
+ th {
158
+ &:nth-child(2)
159
+
160
+ /* Training Data */ {
161
+ display: none;
162
+ }
163
+ }
164
+
165
+ td {
166
+ &:nth-child(2)
167
+
168
+ /* Training Data */ {
169
+ display: none;
170
+ }
171
+ }
172
+ }
173
+ }
@@ -1,143 +1,143 @@
1
- .root {
2
- display: flex;
3
- flex-direction: column;
4
- gap: var(--space-8);
5
- padding: var(--space-6);
6
- background-color: var(--color-bg-surface);
7
- border: 1px dashed var(--color-border);
8
- border-radius: var(--border-radius-sm);
9
-
10
- @media (max-width: 30rem) {
11
- gap: var(--space-8);
12
- padding: var(--space-4);
13
- }
14
-
15
- [data-component="feature-grid"] {
16
- display: grid;
17
- grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
18
- gap: var(--space-6);
19
-
20
- @media (max-width: 30rem) {
21
- grid-template-columns: 1fr;
22
- gap: var(--space-4);
23
- }
24
-
25
- [data-slot="feature"] {
26
- display: flex;
27
- flex-direction: column;
28
- gap: var(--space-2);
29
- padding: var(--space-4);
30
- border: 1px solid var(--color-border);
31
- border-radius: var(--border-radius-sm);
32
-
33
- h3 {
34
- font-size: var(--font-size-sm);
35
- font-weight: 600;
36
- margin: 0;
37
- color: var(--color-text);
38
- text-transform: uppercase;
39
- letter-spacing: -0.025rem;
40
- }
41
-
42
- p {
43
- font-size: var(--font-size-sm);
44
- line-height: 1.5;
45
- margin: 0;
46
- color: var(--color-text-muted);
47
- }
48
- }
49
- }
50
-
51
- [data-component="api-key-highlight"] {
52
- display: flex;
53
- flex-direction: column;
54
- gap: var(--space-6);
55
-
56
- [data-slot="key-display"] {
57
- display: flex;
58
- flex-direction: column;
59
- gap: var(--space-3);
60
-
61
- [data-slot="key-container"] {
62
- display: flex;
63
- gap: var(--space-3);
64
- padding: var(--space-4);
65
- border: 2px solid var(--color-accent);
66
- border-radius: var(--border-radius-sm);
67
- align-items: center;
68
-
69
- @media (max-width: 40rem) {
70
- flex-direction: column;
71
- gap: var(--space-3);
72
- align-items: stretch;
73
- }
74
-
75
- [data-slot="key-value"] {
76
- flex: 1;
77
- font-family: var(--font-mono);
78
- font-size: var(--font-size-sm);
79
- color: var(--color-text);
80
- background-color: var(--color-bg);
81
- padding: var(--space-3);
82
- border-radius: var(--border-radius-sm);
83
- border: 1px solid var(--color-border);
84
- word-break: break-all;
85
- line-height: 1.4;
86
-
87
- @media (max-width: 40rem) {
88
- font-size: var(--font-size-xs);
89
- padding: var(--space-2-5);
90
- }
91
- }
92
-
93
- button {
94
- display: flex;
95
- align-items: center;
96
- gap: var(--space-2);
97
- padding: var(--space-3) var(--space-4);
98
- font-size: var(--font-size-sm);
99
- font-weight: 500;
100
- white-space: nowrap;
101
- min-width: 130px;
102
-
103
- @media (max-width: 40rem) {
104
- justify-content: center;
105
- padding: var(--space-2-5) var(--space-3);
106
- font-size: var(--font-size-xs);
107
- min-width: 96px;
108
- }
109
- }
110
- }
111
- }
112
- }
113
-
114
- [data-component="next-steps"] {
115
- display: flex;
116
- flex-direction: column;
117
- gap: var(--space-6);
118
-
119
- ol {
120
- margin: 0;
121
- padding-left: 0;
122
- display: flex;
123
- flex-direction: column;
124
- gap: var(--space-2);
125
- list-style-position: inside;
126
-
127
- li {
128
- font-size: var(--font-size-md);
129
- line-height: 1.5;
130
- color: var(--color-text-secondary);
131
-
132
- code {
133
- font-family: var(--font-mono);
134
- font-size: var(--font-size-sm);
135
- padding: var(--space-1) var(--space-2);
136
- border: 1px solid var(--color-border);
137
- border-radius: var(--border-radius-sm);
138
- color: var(--color-text);
139
- }
140
- }
141
- }
142
- }
143
- }
1
+ .root {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: var(--space-8);
5
+ padding: var(--space-6);
6
+ background-color: var(--color-bg-surface);
7
+ border: 1px dashed var(--color-border);
8
+ border-radius: var(--border-radius-sm);
9
+
10
+ @media (max-width: 30rem) {
11
+ gap: var(--space-8);
12
+ padding: var(--space-4);
13
+ }
14
+
15
+ [data-component="feature-grid"] {
16
+ display: grid;
17
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
18
+ gap: var(--space-6);
19
+
20
+ @media (max-width: 30rem) {
21
+ grid-template-columns: 1fr;
22
+ gap: var(--space-4);
23
+ }
24
+
25
+ [data-slot="feature"] {
26
+ display: flex;
27
+ flex-direction: column;
28
+ gap: var(--space-2);
29
+ padding: var(--space-4);
30
+ border: 1px solid var(--color-border);
31
+ border-radius: var(--border-radius-sm);
32
+
33
+ h3 {
34
+ font-size: var(--font-size-sm);
35
+ font-weight: 600;
36
+ margin: 0;
37
+ color: var(--color-text);
38
+ text-transform: uppercase;
39
+ letter-spacing: -0.025rem;
40
+ }
41
+
42
+ p {
43
+ font-size: var(--font-size-sm);
44
+ line-height: 1.5;
45
+ margin: 0;
46
+ color: var(--color-text-muted);
47
+ }
48
+ }
49
+ }
50
+
51
+ [data-component="api-key-highlight"] {
52
+ display: flex;
53
+ flex-direction: column;
54
+ gap: var(--space-6);
55
+
56
+ [data-slot="key-display"] {
57
+ display: flex;
58
+ flex-direction: column;
59
+ gap: var(--space-3);
60
+
61
+ [data-slot="key-container"] {
62
+ display: flex;
63
+ gap: var(--space-3);
64
+ padding: var(--space-4);
65
+ border: 2px solid var(--color-accent);
66
+ border-radius: var(--border-radius-sm);
67
+ align-items: center;
68
+
69
+ @media (max-width: 40rem) {
70
+ flex-direction: column;
71
+ gap: var(--space-3);
72
+ align-items: stretch;
73
+ }
74
+
75
+ [data-slot="key-value"] {
76
+ flex: 1;
77
+ font-family: var(--font-mono);
78
+ font-size: var(--font-size-sm);
79
+ color: var(--color-text);
80
+ background-color: var(--color-bg);
81
+ padding: var(--space-3);
82
+ border-radius: var(--border-radius-sm);
83
+ border: 1px solid var(--color-border);
84
+ word-break: break-all;
85
+ line-height: 1.4;
86
+
87
+ @media (max-width: 40rem) {
88
+ font-size: var(--font-size-xs);
89
+ padding: var(--space-2-5);
90
+ }
91
+ }
92
+
93
+ button {
94
+ display: flex;
95
+ align-items: center;
96
+ gap: var(--space-2);
97
+ padding: var(--space-3) var(--space-4);
98
+ font-size: var(--font-size-sm);
99
+ font-weight: 500;
100
+ white-space: nowrap;
101
+ min-width: 130px;
102
+
103
+ @media (max-width: 40rem) {
104
+ justify-content: center;
105
+ padding: var(--space-2-5) var(--space-3);
106
+ font-size: var(--font-size-xs);
107
+ min-width: 96px;
108
+ }
109
+ }
110
+ }
111
+ }
112
+ }
113
+
114
+ [data-component="next-steps"] {
115
+ display: flex;
116
+ flex-direction: column;
117
+ gap: var(--space-6);
118
+
119
+ ol {
120
+ margin: 0;
121
+ padding-left: 0;
122
+ display: flex;
123
+ flex-direction: column;
124
+ gap: var(--space-2);
125
+ list-style-position: inside;
126
+
127
+ li {
128
+ font-size: var(--font-size-md);
129
+ line-height: 1.5;
130
+ color: var(--color-text-secondary);
131
+
132
+ code {
133
+ font-family: var(--font-mono);
134
+ font-size: var(--font-size-sm);
135
+ padding: var(--space-1) var(--space-2);
136
+ border: 1px solid var(--color-border);
137
+ border-radius: var(--border-radius-sm);
138
+ color: var(--color-text);
139
+ }
140
+ }
141
+ }
142
+ }
143
+ }