wini-web-components 2.8.2 → 2.8.5

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 (66) hide show
  1. package/dist/index.js.js +10 -10
  2. package/dist/index.js.mjs +198 -185
  3. package/package.json +6 -2
  4. package/src/component/button/button.module.css +210 -0
  5. package/src/component/button/button.tsx +57 -0
  6. package/src/component/calendar/calendar.module.css +153 -0
  7. package/src/component/calendar/calendar.tsx +389 -0
  8. package/src/component/carousel/carousel.css +622 -0
  9. package/src/component/carousel/carousel.tsx +91 -0
  10. package/src/component/checkbox/checkbox.module.css +48 -0
  11. package/src/component/checkbox/checkbox.tsx +80 -0
  12. package/src/component/ck-editor/ck-editor.css +206 -0
  13. package/src/component/ck-editor/ckeditor.tsx +522 -0
  14. package/src/component/component-status.tsx +53 -0
  15. package/src/component/date-time-picker/date-time-picker.module.css +94 -0
  16. package/src/component/date-time-picker/date-time-picker.tsx +663 -0
  17. package/src/component/dialog/dialog.module.css +111 -0
  18. package/src/component/dialog/dialog.tsx +109 -0
  19. package/src/component/import-file/import-file.module.css +83 -0
  20. package/src/component/import-file/import-file.tsx +174 -0
  21. package/src/component/infinite-scroll/infinite-scroll.module.css +34 -0
  22. package/src/component/infinite-scroll/infinite-scroll.tsx +35 -0
  23. package/src/component/input-multi-select/input-multi-select.module.css +121 -0
  24. package/src/component/input-multi-select/input-multi-select.tsx +263 -0
  25. package/src/component/input-otp/input-otp.module.css +41 -0
  26. package/src/component/input-otp/input-otp.tsx +110 -0
  27. package/src/component/number-picker/number-picker.module.css +137 -0
  28. package/src/component/number-picker/number-picker.tsx +107 -0
  29. package/src/component/pagination/pagination.module.css +48 -0
  30. package/src/component/pagination/pagination.tsx +88 -0
  31. package/src/component/popup/popup.css +136 -0
  32. package/src/component/popup/popup.tsx +125 -0
  33. package/src/component/progress-bar/progress-bar.module.css +42 -0
  34. package/src/component/progress-bar/progress-bar.tsx +33 -0
  35. package/src/component/progress-circle/progress-circle.css +0 -0
  36. package/src/component/progress-circle/progress-circle.tsx +25 -0
  37. package/src/component/radio-button/radio-button.module.css +51 -0
  38. package/src/component/radio-button/radio-button.tsx +60 -0
  39. package/src/component/rating/rating.module.css +11 -0
  40. package/src/component/rating/rating.tsx +65 -0
  41. package/src/component/select1/select1.module.css +108 -0
  42. package/src/component/select1/select1.tsx +271 -0
  43. package/src/component/switch/switch.module.css +53 -0
  44. package/src/component/switch/switch.tsx +68 -0
  45. package/src/component/table/table.css +74 -0
  46. package/src/component/table/table.tsx +108 -0
  47. package/src/component/tag/tag.module.css +108 -0
  48. package/src/component/tag/tag.tsx +31 -0
  49. package/src/component/text/text.css +27 -0
  50. package/src/component/text/text.tsx +24 -0
  51. package/src/component/text-area/text-area.module.css +57 -0
  52. package/src/component/text-area/text-area.tsx +65 -0
  53. package/src/component/text-field/text-field.module.css +71 -0
  54. package/src/component/text-field/text-field.tsx +102 -0
  55. package/src/component/toast-noti/toast-noti.css +866 -0
  56. package/src/component/toast-noti/toast-noti.tsx +22 -0
  57. package/src/component/wini-icon/winicon.module.css +110 -0
  58. package/src/component/wini-icon/winicon.tsx +9424 -0
  59. package/src/form/login/view.module.css +80 -0
  60. package/src/form/login/view.tsx +138 -0
  61. package/src/index.tsx +66 -0
  62. package/src/language/i18n.tsx +143 -0
  63. package/src/skin/layout.css +649 -0
  64. package/src/skin/root.css +294 -0
  65. package/src/skin/typography.css +314 -0
  66. package/src/vite-env.d.ts +1 -0
@@ -0,0 +1,622 @@
1
+ .awssld__container figure,
2
+ .awssld__content,
3
+ .awssld__box {
4
+ display: block;
5
+ position: absolute;
6
+ width: 100%;
7
+ height: 100%;
8
+ top: 0;
9
+ left: 0;
10
+ }
11
+
12
+ .awssld__controls button,
13
+ .awssld__bullets button {
14
+ outline-color: 0;
15
+ outline-style: none;
16
+ outline-width: 0;
17
+ }
18
+
19
+ .awssld {
20
+ --organic-arrow-thickness: 4px;
21
+ --organic-arrow-height: 40px;
22
+ --slider-height-percentage: 60%;
23
+ --loader-bar-color: var(--primary-main-color, #851515);
24
+ --loader-bar-height: 6px;
25
+ --control-button-width: 10%;
26
+ --control-button-height: 25%;
27
+ --control-button-opacity: 0.5;
28
+ --control-button-hover-opacity: 0.75;
29
+ --control-button-background: transparent;
30
+ --transition-bezier: cubic-bezier(0.5, 0.075, 0.25, 0.95);
31
+ --slider-transition-duration: 575ms;
32
+ --organic-arrow-color: #6a6a6a;
33
+ --organic-arrow-border-radius: 0;
34
+ --control-bullet-color: #6a6a6a;
35
+ --control-bullet-active-color: #6a6a6a;
36
+ --content-background-color: #2f2f2f;
37
+ }
38
+
39
+ .awssld {
40
+ display: block;
41
+ position: relative;
42
+ width: 100%;
43
+ max-width: 100%;
44
+ }
45
+
46
+ .awssld__wrapper {
47
+ display: block;
48
+ overflow: hidden;
49
+ position: relative;
50
+ height: 100%;
51
+ width: 100%;
52
+ }
53
+
54
+ .awssld__container {
55
+ display: block;
56
+ width: 100%;
57
+ height: 0;
58
+ padding-bottom: var(--slider-height-percentage);
59
+ }
60
+
61
+ @media all and (max-width: 500px) {
62
+ .awssld__container {
63
+ padding-bottom: calc(var(--slider-height-percentage) * 1.25);
64
+ }
65
+ }
66
+
67
+ .awssld__startUp {
68
+ background-color: red;
69
+ height: 100%;
70
+ width: 100%;
71
+ }
72
+
73
+ .awssld__startUp>div {
74
+ height: 100%;
75
+ width: 100%;
76
+ display: -webkit-box;
77
+ display: -ms-flexbox;
78
+ display: flex;
79
+ -webkit-box-align: center;
80
+ -ms-flex-align: center;
81
+ align-items: center;
82
+ -webkit-box-pack: center;
83
+ -ms-flex-pack: center;
84
+ justify-content: center;
85
+ }
86
+
87
+ .awssld__startUp img {
88
+ width: 35%;
89
+ height: auto;
90
+ }
91
+
92
+ .awssld__content {
93
+ background-color: var(--content-background-color);
94
+ overflow: hidden;
95
+ display: -webkit-box;
96
+ display: -ms-flexbox;
97
+ display: flex;
98
+ -webkit-box-align: center;
99
+ -ms-flex-align: center;
100
+ align-items: center;
101
+ -webkit-box-pack: center;
102
+ -ms-flex-pack: center;
103
+ justify-content: center;
104
+ }
105
+
106
+ .awssld__content>img,
107
+ .awssld__content>video {
108
+ -o-object-fit: cover;
109
+ object-fit: cover;
110
+ width: 100%;
111
+ height: 100%;
112
+ position: absolute;
113
+ top: 0;
114
+ left: 0;
115
+ }
116
+
117
+ .awssld__controls button {
118
+ display: -webkit-box;
119
+ display: -ms-flexbox;
120
+ display: flex;
121
+ -webkit-box-align: center;
122
+ -ms-flex-align: center;
123
+ align-items: center;
124
+ -webkit-box-pack: center;
125
+ -ms-flex-pack: center;
126
+ justify-content: center;
127
+ width: var(--control-button-width);
128
+ height: var(--control-button-height);
129
+ position: absolute;
130
+ z-index: 10;
131
+ top: calc(50% - (0.5 * var(--control-button-height)));
132
+ border: none;
133
+ background-color: var(--control-button-background);
134
+ color: #fff;
135
+ cursor: pointer;
136
+ }
137
+
138
+ .awssld__controls button .awssld__controls__arrow-left,
139
+ .awssld__controls button .awssld__controls__arrow-right {
140
+ opacity: var(--control-button-opacity);
141
+ }
142
+
143
+ .awssld__controls button:hover .awssld__controls__arrow-left,
144
+ .awssld__controls button:hover .awssld__controls__arrow-right {
145
+ opacity: var(--control-button-opacity-hover);
146
+ }
147
+
148
+ .awssld__controls--active .awssld__controls__arrow-left {
149
+ opacity: var(--control-button-opacity-hover);
150
+ -webkit-transform: translate3d(-100%, 0, 0);
151
+ transform: translate3d(-100%, 0, 0);
152
+ }
153
+
154
+ .awssld__controls--active .awssld__controls__arrow-right {
155
+ opacity: var(--control-button-opacity-hover);
156
+ -webkit-transform: translate3d(100%, 0, 0);
157
+ transform: translate3d(100%, 0, 0);
158
+ }
159
+
160
+ .awssld__controls--hidden {
161
+ display: none;
162
+ }
163
+
164
+ @media all and (max-width: 520px) {
165
+ .awssld__controls {
166
+ visibility: hidden;
167
+ }
168
+ }
169
+
170
+ .awssld__bar {
171
+ display: block;
172
+ width: 100%;
173
+ height: var(--loader-bar-height);
174
+ background-color: var(--loader-bar-color);
175
+ position: absolute;
176
+ top: 0;
177
+ left: 0;
178
+ z-index: 101;
179
+ -webkit-transition: -webkit-transform 3000ms var(--transition-bezier);
180
+ transition: -webkit-transform 3000ms var(--transition-bezier);
181
+ transition: transform 3000ms var(--transition-bezier);
182
+ transition: transform 3000ms var(--transition-bezier), -webkit-transform 3000ms var(--transition-bezier);
183
+ -webkit-transform: translate3d(-100%, 0, 0);
184
+ transform: translate3d(-100%, 0, 0);
185
+ }
186
+
187
+ .awssld__bar--active {
188
+ -webkit-transform: translate3d(-20%, 0, 0);
189
+ transform: translate3d(-20%, 0, 0);
190
+ }
191
+
192
+ .awssld__bar--end {
193
+ -webkit-transition-duration: 300ms;
194
+ transition-duration: 300ms;
195
+ -webkit-transform: translate3d(0, 0, 0);
196
+ transform: translate3d(0, 0, 0);
197
+ }
198
+
199
+ .awssld__next {
200
+ right: 0;
201
+ }
202
+
203
+ .awssld__prev {
204
+ left: 0;
205
+ }
206
+
207
+ .awssld__box {
208
+ z-index: 1;
209
+ visibility: hidden;
210
+ }
211
+
212
+ .awssld--animated {
213
+ will-change: transform;
214
+ visibility: visible;
215
+ }
216
+
217
+ .awssld--animated-mobile {
218
+ will-change: transform;
219
+ -webkit-transition: -webkit-transform 325ms cubic-bezier(0.15, 0.65, 0.1, 1);
220
+ transition: -webkit-transform 325ms cubic-bezier(0.15, 0.65, 0.1, 1);
221
+ transition: transform 325ms cubic-bezier(0.15, 0.65, 0.1, 1);
222
+ transition: transform 325ms cubic-bezier(0.15, 0.65, 0.1, 1), -webkit-transform 325ms cubic-bezier(0.15, 0.65, 0.1, 1);
223
+ }
224
+
225
+ .awssld--active {
226
+ visibility: visible;
227
+ z-index: 2;
228
+ -webkit-transform: translate3d(0, 0, 0);
229
+ transform: translate3d(0, 0, 0);
230
+ }
231
+
232
+ .awssld--moveRight,
233
+ .awssld--moveLeft {
234
+ -webkit-backface-visibility: hidden;
235
+ backface-visibility: hidden;
236
+ }
237
+
238
+ .awssld--moveRight {
239
+ -webkit-animation: slideFromRight var(--slider-transition-duration) both var(--transition-bezier);
240
+ animation: slideFromRight var(--slider-transition-duration) both var(--transition-bezier);
241
+ }
242
+
243
+ .awssld--moveLeft {
244
+ -webkit-animation: slideFromLeft var(--slider-transition-duration) both var(--transition-bezier);
245
+ animation: slideFromLeft var(--slider-transition-duration) both var(--transition-bezier);
246
+ }
247
+
248
+ .awssld--exit {
249
+ z-index: 0;
250
+ }
251
+
252
+ .awssld--exit.awssld--moveLeft {
253
+ -webkit-animation: slideToLeft var(--slider-transition-duration) both var(--transition-bezier);
254
+ animation: slideToLeft var(--slider-transition-duration) both var(--transition-bezier);
255
+ }
256
+
257
+ .awssld--exit.awssld--moveRight {
258
+ -webkit-animation: slideToRight var(--slider-transition-duration) both var(--transition-bezier);
259
+ animation: slideToRight var(--slider-transition-duration) both var(--transition-bezier);
260
+ }
261
+
262
+ .awssld--first .awssld__prev {
263
+ visibility: hidden;
264
+ }
265
+
266
+ .awssld--last .awssld__next {
267
+ visibility: hidden;
268
+ }
269
+
270
+ .awssld--fill-parent {
271
+ position: absolute !important;
272
+ width: 100% !important;
273
+ height: 100% !important;
274
+ top: 0;
275
+ left: 0;
276
+ }
277
+
278
+ .awssld--fill-parent .awssld__container {
279
+ height: 100%;
280
+ padding: 0;
281
+ }
282
+
283
+ .awssld__bullets {
284
+ position: absolute;
285
+ bottom: -40px;
286
+ width: 100%;
287
+ display: -webkit-box;
288
+ display: -ms-flexbox;
289
+ display: flex;
290
+ -webkit-box-align: center;
291
+ -ms-flex-align: center;
292
+ align-items: center;
293
+ -webkit-box-pack: center;
294
+ -ms-flex-pack: center;
295
+ justify-content: center;
296
+ }
297
+
298
+ .awssld__bullets button {
299
+ padding: 0;
300
+ display: block;
301
+ width: 16px;
302
+ height: 16px;
303
+ margin: 5px;
304
+ border-radius: 50%;
305
+ background: var(--control-bullet-color);
306
+ text-indent: -9999px;
307
+ overflow: hidden;
308
+ cursor: pointer;
309
+ border: none;
310
+ -webkit-transition: background-color 0.175s ease-out, -webkit-transform 0.225s cubic-bezier(0.8, 1.35, 0.75, 1.45);
311
+ transition: background-color 0.175s ease-out, -webkit-transform 0.225s cubic-bezier(0.8, 1.35, 0.75, 1.45);
312
+ transition: transform 0.225s cubic-bezier(0.8, 1.35, 0.75, 1.45), background-color 0.175s ease-out;
313
+ transition: transform 0.225s cubic-bezier(0.8, 1.35, 0.75, 1.45), background-color 0.175s ease-out, -webkit-transform 0.225s cubic-bezier(0.8, 1.35, 0.75, 1.45);
314
+ }
315
+
316
+ .awssld__bullets button:hover {
317
+ -webkit-transform: scale(1.2);
318
+ transform: scale(1.2);
319
+ }
320
+
321
+ .awssld__bullets .awssld__bullets--loading {
322
+ -webkit-transform: scale(1.2);
323
+ transform: scale(1.2);
324
+ }
325
+
326
+ .awssld__bullets .awssld__bullets--active {
327
+ -webkit-transform: scale(1.5);
328
+ transform: scale(1.5);
329
+ background: var(--control-bullet-active-color);
330
+ }
331
+
332
+ .awssld__bullets .awssld__bullets--active:hover {
333
+ -webkit-transform: scale(1.5);
334
+ transform: scale(1.5);
335
+ }
336
+
337
+ .awssld__controls__arrow-left,
338
+ .awssld__controls__arrow-right {
339
+ width: 100%;
340
+ height: var(--organic-arrow-height);
341
+ position: relative;
342
+ display: block;
343
+ -webkit-transition: opacity 0.2s ease-out, -webkit-transform 0.2s ease-out 0.125s;
344
+ transition: opacity 0.2s ease-out, -webkit-transform 0.2s ease-out 0.125s;
345
+ transition: transform 0.2s ease-out 0.125s, opacity 0.2s ease-out;
346
+ transition: transform 0.2s ease-out 0.125s, opacity 0.2s ease-out, -webkit-transform 0.2s ease-out 0.125s;
347
+ }
348
+
349
+ .awssld__controls__arrow-left:before,
350
+ .awssld__controls__arrow-left:after,
351
+ .awssld__controls__arrow-right:before,
352
+ .awssld__controls__arrow-right:after {
353
+ content: ' ';
354
+ position: absolute;
355
+ right: calc(50% - (0.7071 * (var(--organic-arrow-height) + var(--organic-arrow-thickness))) / 2);
356
+ height: 100%;
357
+ border-radius: var(--organic-arrow-border-radius);
358
+ width: var(--organic-arrow-thickness);
359
+ background-color: var(--organic-arrow-color);
360
+ -webkit-transition: background-color 0.15s ease-out, -webkit-transform 0.15s ease-out;
361
+ transition: background-color 0.15s ease-out, -webkit-transform 0.15s ease-out;
362
+ transition: transform 0.15s ease-out, background-color 0.15s ease-out;
363
+ transition: transform 0.15s ease-out, background-color 0.15s ease-out, -webkit-transform 0.15s ease-out;
364
+ }
365
+
366
+ .awssld__controls__arrow-left:before,
367
+ .awssld__controls__arrow-right:before {
368
+ -webkit-transform-origin: 100% 100% 0;
369
+ transform-origin: 100% 100% 0;
370
+ top: -50%;
371
+ -webkit-transform: rotate(-45deg);
372
+ transform: rotate(-45deg);
373
+ }
374
+
375
+ .awssld__controls__arrow-left:after,
376
+ .awssld__controls__arrow-right:after {
377
+ -webkit-transform-origin: 100% 0% 0;
378
+ transform-origin: 100% 0% 0;
379
+ top: 50%;
380
+ -webkit-transform: rotate(45deg);
381
+ transform: rotate(45deg);
382
+ }
383
+
384
+ .awssld__controls__arrow-right--active {
385
+ -webkit-transform: translate3d(100%, 0, 0);
386
+ transform: translate3d(100%, 0, 0);
387
+ }
388
+
389
+ .awssld__controls__arrow-right--active:after {
390
+ -webkit-transform: rotate(90deg) translate3d(50%, 0, 0) !important;
391
+ transform: rotate(90deg) translate3d(50%, 0, 0) !important;
392
+ }
393
+
394
+ .awssld__controls__arrow-right--active:before {
395
+ -webkit-transform: rotate(-90deg) translate3d(50%, 0, 0) !important;
396
+ transform: rotate(-90deg) translate3d(50%, 0, 0) !important;
397
+ }
398
+
399
+ .awssld__controls__arrow-left:before,
400
+ .awssld__controls__arrow-left:after {
401
+ right: auto;
402
+ left: calc(50% - (0.7071 * (var(--organic-arrow-height) + var(--organic-arrow-thickness))) / 2);
403
+ }
404
+
405
+ .awssld__controls__arrow-left:before {
406
+ -webkit-transform-origin: 0 100% 0;
407
+ transform-origin: 0 100% 0;
408
+ top: -50%;
409
+ -webkit-transform: rotate(45deg);
410
+ transform: rotate(45deg);
411
+ }
412
+
413
+ .awssld__controls__arrow-left:after {
414
+ -webkit-transform-origin: 0 0 0;
415
+ transform-origin: 0 0 0;
416
+ top: 50%;
417
+ -webkit-transform: rotate(-45deg);
418
+ transform: rotate(-45deg);
419
+ }
420
+
421
+ .awssld__controls__arrow-left--active {
422
+ -webkit-transform: translate3d(-100%, 0, 0);
423
+ transform: translate3d(-100%, 0, 0);
424
+ }
425
+
426
+ .awssld__controls__arrow-left--active:after {
427
+ -webkit-transform: rotate(-90deg) translate3d(-50%, 0, 0) !important;
428
+ transform: rotate(-90deg) translate3d(-50%, 0, 0) !important;
429
+ }
430
+
431
+ .awssld__controls__arrow-left--active:before {
432
+ -webkit-transform: rotate(90deg) translate3d(-50%, 0, 0) !important;
433
+ transform: rotate(90deg) translate3d(-50%, 0, 0) !important;
434
+ }
435
+
436
+ .awssld__controls button:hover .awssld__controls__arrow-left:before {
437
+ opacity: 1;
438
+ -webkit-transform: rotate(30deg);
439
+ transform: rotate(30deg);
440
+ }
441
+
442
+ .awssld__controls button:hover .awssld__controls__arrow-left:after {
443
+ opacity: 1;
444
+ -webkit-transform: rotate(-30deg);
445
+ transform: rotate(-30deg);
446
+ }
447
+
448
+ .awssld__controls button:hover .awssld__controls__arrow-right:before {
449
+ opacity: 1;
450
+ -webkit-transform: rotate(-30deg);
451
+ transform: rotate(-30deg);
452
+ }
453
+
454
+ .awssld__controls button:hover .awssld__controls__arrow-right:after {
455
+ opacity: 1;
456
+ -webkit-transform: rotate(30deg);
457
+ transform: rotate(30deg);
458
+ }
459
+
460
+ .awssld__timer {
461
+ --timer-delay: 2000ms;
462
+ --timer-release: 200ms;
463
+ --timer-height: 4px;
464
+ --timer-background-color: rgba(0, 0, 0, 0.15);
465
+ width: 100%;
466
+ height: var(--timer-height);
467
+ background-color: var(--timer-background-color);
468
+ position: absolute;
469
+ top: 0;
470
+ left: 0;
471
+ z-index: 100;
472
+ -webkit-transform: translateX(-100%);
473
+ transform: translateX(-100%);
474
+ }
475
+
476
+ .awssld__timer--animated {
477
+ will-change: transform;
478
+ -webkit-transition: -webkit-transform var(--timer-delay) linear;
479
+ transition: -webkit-transform var(--timer-delay) linear;
480
+ transition: transform var(--timer-delay) linear;
481
+ transition: transform var(--timer-delay) linear, -webkit-transform var(--timer-delay) linear;
482
+ }
483
+
484
+ .awssld__timer--run {
485
+ -webkit-transform: translateX(0);
486
+ transform: translateX(0);
487
+ }
488
+
489
+ .awssld__timer--fast {
490
+ -webkit-transition: -webkit-transform calc(var(--timer-release) / 2) linear;
491
+ transition: -webkit-transform calc(var(--timer-release) / 2) linear;
492
+ transition: transform calc(var(--timer-release) / 2) linear;
493
+ transition: transform calc(var(--timer-release) / 2) linear, -webkit-transform calc(var(--timer-release) / 2) linear;
494
+ -webkit-transform: translateX(-0.00001px);
495
+ transform: translateX(-0.00001px);
496
+ }
497
+
498
+ .awssld__timer--end {
499
+ -webkit-transform: translateX(-0.0001px);
500
+ transform: translateX(-0.0001px);
501
+ -webkit-transition: -webkit-transform var(--timer-release) linear;
502
+ transition: -webkit-transform var(--timer-release) linear;
503
+ transition: transform var(--timer-release) linear;
504
+ transition: transform var(--timer-release) linear, -webkit-transform var(--timer-release) linear;
505
+ }
506
+
507
+ .awssld__timer--hidden {
508
+ display: none;
509
+ }
510
+
511
+ @-webkit-keyframes slideFromLeft {
512
+ from {
513
+ -webkit-transform: translate3d(-100%, 0, 0);
514
+ transform: translate3d(-100%, 0, 0);
515
+ }
516
+
517
+ to {
518
+ -webkit-transform: translate3d(0, 0, 0);
519
+ transform: translate3d(0, 0, 0);
520
+ }
521
+ }
522
+
523
+ @keyframes slideFromLeft {
524
+ from {
525
+ -webkit-transform: translate3d(-100%, 0, 0);
526
+ transform: translate3d(-100%, 0, 0);
527
+ }
528
+
529
+ to {
530
+ -webkit-transform: translate3d(0, 0, 0);
531
+ transform: translate3d(0, 0, 0);
532
+ }
533
+ }
534
+
535
+ @-webkit-keyframes slideFromRight {
536
+ from {
537
+ -webkit-transform: translate3d(100%, 0, 0);
538
+ transform: translate3d(100%, 0, 0);
539
+ }
540
+
541
+ to {
542
+ -webkit-transform: translate3d(0, 0, 0);
543
+ transform: translate3d(0, 0, 0);
544
+ }
545
+ }
546
+
547
+ @keyframes slideFromRight {
548
+ from {
549
+ -webkit-transform: translate3d(100%, 0, 0);
550
+ transform: translate3d(100%, 0, 0);
551
+ }
552
+
553
+ to {
554
+ -webkit-transform: translate3d(0, 0, 0);
555
+ transform: translate3d(0, 0, 0);
556
+ }
557
+ }
558
+
559
+ @-webkit-keyframes slideToLeft {
560
+ from {
561
+ -webkit-transform: translate3d(0, 0, 0);
562
+ transform: translate3d(0, 0, 0);
563
+ }
564
+
565
+ to {
566
+ -webkit-transform: translate3d(-100%, 0, 0);
567
+ transform: translate3d(-100%, 0, 0);
568
+ }
569
+ }
570
+
571
+ @keyframes slideToLeft {
572
+ from {
573
+ -webkit-transform: translate3d(0, 0, 0);
574
+ transform: translate3d(0, 0, 0);
575
+ }
576
+
577
+ to {
578
+ -webkit-transform: translate3d(-100%, 0, 0);
579
+ transform: translate3d(-100%, 0, 0);
580
+ }
581
+ }
582
+
583
+ @-webkit-keyframes slideToRight {
584
+ from {
585
+ -webkit-transform: translate3d(0, 0, 0);
586
+ transform: translate3d(0, 0, 0);
587
+ }
588
+
589
+ to {
590
+ -webkit-transform: translate3d(100%, 0, 0);
591
+ transform: translate3d(100%, 0, 0);
592
+ }
593
+ }
594
+
595
+ @keyframes slideToRight {
596
+ from {
597
+ -webkit-transform: translate3d(0, 0, 0);
598
+ transform: translate3d(0, 0, 0);
599
+ }
600
+
601
+ to {
602
+ -webkit-transform: translate3d(100%, 0, 0);
603
+ transform: translate3d(100%, 0, 0);
604
+ }
605
+ }
606
+
607
+ .custom-slider-container {
608
+ --content-background-color: #00000000 !important;
609
+ }
610
+
611
+ .custom-slider-container .awssld__content>* {
612
+ width: 100%;
613
+ height: 100%;
614
+ }
615
+
616
+ .custom-slider-container .awssld__controls button {
617
+ padding: 2.4rem;
618
+ width: fit-content;
619
+ height: fit-content;
620
+ top: 50%;
621
+ transform: translateY(-50%);
622
+ }
@@ -0,0 +1,91 @@
1
+ import React, { CSSProperties, ReactNode } from 'react';
2
+ import AwesomeSlider from "react-awesome-slider";
3
+ import "react-awesome-slider/dist/styles.css";
4
+ import "react-awesome-slider/dist/custom-animations/scale-out-animation.css";
5
+ import "react-awesome-slider/dist/custom-animations/fold-out-animation.css";
6
+ import "react-awesome-slider/dist/custom-animations/cube-animation.css";
7
+ import "react-awesome-slider/dist/custom-animations/fall-animation.css";
8
+ import { Winicon } from '../wini-icon/winicon';
9
+
10
+ interface CarouselProps {
11
+ id?: string,
12
+ children?: Array<ReactNode>,
13
+ autoPlay?: boolean,
14
+ /** default: 2000ms */
15
+ duration?: number,
16
+ className?: string,
17
+ iconSize?: number | string,
18
+ iconColor?: string,
19
+ prevButton?: ReactNode,
20
+ nextButton?: ReactNode,
21
+ style?: CSSProperties,
22
+ buttons?: boolean,
23
+ onChage?: (i: number) => void,
24
+ animation?: "scaleOut" | "cubeAnimation" | "foldOut" | "fall";
25
+ }
26
+
27
+ interface SliderState {
28
+ page: number
29
+ }
30
+
31
+ export class Carousel extends React.Component<CarouselProps, SliderState> {
32
+ private intervalPlay: any
33
+ constructor(props: CarouselProps) {
34
+ super(props)
35
+ props.buttons ??= true
36
+ this.state = {
37
+ page: 0
38
+ }
39
+ this.autoPlay = this.autoPlay.bind(this)
40
+ this.nextPage = this.nextPage.bind(this)
41
+ this.previousPage = this.previousPage.bind(this)
42
+ }
43
+
44
+ nextPage = () => {
45
+ let index = this.state?.page ?? 0;
46
+ if (this.props?.children && (index + 1) < this.props.children.length) {
47
+ this.setState({ page: index + 1 })
48
+ if (this.props.onChage) this.props.onChage(index + 1)
49
+ }
50
+ }
51
+
52
+ previousPage = () => {
53
+ let index = this.state?.page ?? 0;
54
+ if (this.props?.children && index > 0) {
55
+ this.setState({ page: index - 1 })
56
+ if (this.props.onChage) this.props.onChage(index - 1)
57
+ }
58
+ }
59
+
60
+ private autoPlay = () => {
61
+ let index = this.state?.page ?? 0;
62
+ if (this.props?.children && (index + 1) === this.props.children.length)
63
+ index = -1
64
+ this.setState({ page: index + 1 })
65
+ if (this.props.onChage) this.props.onChage(index + 1)
66
+ }
67
+
68
+ componentDidMount(): void {
69
+ if (this.props.autoPlay) this.intervalPlay = setInterval(this.autoPlay, this.props.duration ?? 2000)
70
+ }
71
+
72
+ componentDidUpdate(prevProps: Readonly<CarouselProps>): void {
73
+ if (this.props.autoPlay !== prevProps.autoPlay && !this.props.autoPlay) clearInterval(this.intervalPlay)
74
+ }
75
+
76
+ render() {
77
+ return <AwesomeSlider
78
+ animation={this.props.animation}
79
+ style={this.props.style}
80
+ className={`custom-slider-container ${this.props.className ?? ''}`}
81
+ selected={this.state.page}
82
+ bullets={false}
83
+ buttons={this.props.buttons ? (this.props.children && this.props.children?.length > 1) : false}
84
+ organicArrows={false}
85
+ buttonContentLeft={this.props.prevButton ?? <Winicon src={"fill/arrows/circle-ctrl-left"} size={"2.4rem"} color={this.props.iconColor ?? "var(--neutral-absolute-background-color)"} />}
86
+ buttonContentRight={this.props.nextButton ?? <Winicon src={"fill/arrows/circle-ctrl-right"} size={"2.4rem"} color={this.props.iconColor ?? "var(--neutral-absolute-background-color)"} />}
87
+ >
88
+ {this.props.children}
89
+ </AwesomeSlider>
90
+ }
91
+ }