@edmicro/olkit 2.1.0 → 2.1.2
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 -0
- package/LICENSES/FLOWBITE-MIT.txt +21 -0
- package/LICENSES/MYNAUI-MIT.txt +21 -0
- package/LICENSES/SOLAR-CC-BY-4.0.txt +49 -0
- package/README.md +271 -332
- package/THIRD-PARTY-NOTICES +94 -0
- package/lib/shared/styles/animations.css +327 -0
- package/olkit.css +2 -29
- package/package.json +1 -1
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
Third-Party Licenses and Notices
|
|
2
|
+
==================================
|
|
3
|
+
|
|
4
|
+
This project incorporates components and assets from the following third-party open-source projects.
|
|
5
|
+
Each component retains its original license terms as specified below.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
Flowbite Components
|
|
10
|
+
-------------------
|
|
11
|
+
MIT License
|
|
12
|
+
Copyright (c) 2023 Bergside Inc.
|
|
13
|
+
|
|
14
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
15
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
16
|
+
in the Software without restriction, including without limitation the rights
|
|
17
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
18
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
19
|
+
furnished to do so, subject to the following conditions:
|
|
20
|
+
|
|
21
|
+
The above copyright notice and this permission notice shall be included in all
|
|
22
|
+
copies or substantial portions of the Software.
|
|
23
|
+
|
|
24
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
25
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
26
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
27
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
28
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
29
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
30
|
+
SOFTWARE.
|
|
31
|
+
|
|
32
|
+
Source: https://github.com/themesberg/flowbite
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
Myna UI Icons
|
|
37
|
+
-------------
|
|
38
|
+
MIT License
|
|
39
|
+
Copyright (c) Praveen Juge
|
|
40
|
+
|
|
41
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
42
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
43
|
+
in the Software without restriction, including without limitation the rights
|
|
44
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
45
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
46
|
+
furnished to do so, subject to the following conditions:
|
|
47
|
+
|
|
48
|
+
The above copyright notice and this permission notice shall be included in all
|
|
49
|
+
copies or substantial portions of the Software.
|
|
50
|
+
|
|
51
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
52
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
53
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
54
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
55
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
56
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
57
|
+
SOFTWARE.
|
|
58
|
+
|
|
59
|
+
Source: https://github.com/praveenjuge/mynaui-icons
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
Solar Icons
|
|
64
|
+
-----------
|
|
65
|
+
Creative Commons Attribution 4.0 International (CC BY 4.0)
|
|
66
|
+
|
|
67
|
+
Solar Icon Set by 480 Design
|
|
68
|
+
Licensed under CC BY 4.0
|
|
69
|
+
https://creativecommons.org/licenses/by/4.0/
|
|
70
|
+
|
|
71
|
+
You are free to:
|
|
72
|
+
• Share — copy and redistribute the material in any medium or format
|
|
73
|
+
• Adapt — remix, transform, and build upon the material for any purpose, even commercially
|
|
74
|
+
|
|
75
|
+
Under the following terms:
|
|
76
|
+
• Attribution — You must give appropriate credit, provide a link to the license,
|
|
77
|
+
and indicate if changes were made. You may do so in any reasonable manner,
|
|
78
|
+
but not in any way that suggests the licensor endorses you or your use.
|
|
79
|
+
|
|
80
|
+
The icon artwork is licensed under CC BY 4.0.
|
|
81
|
+
The code/library wrapper may be under MIT, but the icon designs themselves require attribution.
|
|
82
|
+
|
|
83
|
+
Source: https://github.com/480-Design/Solar-Icon-Set
|
|
84
|
+
Attribution: Solar Icons by 480 Design (https://www.figma.com/@solar)
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
Additional Information
|
|
89
|
+
----------------------
|
|
90
|
+
|
|
91
|
+
For questions about these licenses or to request additional information,
|
|
92
|
+
please refer to the original source repositories linked above.
|
|
93
|
+
|
|
94
|
+
Last Updated: 2026-09-11
|
|
@@ -0,0 +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
|
+
}
|