@slexkit/theme-shadcn 0.2.0 → 0.3.0

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.
@@ -1,114 +1,114 @@
1
- .slex-switch {
2
- display: inline-flex;
3
- align-items: center;
4
- gap: 0.5rem;
5
- cursor: pointer;
6
- }
7
-
8
- .slex-switch-event-layer {
9
- display: inline-flex;
10
- }
11
-
12
- .slex-choice-event-layer {
13
- display: inline-flex;
14
- }
15
-
1
+ .slex-switch {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ gap: 0.5rem;
5
+ cursor: pointer;
6
+ }
7
+
8
+ .slex-switch-event-layer {
9
+ display: inline-flex;
10
+ }
11
+
12
+ .slex-choice-event-layer {
13
+ display: inline-flex;
14
+ }
15
+
16
16
  .slex-switch-label {
17
17
  display: inline-flex;
18
18
  align-items: center;
19
19
  gap: 0.375rem;
20
20
  min-width: 0;
21
21
  color: var(--foreground);
22
- font-size: 0.8125rem;
23
- font-weight: 500;
24
- }
25
-
26
- .slex-switch-input {
27
- position: absolute;
28
- width: 1px;
29
- height: 1px;
30
- padding: 0;
31
- margin: -1px;
32
- overflow: hidden;
33
- clip: rect(0, 0, 0, 0);
34
- white-space: nowrap;
35
- border: 0;
36
- }
37
-
38
- .slex-switch-control {
39
- box-sizing: border-box;
40
- position: relative;
41
- display: inline-flex;
42
- align-items: center;
43
- flex: 0 0 auto;
44
- width: 2.75rem;
45
- height: 1.5rem;
46
- margin-inline-end: 0;
47
- padding: 0;
48
- border: 2px solid transparent;
22
+ font-size: 0.8125rem;
23
+ font-weight: 500;
24
+ }
25
+
26
+ .slex-switch-input {
27
+ position: absolute;
28
+ width: 1px;
29
+ height: 1px;
30
+ padding: 0;
31
+ margin: -1px;
32
+ overflow: hidden;
33
+ clip: rect(0, 0, 0, 0);
34
+ white-space: nowrap;
35
+ border: 0;
36
+ }
37
+
38
+ .slex-switch-control {
39
+ box-sizing: border-box;
40
+ position: relative;
41
+ display: inline-flex;
42
+ align-items: center;
43
+ flex: 0 0 auto;
44
+ width: 2.75rem;
45
+ height: 1.5rem;
46
+ margin-inline-end: 0;
47
+ padding: 0;
48
+ border: 2px solid transparent;
49
49
  border-radius: 9999px;
50
- background: var(--input);
51
- transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
52
- }
53
-
54
- .slex-switch-control::after {
55
- content: "";
56
- display: block;
57
- width: 1.25rem;
58
- height: 1.25rem;
59
- border: 0;
50
+ background: var(--input);
51
+ transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
52
+ }
53
+
54
+ .slex-switch-control::after {
55
+ content: "";
56
+ display: block;
57
+ width: 1.25rem;
58
+ height: 1.25rem;
59
+ border: 0;
60
60
  border-radius: 9999px;
61
- background: var(--background);
62
- box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 12%, transparent);
63
- transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
64
- transform: translateX(0);
65
- will-change: transform;
66
- }
67
-
68
- .slex-switch:hover .slex-switch-control {
69
- border-color: color-mix(in oklab, var(--primary) 42%, var(--input));
70
- box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 8%, transparent);
71
- }
72
-
73
- .slex-switch:hover .slex-switch-control::after {
74
- box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 10%, transparent);
75
- }
76
-
77
- .slex-switch:active .slex-switch-control::after {
78
- box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 16%, transparent);
79
- }
80
-
81
- .slex-switch-input:checked + .slex-switch-control {
82
- border-color: var(--primary);
83
- background: var(--primary);
84
- }
85
-
86
- .slex-switch:hover .slex-switch-input:checked + .slex-switch-control {
87
- background: color-mix(in oklab, var(--primary) 88%, var(--background));
88
- }
89
-
90
- .slex-switch-input:checked + .slex-switch-control::after {
91
- background: var(--background);
92
- transform: translateX(1.25rem);
93
- }
94
-
95
- .slexkit-root[dir="rtl"] .slex-switch-input:checked + .slex-switch-control::after {
96
- transform: translateX(-1.25rem);
97
- }
98
-
99
- .slex-switch-input:focus-visible + .slex-switch-control {
100
- box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 18%, transparent);
101
- }
102
-
103
- .slex-switch-input:disabled + .slex-switch-control {
104
- opacity: 0.55;
105
- }
106
-
107
- .slex-switch:has(.slex-switch-input:disabled) {
108
- cursor: not-allowed;
109
- }
110
-
111
- .slex-switch:has(.slex-switch-input:disabled):hover .slex-switch-control,
112
- .slex-switch:has(.slex-switch-input:disabled):hover .slex-switch-control::after {
113
- box-shadow: none;
61
+ background: var(--background);
62
+ box-shadow: 0 1px 2px color-mix(in oklab, var(--foreground) 12%, transparent);
63
+ transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
64
+ transform: translateX(0);
65
+ will-change: transform;
66
+ }
67
+
68
+ .slex-switch:hover .slex-switch-control {
69
+ border-color: color-mix(in oklab, var(--primary) 42%, var(--input));
70
+ box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 8%, transparent);
71
+ }
72
+
73
+ .slex-switch:hover .slex-switch-control::after {
74
+ box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 10%, transparent);
75
+ }
76
+
77
+ .slex-switch:active .slex-switch-control::after {
78
+ box-shadow: 0 0 0 5px color-mix(in oklab, var(--primary) 16%, transparent);
79
+ }
80
+
81
+ .slex-switch-input:checked + .slex-switch-control {
82
+ border-color: var(--primary);
83
+ background: var(--primary);
84
+ }
85
+
86
+ .slex-switch:hover .slex-switch-input:checked + .slex-switch-control {
87
+ background: color-mix(in oklab, var(--primary) 88%, var(--background));
88
+ }
89
+
90
+ .slex-switch-input:checked + .slex-switch-control::after {
91
+ background: var(--background);
92
+ transform: translateX(1.25rem);
93
+ }
94
+
95
+ .slexkit-root[dir="rtl"] .slex-switch-input:checked + .slex-switch-control::after {
96
+ transform: translateX(-1.25rem);
97
+ }
98
+
99
+ .slex-switch-input:focus-visible + .slex-switch-control {
100
+ box-shadow: 0 0 0 3px color-mix(in oklab, var(--ring) 18%, transparent);
101
+ }
102
+
103
+ .slex-switch-input:disabled + .slex-switch-control {
104
+ opacity: 0.55;
105
+ }
106
+
107
+ .slex-switch:has(.slex-switch-input:disabled) {
108
+ cursor: not-allowed;
109
+ }
110
+
111
+ .slex-switch:has(.slex-switch-input:disabled):hover .slex-switch-control,
112
+ .slex-switch:has(.slex-switch-input:disabled):hover .slex-switch-control::after {
113
+ box-shadow: none;
114
114
  }
@@ -1,43 +1,43 @@
1
- .slex-tabs {
2
- display: flex;
3
- flex-direction: column;
4
- width: 100%;
5
- }
6
-
7
- .slex-tabs[data-orientation="vertical"] {
8
- flex-direction: row;
9
- }
10
-
1
+ .slex-tabs {
2
+ display: flex;
3
+ flex-direction: column;
4
+ width: 100%;
5
+ }
6
+
7
+ .slex-tabs[data-orientation="vertical"] {
8
+ flex-direction: row;
9
+ }
10
+
11
11
  .slex-tabs-list {
12
12
  --slex-tabs-indicator-inline-inset: 12px;
13
13
  --slex-tabs-indicator-block-inset: 8px;
14
14
  position: relative;
15
15
  display: flex;
16
- gap: 0;
17
- margin: 0;
18
- padding: 0;
19
- list-style: none;
20
- overflow: hidden;
21
- border-bottom: 1px solid var(--border);
22
- }
23
-
24
- .slexkit-root .slex-tabs-list {
25
- display: flex;
26
- gap: 0;
27
- margin: 0;
28
- padding: 0;
29
- list-style: none;
30
- }
31
-
32
- .slexkit-root .slex-tabs-list li {
33
- margin: 0;
34
- padding: 0;
35
- color: inherit;
36
- font: inherit;
37
- line-height: inherit;
38
- list-style: none;
39
- }
40
-
16
+ gap: 0;
17
+ margin: 0;
18
+ padding: 0;
19
+ list-style: none;
20
+ overflow: hidden;
21
+ border-bottom: 1px solid var(--border);
22
+ }
23
+
24
+ .slexkit-root .slex-tabs-list {
25
+ display: flex;
26
+ gap: 0;
27
+ margin: 0;
28
+ padding: 0;
29
+ list-style: none;
30
+ }
31
+
32
+ .slexkit-root .slex-tabs-list li {
33
+ margin: 0;
34
+ padding: 0;
35
+ color: inherit;
36
+ font: inherit;
37
+ line-height: inherit;
38
+ list-style: none;
39
+ }
40
+
41
41
  .slex-tabs-selected-indicator {
42
42
  position: absolute;
43
43
  z-index: 20;
@@ -63,25 +63,25 @@
63
63
  .slex-tabs[data-orientation="vertical"] .slex-tabs-list {
64
64
  flex-direction: column;
65
65
  border-right: 1px solid var(--border);
66
- border-bottom: none;
67
- }
68
-
69
- .slex-tabs-trigger {
70
- position: relative;
71
- padding: 0.5rem 1rem;
72
- border: none;
73
- border-radius: 0;
74
- background: transparent;
75
- color: var(--muted-foreground);
76
- font-family: inherit;
77
- font-size: 0.875rem;
78
- font-weight: 500;
79
- white-space: nowrap;
66
+ border-bottom: none;
67
+ }
68
+
69
+ .slex-tabs-trigger {
70
+ position: relative;
71
+ padding: 0.5rem 1rem;
72
+ border: none;
73
+ border-radius: 0;
74
+ background: transparent;
75
+ color: var(--muted-foreground);
76
+ font-family: inherit;
77
+ font-size: 0.875rem;
78
+ font-weight: 500;
79
+ white-space: nowrap;
80
80
  cursor: pointer;
81
81
  outline: none;
82
82
  user-select: none;
83
83
  }
84
-
84
+
85
85
  .slex-tabs-trigger--icon {
86
86
  display: inline-grid;
87
87
  width: var(--slex-control-height, 2.25rem);
@@ -123,17 +123,17 @@
123
123
  .slex-tabs-trigger.slex-tabs-trigger--selected:hover:not([data-disabled]) {
124
124
  color: var(--primary);
125
125
  }
126
-
127
- .slex-tabs-trigger[data-disabled] {
128
- opacity: 0.4;
129
- cursor: not-allowed;
130
- }
131
-
132
- .slex-tabs-trigger:focus-visible {
133
- outline: 2px solid var(--ring);
134
- outline-offset: -2px;
135
- }
136
-
126
+
127
+ .slex-tabs-trigger[data-disabled] {
128
+ opacity: 0.4;
129
+ cursor: not-allowed;
130
+ }
131
+
132
+ .slex-tabs-trigger:focus-visible {
133
+ outline: 2px solid var(--ring);
134
+ outline-offset: -2px;
135
+ }
136
+
137
137
  .slex-tabs-content {
138
138
  margin-top: 0.75rem !important;
139
139
  border-radius: 0 !important;
@@ -155,38 +155,38 @@
155
155
  }
156
156
 
157
157
  @keyframes slex-tabs-content-in {
158
- from {
159
- opacity: 0;
160
- transform: translateY(2px);
161
- }
162
- to {
163
- opacity: 1;
164
- transform: translateY(0);
165
- }
166
- }
167
-
168
- .slex-tabs-content[hidden] {
169
- display: none;
170
- }
171
-
172
- @media (max-width: 640px) {
173
- .slex-tabs-list {
174
- overflow-x: auto;
175
- scrollbar-width: none;
176
- }
177
-
178
- .slex-tabs-list::-webkit-scrollbar {
179
- display: none;
180
- }
181
-
182
- .slex-tabs[data-orientation="vertical"] {
183
- flex-direction: column;
184
- }
185
-
186
- .slex-tabs[data-orientation="vertical"] .slex-tabs-list {
187
- flex-direction: row;
188
- border-right: 0;
189
- border-bottom: 1px solid var(--border);
190
- }
191
-
158
+ from {
159
+ opacity: 0;
160
+ transform: translateY(2px);
161
+ }
162
+ to {
163
+ opacity: 1;
164
+ transform: translateY(0);
165
+ }
166
+ }
167
+
168
+ .slex-tabs-content[hidden] {
169
+ display: none;
170
+ }
171
+
172
+ @media (max-width: 640px) {
173
+ .slex-tabs-list {
174
+ overflow-x: auto;
175
+ scrollbar-width: none;
176
+ }
177
+
178
+ .slex-tabs-list::-webkit-scrollbar {
179
+ display: none;
180
+ }
181
+
182
+ .slex-tabs[data-orientation="vertical"] {
183
+ flex-direction: column;
184
+ }
185
+
186
+ .slex-tabs[data-orientation="vertical"] .slex-tabs-list {
187
+ flex-direction: row;
188
+ border-right: 0;
189
+ border-bottom: 1px solid var(--border);
190
+ }
191
+
192
192
  }
@@ -25,10 +25,13 @@
25
25
  }
26
26
 
27
27
  .slex-input-control {
28
+ position: relative;
28
29
  display: flex;
29
30
  align-items: stretch;
30
31
  width: 100%;
31
32
  min-width: 0;
33
+ border-radius: var(--radius);
34
+ transition: box-shadow 150ms ease;
32
35
  }
33
36
 
34
37
  .slex-input {
@@ -82,11 +85,11 @@
82
85
  .slex-input-controls {
83
86
  box-sizing: border-box;
84
87
  display: inline-grid;
85
- grid-template-columns: repeat(2, minmax(0, 1fr));
88
+ grid-template-rows: repeat(2, minmax(0, 1fr));
86
89
  align-items: stretch;
87
90
  flex: 0 0 auto;
88
- width: 3.75rem;
89
- min-width: 3.75rem;
91
+ width: 1.875rem;
92
+ min-width: 1.875rem;
90
93
  min-height: 2.5625rem;
91
94
  overflow: hidden;
92
95
  border: 1px solid var(--input);
@@ -103,15 +106,15 @@
103
106
  justify-content: center;
104
107
  width: 100%;
105
108
  min-width: 0;
106
- min-height: 100%;
109
+ min-height: 0;
107
110
  padding: 0;
108
111
  border: 0;
109
- border-left: 1px solid var(--input);
112
+ border-top: 1px solid var(--input);
110
113
  border-radius: 0;
111
114
  background: transparent;
112
115
  color: var(--foreground);
113
116
  font: inherit;
114
- font-size: 0.875rem;
117
+ font-size: 0.75rem;
115
118
  font-weight: 600;
116
119
  line-height: 1;
117
120
  cursor: pointer;
@@ -119,7 +122,7 @@
119
122
  }
120
123
 
121
124
  .slex-input-step:first-child {
122
- border-left: 0;
125
+ border-top: 0;
123
126
  }
124
127
 
125
128
  .slex-input-step:last-child {
@@ -132,9 +135,9 @@
132
135
 
133
136
  .slex-input-step:focus-visible {
134
137
  z-index: 1;
135
- border-color: var(--ring);
136
138
  outline: none;
137
- box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 16%, transparent);
139
+ background: color-mix(in oklab, var(--muted) 58%, var(--background));
140
+ box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--ring) 34%, transparent);
138
141
  }
139
142
 
140
143
  .slex-input-step:disabled {
@@ -148,7 +151,7 @@
148
151
 
149
152
  .slex-input:focus {
150
153
  border-color: var(--ring);
151
- box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 16%, transparent);
154
+ box-shadow: none;
152
155
  }
153
156
 
154
157
  .slex-input[type="number"] {
@@ -172,21 +175,21 @@
172
175
 
173
176
  .slex-input-field[data-invalid="true"] .slex-input:focus {
174
177
  border-color: var(--destructive);
175
- box-shadow: 0 0 0 2px color-mix(in oklab, var(--destructive) 18%, transparent);
178
+ box-shadow: none;
176
179
  }
177
180
 
178
- .slex-input-control:focus-within .slex-input-unit {
179
- border-color: var(--ring);
181
+ .slex-input-control:focus-within {
180
182
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 16%, transparent);
181
183
  }
182
184
 
183
- .slex-input-control:focus-within .slex-input-step {
185
+ .slex-input-control:focus-within .slex-input,
186
+ .slex-input-control:focus-within .slex-input-unit,
187
+ .slex-input-control:focus-within .slex-input-controls {
184
188
  border-color: var(--ring);
185
189
  }
186
190
 
187
- .slex-input-control:focus-within .slex-input-controls {
191
+ .slex-input-control:focus-within .slex-input-step {
188
192
  border-color: var(--ring);
189
- box-shadow: 0 0 0 2px color-mix(in oklab, var(--ring) 16%, transparent);
190
193
  }
191
194
 
192
195
  .slex-input-field[data-invalid="true"] .slex-input-unit {
@@ -202,20 +205,17 @@
202
205
  border-color: color-mix(in oklab, var(--destructive) 72%, var(--input));
203
206
  }
204
207
 
205
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-unit {
206
- border-color: var(--destructive);
208
+ .slex-input-field[data-invalid="true"] .slex-input-control:focus-within {
207
209
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--destructive) 18%, transparent);
208
210
  }
209
211
 
212
+ .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input,
213
+ .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-unit,
214
+ .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-controls,
210
215
  .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-step {
211
216
  border-color: var(--destructive);
212
217
  }
213
218
 
214
- .slex-input-field[data-invalid="true"] .slex-input-control:focus-within .slex-input-controls {
215
- border-color: var(--destructive);
216
- box-shadow: 0 0 0 2px color-mix(in oklab, var(--destructive) 18%, transparent);
217
- }
218
-
219
219
  .slex-input[disabled] {
220
220
  opacity: 0.5;
221
221
  cursor: not-allowed;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slexkit/theme-shadcn",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Official shadcn-token theme CSS for SlexKit.",
5
5
  "author": "SlexKit contributors",
6
6
  "type": "module",