mevebu 1.9.0 → 1.11.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.
- package/README.md +9 -8
- package/mevebu/app/mevebu.js +131 -4
- package/mevebu/app/tailwind.css +221 -0
- package/mevebu/libs/js/core.js +1 -1
- package/mevebu/libs/js/files.js +125 -0
- package/mevebu/libs/js/icons.js +3 -2
- package/mevebu/libs/js/pdf-engine.js +67 -0
- package/mevebu/libs/js/registry.js +190 -9
- package/mevebu/libs/js/social-icons.js +32 -0
- package/mevebu/libs/js/tools/audio-converter.js +228 -0
- package/mevebu/libs/js/tools/image-to-pdf.js +251 -0
- package/mevebu/libs/js/tools/pdf-merge.js +158 -0
- package/mevebu/libs/js/tools/pdf-organizer.js +215 -0
- package/mevebu/libs/js/tools/pdf-split.js +198 -0
- package/mevebu/libs/js/tools/pdf-to-image.js +190 -0
- package/mevebu/libs/js/tools/pdf-to-text.js +172 -0
- package/mevebu/libs/js/tools/scientific-calculator.js +366 -189
- package/mevebu/libs/js/tools/subtitle-formatter.js +1 -1
- package/mevebu/libs/js/tools/svg-to-png.js +207 -0
- package/mevebu/libs/js/tools/text-to-pdf.js +182 -0
- package/mevebu/libs/js/tools/video-converter.js +316 -0
- package/mevebu/libs/js/vendor/mathjs.LICENSE.txt +34 -0
- package/mevebu/libs/js/vendor/mathjs.min.js +3 -0
- package/mevebu/libs/js/vendor/pdf-lib.LICENSE.md +21 -0
- package/mevebu/libs/js/vendor/pdf-lib.min.js +16 -0
- package/mevebu/libs/js/vendor/pdf.min.mjs +21 -0
- package/mevebu/libs/js/vendor/pdf.worker.min.mjs +21 -0
- package/mevebu/libs/js/vendor/pdfjs.LICENSE +177 -0
- package/package.json +7 -2
package/mevebu/app/tailwind.css
CHANGED
|
@@ -13,6 +13,10 @@
|
|
|
13
13
|
--text-lg--line-height: 1.35;
|
|
14
14
|
--text-xl: 22px;
|
|
15
15
|
--text-xl--line-height: 1.3;
|
|
16
|
+
--text-2xl: 1.5rem;
|
|
17
|
+
--text-2xl--line-height: calc(2 / 1.5);
|
|
18
|
+
--text-3xl: 1.875rem;
|
|
19
|
+
--text-3xl--line-height: calc(2.25 / 1.875);
|
|
16
20
|
--font-weight-medium: 500;
|
|
17
21
|
--font-weight-semibold: 600;
|
|
18
22
|
--font-weight-bold: 700;
|
|
@@ -193,6 +197,9 @@
|
|
|
193
197
|
.collapse {
|
|
194
198
|
visibility: collapse;
|
|
195
199
|
}
|
|
200
|
+
.invisible {
|
|
201
|
+
visibility: hidden;
|
|
202
|
+
}
|
|
196
203
|
.visible {
|
|
197
204
|
visibility: visible;
|
|
198
205
|
}
|
|
@@ -211,6 +218,9 @@
|
|
|
211
218
|
.inset-0 {
|
|
212
219
|
inset: 0px;
|
|
213
220
|
}
|
|
221
|
+
.start-1 {
|
|
222
|
+
inset-inline-start: calc(var(--spacing) * 1);
|
|
223
|
+
}
|
|
214
224
|
.end-1 {
|
|
215
225
|
inset-inline-end: calc(var(--spacing) * 1);
|
|
216
226
|
}
|
|
@@ -244,6 +254,9 @@
|
|
|
244
254
|
.z-90 {
|
|
245
255
|
z-index: 90;
|
|
246
256
|
}
|
|
257
|
+
.col-span-2 {
|
|
258
|
+
grid-column: span 2 / span 2;
|
|
259
|
+
}
|
|
247
260
|
.container {
|
|
248
261
|
width: 100%;
|
|
249
262
|
@media (width >= 40rem) {
|
|
@@ -316,6 +329,9 @@
|
|
|
316
329
|
.mt-5 {
|
|
317
330
|
margin-top: calc(var(--spacing) * 5);
|
|
318
331
|
}
|
|
332
|
+
.mt-7 {
|
|
333
|
+
margin-top: calc(var(--spacing) * 7);
|
|
334
|
+
}
|
|
319
335
|
.mt-8 {
|
|
320
336
|
margin-top: calc(var(--spacing) * 8);
|
|
321
337
|
}
|
|
@@ -361,6 +377,9 @@
|
|
|
361
377
|
.block {
|
|
362
378
|
display: block;
|
|
363
379
|
}
|
|
380
|
+
.contents {
|
|
381
|
+
display: contents;
|
|
382
|
+
}
|
|
364
383
|
.flex {
|
|
365
384
|
display: flex;
|
|
366
385
|
}
|
|
@@ -379,17 +398,36 @@
|
|
|
379
398
|
.table {
|
|
380
399
|
display: table;
|
|
381
400
|
}
|
|
401
|
+
.table-cell {
|
|
402
|
+
display: table-cell;
|
|
403
|
+
}
|
|
382
404
|
.aspect-\[4\/3\] {
|
|
383
405
|
aspect-ratio: 4/3;
|
|
384
406
|
}
|
|
407
|
+
.size-3 {
|
|
408
|
+
width: calc(var(--spacing) * 3);
|
|
409
|
+
height: calc(var(--spacing) * 3);
|
|
410
|
+
}
|
|
411
|
+
.size-3\.5 {
|
|
412
|
+
width: calc(var(--spacing) * 3.5);
|
|
413
|
+
height: calc(var(--spacing) * 3.5);
|
|
414
|
+
}
|
|
385
415
|
.size-4 {
|
|
386
416
|
width: calc(var(--spacing) * 4);
|
|
387
417
|
height: calc(var(--spacing) * 4);
|
|
388
418
|
}
|
|
419
|
+
.size-5 {
|
|
420
|
+
width: calc(var(--spacing) * 5);
|
|
421
|
+
height: calc(var(--spacing) * 5);
|
|
422
|
+
}
|
|
389
423
|
.size-6 {
|
|
390
424
|
width: calc(var(--spacing) * 6);
|
|
391
425
|
height: calc(var(--spacing) * 6);
|
|
392
426
|
}
|
|
427
|
+
.size-7 {
|
|
428
|
+
width: calc(var(--spacing) * 7);
|
|
429
|
+
height: calc(var(--spacing) * 7);
|
|
430
|
+
}
|
|
393
431
|
.size-8 {
|
|
394
432
|
width: calc(var(--spacing) * 8);
|
|
395
433
|
height: calc(var(--spacing) * 8);
|
|
@@ -402,6 +440,14 @@
|
|
|
402
440
|
width: calc(var(--spacing) * 11);
|
|
403
441
|
height: calc(var(--spacing) * 11);
|
|
404
442
|
}
|
|
443
|
+
.size-12 {
|
|
444
|
+
width: calc(var(--spacing) * 12);
|
|
445
|
+
height: calc(var(--spacing) * 12);
|
|
446
|
+
}
|
|
447
|
+
.size-14 {
|
|
448
|
+
width: calc(var(--spacing) * 14);
|
|
449
|
+
height: calc(var(--spacing) * 14);
|
|
450
|
+
}
|
|
405
451
|
.size-16 {
|
|
406
452
|
width: calc(var(--spacing) * 16);
|
|
407
453
|
height: calc(var(--spacing) * 16);
|
|
@@ -414,6 +460,10 @@
|
|
|
414
460
|
width: 15px;
|
|
415
461
|
height: 15px;
|
|
416
462
|
}
|
|
463
|
+
.size-\[17px\] {
|
|
464
|
+
width: 17px;
|
|
465
|
+
height: 17px;
|
|
466
|
+
}
|
|
417
467
|
.size-\[18px\] {
|
|
418
468
|
width: 18px;
|
|
419
469
|
height: 18px;
|
|
@@ -456,6 +506,9 @@
|
|
|
456
506
|
.h-14 {
|
|
457
507
|
height: calc(var(--spacing) * 14);
|
|
458
508
|
}
|
|
509
|
+
.h-24 {
|
|
510
|
+
height: calc(var(--spacing) * 24);
|
|
511
|
+
}
|
|
459
512
|
.h-\[22px\] {
|
|
460
513
|
height: 22px;
|
|
461
514
|
}
|
|
@@ -480,9 +533,15 @@
|
|
|
480
533
|
.h-full {
|
|
481
534
|
height: 100%;
|
|
482
535
|
}
|
|
536
|
+
.h-px {
|
|
537
|
+
height: 1px;
|
|
538
|
+
}
|
|
483
539
|
.max-h-80 {
|
|
484
540
|
max-height: calc(var(--spacing) * 80);
|
|
485
541
|
}
|
|
542
|
+
.max-h-\[320px\] {
|
|
543
|
+
max-height: 320px;
|
|
544
|
+
}
|
|
486
545
|
.max-h-\[340px\] {
|
|
487
546
|
max-height: 340px;
|
|
488
547
|
}
|
|
@@ -498,6 +557,9 @@
|
|
|
498
557
|
.min-h-7 {
|
|
499
558
|
min-height: calc(var(--spacing) * 7);
|
|
500
559
|
}
|
|
560
|
+
.min-h-8 {
|
|
561
|
+
min-height: calc(var(--spacing) * 8);
|
|
562
|
+
}
|
|
501
563
|
.min-h-11 {
|
|
502
564
|
min-height: calc(var(--spacing) * 11);
|
|
503
565
|
}
|
|
@@ -507,9 +569,15 @@
|
|
|
507
569
|
.min-h-40 {
|
|
508
570
|
min-height: calc(var(--spacing) * 40);
|
|
509
571
|
}
|
|
572
|
+
.min-h-\[1\.2em\] {
|
|
573
|
+
min-height: 1.2em;
|
|
574
|
+
}
|
|
510
575
|
.min-h-\[22px\] {
|
|
511
576
|
min-height: 22px;
|
|
512
577
|
}
|
|
578
|
+
.min-h-\[56px\] {
|
|
579
|
+
min-height: 56px;
|
|
580
|
+
}
|
|
513
581
|
.min-h-\[120px\] {
|
|
514
582
|
min-height: 120px;
|
|
515
583
|
}
|
|
@@ -552,6 +620,9 @@
|
|
|
552
620
|
.w-\[min\(640px\,100\%\)\] {
|
|
553
621
|
width: min(640px, 100%);
|
|
554
622
|
}
|
|
623
|
+
.w-auto {
|
|
624
|
+
width: auto;
|
|
625
|
+
}
|
|
555
626
|
.w-full {
|
|
556
627
|
width: 100%;
|
|
557
628
|
}
|
|
@@ -579,6 +650,9 @@
|
|
|
579
650
|
.max-w-\[62ch\] {
|
|
580
651
|
max-width: 62ch;
|
|
581
652
|
}
|
|
653
|
+
.max-w-\[64ch\] {
|
|
654
|
+
max-width: 64ch;
|
|
655
|
+
}
|
|
582
656
|
.max-w-\[340px\] {
|
|
583
657
|
max-width: 340px;
|
|
584
658
|
}
|
|
@@ -588,6 +662,9 @@
|
|
|
588
662
|
.max-w-\[var\(--bench\)\] {
|
|
589
663
|
max-width: var(--bench);
|
|
590
664
|
}
|
|
665
|
+
.max-w-full {
|
|
666
|
+
max-width: 100%;
|
|
667
|
+
}
|
|
591
668
|
.min-w-0 {
|
|
592
669
|
min-width: 0px;
|
|
593
670
|
}
|
|
@@ -603,6 +680,9 @@
|
|
|
603
680
|
.shrink {
|
|
604
681
|
flex-shrink: 1;
|
|
605
682
|
}
|
|
683
|
+
.grow {
|
|
684
|
+
flex-grow: 1;
|
|
685
|
+
}
|
|
606
686
|
.border-collapse {
|
|
607
687
|
border-collapse: collapse;
|
|
608
688
|
}
|
|
@@ -621,6 +701,15 @@
|
|
|
621
701
|
.scale-\[0\.97\] {
|
|
622
702
|
scale: 0.97;
|
|
623
703
|
}
|
|
704
|
+
.-rotate-90 {
|
|
705
|
+
rotate: calc(90deg * -1);
|
|
706
|
+
}
|
|
707
|
+
.rotate-90 {
|
|
708
|
+
rotate: 90deg;
|
|
709
|
+
}
|
|
710
|
+
.rotate-180 {
|
|
711
|
+
rotate: 180deg;
|
|
712
|
+
}
|
|
624
713
|
.transform {
|
|
625
714
|
transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
|
|
626
715
|
}
|
|
@@ -645,15 +734,27 @@
|
|
|
645
734
|
.\[grid-template-columns\:88px_minmax\(0\,1fr\)_62px\] {
|
|
646
735
|
grid-template-columns: 88px minmax(0,1fr) 62px;
|
|
647
736
|
}
|
|
737
|
+
.\[grid-template-columns\:minmax\(0\,1fr\)_auto\] {
|
|
738
|
+
grid-template-columns: minmax(0,1fr) auto;
|
|
739
|
+
}
|
|
648
740
|
.\[grid-template-columns\:minmax\(90px\,34\%\)_minmax\(0\,1fr\)\] {
|
|
649
741
|
grid-template-columns: minmax(90px,34%) minmax(0,1fr);
|
|
650
742
|
}
|
|
743
|
+
.\[grid-template-columns\:repeat\(96\,minmax\(0\,1fr\)\)\] {
|
|
744
|
+
grid-template-columns: repeat(96,minmax(0,1fr));
|
|
745
|
+
}
|
|
651
746
|
.\[grid-template-columns\:repeat\(auto-fill\,minmax\(92px\,1fr\)\)\] {
|
|
652
747
|
grid-template-columns: repeat(auto-fill,minmax(92px,1fr));
|
|
653
748
|
}
|
|
749
|
+
.\[grid-template-columns\:repeat\(auto-fill\,minmax\(150px\,1fr\)\)\] {
|
|
750
|
+
grid-template-columns: repeat(auto-fill,minmax(150px,1fr));
|
|
751
|
+
}
|
|
654
752
|
.\[grid-template-columns\:repeat\(auto-fill\,minmax\(160px\,1fr\)\)\] {
|
|
655
753
|
grid-template-columns: repeat(auto-fill,minmax(160px,1fr));
|
|
656
754
|
}
|
|
755
|
+
.\[grid-template-columns\:repeat\(auto-fill\,minmax\(170px\,1fr\)\)\] {
|
|
756
|
+
grid-template-columns: repeat(auto-fill,minmax(170px,1fr));
|
|
757
|
+
}
|
|
657
758
|
.\[grid-template-columns\:repeat\(auto-fit\,minmax\(96px\,1fr\)\)\] {
|
|
658
759
|
grid-template-columns: repeat(auto-fit,minmax(96px,1fr));
|
|
659
760
|
}
|
|
@@ -666,6 +767,9 @@
|
|
|
666
767
|
.grid-cols-2 {
|
|
667
768
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
668
769
|
}
|
|
770
|
+
.grid-cols-4 {
|
|
771
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
772
|
+
}
|
|
669
773
|
.grid-cols-\[minmax\(0\,1fr\)_auto\] {
|
|
670
774
|
grid-template-columns: minmax(0,1fr) auto;
|
|
671
775
|
}
|
|
@@ -690,6 +794,9 @@
|
|
|
690
794
|
.items-center {
|
|
691
795
|
align-items: center;
|
|
692
796
|
}
|
|
797
|
+
.items-end {
|
|
798
|
+
align-items: flex-end;
|
|
799
|
+
}
|
|
693
800
|
.items-start {
|
|
694
801
|
align-items: flex-start;
|
|
695
802
|
}
|
|
@@ -791,6 +898,9 @@
|
|
|
791
898
|
.rounded {
|
|
792
899
|
border-radius: 0.25rem;
|
|
793
900
|
}
|
|
901
|
+
.rounded-\[1px\] {
|
|
902
|
+
border-radius: 1px;
|
|
903
|
+
}
|
|
794
904
|
.rounded-\[3px\] {
|
|
795
905
|
border-radius: 3px;
|
|
796
906
|
}
|
|
@@ -913,6 +1023,12 @@
|
|
|
913
1023
|
.bg-jade-soft {
|
|
914
1024
|
background-color: var(--jade-soft);
|
|
915
1025
|
}
|
|
1026
|
+
.bg-jade\/70 {
|
|
1027
|
+
background-color: var(--jade);
|
|
1028
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1029
|
+
background-color: color-mix(in oklab, var(--jade) 70%, transparent);
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
916
1032
|
.bg-orbit {
|
|
917
1033
|
background-color: var(--orbit);
|
|
918
1034
|
}
|
|
@@ -937,9 +1053,15 @@
|
|
|
937
1053
|
.bg-\[image\:var\(--caret\)\] {
|
|
938
1054
|
background-image: var(--caret);
|
|
939
1055
|
}
|
|
1056
|
+
.bg-\[repeating-conic-gradient\(\#0000_0\%_25\%\,var\(--deck-2\)_0\%_50\%\)\] {
|
|
1057
|
+
background-image: repeating-conic-gradient(#0000 0% 25%,var(--deck-2) 0% 50%);
|
|
1058
|
+
}
|
|
940
1059
|
.bg-\[length\:14px\] {
|
|
941
1060
|
background-size: 14px;
|
|
942
1061
|
}
|
|
1062
|
+
.bg-\[length\:16px_16px\] {
|
|
1063
|
+
background-size: 16px 16px;
|
|
1064
|
+
}
|
|
943
1065
|
.bg-\[position\:right_12px_center\] {
|
|
944
1066
|
background-position: right 12px center;
|
|
945
1067
|
}
|
|
@@ -949,6 +1071,9 @@
|
|
|
949
1071
|
.object-contain {
|
|
950
1072
|
object-fit: contain;
|
|
951
1073
|
}
|
|
1074
|
+
.object-cover {
|
|
1075
|
+
object-fit: cover;
|
|
1076
|
+
}
|
|
952
1077
|
.p-0 {
|
|
953
1078
|
padding: 0px;
|
|
954
1079
|
}
|
|
@@ -964,9 +1089,18 @@
|
|
|
964
1089
|
.p-2 {
|
|
965
1090
|
padding: calc(var(--spacing) * 2);
|
|
966
1091
|
}
|
|
1092
|
+
.p-2\.5 {
|
|
1093
|
+
padding: calc(var(--spacing) * 2.5);
|
|
1094
|
+
}
|
|
1095
|
+
.p-3 {
|
|
1096
|
+
padding: calc(var(--spacing) * 3);
|
|
1097
|
+
}
|
|
967
1098
|
.p-3\.5 {
|
|
968
1099
|
padding: calc(var(--spacing) * 3.5);
|
|
969
1100
|
}
|
|
1101
|
+
.p-4 {
|
|
1102
|
+
padding: calc(var(--spacing) * 4);
|
|
1103
|
+
}
|
|
970
1104
|
.p-5 {
|
|
971
1105
|
padding: calc(var(--spacing) * 5);
|
|
972
1106
|
}
|
|
@@ -988,6 +1122,15 @@
|
|
|
988
1122
|
.p-\[var\(--card-pad\)\] {
|
|
989
1123
|
padding: var(--card-pad);
|
|
990
1124
|
}
|
|
1125
|
+
.px-0 {
|
|
1126
|
+
padding-inline: 0px;
|
|
1127
|
+
}
|
|
1128
|
+
.px-1 {
|
|
1129
|
+
padding-inline: var(--spacing);
|
|
1130
|
+
}
|
|
1131
|
+
.px-1\.5 {
|
|
1132
|
+
padding-inline: calc(var(--spacing) * 1.5);
|
|
1133
|
+
}
|
|
991
1134
|
.px-2 {
|
|
992
1135
|
padding-inline: calc(var(--spacing) * 2);
|
|
993
1136
|
}
|
|
@@ -1024,6 +1167,9 @@
|
|
|
1024
1167
|
.px-\[var\(--margin\)\] {
|
|
1025
1168
|
padding-inline: var(--margin);
|
|
1026
1169
|
}
|
|
1170
|
+
.py-0\.5 {
|
|
1171
|
+
padding-block: calc(var(--spacing) * 0.5);
|
|
1172
|
+
}
|
|
1027
1173
|
.py-1 {
|
|
1028
1174
|
padding-block: var(--spacing);
|
|
1029
1175
|
}
|
|
@@ -1156,10 +1302,18 @@
|
|
|
1156
1302
|
.font-sans {
|
|
1157
1303
|
font-family: var(--sans);
|
|
1158
1304
|
}
|
|
1305
|
+
.text-2xl {
|
|
1306
|
+
font-size: var(--text-2xl);
|
|
1307
|
+
line-height: var(--tw-leading, var(--text-2xl--line-height));
|
|
1308
|
+
}
|
|
1159
1309
|
.text-2xs {
|
|
1160
1310
|
font-size: var(--text-2xs);
|
|
1161
1311
|
line-height: var(--tw-leading, var(--text-2xs--line-height));
|
|
1162
1312
|
}
|
|
1313
|
+
.text-3xl {
|
|
1314
|
+
font-size: var(--text-3xl);
|
|
1315
|
+
line-height: var(--tw-leading, var(--text-3xl--line-height));
|
|
1316
|
+
}
|
|
1163
1317
|
.text-base {
|
|
1164
1318
|
font-size: var(--text-base);
|
|
1165
1319
|
line-height: var(--tw-leading, var(--text-base--line-height));
|
|
@@ -1199,14 +1353,29 @@
|
|
|
1199
1353
|
.text-\[0\.92em\] {
|
|
1200
1354
|
font-size: 0.92em;
|
|
1201
1355
|
}
|
|
1356
|
+
.text-\[clamp\(34px\,6vw\,52px\)\] {
|
|
1357
|
+
font-size: clamp(34px, 6vw, 52px);
|
|
1358
|
+
}
|
|
1202
1359
|
.leading-\[1\.5\] {
|
|
1203
1360
|
--tw-leading: 1.5;
|
|
1204
1361
|
line-height: 1.5;
|
|
1205
1362
|
}
|
|
1363
|
+
.leading-\[1\.6\] {
|
|
1364
|
+
--tw-leading: 1.6;
|
|
1365
|
+
line-height: 1.6;
|
|
1366
|
+
}
|
|
1206
1367
|
.leading-\[1\.45\] {
|
|
1207
1368
|
--tw-leading: 1.45;
|
|
1208
1369
|
line-height: 1.45;
|
|
1209
1370
|
}
|
|
1371
|
+
.leading-\[1\.55\] {
|
|
1372
|
+
--tw-leading: 1.55;
|
|
1373
|
+
line-height: 1.55;
|
|
1374
|
+
}
|
|
1375
|
+
.leading-\[1\.65\] {
|
|
1376
|
+
--tw-leading: 1.65;
|
|
1377
|
+
line-height: 1.65;
|
|
1378
|
+
}
|
|
1210
1379
|
.leading-normal {
|
|
1211
1380
|
--tw-leading: var(--leading-normal);
|
|
1212
1381
|
line-height: var(--leading-normal);
|
|
@@ -1231,6 +1400,10 @@
|
|
|
1231
1400
|
--tw-tracking: -0.02em;
|
|
1232
1401
|
letter-spacing: -0.02em;
|
|
1233
1402
|
}
|
|
1403
|
+
.tracking-\[-0\.03em\] {
|
|
1404
|
+
--tw-tracking: -0.03em;
|
|
1405
|
+
letter-spacing: -0.03em;
|
|
1406
|
+
}
|
|
1234
1407
|
.tracking-\[-0\.025em\] {
|
|
1235
1408
|
--tw-tracking: -0.025em;
|
|
1236
1409
|
letter-spacing: -0.025em;
|
|
@@ -1239,6 +1412,10 @@
|
|
|
1239
1412
|
--tw-tracking: -0.035em;
|
|
1240
1413
|
letter-spacing: -0.035em;
|
|
1241
1414
|
}
|
|
1415
|
+
.tracking-\[0\.06em\] {
|
|
1416
|
+
--tw-tracking: 0.06em;
|
|
1417
|
+
letter-spacing: 0.06em;
|
|
1418
|
+
}
|
|
1242
1419
|
.tracking-\[0\.08em\] {
|
|
1243
1420
|
--tw-tracking: 0.08em;
|
|
1244
1421
|
letter-spacing: 0.08em;
|
|
@@ -1297,13 +1474,25 @@
|
|
|
1297
1474
|
.uppercase {
|
|
1298
1475
|
text-transform: uppercase;
|
|
1299
1476
|
}
|
|
1477
|
+
.italic {
|
|
1478
|
+
font-style: italic;
|
|
1479
|
+
}
|
|
1300
1480
|
.tabular-nums {
|
|
1301
1481
|
--tw-numeric-spacing: tabular-nums;
|
|
1302
1482
|
font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
|
|
1303
1483
|
}
|
|
1484
|
+
.line-through {
|
|
1485
|
+
text-decoration-line: line-through;
|
|
1486
|
+
}
|
|
1304
1487
|
.no-underline {
|
|
1305
1488
|
text-decoration-line: none;
|
|
1306
1489
|
}
|
|
1490
|
+
.overline {
|
|
1491
|
+
text-decoration-line: overline;
|
|
1492
|
+
}
|
|
1493
|
+
.underline {
|
|
1494
|
+
text-decoration-line: underline;
|
|
1495
|
+
}
|
|
1307
1496
|
.underline-offset-\[3px\] {
|
|
1308
1497
|
text-underline-offset: 3px;
|
|
1309
1498
|
}
|
|
@@ -1360,6 +1549,10 @@
|
|
|
1360
1549
|
--tw-blur: blur(8px);
|
|
1361
1550
|
filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
|
|
1362
1551
|
}
|
|
1552
|
+
.grayscale {
|
|
1553
|
+
--tw-grayscale: grayscale(100%);
|
|
1554
|
+
filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
|
|
1555
|
+
}
|
|
1363
1556
|
.invert {
|
|
1364
1557
|
--tw-invert: invert(100%);
|
|
1365
1558
|
filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
|
|
@@ -1397,6 +1590,11 @@
|
|
|
1397
1590
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
1398
1591
|
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
1399
1592
|
}
|
|
1593
|
+
.transition-\[width\] {
|
|
1594
|
+
transition-property: width;
|
|
1595
|
+
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
1596
|
+
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
1597
|
+
}
|
|
1400
1598
|
.transition-colors {
|
|
1401
1599
|
transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
|
|
1402
1600
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
@@ -1438,6 +1636,9 @@
|
|
|
1438
1636
|
.\[image-rendering\:pixelated\] {
|
|
1439
1637
|
image-rendering: pixelated;
|
|
1440
1638
|
}
|
|
1639
|
+
.\[start\:end\] {
|
|
1640
|
+
start: end;
|
|
1641
|
+
}
|
|
1441
1642
|
.group-data-\[on\]\:text-ink:is(:where(.group)[data-on] *) {
|
|
1442
1643
|
color: var(--ink);
|
|
1443
1644
|
}
|
|
@@ -1474,6 +1675,13 @@
|
|
|
1474
1675
|
.focus-within\:border-jade:focus-within {
|
|
1475
1676
|
border-color: var(--jade);
|
|
1476
1677
|
}
|
|
1678
|
+
.focus-within\:ring-3:focus-within {
|
|
1679
|
+
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
1680
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
1681
|
+
}
|
|
1682
|
+
.focus-within\:ring-jade-soft:focus-within {
|
|
1683
|
+
--tw-ring-color: var(--jade-soft);
|
|
1684
|
+
}
|
|
1477
1685
|
@media (hover: hover) {
|
|
1478
1686
|
.hover\:border-danger:hover {
|
|
1479
1687
|
border-color: var(--danger);
|
|
@@ -1532,6 +1740,10 @@
|
|
|
1532
1740
|
.focus\:border-jade:focus {
|
|
1533
1741
|
border-color: var(--jade);
|
|
1534
1742
|
}
|
|
1743
|
+
.focus\:ring-0:focus {
|
|
1744
|
+
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
1745
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
1746
|
+
}
|
|
1535
1747
|
.focus\:ring-3:focus {
|
|
1536
1748
|
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
1537
1749
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
@@ -1571,9 +1783,15 @@
|
|
|
1571
1783
|
.disabled\:cursor-not-allowed:disabled {
|
|
1572
1784
|
cursor: not-allowed;
|
|
1573
1785
|
}
|
|
1786
|
+
.disabled\:opacity-40:disabled {
|
|
1787
|
+
opacity: 40%;
|
|
1788
|
+
}
|
|
1574
1789
|
.disabled\:opacity-45:disabled {
|
|
1575
1790
|
opacity: 45%;
|
|
1576
1791
|
}
|
|
1792
|
+
.disabled\:opacity-50:disabled {
|
|
1793
|
+
opacity: 50%;
|
|
1794
|
+
}
|
|
1577
1795
|
.has-checked\:border-jade:has(:checked) {
|
|
1578
1796
|
border-color: var(--jade);
|
|
1579
1797
|
}
|
|
@@ -1703,6 +1921,9 @@
|
|
|
1703
1921
|
.sm\:grid-cols-2 {
|
|
1704
1922
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
1705
1923
|
}
|
|
1924
|
+
.sm\:grid-cols-4 {
|
|
1925
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
1926
|
+
}
|
|
1706
1927
|
}
|
|
1707
1928
|
@media (width >= 45rem) {
|
|
1708
1929
|
.min-\[45rem\]\:flex {
|
package/mevebu/libs/js/core.js
CHANGED
|
@@ -750,7 +750,7 @@ export function blank(iconName, text) {
|
|
|
750
750
|
// ---------- version ----------
|
|
751
751
|
|
|
752
752
|
// Kept in one place. The CLI reads the same value from package.json.
|
|
753
|
-
export const VERSION = "1.
|
|
753
|
+
export const VERSION = "1.11.0";
|
|
754
754
|
export const PACKAGE_NAME = "mevebu";
|
|
755
755
|
export const REPO_SLUG = "mevebu/mevebu";
|
|
756
756
|
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// File plumbing shared by the converter tools: a drop target, a size label, a
|
|
2
|
+
// name without its extension, and an image decoder. Kept here so ten tools do
|
|
3
|
+
// not each grow their own copy.
|
|
4
|
+
import { el, icon } from "./core.js";
|
|
5
|
+
|
|
6
|
+
export function formatBytes(bytes) {
|
|
7
|
+
if (!bytes) return "0 B";
|
|
8
|
+
if (bytes < 1024) return `${bytes} B`;
|
|
9
|
+
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(bytes < 10240 ? 1 : 0)} KB`;
|
|
10
|
+
return `${(bytes / 1024 / 1024).toFixed(1)} MB`;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function baseName(name) {
|
|
14
|
+
return (name || "file").replace(/\.[^.]+$/, "") || "file";
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function extension(name) {
|
|
18
|
+
const match = /\.([^.]+)$/.exec(name || "");
|
|
19
|
+
return match ? match[1].toLowerCase() : "";
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** A dashed drop zone. Calls `onFiles` with a FileList or an array of files. */
|
|
23
|
+
export function dropzone({ label, hint = "or choose a file", accept = "", multiple = false, iconName = "image-up" }) {
|
|
24
|
+
const picker = el("input", { type: "file", accept, multiple, class: "hidden" });
|
|
25
|
+
const node = el(
|
|
26
|
+
"div",
|
|
27
|
+
{
|
|
28
|
+
class:
|
|
29
|
+
"grid cursor-pointer justify-items-center gap-1.5 rounded-r2 border border-dashed border-orbit-hard bg-deck-2 px-4 py-7 text-center transition-[border-color,background-color] duration-150 hover:border-jade focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-jade data-[drag]:border-jade data-[drag]:bg-jade-soft",
|
|
30
|
+
role: "button",
|
|
31
|
+
tabindex: "0",
|
|
32
|
+
"aria-label": label,
|
|
33
|
+
},
|
|
34
|
+
icon(iconName, "size-6 text-ink-3"),
|
|
35
|
+
el("p", { class: "text-sm font-semibold" }, label),
|
|
36
|
+
el("p", { class: "text-2xs text-ink-3" }, hint),
|
|
37
|
+
picker
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
let handler = () => {};
|
|
41
|
+
let depth = 0;
|
|
42
|
+
|
|
43
|
+
node.addEventListener("click", () => picker.click());
|
|
44
|
+
node.addEventListener("keydown", (event) => {
|
|
45
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
46
|
+
event.preventDefault();
|
|
47
|
+
picker.click();
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
picker.addEventListener("change", () => {
|
|
51
|
+
if (picker.files?.length) handler(picker.files);
|
|
52
|
+
picker.value = "";
|
|
53
|
+
});
|
|
54
|
+
node.addEventListener("dragenter", (event) => {
|
|
55
|
+
event.preventDefault();
|
|
56
|
+
depth++;
|
|
57
|
+
node.dataset.drag = "";
|
|
58
|
+
});
|
|
59
|
+
node.addEventListener("dragover", (event) => event.preventDefault());
|
|
60
|
+
node.addEventListener("dragleave", () => {
|
|
61
|
+
depth = Math.max(0, depth - 1);
|
|
62
|
+
if (!depth) delete node.dataset.drag;
|
|
63
|
+
});
|
|
64
|
+
node.addEventListener("drop", (event) => {
|
|
65
|
+
event.preventDefault();
|
|
66
|
+
depth = 0;
|
|
67
|
+
delete node.dataset.drag;
|
|
68
|
+
const files = Array.from(event.dataTransfer?.files ?? []);
|
|
69
|
+
if (files.length) handler(files);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
node.onFiles = (fn) => {
|
|
73
|
+
handler = fn;
|
|
74
|
+
};
|
|
75
|
+
node.picker = picker;
|
|
76
|
+
return node;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/** Decodes an image file, preferring createImageBitmap and falling back to <img>. */
|
|
80
|
+
export async function decodeImage(file) {
|
|
81
|
+
if (typeof createImageBitmap === "function") {
|
|
82
|
+
try {
|
|
83
|
+
return await createImageBitmap(file, { imageOrientation: "from-image" });
|
|
84
|
+
} catch {
|
|
85
|
+
// SVG and a few odd files only decode through an <img>.
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
const url = URL.createObjectURL(file);
|
|
89
|
+
try {
|
|
90
|
+
const image = new Image();
|
|
91
|
+
image.decoding = "sync";
|
|
92
|
+
await new Promise((resolve, reject) => {
|
|
93
|
+
image.onload = resolve;
|
|
94
|
+
image.onerror = () => reject(new Error("This file is not an image the browser can read."));
|
|
95
|
+
image.src = url;
|
|
96
|
+
});
|
|
97
|
+
return image;
|
|
98
|
+
} finally {
|
|
99
|
+
setTimeout(() => URL.revokeObjectURL(url), 1000);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export function imageSize(source) {
|
|
104
|
+
return {
|
|
105
|
+
width: source.width || source.naturalWidth || 0,
|
|
106
|
+
height: source.height || source.naturalHeight || 0,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export function canvasToBlob(canvas, type = "image/png", quality) {
|
|
111
|
+
return new Promise((resolve, reject) => {
|
|
112
|
+
canvas.toBlob(
|
|
113
|
+
(blob) => (blob ? resolve(blob) : reject(new Error("The browser could not write this file."))),
|
|
114
|
+
type,
|
|
115
|
+
quality
|
|
116
|
+
);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/** Sorts files by name with numbers read as numbers, so page-2 comes before page-10. */
|
|
121
|
+
export function naturalSort(files) {
|
|
122
|
+
return [...files].sort((a, b) =>
|
|
123
|
+
a.name.localeCompare(b.name, undefined, { numeric: true, sensitivity: "base" })
|
|
124
|
+
);
|
|
125
|
+
}
|
package/mevebu/libs/js/icons.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// GENERATED FILE, DO NOT EDIT.
|
|
2
|
-
// Source: lucide v1.
|
|
2
|
+
// Source: lucide v1.57.0 (ISC), icons/175 names from scripts/vendor-icons.mjs
|
|
3
3
|
// Regenerate with: npm run icons
|
|
4
4
|
|
|
5
5
|
const D = {
|
|
@@ -44,6 +44,8 @@ const D = {
|
|
|
44
44
|
"rotate-cw": [ ["path", { d: "M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8" }], ["path", { d: "M21 3v5h-5" }] ],
|
|
45
45
|
"download": [ ["path", { d: "M12 15V3" }], ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }], ["path", { d: "m7 10 5 5 5-5" }] ],
|
|
46
46
|
"upload": [ ["path", { d: "M12 3v12" }], ["path", { d: "m17 8-5-5-5 5" }], ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }] ],
|
|
47
|
+
"delete": [ [ "path", { d: "M10 5a2 2 0 0 0-1.344.519l-6.328 5.74a1 1 0 0 0 0 1.481l6.328 5.741A2 2 0 0 0 10 19h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2z" } ], ["path", { d: "m12 9 6 6" }], ["path", { d: "m18 9-6 6" }] ],
|
|
48
|
+
"scissors": [ ["circle", { cx: "6", cy: "6", r: "3" }], ["path", { d: "M8.12 8.12 12 12" }], ["path", { d: "M20 4 8.12 15.88" }], ["circle", { cx: "6", cy: "18", r: "3" }], ["path", { d: "M14.8 14.8 20 20" }] ],
|
|
47
49
|
"arrow-left-right": [ ["path", { d: "M8 3 4 7l4 4" }], ["path", { d: "M4 7h16" }], ["path", { d: "m16 21 4-4-4-4" }], ["path", { d: "M20 17H4" }] ],
|
|
48
50
|
"trash": [ ["path", { d: "M10 11v6" }], ["path", { d: "M14 11v6" }], ["path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6" }], ["path", { d: "M3 6h18" }], ["path", { d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" }] ],
|
|
49
51
|
"plus": [ ["path", { d: "M5 12h14" }], ["path", { d: "M12 5v14" }] ],
|
|
@@ -166,7 +168,6 @@ const D = {
|
|
|
166
168
|
"receipt": [ ["path", { d: "M12 17V7" }], ["path", { d: "M16 8h-6a2 2 0 0 0 0 4h4a2 2 0 0 1 0 4H8" }], [ "path", { d: "M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z" } ] ],
|
|
167
169
|
"banknote": [ ["rect", { width: "20", height: "12", x: "2", y: "6", rx: "2" }], ["circle", { cx: "12", cy: "12", r: "2" }], ["path", { d: "M6 12h.01M18 12h.01" }] ],
|
|
168
170
|
"package": [ [ "path", { d: "M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z" } ], ["path", { d: "M12 22V12" }], ["polyline", { points: "3.29 7 12 12 20.71 7" }], ["path", { d: "m7.5 4.27 9 5.15" }] ],
|
|
169
|
-
"film": [ ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2" }], ["path", { d: "M7 3v18" }], ["path", { d: "M3 7.5h4" }], ["path", { d: "M3 12h18" }], ["path", { d: "M3 16.5h4" }], ["path", { d: "M17 3v18" }], ["path", { d: "M17 7.5h4" }], ["path", { d: "M17 16.5h4" }] ],
|
|
170
171
|
"video": [ ["path", { d: "m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5" }], ["rect", { x: "2", y: "6", width: "14", height: "12", rx: "2" }] ],
|
|
171
172
|
"git-pull-request": [ ["circle", { cx: "18", cy: "18", r: "3" }], ["circle", { cx: "6", cy: "6", r: "3" }], ["path", { d: "M13 6h3a2 2 0 0 1 2 2v7" }], ["line", { x1: "6", x2: "6", y1: "9", y2: "21" }] ],
|
|
172
173
|
"weight": [ ["circle", { cx: "12", cy: "5", r: "3" }], [ "path", { d: "M6.5 8a2 2 0 0 0-1.905 1.46L2.1 18.5A2 2 0 0 0 4 21h16a2 2 0 0 0 1.925-2.54L19.4 9.5A2 2 0 0 0 17.48 8Z" } ] ],
|