@edmicro/olkit 2.1.6 → 2.1.10
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/LICENSE +21 -21
- package/fesm2022/edmicro-olkit.mjs +20024 -34416
- package/fesm2022/edmicro-olkit.mjs.map +1 -1
- package/lib/shared/styles/animations.css +327 -327
- package/package.json +6 -6
- package/styles/isolation.css +310 -310
- package/styles/layout.css +94 -94
- package/styles/patterns.css +163 -163
- package/styles/primitives.css +274 -274
- package/styles/theme.css +325 -325
- package/styles/tokens.css +431 -431
- package/types/edmicro-olkit.d.ts +7212 -12029
- package/types/edmicro-olkit.d.ts.map +1 -1
|
@@ -1,327 +1,327 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core Animation Classes
|
|
3
|
-
* Migration từ @angular/animations sang CSS animations
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
/* ========================================
|
|
7
|
-
FADE ANIMATIONS
|
|
8
|
-
======================================== */
|
|
9
|
-
|
|
10
|
-
/* Fade In */
|
|
11
|
-
.fade-in {
|
|
12
|
-
animation: fadeIn var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
.fade-in-fast {
|
|
16
|
-
animation: fadeIn var(--anim-duration-fast, 150ms) var(--anim-ease-out, ease-out) forwards;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
@keyframes fadeIn {
|
|
20
|
-
from {
|
|
21
|
-
opacity: 0;
|
|
22
|
-
}
|
|
23
|
-
to {
|
|
24
|
-
opacity: 1;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/* Fade Out */
|
|
29
|
-
.fade-out {
|
|
30
|
-
opacity: 0;
|
|
31
|
-
transition: opacity var(--anim-duration-normal, 300ms) var(--anim-ease-in, ease-in);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/* ========================================
|
|
35
|
-
SLIDE ANIMATIONS
|
|
36
|
-
======================================== */
|
|
37
|
-
|
|
38
|
-
/* Slide Down (từ trên xuống) */
|
|
39
|
-
.slide-down-enter {
|
|
40
|
-
animation: slideDown var(--anim-duration-normal, 300ms)
|
|
41
|
-
var(--anim-ease-in-out, cubic-bezier(0.4, 0, 0.2, 1)) forwards;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.slide-down-leave {
|
|
45
|
-
opacity: 0;
|
|
46
|
-
transform: translateY(-100%);
|
|
47
|
-
transition: all var(--anim-duration-normal, 300ms) cubic-bezier(0.4, 0, 0.6, 1);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
@keyframes slideDown {
|
|
51
|
-
from {
|
|
52
|
-
transform: translateY(-100%);
|
|
53
|
-
opacity: 0;
|
|
54
|
-
}
|
|
55
|
-
to {
|
|
56
|
-
transform: translateY(0);
|
|
57
|
-
opacity: 1;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/* Slide In from Right (Toast) */
|
|
62
|
-
.toast-slide-enter {
|
|
63
|
-
animation: toastSlideIn var(--anim-duration-normal, 300ms)
|
|
64
|
-
var(--anim-ease-in-out, cubic-bezier(0.4, 0, 0.2, 1)) forwards;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.toast-slide-leave {
|
|
68
|
-
opacity: 0;
|
|
69
|
-
transform: translateX(100%);
|
|
70
|
-
transition: all 200ms cubic-bezier(0.4, 0, 0.6, 1);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
@keyframes toastSlideIn {
|
|
74
|
-
from {
|
|
75
|
-
transform: translateX(100%);
|
|
76
|
-
opacity: 0;
|
|
77
|
-
}
|
|
78
|
-
to {
|
|
79
|
-
transform: translateX(0);
|
|
80
|
-
opacity: 1;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/* Slide In Up */
|
|
85
|
-
.slide-in-up {
|
|
86
|
-
animation: slideInUp var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
@keyframes slideInUp {
|
|
90
|
-
from {
|
|
91
|
-
opacity: 0;
|
|
92
|
-
transform: translateY(20px);
|
|
93
|
-
}
|
|
94
|
-
to {
|
|
95
|
-
opacity: 1;
|
|
96
|
-
transform: translateY(0);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/* Slide In Down */
|
|
101
|
-
.slide-in-down {
|
|
102
|
-
animation: slideInDown var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
@keyframes slideInDown {
|
|
106
|
-
from {
|
|
107
|
-
opacity: 0;
|
|
108
|
-
transform: translateY(-20px);
|
|
109
|
-
}
|
|
110
|
-
to {
|
|
111
|
-
opacity: 1;
|
|
112
|
-
transform: translateY(0);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/* Slide In Left */
|
|
117
|
-
.slide-in-left {
|
|
118
|
-
animation: slideInLeft var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
@keyframes slideInLeft {
|
|
122
|
-
from {
|
|
123
|
-
opacity: 0;
|
|
124
|
-
transform: translateX(20px);
|
|
125
|
-
}
|
|
126
|
-
to {
|
|
127
|
-
opacity: 1;
|
|
128
|
-
transform: translateX(0);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/* Slide In Right */
|
|
133
|
-
.slide-in-right {
|
|
134
|
-
animation: slideInRight var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
@keyframes slideInRight {
|
|
138
|
-
from {
|
|
139
|
-
opacity: 0;
|
|
140
|
-
transform: translateX(-20px);
|
|
141
|
-
}
|
|
142
|
-
to {
|
|
143
|
-
opacity: 1;
|
|
144
|
-
transform: translateX(0);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/* ========================================
|
|
149
|
-
SCALE ANIMATIONS
|
|
150
|
-
======================================== */
|
|
151
|
-
|
|
152
|
-
/* Scale In */
|
|
153
|
-
.scale-in {
|
|
154
|
-
animation: scaleIn var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
@keyframes scaleIn {
|
|
158
|
-
from {
|
|
159
|
-
opacity: 0;
|
|
160
|
-
transform: scale(0.95);
|
|
161
|
-
}
|
|
162
|
-
to {
|
|
163
|
-
opacity: 1;
|
|
164
|
-
transform: scale(1);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/* Scale Out */
|
|
169
|
-
.scale-out {
|
|
170
|
-
opacity: 0;
|
|
171
|
-
transform: scale(0.95);
|
|
172
|
-
transition: all var(--anim-duration-normal, 300ms) var(--anim-ease-in, ease-in);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
/* Menu Scale (Speed Dial) */
|
|
176
|
-
.menu-scale-enter {
|
|
177
|
-
animation: menuScaleIn var(--anim-duration-fast, 150ms)
|
|
178
|
-
var(--anim-ease-out, cubic-bezier(0, 0, 0.2, 1)) forwards;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
.menu-scale-leave {
|
|
182
|
-
opacity: 0;
|
|
183
|
-
transform: scale(0.85);
|
|
184
|
-
transition: all 100ms cubic-bezier(0.4, 0, 1, 1);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
@keyframes menuScaleIn {
|
|
188
|
-
from {
|
|
189
|
-
opacity: 0;
|
|
190
|
-
transform: scale(0.85);
|
|
191
|
-
}
|
|
192
|
-
to {
|
|
193
|
-
opacity: 1;
|
|
194
|
-
transform: scale(1);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
/* ========================================
|
|
199
|
-
COMBINED ANIMATIONS
|
|
200
|
-
======================================== */
|
|
201
|
-
|
|
202
|
-
/* Fade + Scale */
|
|
203
|
-
.fade-scale-enter {
|
|
204
|
-
animation: fadeScaleIn var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
.fade-scale-leave {
|
|
208
|
-
opacity: 0;
|
|
209
|
-
transform: scale(0.95);
|
|
210
|
-
transition: all var(--anim-duration-normal, 300ms) var(--anim-ease-in, ease-in);
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
@keyframes fadeScaleIn {
|
|
214
|
-
from {
|
|
215
|
-
opacity: 0;
|
|
216
|
-
transform: scale(0.95);
|
|
217
|
-
}
|
|
218
|
-
to {
|
|
219
|
-
opacity: 1;
|
|
220
|
-
transform: scale(1);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
/* ========================================
|
|
225
|
-
COMPONENT-SPECIFIC ANIMATIONS
|
|
226
|
-
======================================== */
|
|
227
|
-
|
|
228
|
-
/* Alert Fade Out */
|
|
229
|
-
.alert-fade-out {
|
|
230
|
-
opacity: 0;
|
|
231
|
-
transform: translateY(-8px);
|
|
232
|
-
transition: all var(--anim-duration-normal, 300ms) ease-out;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
/* Tooltip Fade Enter */
|
|
236
|
-
.tooltip-fade-enter {
|
|
237
|
-
animation: fadeIn var(--anim-duration-fast, 150ms) var(--anim-ease-out, ease-out) forwards;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
/* Backdrop */
|
|
241
|
-
.backdrop-enter {
|
|
242
|
-
animation: fadeIn var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
.backdrop-leave {
|
|
246
|
-
opacity: 0;
|
|
247
|
-
transition: opacity var(--anim-duration-normal, 300ms) var(--anim-ease-in, ease-in);
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
/* ========================================
|
|
251
|
-
EXPAND/COLLAPSE
|
|
252
|
-
======================================== */
|
|
253
|
-
|
|
254
|
-
.expand-enter {
|
|
255
|
-
animation: expandIn var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
.collapse-leave {
|
|
259
|
-
overflow: hidden;
|
|
260
|
-
height: 0;
|
|
261
|
-
opacity: 0;
|
|
262
|
-
transition: all var(--anim-duration-normal, 300ms) var(--anim-ease-in, ease-in);
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
@keyframes expandIn {
|
|
266
|
-
from {
|
|
267
|
-
height: 0;
|
|
268
|
-
opacity: 0;
|
|
269
|
-
overflow: hidden;
|
|
270
|
-
}
|
|
271
|
-
to {
|
|
272
|
-
height: auto;
|
|
273
|
-
opacity: 1;
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
/* ========================================
|
|
278
|
-
ROTATE
|
|
279
|
-
======================================== */
|
|
280
|
-
|
|
281
|
-
.rotate {
|
|
282
|
-
transition: transform var(--anim-duration-normal, 300ms)
|
|
283
|
-
var(--anim-ease-in-out, cubic-bezier(0.4, 0, 0.2, 1));
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
/* ========================================
|
|
287
|
-
UTILITIES
|
|
288
|
-
======================================== */
|
|
289
|
-
|
|
290
|
-
/* Stagger delay utilities */
|
|
291
|
-
.stagger-delay-1 {
|
|
292
|
-
animation-delay: 50ms;
|
|
293
|
-
}
|
|
294
|
-
.stagger-delay-2 {
|
|
295
|
-
animation-delay: 100ms;
|
|
296
|
-
}
|
|
297
|
-
.stagger-delay-3 {
|
|
298
|
-
animation-delay: 150ms;
|
|
299
|
-
}
|
|
300
|
-
.stagger-delay-4 {
|
|
301
|
-
animation-delay: 200ms;
|
|
302
|
-
}
|
|
303
|
-
.stagger-delay-5 {
|
|
304
|
-
animation-delay: 250ms;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
/* Animation fill mode utilities */
|
|
308
|
-
.anim-forwards {
|
|
309
|
-
animation-fill-mode: forwards;
|
|
310
|
-
}
|
|
311
|
-
.anim-backwards {
|
|
312
|
-
animation-fill-mode: backwards;
|
|
313
|
-
}
|
|
314
|
-
.anim-both {
|
|
315
|
-
animation-fill-mode: both;
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
/* Prevent animation on prefers-reduced-motion */
|
|
319
|
-
@media (prefers-reduced-motion: reduce) {
|
|
320
|
-
*,
|
|
321
|
-
*::before,
|
|
322
|
-
*::after {
|
|
323
|
-
animation-duration: 0.01ms !important;
|
|
324
|
-
animation-iteration-count: 1 !important;
|
|
325
|
-
transition-duration: 0.01ms !important;
|
|
326
|
-
}
|
|
327
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Core Animation Classes
|
|
3
|
+
* Migration từ @angular/animations sang CSS animations
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/* ========================================
|
|
7
|
+
FADE ANIMATIONS
|
|
8
|
+
======================================== */
|
|
9
|
+
|
|
10
|
+
/* Fade In */
|
|
11
|
+
.fade-in {
|
|
12
|
+
animation: fadeIn var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.fade-in-fast {
|
|
16
|
+
animation: fadeIn var(--anim-duration-fast, 150ms) var(--anim-ease-out, ease-out) forwards;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@keyframes fadeIn {
|
|
20
|
+
from {
|
|
21
|
+
opacity: 0;
|
|
22
|
+
}
|
|
23
|
+
to {
|
|
24
|
+
opacity: 1;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* Fade Out */
|
|
29
|
+
.fade-out {
|
|
30
|
+
opacity: 0;
|
|
31
|
+
transition: opacity var(--anim-duration-normal, 300ms) var(--anim-ease-in, ease-in);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* ========================================
|
|
35
|
+
SLIDE ANIMATIONS
|
|
36
|
+
======================================== */
|
|
37
|
+
|
|
38
|
+
/* Slide Down (từ trên xuống) */
|
|
39
|
+
.slide-down-enter {
|
|
40
|
+
animation: slideDown var(--anim-duration-normal, 300ms)
|
|
41
|
+
var(--anim-ease-in-out, cubic-bezier(0.4, 0, 0.2, 1)) forwards;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.slide-down-leave {
|
|
45
|
+
opacity: 0;
|
|
46
|
+
transform: translateY(-100%);
|
|
47
|
+
transition: all var(--anim-duration-normal, 300ms) cubic-bezier(0.4, 0, 0.6, 1);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@keyframes slideDown {
|
|
51
|
+
from {
|
|
52
|
+
transform: translateY(-100%);
|
|
53
|
+
opacity: 0;
|
|
54
|
+
}
|
|
55
|
+
to {
|
|
56
|
+
transform: translateY(0);
|
|
57
|
+
opacity: 1;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* Slide In from Right (Toast) */
|
|
62
|
+
.toast-slide-enter {
|
|
63
|
+
animation: toastSlideIn var(--anim-duration-normal, 300ms)
|
|
64
|
+
var(--anim-ease-in-out, cubic-bezier(0.4, 0, 0.2, 1)) forwards;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.toast-slide-leave {
|
|
68
|
+
opacity: 0;
|
|
69
|
+
transform: translateX(100%);
|
|
70
|
+
transition: all 200ms cubic-bezier(0.4, 0, 0.6, 1);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@keyframes toastSlideIn {
|
|
74
|
+
from {
|
|
75
|
+
transform: translateX(100%);
|
|
76
|
+
opacity: 0;
|
|
77
|
+
}
|
|
78
|
+
to {
|
|
79
|
+
transform: translateX(0);
|
|
80
|
+
opacity: 1;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/* Slide In Up */
|
|
85
|
+
.slide-in-up {
|
|
86
|
+
animation: slideInUp var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
@keyframes slideInUp {
|
|
90
|
+
from {
|
|
91
|
+
opacity: 0;
|
|
92
|
+
transform: translateY(20px);
|
|
93
|
+
}
|
|
94
|
+
to {
|
|
95
|
+
opacity: 1;
|
|
96
|
+
transform: translateY(0);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/* Slide In Down */
|
|
101
|
+
.slide-in-down {
|
|
102
|
+
animation: slideInDown var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@keyframes slideInDown {
|
|
106
|
+
from {
|
|
107
|
+
opacity: 0;
|
|
108
|
+
transform: translateY(-20px);
|
|
109
|
+
}
|
|
110
|
+
to {
|
|
111
|
+
opacity: 1;
|
|
112
|
+
transform: translateY(0);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/* Slide In Left */
|
|
117
|
+
.slide-in-left {
|
|
118
|
+
animation: slideInLeft var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@keyframes slideInLeft {
|
|
122
|
+
from {
|
|
123
|
+
opacity: 0;
|
|
124
|
+
transform: translateX(20px);
|
|
125
|
+
}
|
|
126
|
+
to {
|
|
127
|
+
opacity: 1;
|
|
128
|
+
transform: translateX(0);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/* Slide In Right */
|
|
133
|
+
.slide-in-right {
|
|
134
|
+
animation: slideInRight var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
@keyframes slideInRight {
|
|
138
|
+
from {
|
|
139
|
+
opacity: 0;
|
|
140
|
+
transform: translateX(-20px);
|
|
141
|
+
}
|
|
142
|
+
to {
|
|
143
|
+
opacity: 1;
|
|
144
|
+
transform: translateX(0);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/* ========================================
|
|
149
|
+
SCALE ANIMATIONS
|
|
150
|
+
======================================== */
|
|
151
|
+
|
|
152
|
+
/* Scale In */
|
|
153
|
+
.scale-in {
|
|
154
|
+
animation: scaleIn var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
@keyframes scaleIn {
|
|
158
|
+
from {
|
|
159
|
+
opacity: 0;
|
|
160
|
+
transform: scale(0.95);
|
|
161
|
+
}
|
|
162
|
+
to {
|
|
163
|
+
opacity: 1;
|
|
164
|
+
transform: scale(1);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/* Scale Out */
|
|
169
|
+
.scale-out {
|
|
170
|
+
opacity: 0;
|
|
171
|
+
transform: scale(0.95);
|
|
172
|
+
transition: all var(--anim-duration-normal, 300ms) var(--anim-ease-in, ease-in);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/* Menu Scale (Speed Dial) */
|
|
176
|
+
.menu-scale-enter {
|
|
177
|
+
animation: menuScaleIn var(--anim-duration-fast, 150ms)
|
|
178
|
+
var(--anim-ease-out, cubic-bezier(0, 0, 0.2, 1)) forwards;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.menu-scale-leave {
|
|
182
|
+
opacity: 0;
|
|
183
|
+
transform: scale(0.85);
|
|
184
|
+
transition: all 100ms cubic-bezier(0.4, 0, 1, 1);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
@keyframes menuScaleIn {
|
|
188
|
+
from {
|
|
189
|
+
opacity: 0;
|
|
190
|
+
transform: scale(0.85);
|
|
191
|
+
}
|
|
192
|
+
to {
|
|
193
|
+
opacity: 1;
|
|
194
|
+
transform: scale(1);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/* ========================================
|
|
199
|
+
COMBINED ANIMATIONS
|
|
200
|
+
======================================== */
|
|
201
|
+
|
|
202
|
+
/* Fade + Scale */
|
|
203
|
+
.fade-scale-enter {
|
|
204
|
+
animation: fadeScaleIn var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.fade-scale-leave {
|
|
208
|
+
opacity: 0;
|
|
209
|
+
transform: scale(0.95);
|
|
210
|
+
transition: all var(--anim-duration-normal, 300ms) var(--anim-ease-in, ease-in);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
@keyframes fadeScaleIn {
|
|
214
|
+
from {
|
|
215
|
+
opacity: 0;
|
|
216
|
+
transform: scale(0.95);
|
|
217
|
+
}
|
|
218
|
+
to {
|
|
219
|
+
opacity: 1;
|
|
220
|
+
transform: scale(1);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/* ========================================
|
|
225
|
+
COMPONENT-SPECIFIC ANIMATIONS
|
|
226
|
+
======================================== */
|
|
227
|
+
|
|
228
|
+
/* Alert Fade Out */
|
|
229
|
+
.alert-fade-out {
|
|
230
|
+
opacity: 0;
|
|
231
|
+
transform: translateY(-8px);
|
|
232
|
+
transition: all var(--anim-duration-normal, 300ms) ease-out;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/* Tooltip Fade Enter */
|
|
236
|
+
.tooltip-fade-enter {
|
|
237
|
+
animation: fadeIn var(--anim-duration-fast, 150ms) var(--anim-ease-out, ease-out) forwards;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/* Backdrop */
|
|
241
|
+
.backdrop-enter {
|
|
242
|
+
animation: fadeIn var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.backdrop-leave {
|
|
246
|
+
opacity: 0;
|
|
247
|
+
transition: opacity var(--anim-duration-normal, 300ms) var(--anim-ease-in, ease-in);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/* ========================================
|
|
251
|
+
EXPAND/COLLAPSE
|
|
252
|
+
======================================== */
|
|
253
|
+
|
|
254
|
+
.expand-enter {
|
|
255
|
+
animation: expandIn var(--anim-duration-normal, 300ms) var(--anim-ease-out, ease-out) forwards;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.collapse-leave {
|
|
259
|
+
overflow: hidden;
|
|
260
|
+
height: 0;
|
|
261
|
+
opacity: 0;
|
|
262
|
+
transition: all var(--anim-duration-normal, 300ms) var(--anim-ease-in, ease-in);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
@keyframes expandIn {
|
|
266
|
+
from {
|
|
267
|
+
height: 0;
|
|
268
|
+
opacity: 0;
|
|
269
|
+
overflow: hidden;
|
|
270
|
+
}
|
|
271
|
+
to {
|
|
272
|
+
height: auto;
|
|
273
|
+
opacity: 1;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/* ========================================
|
|
278
|
+
ROTATE
|
|
279
|
+
======================================== */
|
|
280
|
+
|
|
281
|
+
.rotate {
|
|
282
|
+
transition: transform var(--anim-duration-normal, 300ms)
|
|
283
|
+
var(--anim-ease-in-out, cubic-bezier(0.4, 0, 0.2, 1));
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/* ========================================
|
|
287
|
+
UTILITIES
|
|
288
|
+
======================================== */
|
|
289
|
+
|
|
290
|
+
/* Stagger delay utilities */
|
|
291
|
+
.stagger-delay-1 {
|
|
292
|
+
animation-delay: 50ms;
|
|
293
|
+
}
|
|
294
|
+
.stagger-delay-2 {
|
|
295
|
+
animation-delay: 100ms;
|
|
296
|
+
}
|
|
297
|
+
.stagger-delay-3 {
|
|
298
|
+
animation-delay: 150ms;
|
|
299
|
+
}
|
|
300
|
+
.stagger-delay-4 {
|
|
301
|
+
animation-delay: 200ms;
|
|
302
|
+
}
|
|
303
|
+
.stagger-delay-5 {
|
|
304
|
+
animation-delay: 250ms;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
/* Animation fill mode utilities */
|
|
308
|
+
.anim-forwards {
|
|
309
|
+
animation-fill-mode: forwards;
|
|
310
|
+
}
|
|
311
|
+
.anim-backwards {
|
|
312
|
+
animation-fill-mode: backwards;
|
|
313
|
+
}
|
|
314
|
+
.anim-both {
|
|
315
|
+
animation-fill-mode: both;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
/* Prevent animation on prefers-reduced-motion */
|
|
319
|
+
@media (prefers-reduced-motion: reduce) {
|
|
320
|
+
*,
|
|
321
|
+
*::before,
|
|
322
|
+
*::after {
|
|
323
|
+
animation-duration: 0.01ms !important;
|
|
324
|
+
animation-iteration-count: 1 !important;
|
|
325
|
+
transition-duration: 0.01ms !important;
|
|
326
|
+
}
|
|
327
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edmicro/olkit",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.10",
|
|
4
4
|
"description": "Ôn Luyện Design System UI Component Library for Angular",
|
|
5
5
|
"author": "EDMICRO",
|
|
6
6
|
"license": "MIT",
|
|
@@ -24,12 +24,12 @@
|
|
|
24
24
|
"LICENSES/**"
|
|
25
25
|
],
|
|
26
26
|
"peerDependencies": {
|
|
27
|
-
"@angular/common": "^22.
|
|
28
|
-
"@angular/core": "^22.
|
|
27
|
+
"@angular/common": "^22.1.0",
|
|
28
|
+
"@angular/core": "^22.1.0",
|
|
29
29
|
"@edmicro/olkit-icons": "^1.0.0",
|
|
30
|
-
"@angular/forms": "
|
|
31
|
-
"@angular/platform-browser": "
|
|
32
|
-
"@angular/router": "
|
|
30
|
+
"@angular/forms": "^22.1.0",
|
|
31
|
+
"@angular/platform-browser": "^22.1.0",
|
|
32
|
+
"@angular/router": "^22.1.0",
|
|
33
33
|
"rxjs": "^7.0.0"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|