@basis-ng/styles 0.0.1-alpha.19 → 0.0.1-alpha.191
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.
- package/package.json +27 -36
- package/src/components/alert.css +58 -0
- package/src/components/badge.css +43 -0
- package/src/components/button-group.css +16 -0
- package/src/components/button.css +88 -0
- package/src/components/calendar.css +56 -0
- package/src/components/card.css +24 -0
- package/src/components/checkbox.css +66 -0
- package/src/components/command-options.css +17 -0
- package/src/components/command.css +20 -0
- package/src/components/dialog.css +41 -0
- package/src/components/drawer.css +34 -0
- package/src/components/input-group.css +138 -0
- package/src/components/input.css +56 -0
- package/src/components/{label.component.css → label.css} +70 -74
- package/src/components/menu.css +154 -0
- package/src/components/option.css +37 -0
- package/src/components/otp.css +64 -0
- package/src/components/range.css +29 -0
- package/src/components/{row-item.component.css → row-item.css} +14 -14
- package/src/components/{row.component.css → row.css} +48 -56
- package/src/components/select-options.css +56 -0
- package/src/components/select.css +230 -0
- package/src/components/sheet.css +34 -0
- package/src/components/spinner.css +3 -0
- package/src/components/switch.css +48 -0
- package/src/components/tabs.css +84 -0
- package/src/components/textarea-group.css +63 -0
- package/src/components/textarea.css +35 -0
- package/src/components/tooltip.css +37 -0
- package/src/components/tree.css +64 -0
- package/src/index.css +79 -39
- package/src/utilities/general.css +7 -0
- package/src/utilities/index.css +2 -0
- package/src/utilities/sizes.css +7 -0
- package/src/components/alert.component.css +0 -71
- package/src/components/attached-box.component.css +0 -84
- package/src/components/badge.component.css +0 -58
- package/src/components/bottom-sheet.component.css +0 -49
- package/src/components/button-group.component.css +0 -20
- package/src/components/button.component.css +0 -167
- package/src/components/checkbox.component.css +0 -41
- package/src/components/color-picker.component.css +0 -34
- package/src/components/combobox-options.component.css +0 -41
- package/src/components/combobox.component.css +0 -8
- package/src/components/command-options.component.css +0 -33
- package/src/components/command.component.css +0 -45
- package/src/components/icon.component.css +0 -5
- package/src/components/input-group.component.css +0 -110
- package/src/components/input.component.css +0 -70
- package/src/components/menu-group.component.css +0 -18
- package/src/components/menu-item-checkbox.component.css +0 -32
- package/src/components/menu-item-radio.component.css +0 -32
- package/src/components/menu-item.component.css +0 -32
- package/src/components/menu-label.component.css +0 -4
- package/src/components/menu.component.css +0 -32
- package/src/components/option.component.css +0 -26
- package/src/components/range.component.css +0 -39
- package/src/components/select-options.component.css +0 -41
- package/src/components/select.component.css +0 -8
- package/src/components/side-sheet.component.css +0 -59
- package/src/components/spinner.component.css +0 -13
- package/src/components/switch.component.css +0 -68
- package/src/components/tab.component.css +0 -41
- package/src/components/table.component.css +0 -34
- package/src/components/tabs.component.css +0 -18
- package/src/components/textarea.component.css +0 -40
- package/src/components/tooltip.component.css +0 -45
- package/src/components/tree-node.component.css +0 -77
- package/src/components/tree.component.css +0 -7
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
b-select {
|
|
2
|
+
@apply flex gap-1 w-full;
|
|
3
|
+
|
|
4
|
+
button[b-select-trigger] {
|
|
5
|
+
/* Base */
|
|
6
|
+
@apply w-full transition-colors duration-150 flex items-center justify-between gap-x-1.5 disabled:opacity-60 disabled:pointer-events-none;
|
|
7
|
+
|
|
8
|
+
/* Default spacing/typography applied when no explicit size is present */
|
|
9
|
+
@apply px-3 py-0 text-sm h-8 rounded-size-md gap-2;
|
|
10
|
+
|
|
11
|
+
/* Default visual */
|
|
12
|
+
@apply bg-secondary/10 text-secondary-foreground inset-ring-1 inset-ring-ring hover:bg-secondary/10 shadow-xs;
|
|
13
|
+
@apply dark:bg-secondary-dark/40 dark:text-secondary-foreground-dark dark:inset-ring-ring-dark dark:hover:bg-secondary-dark/10 shadow-xs;
|
|
14
|
+
|
|
15
|
+
svg {
|
|
16
|
+
@apply -mx-1;
|
|
17
|
+
@apply size-5;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* Ensure the selected value doesn't wrap and shows ellipsis when too long */
|
|
21
|
+
b-select-value {
|
|
22
|
+
/* allow shrinking in flex containers and truncate overflow */
|
|
23
|
+
@apply flex-1 min-w-0 truncate;
|
|
24
|
+
/* left align the value text */
|
|
25
|
+
@apply text-left;
|
|
26
|
+
|
|
27
|
+
/* Fallback explicit properties for environments without the utility */
|
|
28
|
+
overflow: hidden;
|
|
29
|
+
text-overflow: ellipsis;
|
|
30
|
+
white-space: nowrap;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* Match button focus outline for accessibility/consistency */
|
|
34
|
+
&:focus-visible {
|
|
35
|
+
@apply outline-2 outline-offset-4 outline-primary;
|
|
36
|
+
@apply dark:outline-primary-dark;
|
|
37
|
+
@apply transition-none;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&.b-size-sm {
|
|
41
|
+
@apply px-2 py-0 text-xs h-6 rounded-size-sm gap-1.5;
|
|
42
|
+
|
|
43
|
+
svg {
|
|
44
|
+
@apply size-4;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&.b-size-md {
|
|
49
|
+
@apply px-3 py-0 text-sm h-8 rounded-size-md gap-2;
|
|
50
|
+
svg {
|
|
51
|
+
@apply size-5;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
&.b-size-lg {
|
|
56
|
+
@apply px-4 py-0 text-base h-10 rounded-size-lg gap-2.5;
|
|
57
|
+
|
|
58
|
+
svg {
|
|
59
|
+
@apply size-6;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
&.ng-invalid.ng-touched {
|
|
65
|
+
button[b-select-trigger] {
|
|
66
|
+
@apply text-destructive inset-ring-destructive/20 bg-destructive/10 hover:bg-destructive/20;
|
|
67
|
+
@apply dark:text-destructive-dark dark:inset-ring-destructive-dark/20 dark:bg-destructive-dark/10 dark:hover:bg-destructive-dark/20;
|
|
68
|
+
|
|
69
|
+
b-select-value {
|
|
70
|
+
@apply text-destructive;
|
|
71
|
+
@apply dark:text-destructive-dark;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&:focus-visible {
|
|
75
|
+
@apply outline-destructive;
|
|
76
|
+
@apply dark:outline-destructive-dark;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
ul[b-select-content] {
|
|
83
|
+
@apply list-none box-border m-0 relative flex flex-col w-full overflow-y-auto;
|
|
84
|
+
@apply bg-background text-secondary-foreground inset-ring-1 inset-ring-ring shadow-xs;
|
|
85
|
+
@apply dark:bg-background-dark dark:text-secondary-foreground-dark dark:inset-ring-ring-dark shadow-xs;
|
|
86
|
+
|
|
87
|
+
@apply outline-none;
|
|
88
|
+
max-height: 320px;
|
|
89
|
+
|
|
90
|
+
@apply text-base rounded-size-md p-1 gap-1;
|
|
91
|
+
|
|
92
|
+
.no-options-message {
|
|
93
|
+
@apply py-1 px-2 text-sm;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
input[b-input] {
|
|
97
|
+
@apply outline-none sticky top-0 z-10 bg-background min-h-8;
|
|
98
|
+
@apply dark:bg-background-dark;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
&.b-size-sm {
|
|
102
|
+
@apply text-sm rounded-size-sm p-0.5 gap-0.5;
|
|
103
|
+
}
|
|
104
|
+
&.b-size-md {
|
|
105
|
+
@apply text-base rounded-size-md p-1 gap-1;
|
|
106
|
+
}
|
|
107
|
+
&.b-size-lg {
|
|
108
|
+
@apply text-lg rounded-size-lg p-1.5 gap-1.5;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
&.b-select-content-entering-top {
|
|
112
|
+
animation: overlay-entering-top 0.1s ease forwards;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
&.b-select-content-leaving-top {
|
|
116
|
+
animation: overlay-leaving-top 0.1s ease forwards;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
&.b-select-content-entering-bottom {
|
|
120
|
+
animation: overlay-entering-down 0.1s ease forwards;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
&.b-select-content-leaving-bottom {
|
|
124
|
+
animation: overlay-leaving-down 0.1s ease forwards;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
&.b-select-content-entering-left {
|
|
128
|
+
animation: overlay-entering-left 0.1s ease forwards;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
&.b-select-content-leaving-left {
|
|
132
|
+
animation: overlay-leaving-left 0.1s ease forwards;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
&.b-select-content-entering-right {
|
|
136
|
+
animation: overlay-entering-right 0.1s ease forwards;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
&.b-select-content-leaving-right {
|
|
140
|
+
animation: overlay-leaving-right 0.1s ease forwards;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
@keyframes overlay-entering-top {
|
|
145
|
+
from {
|
|
146
|
+
opacity: 0;
|
|
147
|
+
transform: translateY(5px) scale(0.95);
|
|
148
|
+
}
|
|
149
|
+
to {
|
|
150
|
+
opacity: 1;
|
|
151
|
+
transform: translateY(0) scale(1);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
@keyframes overlay-leaving-top {
|
|
156
|
+
from {
|
|
157
|
+
opacity: 1;
|
|
158
|
+
transform: translateY(0) scale(1);
|
|
159
|
+
}
|
|
160
|
+
to {
|
|
161
|
+
opacity: 0;
|
|
162
|
+
transform: translateY(5px) scale(0.95);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
@keyframes overlay-entering-down {
|
|
167
|
+
from {
|
|
168
|
+
opacity: 0;
|
|
169
|
+
transform: translateY(-5px) scale(0.95);
|
|
170
|
+
}
|
|
171
|
+
to {
|
|
172
|
+
opacity: 1;
|
|
173
|
+
transform: translateY(0) scale(1);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
@keyframes overlay-leaving-down {
|
|
178
|
+
from {
|
|
179
|
+
opacity: 1;
|
|
180
|
+
transform: translateY(0) scale(1);
|
|
181
|
+
}
|
|
182
|
+
to {
|
|
183
|
+
opacity: 0;
|
|
184
|
+
transform: translateY(-5px) scale(0.95);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
@keyframes overlay-entering-left {
|
|
189
|
+
from {
|
|
190
|
+
opacity: 0;
|
|
191
|
+
transform: translateX(5px) scale(0.95);
|
|
192
|
+
}
|
|
193
|
+
to {
|
|
194
|
+
opacity: 1;
|
|
195
|
+
transform: translateX(0) scale(1);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
@keyframes overlay-leaving-left {
|
|
200
|
+
from {
|
|
201
|
+
opacity: 1;
|
|
202
|
+
transform: translateX(0) scale(1);
|
|
203
|
+
}
|
|
204
|
+
to {
|
|
205
|
+
opacity: 0;
|
|
206
|
+
transform: translateX(5px) scale(0.95);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
@keyframes overlay-entering-right {
|
|
211
|
+
from {
|
|
212
|
+
opacity: 0;
|
|
213
|
+
transform: translateX(-5px) scale(0.95);
|
|
214
|
+
}
|
|
215
|
+
to {
|
|
216
|
+
opacity: 1;
|
|
217
|
+
transform: translateX(0) scale(1);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
@keyframes overlay-leaving-right {
|
|
222
|
+
from {
|
|
223
|
+
opacity: 1;
|
|
224
|
+
transform: translateX(0) scale(1);
|
|
225
|
+
}
|
|
226
|
+
to {
|
|
227
|
+
opacity: 0;
|
|
228
|
+
transform: translateX(-5px) scale(0.95);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
b-sheet {
|
|
2
|
+
@apply fixed top-0 h-screen z-50 shadow-md opacity-0 w-[300px] p-5 pt-10 bg-background dark:bg-background-dark box-border;
|
|
3
|
+
transition:
|
|
4
|
+
transform 0.5s cubic-bezier(0.32, 0.72, 0, 1),
|
|
5
|
+
opacity 0.3s cubic-bezier(0.32, 0.72, 0, 1);
|
|
6
|
+
|
|
7
|
+
&.right {
|
|
8
|
+
@apply right-0 border-l border-secondary dark:border-secondary-dark;
|
|
9
|
+
transform: translateX(100%);
|
|
10
|
+
|
|
11
|
+
&.open {
|
|
12
|
+
@apply opacity-100;
|
|
13
|
+
transform: translateX(0);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&.left {
|
|
18
|
+
@apply left-0 border-r border-secondary dark:border-secondary-dark;
|
|
19
|
+
transform: translateX(-100%);
|
|
20
|
+
|
|
21
|
+
&.open {
|
|
22
|
+
@apply opacity-100;
|
|
23
|
+
transform: translateX(0);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.close-button {
|
|
28
|
+
@apply absolute top-0 right-0 w-10 h-10 cursor-pointer flex items-center justify-center;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
html:has(b-sheet.open) {
|
|
33
|
+
overflow: hidden;
|
|
34
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
input[b-switch] {
|
|
2
|
+
@apply flex items-center cursor-pointer rounded-full border-0 transition-colors duration-200 appearance-none bg-secondary dark:bg-secondary-dark;
|
|
3
|
+
|
|
4
|
+
&:focus-visible {
|
|
5
|
+
@apply outline-2 outline-primary outline-offset-2 dark:outline-primary-dark;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
&::after {
|
|
9
|
+
@apply flex rounded-full shadow-md transition-transform duration-200 justify-center items-center bg-primary-foreground will-change-transform content-[''];
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
&.b-size-sm {
|
|
13
|
+
@apply h-5 w-8;
|
|
14
|
+
&::after {
|
|
15
|
+
@apply h-3 w-3 m-1;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
&.b-size-md {
|
|
19
|
+
@apply h-6 w-10;
|
|
20
|
+
&::after {
|
|
21
|
+
@apply h-4 w-4 m-1;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
&.b-size-lg {
|
|
25
|
+
@apply h-8 w-14;
|
|
26
|
+
&::after {
|
|
27
|
+
@apply h-6 w-6 m-1;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&:checked {
|
|
32
|
+
&.b-size-sm {
|
|
33
|
+
&::after {
|
|
34
|
+
@apply transform translate-x-[0.7rem];
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
&.b-size-md {
|
|
38
|
+
&::after {
|
|
39
|
+
@apply transform translate-x-[1rem];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
&.b-size-lg {
|
|
43
|
+
&::after {
|
|
44
|
+
@apply transform translate-x-[1.5rem];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
b-tabs {
|
|
2
|
+
/* Base container */
|
|
3
|
+
@apply inline-flex items-center transition-all duration-300;
|
|
4
|
+
|
|
5
|
+
/* Default Size: md */
|
|
6
|
+
@apply gap-1.5;
|
|
7
|
+
|
|
8
|
+
/* Individual tab styling */
|
|
9
|
+
b-tab {
|
|
10
|
+
/* Base Tab Settings */
|
|
11
|
+
@apply flex items-center justify-center gap-2 cursor-pointer select-none outline-none font-medium border transition-colors duration-200 ease-out;
|
|
12
|
+
|
|
13
|
+
/* Default size md */
|
|
14
|
+
@apply px-3.5 py-1 text-[14px] h-8 rounded-size-sm;
|
|
15
|
+
|
|
16
|
+
/* Default (Unselected) State */
|
|
17
|
+
@apply bg-transparent text-neutral-500 border-ring/80;
|
|
18
|
+
@apply dark:text-neutral-400 dark:border-white/10;
|
|
19
|
+
|
|
20
|
+
/* Hover state (not selected) */
|
|
21
|
+
&:hover:not([aria-selected='true']) {
|
|
22
|
+
@apply bg-secondary/50 text-neutral-700 border-ring/80;
|
|
23
|
+
@apply dark:bg-white/[0.03] dark:text-neutral-200 dark:border-white/10;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* Selected state */
|
|
27
|
+
&[aria-selected='true'] {
|
|
28
|
+
@apply bg-secondary text-font border-ring shadow-[0_1px_2px_rgba(0,0,0,0.05)];
|
|
29
|
+
@apply dark:bg-white/10 dark:text-font-dark dark:border-white/10;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/* Focus state */
|
|
33
|
+
&.cdk-keyboard-focused {
|
|
34
|
+
@apply ring-2 ring-primary ring-offset-1;
|
|
35
|
+
@apply dark:ring-primary-dark dark:ring-offset-background-dark;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/* Disabled state */
|
|
39
|
+
&[aria-disabled='true'] {
|
|
40
|
+
@apply opacity-60 pointer-events-none;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* Size variants */
|
|
45
|
+
&.b-size-sm {
|
|
46
|
+
@apply gap-1;
|
|
47
|
+
b-tab {
|
|
48
|
+
@apply px-2.5 py-0.5 text-xs h-7 gap-1.5 rounded-size-sm;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
&.b-size-md {
|
|
53
|
+
@apply gap-1.5;
|
|
54
|
+
b-tab {
|
|
55
|
+
@apply px-3.5 py-1 text-[14px] h-8 gap-2 rounded-size-sm;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
&.b-size-lg {
|
|
60
|
+
@apply gap-2;
|
|
61
|
+
b-tab {
|
|
62
|
+
@apply px-4 py-1.5 text-[15px] h-10 gap-2.5 rounded-size-md;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* Rounded full variant */
|
|
67
|
+
&.b-rounded-full {
|
|
68
|
+
b-tab {
|
|
69
|
+
@apply rounded-full;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
&.b-size-sm b-tab {
|
|
73
|
+
@apply px-3.5;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
&.b-size-md b-tab {
|
|
77
|
+
@apply px-4;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
&.b-size-lg b-tab {
|
|
81
|
+
@apply px-6;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
b-textarea-group {
|
|
2
|
+
/* Base: vertical stack */
|
|
3
|
+
@apply flex flex-col overflow-hidden items-start;
|
|
4
|
+
@apply bg-secondary/10 text-secondary-foreground inset-ring-1 inset-ring-ring shadow-xs;
|
|
5
|
+
@apply dark:bg-secondary-dark/40 dark:text-secondary-foreground-dark dark:inset-ring-ring-dark;
|
|
6
|
+
|
|
7
|
+
/* Base md by default */
|
|
8
|
+
@apply p-2.5 text-sm gap-2 rounded-size-md;
|
|
9
|
+
|
|
10
|
+
/* Internal textarea adjustments when placed inside group */
|
|
11
|
+
textarea[b-textarea] {
|
|
12
|
+
@apply outline-0! p-0! inset-ring-0! w-full! rounded-none! bg-transparent! hover:bg-transparent! shadow-none resize-none no-scrollbar;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
button[b-button] {
|
|
16
|
+
@apply rounded-size-sm;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* Focus state when any inner textarea is focused (and not readonly) */
|
|
20
|
+
&:has(textarea[b-textarea]:focus-visible:not(:read-only)) {
|
|
21
|
+
@apply outline-2 outline-offset-2 outline-primary dark:outline-primary-dark;
|
|
22
|
+
|
|
23
|
+
/* Override outline color if invalid while focused */
|
|
24
|
+
&:has(textarea[b-textarea].ng-invalid.ng-touched) {
|
|
25
|
+
@apply outline-destructive dark:outline-destructive-dark;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* Disabled inner textarea visual tweak */
|
|
30
|
+
textarea[b-textarea]:disabled {
|
|
31
|
+
@apply opacity-60 pointer-events-none;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* Invalid state styles (group reflects error) */
|
|
35
|
+
&:has(textarea[b-textarea].ng-invalid.ng-touched) {
|
|
36
|
+
@apply text-destructive placeholder:text-destructive bg-destructive/20 inset-ring-1 inset-ring-destructive/20;
|
|
37
|
+
@apply dark:text-destructive-dark dark:placeholder:text-destructive-dark dark:bg-destructive-dark/20 dark:inset-ring-destructive-dark/20;
|
|
38
|
+
|
|
39
|
+
button[b-button] {
|
|
40
|
+
@apply text-destructive placeholder:text-destructive bg-destructive/20 inset-ring-1 inset-ring-destructive/20;
|
|
41
|
+
@apply dark:text-destructive-dark dark:placeholder:text-destructive-dark dark:bg-destructive-dark/20 dark:inset-ring-destructive-dark/20;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* Icon strokes inside when error */
|
|
45
|
+
i svg {
|
|
46
|
+
stroke: var(--color-destructive-foreground, currentColor);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* Size variants (matching textarea sizes) */
|
|
51
|
+
&:has(textarea[b-textarea].b-size-sm) {
|
|
52
|
+
@apply p-1.5 text-xs gap-0.5;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
&:has(textarea[b-textarea].b-size-lg) {
|
|
56
|
+
@apply p-3 text-base gap-1.5;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* Prevent icons from shrinking inside the group */
|
|
60
|
+
> ng-icon {
|
|
61
|
+
@apply shrink-0;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
textarea[b-textarea] {
|
|
2
|
+
@apply bg-secondary/10 text-secondary-foreground inset-ring-1 inset-ring-ring hover:bg-secondary/10 shadow-xs;
|
|
3
|
+
@apply dark:bg-secondary-dark/40 dark:text-secondary-foreground-dark dark:inset-ring-ring-dark dark:hover:bg-secondary-dark/10 shadow-xs;
|
|
4
|
+
|
|
5
|
+
/* Base md by default */
|
|
6
|
+
@apply px-2.5 py-1.5 text-sm rounded-size-md;
|
|
7
|
+
|
|
8
|
+
&:focus-visible:not(:read-only) {
|
|
9
|
+
@apply outline-2 outline-offset-4 outline-primary dark:outline-primary-dark;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
&::placeholder {
|
|
13
|
+
@apply opacity-50 dark:opacity-70 dark:text-font-dark;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&.ng-invalid.ng-touched {
|
|
17
|
+
@apply text-destructive placeholder:text-destructive bg-destructive/20 inset-ring-1 inset-ring-destructive/20;
|
|
18
|
+
@apply dark:text-destructive-dark dark:placeholder:text-destructive-dark dark:bg-destructive-dark/20 dark:inset-ring-destructive-dark/20;
|
|
19
|
+
&:focus-visible {
|
|
20
|
+
@apply outline-2 outline-offset-4 outline-destructive dark:outline-destructive-dark;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&:disabled {
|
|
25
|
+
@apply opacity-60 pointer-events-none;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
&.b-size-sm {
|
|
29
|
+
@apply px-1.5 py-1 text-xs rounded-size-sm;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&.b-size-lg {
|
|
33
|
+
@apply px-3 py-2 text-base rounded-size-lg;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
b-tooltip-content {
|
|
2
|
+
@apply whitespace-nowrap rounded-lg shadow flex items-center justify-center gap-x-1.5 bg-background text-base font-sans;
|
|
3
|
+
@apply dark:bg-background-dark;
|
|
4
|
+
|
|
5
|
+
/* Variants */
|
|
6
|
+
/* Default (primary) */
|
|
7
|
+
@apply bg-primary text-primary-foreground;
|
|
8
|
+
@apply dark:bg-primary-dark dark:text-primary-foreground-dark;
|
|
9
|
+
|
|
10
|
+
&.b-variant-secondary {
|
|
11
|
+
@apply bg-secondary text-secondary-foreground;
|
|
12
|
+
@apply dark:bg-secondary-dark dark:text-secondary-foreground-dark;
|
|
13
|
+
}
|
|
14
|
+
&.b-variant-ghost {
|
|
15
|
+
@apply bg-transparent text-secondary-foreground shadow-none;
|
|
16
|
+
@apply dark:text-secondary-foreground-dark shadow-none;
|
|
17
|
+
}
|
|
18
|
+
&.b-variant-outlined {
|
|
19
|
+
@apply bg-secondary/10 text-secondary-foreground inset-ring inset-ring-ring shadow-xs;
|
|
20
|
+
@apply dark:bg-secondary-dark/40 dark:text-secondary-foreground-dark dark:inset-ring-ring-dark shadow-xs;
|
|
21
|
+
}
|
|
22
|
+
&.b-variant-destructive {
|
|
23
|
+
@apply bg-destructive text-destructive-foreground inset-ring-1 inset-ring-destructive;
|
|
24
|
+
@apply dark:bg-destructive-dark dark:text-destructive-foreground-dark dark:inset-ring-destructive-dark;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/* Sizes */
|
|
28
|
+
/* Default (md) */
|
|
29
|
+
@apply px-3 py-0 text-sm h-8 rounded-size-md gap-1.5;
|
|
30
|
+
|
|
31
|
+
&.b-size-sm {
|
|
32
|
+
@apply px-2 py-0 text-xs h-6 rounded-size-sm gap-1;
|
|
33
|
+
}
|
|
34
|
+
&.b-size-lg {
|
|
35
|
+
@apply px-4 py-0 text-base h-10 rounded-size-lg gap-2;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
b-tree {
|
|
2
|
+
@apply flex flex-col w-full min-h-4 gap-0.5;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
b-tree-node {
|
|
6
|
+
@apply flex flex-col box-border;
|
|
7
|
+
|
|
8
|
+
&.b-active section {
|
|
9
|
+
@apply bg-secondary text-secondary-foreground;
|
|
10
|
+
@apply dark:bg-secondary-dark dark:text-secondary-foreground-dark;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
section {
|
|
14
|
+
@apply px-3 rounded-size-md flex justify-between items-center h-8 box-border gap-1.5 text-sm select-none;
|
|
15
|
+
|
|
16
|
+
ng-icon[cdkdraghandle] {
|
|
17
|
+
@apply cursor-move;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
&:hover {
|
|
21
|
+
@apply bg-secondary/50;
|
|
22
|
+
@apply dark:bg-secondary-dark/50;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.projected-content {
|
|
26
|
+
@apply flex items-center flex-1 gap-3 py-2 cursor-pointer;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
b-tree {
|
|
31
|
+
@apply pl-4 box-border;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&.cdk-drag-preview {
|
|
35
|
+
@apply h-full w-full overflow-hidden shadow-none;
|
|
36
|
+
|
|
37
|
+
& > section {
|
|
38
|
+
@apply px-3 rounded-size-md flex justify-between items-center h-8 box-border gap-1.5 text-sm select-none bg-background;
|
|
39
|
+
@apply dark:bg-background-dark;
|
|
40
|
+
|
|
41
|
+
.projected-content {
|
|
42
|
+
@apply flex items-center flex-1 gap-3 py-2 cursor-pointer;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&.cdk-drag-placeholder {
|
|
48
|
+
@apply opacity-0;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
b-tree.cdk-drop-list-dragging {
|
|
53
|
+
@apply pointer-events-none;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.b-size-sm b-tree b-tree-node section {
|
|
57
|
+
@apply px-2 rounded-size-sm h-6 gap-1.5 text-xs;
|
|
58
|
+
}
|
|
59
|
+
.b-size-md b-tree b-tree-node section {
|
|
60
|
+
@apply px-3 rounded-size-md h-8 gap-1.5 text-sm;
|
|
61
|
+
}
|
|
62
|
+
.b-size-lg b-tree b-tree-node section {
|
|
63
|
+
@apply px-4 rounded-size-lg h-10 gap-2 text-base;
|
|
64
|
+
}
|