@sl-material/sl-import 1.1.0 → 1.1.1

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/sl-import.es.js CHANGED
@@ -208,7 +208,7 @@ function getImportDialogStyles() {
208
208
  .icon-xiazai:before { content: "\\e629"; }
209
209
  .icon-tishi:before { content: "\\e62a"; }
210
210
 
211
- .import-dialog-vanilla-wrapper {
211
+ .sl-import-dialog-vanilla-wrapper {
212
212
  position: fixed;
213
213
  top: 0;
214
214
  left: 0;
@@ -217,7 +217,7 @@ function getImportDialogStyles() {
217
217
  z-index: 1000;
218
218
  }
219
219
 
220
- .import-dialog-vanilla-overlay {
220
+ .sl-import-dialog-vanilla-overlay {
221
221
  position: fixed;
222
222
  top: 0;
223
223
  left: 0;
@@ -231,7 +231,7 @@ function getImportDialogStyles() {
231
231
  overflow: auto;
232
232
  }
233
233
 
234
- .import-dialog-vanilla-modal {
234
+ .sl-import-dialog-vanilla-modal {
235
235
  padding: 20px 16px;
236
236
  position: relative;
237
237
  background-color: var(--sl-color-white);
@@ -244,7 +244,7 @@ function getImportDialogStyles() {
244
244
  pointer-events: auto;
245
245
  }
246
246
 
247
- .import-dialog-vanilla-header {
247
+ .sl-import-dialog-vanilla-header {
248
248
  display: flex;
249
249
  justify-content: space-between;
250
250
  align-items: center;
@@ -256,13 +256,13 @@ function getImportDialogStyles() {
256
256
  padding: 0px;
257
257
  }
258
258
 
259
- .import-dialog-vanilla-title {
259
+ .sl-import-dialog-vanilla-title {
260
260
  font-size: 16px;
261
261
  font-weight: 500;
262
262
  color: var(--sl-text-color);
263
263
  }
264
264
 
265
- .import-dialog-vanilla-close {
265
+ .sl-import-dialog-vanilla-close {
266
266
  font-size: 20px;
267
267
  color: var(--sl-text-color-thridary);
268
268
  cursor: pointer;
@@ -274,14 +274,14 @@ function getImportDialogStyles() {
274
274
 
275
275
 
276
276
 
277
- .import-dialog-vanilla-tabs {
277
+ .sl-import-dialog-vanilla-tabs {
278
278
  display: flex;
279
279
  margin-bottom: 8px;
280
280
  gap: 4px;
281
281
  border-bottom: 1px solid var(--sl-border-color);
282
282
  }
283
283
 
284
- .import-dialog-vanilla-tab {
284
+ .sl-import-dialog-vanilla-tab {
285
285
  padding: 0 16px;
286
286
  height: 32px;
287
287
  display: flex;
@@ -296,24 +296,24 @@ function getImportDialogStyles() {
296
296
  transition: all 0.3s;
297
297
  }
298
298
 
299
- .import-dialog-vanilla-tab:hover {
299
+ .sl-import-dialog-vanilla-tab:hover {
300
300
  color: var(--sl-color-primary);
301
301
  }
302
302
 
303
- .import-dialog-vanilla-tab.active {
303
+ .sl-import-dialog-vanilla-tab.active {
304
304
  background: var(--sl-color-primary);
305
305
  border-color: var(--sl-color-primary);
306
306
  color: var(--sl-color-white);
307
307
  }
308
308
 
309
- .import-dialog-vanilla-section {
309
+ .sl-import-dialog-vanilla-section {
310
310
  background: var(--slm-card-bg-color4);
311
311
  border-radius: 8px;
312
312
  padding: 8px 12px;
313
313
  margin-bottom: 8px;
314
314
  }
315
315
 
316
- .import-dialog-vanilla-section-title {
316
+ .sl-import-dialog-vanilla-section-title {
317
317
  font-size: 14px;
318
318
  font-weight: 500;
319
319
  color: var(--sl-text-color);
@@ -322,7 +322,7 @@ function getImportDialogStyles() {
322
322
  align-items: center;
323
323
  }
324
324
 
325
- .import-dialog-vanilla-tips-icon {
325
+ .sl-import-dialog-vanilla-tips-icon {
326
326
  width: 18px;
327
327
  height: 18px;
328
328
  background: #ECECEC;
@@ -331,28 +331,28 @@ function getImportDialogStyles() {
331
331
  align-items: center;
332
332
  justify-content: center;
333
333
  }
334
- .import-dialog-vanilla-tips-icon>i {
334
+ .sl-import-dialog-vanilla-tips-icon>i {
335
335
  font-size: 12px;
336
336
  font-weight:600;
337
337
  }
338
338
 
339
- .import-dialog-vanilla-tips-title {
339
+ .sl-import-dialog-vanilla-tips-title {
340
340
  font-size: 16px;
341
341
  margin-left:12px;
342
342
  }
343
343
 
344
- .import-dialog-vanilla-tips-content {
344
+ .sl-import-dialog-vanilla-tips-content {
345
345
  padding-left: 30px;
346
346
  }
347
347
 
348
- .import-dialog-vanilla-tip-item {
348
+ .sl-import-dialog-vanilla-tip-item {
349
349
  font-size: 14px;
350
350
  color: var(--sl-text-color-secondary);
351
351
  margin: 4px 0;
352
352
  line-height: 1.4;
353
353
  }
354
354
 
355
- .import-dialog-vanilla-btn {
355
+ .sl-import-dialog-vanilla-btn {
356
356
  display: inline-flex;
357
357
  align-items: center;
358
358
  justify-content: center;
@@ -368,17 +368,17 @@ function getImportDialogStyles() {
368
368
  transition: all 0.3s;
369
369
  }
370
370
 
371
- .import-dialog-vanilla-btn:hover {
371
+ .sl-import-dialog-vanilla-btn:hover {
372
372
  border-color: var(--sl-color-primary);
373
373
  color: var(--sl-color-primary);
374
374
  }
375
375
 
376
- .import-dialog-vanilla-btn:disabled {
376
+ .sl-import-dialog-vanilla-btn:disabled {
377
377
  opacity: 0.6;
378
378
  cursor: not-allowed;
379
379
  }
380
380
 
381
- .import-dialog-vanilla-btn-primary {
381
+ .sl-import-dialog-vanilla-btn-primary {
382
382
  background: var(--sl-color-primary);
383
383
  border-color: var(--sl-color-primary);
384
384
  color: var(--sl-color-white);
@@ -388,7 +388,7 @@ function getImportDialogStyles() {
388
388
  font-weight:500;
389
389
  }
390
390
 
391
- .import-dialog-vanilla-btn-primary:hover {
391
+ .sl-import-dialog-vanilla-btn-primary:hover {
392
392
  background: var(--slm-primary-color-hover);
393
393
  border-color: var(--slm-primary-color-hover);
394
394
  color: var(--sl-color-white);
@@ -396,35 +396,35 @@ function getImportDialogStyles() {
396
396
  }
397
397
 
398
398
 
399
- .import-dialog-vanilla-icon {
399
+ .sl-import-dialog-vanilla-icon {
400
400
  font-size: 14px;
401
401
  }
402
402
 
403
- .import-dialog-vanilla-setting-content {
403
+ .sl-import-dialog-vanilla-setting-content {
404
404
  display: flex;
405
405
  flex-direction: column;
406
406
  gap: 12px;
407
407
  }
408
408
 
409
- .import-dialog-vanilla-setting-item {
409
+ .sl-import-dialog-vanilla-setting-item {
410
410
  display: flex;
411
411
  align-items: center;
412
412
  justify-content: space-between;
413
413
  }
414
414
 
415
- .import-dialog-vanilla-setting-label {
415
+ .sl-import-dialog-vanilla-setting-label {
416
416
  min-width: 100px;
417
417
  color: var(--sl-text-color-primary);
418
418
  font-size: 14px;
419
419
  }
420
420
 
421
- .import-dialog-vanilla-setting-label.required::before {
421
+ .sl-import-dialog-vanilla-setting-label.required::before {
422
422
  content: "*";
423
423
  color: var(--sl-color-error);
424
424
  margin-right: 4px;
425
425
  }
426
426
 
427
- .import-dialog-vanilla-select {
427
+ .sl-import-dialog-vanilla-select {
428
428
  width: 200px;
429
429
  height: 28px;
430
430
  padding: 0 8px;
@@ -436,20 +436,20 @@ function getImportDialogStyles() {
436
436
  cursor: pointer;
437
437
  }
438
438
 
439
- .import-dialog-vanilla-select:focus {
439
+ .sl-import-dialog-vanilla-select:focus {
440
440
  border-color: var(--sl-color-primary);
441
441
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
442
442
  }
443
443
 
444
444
  /* Custom Select Component Styles */
445
- .import-dialog-vanilla-custom-select {
445
+ .sl-import-dialog-vanilla-custom-select {
446
446
  position: relative;
447
447
  width: 200px;
448
448
  height: 28px;
449
449
  font-size: 14px;
450
450
  }
451
451
 
452
- .import-dialog-vanilla-select-trigger {
452
+ .sl-import-dialog-vanilla-select-trigger {
453
453
  width: 100%;
454
454
  height: 100%;
455
455
  padding: 0 8px;
@@ -463,22 +463,22 @@ function getImportDialogStyles() {
463
463
  transition: all 0.3s;
464
464
  }
465
465
 
466
- .import-dialog-vanilla-select-trigger:hover {
466
+ .sl-import-dialog-vanilla-select-trigger:hover {
467
467
  border-color: var(--sl-color-primary);
468
468
  }
469
469
 
470
- .import-dialog-vanilla-select-trigger.active {
470
+ .sl-import-dialog-vanilla-select-trigger.active {
471
471
  border-color: var(--sl-color-primary);
472
472
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
473
473
  }
474
474
 
475
- .import-dialog-vanilla-select-trigger.disabled {
475
+ .sl-import-dialog-vanilla-select-trigger.disabled {
476
476
  background: #f5f5f5;
477
477
  cursor: not-allowed;
478
478
  opacity: 0.6;
479
479
  }
480
480
 
481
- .import-dialog-vanilla-select-value {
481
+ .sl-import-dialog-vanilla-select-value {
482
482
  flex: 1;
483
483
  overflow: hidden;
484
484
  text-overflow: ellipsis;
@@ -486,11 +486,11 @@ function getImportDialogStyles() {
486
486
  color: var(--sl-text-color-primary);
487
487
  }
488
488
 
489
- .import-dialog-vanilla-select-placeholder {
489
+ .sl-import-dialog-vanilla-select-placeholder {
490
490
  color: var(--sl-text-color-placeholder);
491
491
  }
492
492
 
493
- .import-dialog-vanilla-select-arrow {
493
+ .sl-import-dialog-vanilla-select-arrow {
494
494
  width: 0;
495
495
  height: 0;
496
496
  border-left: 4px solid transparent;
@@ -500,11 +500,11 @@ function getImportDialogStyles() {
500
500
  margin-left: 8px;
501
501
  }
502
502
 
503
- .import-dialog-vanilla-select-trigger.active .import-dialog-vanilla-select-arrow {
503
+ .sl-import-dialog-vanilla-select-trigger.active .sl-import-dialog-vanilla-select-arrow {
504
504
  transform: rotate(180deg);
505
505
  }
506
506
 
507
- .import-dialog-vanilla-select-dropdown {
507
+ .sl-import-dialog-vanilla-select-dropdown {
508
508
  position: absolute;
509
509
  top: 100%;
510
510
  left: 0;
@@ -523,13 +523,13 @@ function getImportDialogStyles() {
523
523
  padding: 4px 0;
524
524
  }
525
525
 
526
- .import-dialog-vanilla-select-dropdown.show {
526
+ .sl-import-dialog-vanilla-select-dropdown.show {
527
527
  opacity: 1;
528
528
  transform: translateY(0);
529
529
  pointer-events: auto;
530
530
  }
531
531
 
532
- .import-dialog-vanilla-select-option {
532
+ .sl-import-dialog-vanilla-select-option {
533
533
  padding: 0px 8px;
534
534
  cursor: pointer;
535
535
  transition: background-color 0.3s;
@@ -541,23 +541,23 @@ function getImportDialogStyles() {
541
541
  line-height: 34px;
542
542
  }
543
543
 
544
- .import-dialog-vanilla-select-option:hover {
544
+ .sl-import-dialog-vanilla-select-option:hover {
545
545
  background: var(--sl-fill-color-light);
546
546
  }
547
547
 
548
- .import-dialog-vanilla-select-option.selected {
548
+ .sl-import-dialog-vanilla-select-option.selected {
549
549
  background: var(--sl-color-primary-light-9);
550
550
  color: var(--sl-color-primary);
551
551
  font-weight: 500;
552
552
  }
553
553
 
554
- .import-dialog-vanilla-radio-group {
554
+ .sl-import-dialog-vanilla-radio-group {
555
555
  display: flex;
556
556
  gap: 20px;
557
557
  flex-wrap: wrap;
558
558
  }
559
559
 
560
- .import-dialog-vanilla-radio {
560
+ .sl-import-dialog-vanilla-radio {
561
561
  display: flex;
562
562
  align-items: center;
563
563
  gap: 8px;
@@ -566,7 +566,7 @@ function getImportDialogStyles() {
566
566
  color: var(--sl-text-color-secondary);
567
567
  }
568
568
 
569
- .import-dialog-vanilla-radio input[type="radio"] {
569
+ .sl-import-dialog-vanilla-radio input[type="radio"] {
570
570
  appearance: none;
571
571
  width: 16px;
572
572
  height: 16px;
@@ -577,15 +577,15 @@ function getImportDialogStyles() {
577
577
  cursor: pointer;
578
578
  margin: 0;
579
579
  }
580
- .import-dialog-vanilla-radio input[type="radio"]:hover {
580
+ .sl-import-dialog-vanilla-radio input[type="radio"]:hover {
581
581
  border-color: var(--sl-color-primary);
582
582
  }
583
- .import-dialog-vanilla-radio input[type="radio"]:checked {
583
+ .sl-import-dialog-vanilla-radio input[type="radio"]:checked {
584
584
  border-color: var(--sl-color-primary);
585
585
  border-width: 5px;
586
586
  }
587
587
 
588
- .import-dialog-vanilla-radio input[type="radio"]:checked::before {
588
+ .sl-import-dialog-vanilla-radio input[type="radio"]:checked::before {
589
589
  content: '';
590
590
  width: 6px;
591
591
  height: 6px;
@@ -596,18 +596,18 @@ function getImportDialogStyles() {
596
596
  transform: translate(-50%, -50%);
597
597
  }
598
598
 
599
- .import-dialog-vanilla-radio span {
599
+ .sl-import-dialog-vanilla-radio span {
600
600
  color: var(--sl-text-color-primary);
601
601
  font-size: 14px;
602
602
  }
603
603
 
604
- .import-dialog-vanilla-date-range {
604
+ .sl-import-dialog-vanilla-date-range {
605
605
  display: flex;
606
606
  align-items: center;
607
607
  gap: 8px;
608
608
  }
609
609
 
610
- .import-dialog-vanilla-date-input {
610
+ .sl-import-dialog-vanilla-date-input {
611
611
  width: 150px;
612
612
  height: 28px;
613
613
  padding: 0 8px;
@@ -617,22 +617,22 @@ function getImportDialogStyles() {
617
617
  outline: none;
618
618
  }
619
619
 
620
- .import-dialog-vanilla-date-input:focus {
620
+ .sl-import-dialog-vanilla-date-input:focus {
621
621
  border-color: var(--sl-color-primary);
622
622
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
623
623
  }
624
624
 
625
- .import-dialog-vanilla-date-separator {
625
+ .sl-import-dialog-vanilla-date-separator {
626
626
  color: #999;
627
627
  }
628
628
 
629
629
  /* 上传区域包装器 - 文件列表和上传区域横向排列 */
630
- .import-dialog-vanilla-upload-wrapper {
630
+ .sl-import-dialog-vanilla-upload-wrapper {
631
631
  display: flex;
632
632
  flex-direction: column;
633
633
  }
634
634
 
635
- .import-dialog-vanilla-upload-area {
635
+ .sl-import-dialog-vanilla-upload-area {
636
636
  min-height: 176px;
637
637
  cursor: pointer;
638
638
  transition: all 0.3s;
@@ -642,21 +642,21 @@ function getImportDialogStyles() {
642
642
  position: relative;
643
643
  }
644
644
 
645
- .import-dialog-vanilla-upload-area:hover {
645
+ .sl-import-dialog-vanilla-upload-area:hover {
646
646
  border-color: var(--sl-color-primary);
647
647
  }
648
648
 
649
- .import-dialog-vanilla-upload-area.dragover {
649
+ .sl-import-dialog-vanilla-upload-area.dragover {
650
650
  border-color: var(--sl-color-primary);
651
651
  background: rgba(24, 144, 255, 0.05);
652
652
  }
653
653
 
654
- .import-dialog-vanilla-upload-area.disabled {
654
+ .sl-import-dialog-vanilla-upload-area.disabled {
655
655
  cursor: not-allowed;
656
656
  opacity: 0.6;
657
657
  }
658
658
 
659
- .import-dialog-vanilla-file-input {
659
+ .sl-import-dialog-vanilla-file-input {
660
660
  position: absolute;
661
661
  width: 0;
662
662
  height: 0;
@@ -664,12 +664,12 @@ function getImportDialogStyles() {
664
664
  pointer-events: none;
665
665
  }
666
666
 
667
- .import-dialog-vanilla-upload-content {
667
+ .sl-import-dialog-vanilla-upload-content {
668
668
  text-align: center;
669
669
  padding: 20px;
670
670
  }
671
671
 
672
- .import-dialog-vanilla-upload-icon {
672
+ .sl-import-dialog-vanilla-upload-icon {
673
673
  // font-size: 48px;
674
674
  width:88px;
675
675
  height:74px;
@@ -677,32 +677,32 @@ function getImportDialogStyles() {
677
677
  margin-bottom: 16px;
678
678
  }
679
679
 
680
- .import-dialog-vanilla-upload-text {
680
+ .sl-import-dialog-vanilla-upload-text {
681
681
  color: var(--sl-text-color-secondary);
682
682
  font-size: 14px;
683
683
  margin-bottom: 8px;
684
684
  }
685
685
 
686
- .import-dialog-vanilla-upload-link {
686
+ .sl-import-dialog-vanilla-upload-link {
687
687
  color: var(--sl-color-primary);
688
688
  cursor: pointer;
689
689
  }
690
690
 
691
- .import-dialog-vanilla-upload-link:hover {
691
+ .sl-import-dialog-vanilla-upload-link:hover {
692
692
  text-decoration: underline;
693
693
  }
694
694
 
695
- .import-dialog-vanilla-upload-hint {
695
+ .sl-import-dialog-vanilla-upload-hint {
696
696
  color: var(--sl-text-color-secondary);
697
697
  font-size: 12px;
698
698
  margin: 0;
699
699
  }
700
700
 
701
- .import-dialog-vanilla-file-info {
701
+ .sl-import-dialog-vanilla-file-info {
702
702
  display: flex;
703
703
  }
704
704
 
705
- .import-dialog-vanilla-file-name {
705
+ .sl-import-dialog-vanilla-file-name {
706
706
  flex: 1;
707
707
  font-size: 14px;
708
708
  color: var(--sl-text-color-primary);
@@ -711,23 +711,23 @@ function getImportDialogStyles() {
711
711
  white-space: nowrap;
712
712
  }
713
713
 
714
- .import-dialog-vanilla-file-remove {
714
+ .sl-import-dialog-vanilla-file-remove {
715
715
  font-size: 18px;
716
716
  color: #999;
717
717
  cursor: pointer;
718
718
  line-height: 1;
719
719
  }
720
720
 
721
- .import-dialog-vanilla-file-remove:hover {
721
+ .sl-import-dialog-vanilla-file-remove:hover {
722
722
  color: #ff4d4f;
723
723
  }
724
724
 
725
- .import-dialog-vanilla-upload-progress {
725
+ .sl-import-dialog-vanilla-upload-progress {
726
726
  margin-top: 12px;
727
727
  padding: 8px 0;
728
728
  }
729
729
 
730
- .import-dialog-vanilla-progress-bar {
730
+ .sl-import-dialog-vanilla-progress-bar {
731
731
  height: 8px;
732
732
  background: #f0f0f0;
733
733
  border-radius: 4px;
@@ -735,59 +735,59 @@ function getImportDialogStyles() {
735
735
  margin-bottom: 8px;
736
736
  }
737
737
 
738
- .import-dialog-vanilla-progress-inner {
738
+ .sl-import-dialog-vanilla-progress-inner {
739
739
  height: 100%;
740
740
  border-radius: 4px;
741
741
  transition: width 0.3s;
742
742
  }
743
743
 
744
- .import-dialog-vanilla-progress-inner.active {
744
+ .sl-import-dialog-vanilla-progress-inner.active {
745
745
  background: var(--sl-color-primary);
746
746
  }
747
747
 
748
- .import-dialog-vanilla-progress-inner.success {
748
+ .sl-import-dialog-vanilla-progress-inner.success {
749
749
  background: #52c41a;
750
750
  }
751
751
 
752
- .import-dialog-vanilla-progress-inner.error {
752
+ .sl-import-dialog-vanilla-progress-inner.error {
753
753
  background: #ff4d4f;
754
754
  }
755
755
 
756
- .import-dialog-vanilla-progress-text {
756
+ .sl-import-dialog-vanilla-progress-text {
757
757
  font-size: 12px;
758
758
  color: var(--sl-text-color-secondary);
759
759
  }
760
760
 
761
- .import-dialog-vanilla-upload-message {
761
+ .sl-import-dialog-vanilla-upload-message {
762
762
  font-size: 14px;
763
763
  padding: 6px 12px;
764
764
  border-radius: 4px;
765
765
  margin-top: 8px;
766
766
  }
767
767
 
768
- .import-dialog-vanilla-upload-message.info {
768
+ .sl-import-dialog-vanilla-upload-message.info {
769
769
  color: var(--sl-color-primary);
770
770
  background: rgba(24, 144, 255, 0.1);
771
771
  }
772
772
 
773
- .import-dialog-vanilla-upload-message.success {
773
+ .sl-import-dialog-vanilla-upload-message.success {
774
774
  color: #52c41a;
775
775
  background: rgba(82, 196, 26, 0.1);
776
776
  }
777
777
 
778
- .import-dialog-vanilla-upload-message.error {
778
+ .sl-import-dialog-vanilla-upload-message.error {
779
779
  color: #ff4d4f;
780
780
  background: rgba(255, 77, 79, 0.1);
781
781
  }
782
782
 
783
- .import-dialog-vanilla-footer {
783
+ .sl-import-dialog-vanilla-footer {
784
784
  display: flex;
785
785
  justify-content: flex-end;
786
786
  gap: 12px;
787
787
  padding-top: 8px;
788
788
  }
789
789
 
790
- .import-dialog-vanilla-toast {
790
+ .sl-import-dialog-vanilla-toast {
791
791
  position: fixed;
792
792
  top: 16px;
793
793
  left: 50%;
@@ -797,30 +797,30 @@ function getImportDialogStyles() {
797
797
  font-size: 14px;
798
798
  z-index: 1100;
799
799
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
800
- animation: import-dialog-toast-in 0.3s ease;
800
+ animation: sl-import-dialog-toast-in 0.3s ease;
801
801
  display: flex;
802
802
  align-items: center;
803
803
  padding: 8px 15px;
804
804
  box-sizing: content-box;
805
805
  }
806
806
 
807
- .import-dialog-vanilla-toast-content {
807
+ .sl-import-dialog-vanilla-toast-content {
808
808
  display: flex;
809
809
  align-items: center;
810
810
  flex: 1;
811
811
  gap:8px;
812
812
  }
813
813
 
814
- .import-dialog-vanilla-toast-icon {
814
+ .sl-import-dialog-vanilla-toast-icon {
815
815
  font-size: 16px;
816
816
  flex-shrink: 0;
817
817
  }
818
818
 
819
- .import-dialog-vanilla-toast-message {
819
+ .sl-import-dialog-vanilla-toast-message {
820
820
  flex: 1;
821
821
  }
822
822
 
823
- .import-dialog-vanilla-toast-close {
823
+ .sl-import-dialog-vanilla-toast-close {
824
824
  background: none;
825
825
  border: none;
826
826
  padding: 11px 15px;
@@ -833,43 +833,43 @@ function getImportDialogStyles() {
833
833
  flex-shrink: 0;
834
834
  }
835
835
 
836
- .import-dialog-vanilla-toast-close:hover {
836
+ .sl-import-dialog-vanilla-toast-close:hover {
837
837
  opacity: 1;
838
838
  }
839
839
 
840
- .import-dialog-vanilla-toast-close i {
840
+ .sl-import-dialog-vanilla-toast-close i {
841
841
  font-size: 14px;
842
842
  }
843
843
 
844
- .import-dialog-vanilla-toast.info {
844
+ .sl-import-dialog-vanilla-toast.info {
845
845
  background-color: var(--sl-color-primary-light-9);
846
846
  color: var(--sl-color-primary);
847
847
  border: 1px solid var(--sl-color-primary-light-8);
848
848
  }
849
849
 
850
- .import-dialog-vanilla-toast.success {
850
+ .sl-import-dialog-vanilla-toast.success {
851
851
  background-color: var(--sl-color-success-light-9);
852
852
  color: var(--sl-color-success);
853
853
  border: 1px solid var(--sl-color-success-light-8);
854
854
  }
855
855
 
856
- .import-dialog-vanilla-toast.warning {
856
+ .sl-import-dialog-vanilla-toast.warning {
857
857
  background-color: var(--sl-color-warning-light-9);
858
858
  color: var(--sl-color-warning);
859
859
  border: 1px solid var(--sl-color-warning-light-8);
860
860
  }
861
861
 
862
- .import-dialog-vanilla-toast.error {
862
+ .sl-import-dialog-vanilla-toast.error {
863
863
  background-color: var(--sl-color-error-light-9);
864
864
  color: var(--sl-color-error);
865
865
  border: 1px solid var(--sl-color-error-light-8);
866
866
  }
867
867
 
868
- .import-dialog-vanilla-toast.fade-out {
869
- animation: import-dialog-toast-out 0.3s ease forwards;
868
+ .sl-import-dialog-vanilla-toast.fade-out {
869
+ animation: sl-import-dialog-toast-out 0.3s ease forwards;
870
870
  }
871
871
 
872
- @keyframes import-dialog-toast-in {
872
+ @keyframes sl-import-dialog-toast-in {
873
873
  from {
874
874
  opacity: 0;
875
875
  transform: translateX(-50%) translateY(-20px);
@@ -880,7 +880,7 @@ function getImportDialogStyles() {
880
880
  }
881
881
  }
882
882
 
883
- @keyframes import-dialog-toast-out {
883
+ @keyframes sl-import-dialog-toast-out {
884
884
  from {
885
885
  opacity: 1;
886
886
  transform: translateX(-50%) translateY(0);
@@ -892,7 +892,7 @@ function getImportDialogStyles() {
892
892
  }
893
893
 
894
894
  /* DateRangePicker */
895
- .sl-date-range-picker {
895
+ .sl-import-date-range-picker {
896
896
  position: relative;
897
897
  display: inline-flex;
898
898
  align-items: center;
@@ -906,16 +906,16 @@ function getImportDialogStyles() {
906
906
  transition: border-color 0.3s;
907
907
  }
908
908
 
909
- .sl-date-range-picker:hover {
909
+ .sl-import-date-range-picker:hover {
910
910
  border-color: var(--sl-color-primary);
911
911
  }
912
912
 
913
- .sl-date-range-picker:focus-within {
913
+ .sl-import-date-range-picker:focus-within {
914
914
  border-color: var(--sl-color-primary);
915
915
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
916
916
  }
917
917
 
918
- .sl-date-range-input {
918
+ .sl-import-date-range-input {
919
919
  border: none;
920
920
  outline: none;
921
921
  background: transparent;
@@ -928,17 +928,17 @@ function getImportDialogStyles() {
928
928
  height: 100%;
929
929
  }
930
930
 
931
- .sl-date-range-input::placeholder {
931
+ .sl-import-date-range-input::placeholder {
932
932
  color: var(--sl-text-color-placeholder);
933
933
  }
934
934
 
935
- .sl-date-range-separator {
935
+ .sl-import-date-range-separator {
936
936
  color: var(--sl-text-color);
937
937
  font-size: 13px;
938
938
  flex-shrink: 0;
939
939
  }
940
940
 
941
- .sl-date-range-icon {
941
+ .sl-import-date-range-icon {
942
942
  display: flex;
943
943
  align-items: center;
944
944
  color: var(--sl-text-color-placeholder);
@@ -946,7 +946,7 @@ function getImportDialogStyles() {
946
946
  }
947
947
 
948
948
  /* 日期范围选择器日历样式覆盖 */
949
- .sl-date-range-calendar {
949
+ .sl-import-date-range-calendar {
950
950
  border: 1px solid var(--sl-border-color-light);
951
951
  box-shadow: var(--sl-box-shadow-light);
952
952
  border-radius: 8px;
@@ -956,13 +956,13 @@ function getImportDialogStyles() {
956
956
  }
957
957
 
958
958
  /* 隐藏 flatpickr 自带的箭头 */
959
- .sl-date-range-calendar::before,
960
- .sl-date-range-calendar::after {
959
+ .sl-import-date-range-calendar::before,
960
+ .sl-import-date-range-calendar::after {
961
961
  display: none !important;
962
962
  }
963
963
 
964
964
  /* 自定义箭头元素 — 基础样式 */
965
- .sl-calendar-arrow {
965
+ .sl-import-calendar-arrow {
966
966
  position: absolute;
967
967
  transform: translateX(-50%);
968
968
  width: 0;
@@ -973,11 +973,11 @@ function getImportDialogStyles() {
973
973
  }
974
974
 
975
975
  /* 箭头朝上(日历在输入框下方) */
976
- .sl-calendar-arrow-top {
976
+ .sl-import-calendar-arrow-top {
977
977
  top: -8px;
978
978
  border-bottom: 8px solid #e4e7ed;
979
979
  }
980
- .sl-calendar-arrow-top::after {
980
+ .sl-import-calendar-arrow-top::after {
981
981
  content: "";
982
982
  position: absolute;
983
983
  top: 1px;
@@ -988,11 +988,11 @@ function getImportDialogStyles() {
988
988
  }
989
989
 
990
990
  /* 箭头朝下(日历在输入框上方) */
991
- .sl-calendar-arrow-bottom {
991
+ .sl-import-calendar-arrow-bottom {
992
992
  bottom: -8px;
993
993
  border-top: 8px solid #e4e7ed;
994
994
  }
995
- .sl-calendar-arrow-bottom::after {
995
+ .sl-import-calendar-arrow-bottom::after {
996
996
  content: "";
997
997
  position: absolute;
998
998
  bottom: 1px;
@@ -1003,17 +1003,17 @@ function getImportDialogStyles() {
1003
1003
  }
1004
1004
 
1005
1005
  /* 日历整体固定宽度 */
1006
- .sl-date-range-calendar {
1006
+ .sl-import-date-range-calendar {
1007
1007
  width: 646px !important;
1008
1008
  }
1009
1009
 
1010
- .sl-date-range-calendar.has-shortcuts {
1010
+ .sl-import-date-range-calendar.has-shortcuts {
1011
1011
  display: flex !important;
1012
1012
  flex-direction: row !important;
1013
1013
  width: 756px !important; /* 646 + 110 快捷方式面板 */
1014
1014
  }
1015
1015
 
1016
- .sl-date-range-calendar-content {
1016
+ .sl-import-date-range-calendar-content {
1017
1017
  width: 646px;
1018
1018
  flex-shrink: 0;
1019
1019
  padding: 12px;
@@ -1022,7 +1022,7 @@ function getImportDialogStyles() {
1022
1022
  }
1023
1023
 
1024
1024
  /* 两个月份之间的连续分割线 */
1025
- .sl-date-range-calendar-content::after {
1025
+ .sl-import-date-range-calendar-content::after {
1026
1026
  content: '';
1027
1027
  position: absolute;
1028
1028
  top: 12px;
@@ -1034,20 +1034,20 @@ function getImportDialogStyles() {
1034
1034
  pointer-events: none;
1035
1035
  }
1036
1036
 
1037
- .sl-date-range-calendar-content .flatpickr-months,
1038
- .sl-date-range-calendar-content .flatpickr-innerContainer {
1037
+ .sl-import-date-range-calendar-content .flatpickr-months,
1038
+ .sl-import-date-range-calendar-content .flatpickr-innerContainer {
1039
1039
  width: 100%;
1040
1040
  }
1041
1041
 
1042
1042
  /* 覆盖 flatpickr 固定宽度,让两个月份并排 */
1043
- .sl-date-range-calendar .flatpickr-innerContainer {
1043
+ .sl-import-date-range-calendar .flatpickr-innerContainer {
1044
1044
  overflow: visible !important;
1045
1045
  width: 622px !important; /* 311px * 2 */
1046
1046
  position: relative;
1047
1047
  }
1048
1048
 
1049
1049
  /* 没有快捷方式时的分割线(直接在 innerContainer 上) */
1050
- .sl-date-range-calendar:not(.has-shortcuts) .flatpickr-innerContainer::after {
1050
+ .sl-import-date-range-calendar:not(.has-shortcuts) .flatpickr-innerContainer::after {
1051
1051
  content: '';
1052
1052
  position: absolute;
1053
1053
  top: 0;
@@ -1060,7 +1060,7 @@ function getImportDialogStyles() {
1060
1060
  }
1061
1061
 
1062
1062
  /* 没有快捷方式时月份头部的分割线 */
1063
- .sl-date-range-calendar:not(.has-shortcuts) .flatpickr-months::after {
1063
+ .sl-import-date-range-calendar:not(.has-shortcuts) .flatpickr-months::after {
1064
1064
  content: '';
1065
1065
  position: absolute;
1066
1066
  top: 0;
@@ -1072,16 +1072,16 @@ function getImportDialogStyles() {
1072
1072
  pointer-events: none;
1073
1073
  }
1074
1074
 
1075
- .sl-date-range-calendar .flatpickr-rContainer {
1075
+ .sl-import-date-range-calendar .flatpickr-rContainer {
1076
1076
  width: 622px !important; /* 311px * 2 */
1077
1077
  }
1078
1078
 
1079
- .sl-date-range-calendar .flatpickr-days .dayContainer + .dayContainer {
1079
+ .sl-import-date-range-calendar .flatpickr-days .dayContainer + .dayContainer {
1080
1080
  box-shadow: none !important;
1081
1081
  }
1082
1082
 
1083
1083
  /* 快捷方式面板 */
1084
- .sl-date-range-shortcuts {
1084
+ .sl-import-date-range-shortcuts {
1085
1085
  display: flex;
1086
1086
  flex-direction: column;
1087
1087
  padding: 12px 0;
@@ -1090,7 +1090,7 @@ function getImportDialogStyles() {
1090
1090
  flex-shrink: 0;
1091
1091
  }
1092
1092
 
1093
- .sl-date-range-shortcut-item {
1093
+ .sl-import-date-range-shortcut-item {
1094
1094
  padding: 0px 12px;
1095
1095
  font-size: 14px;
1096
1096
  color: var(--sl-text-color-regular);
@@ -1101,24 +1101,24 @@ function getImportDialogStyles() {
1101
1101
  text-align: start;
1102
1102
  }
1103
1103
 
1104
- .sl-date-range-shortcut-item:hover {
1104
+ .sl-import-date-range-shortcut-item:hover {
1105
1105
  color: var(--sl-color-primary);
1106
1106
  }
1107
1107
 
1108
- .sl-date-range-shortcut-item.active {
1108
+ .sl-import-date-range-shortcut-item.active {
1109
1109
  color: var(--sl-color-primary);
1110
1110
  font-weight: 500;
1111
1111
  }
1112
1112
 
1113
1113
  /* 月份头部区域 */
1114
- .sl-date-range-calendar .flatpickr-months {
1114
+ .sl-import-date-range-calendar .flatpickr-months {
1115
1115
  padding: 0 4px !important;
1116
1116
  align-items: center;
1117
1117
  width: 622px !important; /* 311px * 2 */
1118
1118
  position: relative !important;
1119
1119
  }
1120
1120
 
1121
- .sl-date-range-calendar .flatpickr-months .flatpickr-month {
1121
+ .sl-import-date-range-calendar .flatpickr-months .flatpickr-month {
1122
1122
  height: 30px;
1123
1123
  display: flex;
1124
1124
  align-items: center;
@@ -1127,10 +1127,10 @@ function getImportDialogStyles() {
1127
1127
  }
1128
1128
 
1129
1129
  /* 箭头样式 */
1130
- .sl-date-range-calendar .flatpickr-prev-year,
1131
- .sl-date-range-calendar .flatpickr-next-year,
1132
- .sl-date-range-calendar .flatpickr-prev-month,
1133
- .sl-date-range-calendar .flatpickr-next-month {
1130
+ .sl-import-date-range-calendar .flatpickr-prev-year,
1131
+ .sl-import-date-range-calendar .flatpickr-next-year,
1132
+ .sl-import-date-range-calendar .flatpickr-prev-month,
1133
+ .sl-import-date-range-calendar .flatpickr-next-month {
1134
1134
  position: absolute !important;
1135
1135
  top: 0;
1136
1136
  height: 34px;
@@ -1138,31 +1138,31 @@ function getImportDialogStyles() {
1138
1138
  z-index: 3;
1139
1139
  }
1140
1140
 
1141
- .sl-date-range-calendar .flatpickr-prev-year,
1142
- .sl-date-range-calendar .flatpickr-prev-month {
1141
+ .sl-import-date-range-calendar .flatpickr-prev-year,
1142
+ .sl-import-date-range-calendar .flatpickr-prev-month {
1143
1143
  left: 0;
1144
1144
  }
1145
1145
 
1146
- .sl-date-range-calendar .flatpickr-next-year,
1147
- .sl-date-range-calendar .flatpickr-next-month {
1146
+ .sl-import-date-range-calendar .flatpickr-next-year,
1147
+ .sl-import-date-range-calendar .flatpickr-next-month {
1148
1148
  right: 0;
1149
1149
  }
1150
1150
 
1151
- .sl-date-range-calendar .flatpickr-current-month {
1151
+ .sl-import-date-range-calendar .flatpickr-current-month {
1152
1152
  font-size: 14px;
1153
1153
  font-weight: 500;
1154
1154
  padding-top: 8px;
1155
1155
  }
1156
1156
 
1157
- .sl-date-range-calendar .flatpickr-current-month .cur-month {
1157
+ .sl-import-date-range-calendar .flatpickr-current-month .cur-month {
1158
1158
  font-weight: 500;
1159
1159
  font-size: 16px;
1160
1160
  color:var(--sl-text-color)
1161
1161
  }
1162
1162
 
1163
1163
  /* 年份和月份导航箭头 */
1164
- .sl-date-range-calendar .flatpickr-prev-year,
1165
- .sl-date-range-calendar .flatpickr-next-year {
1164
+ .sl-import-date-range-calendar .flatpickr-prev-year,
1165
+ .sl-import-date-range-calendar .flatpickr-next-year {
1166
1166
  display: inline-flex;
1167
1167
  align-items: center;
1168
1168
  justify-content: center;
@@ -1179,13 +1179,13 @@ function getImportDialogStyles() {
1179
1179
  z-index: 1;
1180
1180
  }
1181
1181
 
1182
- .sl-date-range-calendar .flatpickr-prev-year:hover,
1183
- .sl-date-range-calendar .flatpickr-next-year:hover {
1182
+ .sl-import-date-range-calendar .flatpickr-prev-year:hover,
1183
+ .sl-import-date-range-calendar .flatpickr-next-year:hover {
1184
1184
  color: var(--sl-color-primary);
1185
1185
  }
1186
1186
 
1187
- .sl-date-range-calendar .flatpickr-prev-month,
1188
- .sl-date-range-calendar .flatpickr-next-month {
1187
+ .sl-import-date-range-calendar .flatpickr-prev-month,
1188
+ .sl-import-date-range-calendar .flatpickr-next-month {
1189
1189
  padding: 0 !important;
1190
1190
  width: 28px;
1191
1191
  height: 28px;
@@ -1200,22 +1200,22 @@ function getImportDialogStyles() {
1200
1200
  overflow: visible !important;
1201
1201
  }
1202
1202
 
1203
- .sl-date-range-calendar .flatpickr-prev-month {
1203
+ .sl-import-date-range-calendar .flatpickr-prev-month {
1204
1204
  left: 12px !important;
1205
1205
  }
1206
1206
 
1207
- .sl-date-range-calendar .flatpickr-next-month {
1207
+ .sl-import-date-range-calendar .flatpickr-next-month {
1208
1208
  right: 12px !important;
1209
1209
  }
1210
1210
 
1211
- .sl-date-range-calendar .flatpickr-prev-month:hover,
1212
- .sl-date-range-calendar .flatpickr-next-month:hover {
1211
+ .sl-import-date-range-calendar .flatpickr-prev-month:hover,
1212
+ .sl-import-date-range-calendar .flatpickr-next-month:hover {
1213
1213
  color: var(--sl-color-primary);
1214
1214
  }
1215
1215
 
1216
1216
  /* 隐藏 flatpickr 原始 SVG 箭头(已替换为 iconfont) */
1217
- .sl-date-range-calendar .flatpickr-prev-month svg,
1218
- .sl-date-range-calendar .flatpickr-next-month svg {
1217
+ .sl-import-date-range-calendar .flatpickr-prev-month svg,
1218
+ .sl-import-date-range-calendar .flatpickr-next-month svg {
1219
1219
  display: none !important;
1220
1220
  }
1221
1221
  .flatpickr-prev-month .iconfont,
@@ -1227,32 +1227,32 @@ function getImportDialogStyles() {
1227
1227
  }
1228
1228
 
1229
1229
  /* 星期标题 */
1230
- .sl-date-range-calendar .flatpickr-weekdays {
1230
+ .sl-import-date-range-calendar .flatpickr-weekdays {
1231
1231
  padding: 0 4px;
1232
1232
  height: 36px;
1233
1233
  width: 622px !important; /* 311px * 2 */
1234
1234
  }
1235
1235
 
1236
- .sl-date-range-calendar .flatpickr-weekdaycontainer {
1236
+ .sl-import-date-range-calendar .flatpickr-weekdaycontainer {
1237
1237
  width: 311px !important;
1238
1238
  min-width: 311px !important;
1239
1239
  flex: none !important;
1240
1240
  }
1241
1241
 
1242
- .sl-date-range-calendar span.flatpickr-weekday {
1242
+ .sl-import-date-range-calendar span.flatpickr-weekday {
1243
1243
  font-size: var(--sl-font-size-base);
1244
1244
  color: var(--sl-text-color);
1245
1245
  font-weight:400;
1246
1246
  }
1247
1247
 
1248
1248
  /* 日期单元格 */
1249
- .sl-date-range-calendar .flatpickr-days {
1249
+ .sl-import-date-range-calendar .flatpickr-days {
1250
1250
  padding: 0 4px;
1251
1251
  width: 622px !important; /* 311px * 2 */
1252
1252
  overflow: visible !important;
1253
1253
  }
1254
1254
 
1255
- .sl-date-range-calendar .dayContainer {
1255
+ .sl-import-date-range-calendar .dayContainer {
1256
1256
  padding: 0 4px;
1257
1257
  width: 311px !important; /* (646 - 24px padding - 1px border) / 2 */
1258
1258
  min-width: 311px !important;
@@ -1265,7 +1265,7 @@ function getImportDialogStyles() {
1265
1265
  }
1266
1266
 
1267
1267
  /* 外层包裹:占满一格宽度,提供 inRange 选中区间的背景色 */
1268
- .sl-day-cell {
1268
+ .sl-import-day-cell {
1269
1269
  display: flex;
1270
1270
  align-items: center;
1271
1271
  justify-content: center;
@@ -1276,7 +1276,7 @@ function getImportDialogStyles() {
1276
1276
  }
1277
1277
 
1278
1278
  /* 内层 span:日期数字,选中时显示为圆形高亮 */
1279
- .sl-day-cell .flatpickr-day {
1279
+ .sl-import-day-cell .flatpickr-day {
1280
1280
  font-size: 14px;
1281
1281
  color: var(--sl-text-color);
1282
1282
  width: 24px;
@@ -1291,7 +1291,7 @@ function getImportDialogStyles() {
1291
1291
  background:transparent;
1292
1292
  }
1293
1293
 
1294
- .sl-day-cell .flatpickr-day:hover {
1294
+ .sl-import-day-cell .flatpickr-day:hover {
1295
1295
  background: transparent !important;
1296
1296
  border-color: transparent !important;
1297
1297
  border: none !important;
@@ -1299,9 +1299,9 @@ function getImportDialogStyles() {
1299
1299
  }
1300
1300
 
1301
1301
  /* 未确认范围时,去掉 flatpickr 默认给 startRange/endRange/inRange 加的背景和边框 */
1302
- .sl-date-range-calendar:not(.sl-range-confirmed) .sl-day-cell .flatpickr-day.startRange,
1303
- .sl-date-range-calendar:not(.sl-range-confirmed) .sl-day-cell .flatpickr-day.endRange,
1304
- .sl-date-range-calendar:not(.sl-range-confirmed) .sl-day-cell .flatpickr-day.inRange {
1302
+ .sl-import-date-range-calendar:not(.sl-import-range-confirmed) .sl-import-day-cell .flatpickr-day.startRange,
1303
+ .sl-import-date-range-calendar:not(.sl-import-range-confirmed) .sl-import-day-cell .flatpickr-day.endRange,
1304
+ .sl-import-date-range-calendar:not(.sl-import-range-confirmed) .sl-import-day-cell .flatpickr-day.inRange {
1305
1305
  background: transparent !important;
1306
1306
  border: none !important;
1307
1307
  box-shadow: none !important;
@@ -1309,64 +1309,64 @@ function getImportDialogStyles() {
1309
1309
  }
1310
1310
 
1311
1311
  /* 未确认范围时,鼠标悬停在单元格上才显示主题色 */
1312
- .sl-date-range-calendar:not(.sl-range-confirmed) .sl-day-cell:hover .flatpickr-day {
1312
+ .sl-import-date-range-calendar:not(.sl-import-range-confirmed) .sl-import-day-cell:hover .flatpickr-day {
1313
1313
  color: var(--sl-color-primary) !important;
1314
1314
  }
1315
1315
 
1316
1316
  /* 未确认范围时,仅第一个选中的日期保留蓝色圆 */
1317
- .sl-date-range-calendar:not(.sl-range-confirmed) .sl-day-cell .flatpickr-day.selected {
1317
+ .sl-import-date-range-calendar:not(.sl-import-range-confirmed) .sl-import-day-cell .flatpickr-day.selected {
1318
1318
  background: var(--sl-color-primary) !important;
1319
1319
  color: var(--sl-color-white) !important;
1320
1320
  border-radius: 50% !important;
1321
1321
  }
1322
1322
 
1323
1323
  /* 今天:蓝色文字 */
1324
- .sl-day-cell .flatpickr-day.today {
1324
+ .sl-import-day-cell .flatpickr-day.today {
1325
1325
  border: none;
1326
1326
  color: var(--sl-color-primary);
1327
1327
  font-weight: 600;
1328
1328
  }
1329
1329
 
1330
- .sl-day-cell .flatpickr-day.today:not(.selected):not(.startRange):not(.endRange) {
1330
+ .sl-import-day-cell .flatpickr-day.today:not(.selected):not(.startRange):not(.endRange) {
1331
1331
  color: var(--sl-color-primary);
1332
1332
  font-weight: 600;
1333
1333
  }
1334
1334
  /* 悬停时的 inRange(未确认范围):仅改变字体颜色,不显示灰色背景带 */
1335
- .sl-day-cell:has(.flatpickr-day.inRange) .flatpickr-day {
1335
+ .sl-import-day-cell:has(.flatpickr-day.inRange) .flatpickr-day {
1336
1336
  box-shadow: none ;
1337
1337
  }
1338
1338
 
1339
1339
  /* 已确认范围:显示灰色背景带 */
1340
- .sl-range-confirmed .sl-day-cell:has(.flatpickr-day.inRange) {
1340
+ .sl-import-range-confirmed .sl-import-day-cell:has(.flatpickr-day.inRange) {
1341
1341
  background: var(--sl-border-color-light);
1342
1342
  }
1343
1343
 
1344
- .sl-range-confirmed .sl-day-cell:has(.flatpickr-day.inRange) .flatpickr-day:hover {
1344
+ .sl-import-range-confirmed .sl-import-day-cell:has(.flatpickr-day.inRange) .flatpickr-day:hover {
1345
1345
  color: var(--sl-color-primary) !important;
1346
1346
  }
1347
1347
 
1348
1348
  /* 开始日期:仅在范围确认后显示灰色背景带 */
1349
- .sl-range-confirmed .sl-day-cell:has(.flatpickr-day.startRange) {
1349
+ .sl-import-range-confirmed .sl-import-day-cell:has(.flatpickr-day.startRange) {
1350
1350
  background: var(--sl-border-color-light);
1351
1351
  border-top-left-radius: 50%;
1352
1352
  border-bottom-left-radius: 50%;
1353
1353
  }
1354
1354
 
1355
- .sl-range-confirmed .sl-day-cell:has(.flatpickr-day.startRange.endRange) {
1355
+ .sl-import-range-confirmed .sl-import-day-cell:has(.flatpickr-day.startRange.endRange) {
1356
1356
  background: transparent;
1357
1357
  }
1358
1358
 
1359
1359
  /* 结束日期:仅在范围确认后显示灰色背景带 */
1360
- .sl-range-confirmed .sl-day-cell:has(.flatpickr-day.endRange) {
1360
+ .sl-import-range-confirmed .sl-import-day-cell:has(.flatpickr-day.endRange) {
1361
1361
  background: var(--sl-border-color-light);
1362
1362
  border-top-right-radius: 50%;
1363
1363
  border-bottom-right-radius: 50%;
1364
1364
  }
1365
1365
 
1366
1366
  /* 选中的开始和结束日期:蓝色实心圆 */
1367
- .sl-day-cell .flatpickr-day.selected,
1368
- .sl-day-cell .flatpickr-day.startRange,
1369
- .sl-day-cell .flatpickr-day.endRange {
1367
+ .sl-import-day-cell .flatpickr-day.selected,
1368
+ .sl-import-day-cell .flatpickr-day.startRange,
1369
+ .sl-import-day-cell .flatpickr-day.endRange {
1370
1370
  background: var(--sl-color-primary) !important;
1371
1371
  border-color: var(--sl-color-primary) !important;
1372
1372
  color: var(--sl-color-white) !important;
@@ -1374,20 +1374,20 @@ function getImportDialogStyles() {
1374
1374
  box-shadow: none !important;
1375
1375
  }
1376
1376
  /* 禁用日期 */
1377
- .sl-day-cell .flatpickr-day.flatpickr-disabled {
1377
+ .sl-import-day-cell .flatpickr-day.flatpickr-disabled {
1378
1378
  color: var(--sl-text-color-disabled);
1379
1379
  cursor: not-allowed;
1380
1380
  opacity: 1;
1381
1381
  }
1382
1382
 
1383
- .sl-day-cell .flatpickr-day.flatpickr-disabled:hover {
1383
+ .sl-import-day-cell .flatpickr-day.flatpickr-disabled:hover {
1384
1384
  background: transparent !important;
1385
1385
  border-color: transparent !important;
1386
1386
  cursor: not-allowed;
1387
1387
  }
1388
1388
 
1389
- .sl-day-cell .flatpickr-day.prevMonthDay,
1390
- .sl-day-cell .flatpickr-day.nextMonthDay {
1389
+ .sl-import-day-cell .flatpickr-day.prevMonthDay,
1390
+ .sl-import-day-cell .flatpickr-day.nextMonthDay {
1391
1391
  color: #c0c4cc;
1392
1392
  }
1393
1393
  .flatpickr-day.nextMonthDay.inRange,.flatpickr-day.preMonthDay.inRange{
@@ -1396,7 +1396,7 @@ function getImportDialogStyles() {
1396
1396
  }
1397
1397
 
1398
1398
  /* ============ 多文件上传列表样式 - 横向滚动 ============ */
1399
- .import-dialog-vanilla-file-list {
1399
+ .sl-import-dialog-vanilla-file-list {
1400
1400
  display: flex;
1401
1401
  flex-direction: row;
1402
1402
  gap: 12px;
@@ -1406,24 +1406,24 @@ function getImportDialogStyles() {
1406
1406
  scrollbar-width: thin;
1407
1407
  }
1408
1408
 
1409
- .import-dialog-vanilla-file-list::-webkit-scrollbar {
1409
+ .sl-import-dialog-vanilla-file-list::-webkit-scrollbar {
1410
1410
  height: 6px;
1411
1411
  }
1412
1412
 
1413
- .import-dialog-vanilla-file-list::-webkit-scrollbar-track {
1413
+ .sl-import-dialog-vanilla-file-list::-webkit-scrollbar-track {
1414
1414
  background: transparent;
1415
1415
  }
1416
1416
 
1417
- .import-dialog-vanilla-file-list::-webkit-scrollbar-thumb {
1417
+ .sl-import-dialog-vanilla-file-list::-webkit-scrollbar-thumb {
1418
1418
  background: #d9d9d9;
1419
1419
  border-radius: 3px;
1420
1420
  }
1421
1421
 
1422
- .import-dialog-vanilla-file-list::-webkit-scrollbar-thumb:hover {
1422
+ .sl-import-dialog-vanilla-file-list::-webkit-scrollbar-thumb:hover {
1423
1423
  background: #bfbfbf;
1424
1424
  }
1425
1425
 
1426
- .import-dialog-vanilla-file-item {
1426
+ .sl-import-dialog-vanilla-file-item {
1427
1427
  position: relative;
1428
1428
  display: flex;
1429
1429
  flex-direction: row;
@@ -1439,27 +1439,27 @@ function getImportDialogStyles() {
1439
1439
  cursor: default;
1440
1440
  transition: all 0.2s;
1441
1441
  }
1442
- .import-dialog-vanilla-file-item.width-100{
1442
+ .sl-import-dialog-vanilla-file-item.width-100{
1443
1443
  width:100%;
1444
1444
  }
1445
1445
 
1446
- .import-dialog-vanilla-file-item.status-error {
1446
+ .sl-import-dialog-vanilla-file-item.status-error {
1447
1447
  background: var(--sl-color-danger-light-9);
1448
1448
  border:1px solid var(--sl-color-error);
1449
1449
  }
1450
- .import-dialog-vanilla-file-icon {
1450
+ .sl-import-dialog-vanilla-file-icon {
1451
1451
  width: 18px;
1452
1452
  height: 18px;
1453
1453
  display: flex;
1454
1454
  align-items: center;
1455
1455
  }
1456
1456
 
1457
- .import-dialog-vanilla-file-icon svg {
1457
+ .sl-import-dialog-vanilla-file-icon svg {
1458
1458
  width: 32px;
1459
1459
  height: 32px;
1460
1460
  }
1461
1461
 
1462
- .import-dialog-vanilla-file-info {
1462
+ .sl-import-dialog-vanilla-file-info {
1463
1463
  flex: 1;
1464
1464
  min-width: 0;
1465
1465
  display: flex;
@@ -1467,7 +1467,7 @@ function getImportDialogStyles() {
1467
1467
  gap: 2px;
1468
1468
  }
1469
1469
 
1470
- .import-dialog-vanilla-file-name {
1470
+ .sl-import-dialog-vanilla-file-name {
1471
1471
  font-size: 13px;
1472
1472
  color: var(--sl-text-color);
1473
1473
  white-space: nowrap;
@@ -1477,7 +1477,7 @@ function getImportDialogStyles() {
1477
1477
  width:144px;
1478
1478
  }
1479
1479
 
1480
- .import-dialog-vanilla-file-meta {
1480
+ .sl-import-dialog-vanilla-file-meta {
1481
1481
  display: flex;
1482
1482
  align-items: center;
1483
1483
  gap: 4px;
@@ -1486,13 +1486,13 @@ function getImportDialogStyles() {
1486
1486
  }
1487
1487
 
1488
1488
 
1489
- .import-dialog-vanilla-file-error-text {
1489
+ .sl-import-dialog-vanilla-file-error-text {
1490
1490
  font-size: 12px;
1491
1491
  color: var(--sl-color-error);
1492
1492
  }
1493
1493
 
1494
1494
  /* 上传中状态的 loading 图标 */
1495
- .import-dialog-vanilla-file-loading-icon {
1495
+ .sl-import-dialog-vanilla-file-loading-icon {
1496
1496
  position: absolute;
1497
1497
  top: 8px;
1498
1498
  left: 8px;
@@ -1503,7 +1503,7 @@ function getImportDialogStyles() {
1503
1503
  justify-content: center;
1504
1504
  }
1505
1505
 
1506
- .loading-spinner {
1506
+ .sl-loading-spinner {
1507
1507
  width: 24px;
1508
1508
  height: 24px;
1509
1509
  border-radius: 50%;
@@ -1515,7 +1515,7 @@ function getImportDialogStyles() {
1515
1515
  position: relative;
1516
1516
  }
1517
1517
 
1518
- .loading-spinner::before {
1518
+ .sl-loading-spinner::before {
1519
1519
  content: '';
1520
1520
  width: 18px;
1521
1521
  height: 18px;
@@ -1530,12 +1530,12 @@ function getImportDialogStyles() {
1530
1530
  }
1531
1531
 
1532
1532
  /* 上传中状态的文件信息向右偏移 */
1533
- .import-dialog-vanilla-file-item.status-uploading .import-dialog-vanilla-file-info {
1533
+ .sl-import-dialog-vanilla-file-item.status-uploading .sl-import-dialog-vanilla-file-info {
1534
1534
  margin-left: 32px;
1535
1535
  }
1536
1536
 
1537
1537
  /* 删除按钮 - 默认隐藏,hover时显示 */
1538
- .import-dialog-vanilla-file-remove-btn {
1538
+ .sl-import-dialog-vanilla-file-remove-btn {
1539
1539
  position: absolute;
1540
1540
  top: 2px;
1541
1541
  right: 2px;
@@ -1551,17 +1551,17 @@ function getImportDialogStyles() {
1551
1551
  z-index: 1;
1552
1552
  }
1553
1553
 
1554
- .import-dialog-vanilla-file-item:hover .import-dialog-vanilla-file-remove-btn {
1554
+ .sl-import-dialog-vanilla-file-item:hover .sl-import-dialog-vanilla-file-remove-btn {
1555
1555
  opacity: 1;
1556
1556
  }
1557
1557
 
1558
- .import-dialog-vanilla-file-remove-btn svg {
1558
+ .sl-import-dialog-vanilla-file-remove-btn svg {
1559
1559
  width: 14px;
1560
1560
  height: 14px;
1561
1561
  }
1562
1562
 
1563
1563
  /* 全局遮罩 Loading */
1564
- .import-dialog-vanilla-loading-overlay {
1564
+ .sl-import-dialog-vanilla-loading-overlay {
1565
1565
  position: absolute;
1566
1566
  top: 0;
1567
1567
  left: 0;
@@ -1574,7 +1574,7 @@ function getImportDialogStyles() {
1574
1574
  z-index: 1000;
1575
1575
  }
1576
1576
 
1577
- .import-dialog-vanilla-loading-spinner {
1577
+ .sl-import-dialog-vanilla-loading-spinner {
1578
1578
  width: 32px;
1579
1579
  height: 32px;
1580
1580
  border-radius: 50%;
@@ -1586,7 +1586,7 @@ function getImportDialogStyles() {
1586
1586
  position: relative;
1587
1587
  }
1588
1588
 
1589
- .import-dialog-vanilla-loading-spinner::before {
1589
+ .sl-import-dialog-vanilla-loading-spinner::before {
1590
1590
  content: '';
1591
1591
  width: 24px;
1592
1592
  height: 24px;
@@ -1714,28 +1714,28 @@ class DateRangePicker {
1714
1714
  }
1715
1715
  render() {
1716
1716
  this.container.innerHTML = "";
1717
- this.container.className = "sl-date-range-picker";
1717
+ this.container.className = "sl-import-date-range-picker";
1718
1718
  this.startInput = document.createElement("input");
1719
1719
  this.startInput.type = "text";
1720
- this.startInput.className = "sl-date-range-input";
1720
+ this.startInput.className = "sl-import-date-range-input";
1721
1721
  this.startInput.placeholder = this.placeholder[0];
1722
1722
  this.startInput.readOnly = true;
1723
1723
  if (this.selectedDates[0]) {
1724
1724
  this.startInput.value = this.formatDate(this.selectedDates[0]);
1725
1725
  }
1726
1726
  const separator = document.createElement("span");
1727
- separator.className = "sl-date-range-separator";
1727
+ separator.className = "sl-import-date-range-separator";
1728
1728
  separator.textContent = "To";
1729
1729
  this.endInput = document.createElement("input");
1730
1730
  this.endInput.type = "text";
1731
- this.endInput.className = "sl-date-range-input";
1731
+ this.endInput.className = "sl-import-date-range-input";
1732
1732
  this.endInput.placeholder = this.placeholder[1];
1733
1733
  this.endInput.readOnly = true;
1734
1734
  if (this.selectedDates[1]) {
1735
1735
  this.endInput.value = this.formatDate(this.selectedDates[1]);
1736
1736
  }
1737
1737
  const iconBtn = document.createElement("span");
1738
- iconBtn.className = "sl-date-range-icon";
1738
+ iconBtn.className = "sl-import-date-range-icon";
1739
1739
  iconBtn.innerHTML = `<svg width="14" height="14" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
1740
1740
  <path d="M5 1v2M11 1v2M1.5 6h13M3 2.5h10a1.5 1.5 0 011.5 1.5v10a1.5 1.5 0 01-1.5 1.5H3a1.5 1.5 0 01-1.5-1.5V4A1.5 1.5 0 013 2.5z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
1741
1741
  </svg>`;
@@ -1751,10 +1751,10 @@ class DateRangePicker {
1751
1751
  }
1752
1752
  buildShortcutsPanel() {
1753
1753
  const panel = document.createElement("div");
1754
- panel.className = "sl-date-range-shortcuts";
1754
+ panel.className = "sl-import-date-range-shortcuts";
1755
1755
  this.shortcuts.forEach((shortcut, index) => {
1756
1756
  const item = document.createElement("div");
1757
- item.className = "sl-date-range-shortcut-item";
1757
+ item.className = "sl-import-date-range-shortcut-item";
1758
1758
  if (index === this.activeShortcutIndex) {
1759
1759
  item.classList.add("active");
1760
1760
  }
@@ -1779,7 +1779,9 @@ class DateRangePicker {
1779
1779
  this.endInput.value = this.formatDate(end);
1780
1780
  (_a = this.fpInstance) == null ? void 0 : _a.setDate([start, end], false);
1781
1781
  (_b = this.onChange) == null ? void 0 : _b.call(this, [start, end]);
1782
- (_c = this.fpInstance) == null ? void 0 : _c.calendarContainer.classList.add("sl-range-confirmed");
1782
+ (_c = this.fpInstance) == null ? void 0 : _c.calendarContainer.classList.add(
1783
+ "sl-import-range-confirmed"
1784
+ );
1783
1785
  if (this.fpInstance) {
1784
1786
  this.updateMonthHeaders(this.fpInstance);
1785
1787
  this.unwrapDayCells(this.fpInstance);
@@ -1793,10 +1795,10 @@ class DateRangePicker {
1793
1795
  updateShortcutActiveState() {
1794
1796
  var _a;
1795
1797
  const panel = (_a = this.fpInstance) == null ? void 0 : _a.calendarContainer.querySelector(
1796
- ".sl-date-range-shortcuts"
1798
+ ".sl-import-date-range-shortcuts"
1797
1799
  );
1798
1800
  if (!panel) return;
1799
- const items = panel.querySelectorAll(".sl-date-range-shortcut-item");
1801
+ const items = panel.querySelectorAll(".sl-import-date-range-shortcut-item");
1800
1802
  items.forEach((item, i) => {
1801
1803
  if (i === this.activeShortcutIndex) {
1802
1804
  item.classList.add("active");
@@ -1826,13 +1828,19 @@ class DateRangePicker {
1826
1828
  position: "below",
1827
1829
  disable: disableConfig,
1828
1830
  onReady: (_selectedDates, _dateStr, instance) => {
1829
- instance.calendarContainer.classList.add("sl-date-range-calendar");
1831
+ instance.calendarContainer.classList.add(
1832
+ "sl-import-date-range-calendar"
1833
+ );
1830
1834
  if (_selectedDates.length === 2) {
1831
- instance.calendarContainer.classList.add("sl-range-confirmed");
1835
+ instance.calendarContainer.classList.add("sl-import-range-confirmed");
1832
1836
  }
1833
1837
  instance.calendarContainer.addEventListener("mouseleave", () => {
1834
- if (!instance.calendarContainer.classList.contains("sl-range-confirmed") && instance.selectedDates.length === 1) {
1835
- instance.calendarContainer.querySelectorAll(".flatpickr-day.inRange, .flatpickr-day.endRange").forEach((el) => {
1838
+ if (!instance.calendarContainer.classList.contains(
1839
+ "sl-import-range-confirmed"
1840
+ ) && instance.selectedDates.length === 1) {
1841
+ instance.calendarContainer.querySelectorAll(
1842
+ ".flatpickr-day.inRange, .flatpickr-day.endRange"
1843
+ ).forEach((el) => {
1836
1844
  el.classList.remove("inRange", "endRange");
1837
1845
  });
1838
1846
  }
@@ -1843,7 +1851,7 @@ class DateRangePicker {
1843
1851
  if (this.shortcuts.length > 0) {
1844
1852
  instance.calendarContainer.classList.add("has-shortcuts");
1845
1853
  const calendarContent = document.createElement("div");
1846
- calendarContent.className = "sl-date-range-calendar-content";
1854
+ calendarContent.className = "sl-import-date-range-calendar-content";
1847
1855
  while (instance.calendarContainer.firstChild) {
1848
1856
  calendarContent.appendChild(instance.calendarContainer.firstChild);
1849
1857
  }
@@ -1892,12 +1900,14 @@ class DateRangePicker {
1892
1900
  this.startInput.value = this.formatDate(dates[0]);
1893
1901
  this.endInput.value = this.formatDate(dates[1]);
1894
1902
  (_a = this.onChange) == null ? void 0 : _a.call(this, this.selectedDates);
1895
- instance.calendarContainer.classList.add("sl-range-confirmed");
1903
+ instance.calendarContainer.classList.add("sl-import-range-confirmed");
1896
1904
  } else if (dates.length === 1) {
1897
1905
  this.selectedDates = [dates[0], null];
1898
1906
  this.startInput.value = this.formatDate(dates[0]);
1899
1907
  this.endInput.value = "";
1900
- instance.calendarContainer.classList.remove("sl-range-confirmed");
1908
+ instance.calendarContainer.classList.remove(
1909
+ "sl-import-range-confirmed"
1910
+ );
1901
1911
  }
1902
1912
  requestAnimationFrame(() => {
1903
1913
  this.updateMonthHeaders(instance);
@@ -2017,7 +2027,7 @@ class DateRangePicker {
2017
2027
  });
2018
2028
  }
2019
2029
  /**
2020
- * 将每个 .flatpickr-day span 包裹在 div.sl-day-cell 中,实现双层渲染:
2030
+ * 将每个 .flatpickr-day span 包裹在 div.sl-import-day-cell 中,实现双层渲染:
2021
2031
  * - 外层 div:占满整格宽度的背景带(用于 inRange)
2022
2032
  * - 内层 span:圆形高亮(用于 startRange/endRange)
2023
2033
  * 类似 Element Plus 的 table>tr>td>div>span 结构。
@@ -2026,31 +2036,33 @@ class DateRangePicker {
2026
2036
  const containers = instance.calendarContainer.querySelectorAll(".dayContainer");
2027
2037
  containers.forEach((container) => {
2028
2038
  const days = container.querySelectorAll(
2029
- ".flatpickr-day:not(.sl-day-wrapped)"
2039
+ ".flatpickr-day:not(.sl-import-day-wrapped)"
2030
2040
  );
2031
2041
  days.forEach((day) => {
2032
2042
  var _a;
2033
- if (day.parentElement && day.parentElement.classList.contains("sl-day-cell")) {
2043
+ if (day.parentElement && day.parentElement.classList.contains("sl-import-day-cell")) {
2034
2044
  return;
2035
2045
  }
2036
2046
  const wrapper = document.createElement("div");
2037
- wrapper.className = "sl-day-cell";
2038
- day.classList.add("sl-day-wrapped");
2047
+ wrapper.className = "sl-import-day-cell";
2048
+ day.classList.add("sl-import-day-wrapped");
2039
2049
  (_a = day.parentNode) == null ? void 0 : _a.insertBefore(wrapper, day);
2040
2050
  wrapper.appendChild(day);
2041
2051
  });
2042
2052
  });
2043
2053
  }
2044
2054
  /**
2045
- * 移除所有 sl-day-cell 包裹,恢复 flatpickr 的扁平结构。
2055
+ * 移除所有 sl-import-day-cell 包裹,恢复 flatpickr 的扁平结构。
2046
2056
  */
2047
2057
  unwrapDayCells(instance) {
2048
- const wrappers = instance.calendarContainer.querySelectorAll(".sl-day-cell");
2058
+ const wrappers = instance.calendarContainer.querySelectorAll(
2059
+ ".sl-import-day-cell"
2060
+ );
2049
2061
  wrappers.forEach((wrapper) => {
2050
2062
  var _a;
2051
2063
  const child = wrapper.firstElementChild;
2052
2064
  if (child) {
2053
- child.classList.remove("sl-day-wrapped");
2065
+ child.classList.remove("sl-import-day-wrapped");
2054
2066
  (_a = wrapper.parentNode) == null ? void 0 : _a.insertBefore(child, wrapper);
2055
2067
  }
2056
2068
  wrapper.remove();
@@ -2079,18 +2091,18 @@ class DateRangePicker {
2079
2091
  cal.style.top = `${inputRect.bottom + window.scrollY + gap + arrowSize}px`;
2080
2092
  }
2081
2093
  cal.style.left = `${clampedLeft}px`;
2082
- let arrow = cal.querySelector(".sl-calendar-arrow");
2094
+ let arrow = cal.querySelector(".sl-import-calendar-arrow");
2083
2095
  if (!arrow) {
2084
2096
  arrow = document.createElement("div");
2085
- arrow.className = "sl-calendar-arrow";
2097
+ arrow.className = "sl-import-calendar-arrow";
2086
2098
  cal.appendChild(arrow);
2087
2099
  }
2088
2100
  const arrowLeft = inputCenter - clampedLeft;
2089
2101
  arrow.style.left = `${arrowLeft}px`;
2090
2102
  if (placeAbove) {
2091
- arrow.className = "sl-calendar-arrow sl-calendar-arrow-bottom";
2103
+ arrow.className = "sl-import-calendar-arrow sl-import-calendar-arrow-bottom";
2092
2104
  } else {
2093
- arrow.className = "sl-calendar-arrow sl-calendar-arrow-top";
2105
+ arrow.className = "sl-import-calendar-arrow sl-import-calendar-arrow-top";
2094
2106
  }
2095
2107
  }
2096
2108
  formatDate(date) {
@@ -2749,13 +2761,13 @@ class ImportDialogRenderer {
2749
2761
  const config = this.context.currentConfig;
2750
2762
  const hasTabs = config.tabs && config.tabs.length > 0;
2751
2763
  return `
2752
- <div class="import-dialog-vanilla-overlay">
2753
- <div class="import-dialog-vanilla-modal" style="width: ${this.context.width}">
2754
- <div class="import-dialog-vanilla-header">
2755
- <span class="import-dialog-vanilla-title">${this.context.dialogTitle}</span>
2756
- <span id="import-dialog-close-btn" class="import-dialog-vanilla-close">&times;</span>
2764
+ <div class="sl-import-dialog-vanilla-overlay">
2765
+ <div class="sl-import-dialog-vanilla-modal" style="width: ${this.context.width}">
2766
+ <div class="sl-import-dialog-vanilla-header">
2767
+ <span class="sl-import-dialog-vanilla-title">${this.context.dialogTitle}</span>
2768
+ <span id="sl-import-dialog-close-btn" class="sl-import-dialog-vanilla-close">&times;</span>
2757
2769
  </div>
2758
- <div class="import-dialog-vanilla-content">
2770
+ <div class="sl-import-dialog-vanilla-content">
2759
2771
  ${hasTabs ? this.renderTabs() : ""}
2760
2772
  ${this.renderDownloadSection()}
2761
2773
  ${this.showSettingSection ? this.renderSettingSection() : ""}
@@ -2770,10 +2782,10 @@ class ImportDialogRenderer {
2770
2782
  renderTabs() {
2771
2783
  const tabs = this.context.currentConfig.tabs;
2772
2784
  return `
2773
- <div class="import-dialog-vanilla-tabs">
2785
+ <div class="sl-import-dialog-vanilla-tabs">
2774
2786
  ${tabs.map(
2775
2787
  (tab, index) => `
2776
- <div class="import-dialog-vanilla-tab ${this.context.activeTabIndex === index ? "active" : ""}"
2788
+ <div class="sl-import-dialog-vanilla-tab ${this.context.activeTabIndex === index ? "active" : ""}"
2777
2789
  data-tab-index="${index}">
2778
2790
  ${tab.label}
2779
2791
  </div>
@@ -2787,9 +2799,9 @@ class ImportDialogRenderer {
2787
2799
  const hasDownloadCallback = !!this.context.modalOptions.onDownloadTemplate;
2788
2800
  if (hasDownloadCallback) {
2789
2801
  return `
2790
- <div class="import-dialog-vanilla-section">
2791
- <div class="import-dialog-vanilla-section-title">${t("downloadTemplateTitle")}</div>
2792
- <button id="import-dialog-download-btn" class="import-dialog-vanilla-btn download-template-btn import-dialog-vanilla-btn-primary">
2802
+ <div class="sl-import-dialog-vanilla-section">
2803
+ <div class="sl-import-dialog-vanilla-section-title">${t("downloadTemplateTitle")}</div>
2804
+ <button id="sl-import-dialog-download-btn" class="sl-import-dialog-vanilla-btn download-template-btn sl-import-dialog-vanilla-btn-primary">
2793
2805
  <i class="iconfont icon-xiazai"></i>
2794
2806
  ${t("downloadTemplateText")}
2795
2807
  </button>
@@ -2797,9 +2809,9 @@ class ImportDialogRenderer {
2797
2809
  `;
2798
2810
  } else if (hasTemplateUrl) {
2799
2811
  return `
2800
- <div class="import-dialog-vanilla-section">
2801
- <div class="import-dialog-vanilla-section-title">${t("downloadTemplateTitle")}</div>
2802
- <a id="import-dialog-download-btn" class="import-dialog-vanilla-btn download-template-btn import-dialog-vanilla-btn-primary" href="${this.context.currentConfig.templateUrl}">
2812
+ <div class="sl-import-dialog-vanilla-section">
2813
+ <div class="sl-import-dialog-vanilla-section-title">${t("downloadTemplateTitle")}</div>
2814
+ <a id="sl-import-dialog-download-btn" class="sl-import-dialog-vanilla-btn download-template-btn sl-import-dialog-vanilla-btn-primary" href="${this.context.currentConfig.templateUrl}">
2803
2815
  <i class="iconfont icon-xiazai"></i>
2804
2816
  ${t("downloadTemplateText")}
2805
2817
  </a>
@@ -2825,9 +2837,9 @@ class ImportDialogRenderer {
2825
2837
  content += this.renderDateRangeSelect();
2826
2838
  }
2827
2839
  return `
2828
- <div class="import-dialog-vanilla-section">
2829
- <div class="import-dialog-vanilla-section-title">${t("importSettingsTitle")}</div>
2830
- <div class="import-dialog-vanilla-setting-content">
2840
+ <div class="sl-import-dialog-vanilla-section">
2841
+ <div class="sl-import-dialog-vanilla-section-title">${t("importSettingsTitle")}</div>
2842
+ <div class="sl-import-dialog-vanilla-setting-content">
2831
2843
  ${content}
2832
2844
  </div>
2833
2845
  </div>
@@ -2840,17 +2852,17 @@ class ImportDialogRenderer {
2840
2852
  );
2841
2853
  const displayValue = selectedBrand ? selectedBrand.label : this.context.brandLoading ? t("loadingText") : placeholder;
2842
2854
  return `
2843
- <div class="import-dialog-vanilla-setting-item">
2844
- <span class="import-dialog-vanilla-setting-label required">${t("selectBrand")}</span>
2845
- <div class="import-dialog-vanilla-custom-select" data-field="brandId">
2846
- <div class="import-dialog-vanilla-select-trigger ${this.context.brandLoading ? "disabled" : ""}">
2847
- <span class="import-dialog-vanilla-select-value ${!selectedBrand && !this.context.brandLoading ? "import-dialog-vanilla-select-placeholder" : ""}">${displayValue}</span>
2848
- <span class="import-dialog-vanilla-select-arrow"></span>
2855
+ <div class="sl-import-dialog-vanilla-setting-item">
2856
+ <span class="sl-import-dialog-vanilla-setting-label required">${t("selectBrand")}</span>
2857
+ <div class="sl-import-dialog-vanilla-custom-select" data-field="brandId">
2858
+ <div class="sl-import-dialog-vanilla-select-trigger ${this.context.brandLoading ? "disabled" : ""}">
2859
+ <span class="sl-import-dialog-vanilla-select-value ${!selectedBrand && !this.context.brandLoading ? "sl-import-dialog-vanilla-select-placeholder" : ""}">${displayValue}</span>
2860
+ <span class="sl-import-dialog-vanilla-select-arrow"></span>
2849
2861
  </div>
2850
- <div class="import-dialog-vanilla-select-dropdown">
2862
+ <div class="sl-import-dialog-vanilla-select-dropdown">
2851
2863
  ${this.context.brandList.map(
2852
2864
  (item) => `
2853
- <div class="import-dialog-vanilla-select-option ${this.context.formData.brandId === item.value ? "selected" : ""}"
2865
+ <div class="sl-import-dialog-vanilla-select-option ${this.context.formData.brandId === item.value ? "selected" : ""}"
2854
2866
  data-value="${item.value}">
2855
2867
  ${item.label}
2856
2868
  </div>
@@ -2864,12 +2876,12 @@ class ImportDialogRenderer {
2864
2876
  renderImageRatioSelect() {
2865
2877
  const options = this.imageRatioOptions;
2866
2878
  return `
2867
- <div class="import-dialog-vanilla-setting-item">
2868
- <span class="import-dialog-vanilla-setting-label required">${t("selectImageRatio")}</span>
2869
- <div class="import-dialog-vanilla-radio-group">
2879
+ <div class="sl-import-dialog-vanilla-setting-item">
2880
+ <span class="sl-import-dialog-vanilla-setting-label required">${t("selectImageRatio")}</span>
2881
+ <div class="sl-import-dialog-vanilla-radio-group">
2870
2882
  ${options.map(
2871
2883
  (ratio) => `
2872
- <label class="import-dialog-vanilla-radio">
2884
+ <label class="sl-import-dialog-vanilla-radio">
2873
2885
  <input type="radio" name="imageRatio" value="${ratio.value}"
2874
2886
  ${this.context.formData.imageRatio === ratio.value ? "checked" : ""} data-field="imageRatio">
2875
2887
  <span>${ratio.label}</span>
@@ -2886,17 +2898,17 @@ class ImportDialogRenderer {
2886
2898
  );
2887
2899
  const displayValue = selectedMonth ? `${selectedMonth}${t("month")}` : t("selectMonth");
2888
2900
  return `
2889
- <div class="import-dialog-vanilla-setting-item">
2890
- <span class="import-dialog-vanilla-setting-label required">${t("selectMonth")}</span>
2891
- <div class="import-dialog-vanilla-custom-select" data-field="month">
2892
- <div class="import-dialog-vanilla-select-trigger">
2893
- <span class="import-dialog-vanilla-select-value ${!selectedMonth ? "import-dialog-vanilla-select-placeholder" : ""}">${displayValue}</span>
2894
- <span class="import-dialog-vanilla-select-arrow"></span>
2901
+ <div class="sl-import-dialog-vanilla-setting-item">
2902
+ <span class="sl-import-dialog-vanilla-setting-label required">${t("selectMonth")}</span>
2903
+ <div class="sl-import-dialog-vanilla-custom-select" data-field="month">
2904
+ <div class="sl-import-dialog-vanilla-select-trigger">
2905
+ <span class="sl-import-dialog-vanilla-select-value ${!selectedMonth ? "sl-import-dialog-vanilla-select-placeholder" : ""}">${displayValue}</span>
2906
+ <span class="sl-import-dialog-vanilla-select-arrow"></span>
2895
2907
  </div>
2896
- <div class="import-dialog-vanilla-select-dropdown">
2908
+ <div class="sl-import-dialog-vanilla-select-dropdown">
2897
2909
  ${this.monthOptions.map(
2898
2910
  (m) => `
2899
- <div class="import-dialog-vanilla-select-option ${this.context.formData.month === m ? "selected" : ""}"
2911
+ <div class="sl-import-dialog-vanilla-select-option ${this.context.formData.month === m ? "selected" : ""}"
2900
2912
  data-value="${m}">
2901
2913
  ${m}${t("month")}
2902
2914
  </div>
@@ -2909,9 +2921,9 @@ class ImportDialogRenderer {
2909
2921
  }
2910
2922
  renderDateRangeSelect() {
2911
2923
  return `
2912
- <div class="import-dialog-vanilla-setting-item">
2913
- <span class="import-dialog-vanilla-setting-label required">${t("selectDate")}</span>
2914
- <div class="import-dialog-vanilla-date-range-container" data-field="dateRange"></div>
2924
+ <div class="sl-import-dialog-vanilla-setting-item">
2925
+ <span class="sl-import-dialog-vanilla-setting-label required">${t("selectDate")}</span>
2926
+ <div class="sl-import-dialog-vanilla-date-range-container" data-field="dateRange"></div>
2915
2927
  </div>
2916
2928
  `;
2917
2929
  }
@@ -2923,21 +2935,21 @@ class ImportDialogRenderer {
2923
2935
  );
2924
2936
  const reachedLimit = this.context.multiple && this.context.maxFiles != null && this.context.uploadFileList.length >= this.context.maxFiles;
2925
2937
  return `
2926
- <div class="import-dialog-vanilla-section">
2927
- <div class="import-dialog-vanilla-section-title">${this.uploadSectionIndex}.${config.uploadTitle}</div>
2928
- <div class="import-dialog-vanilla-upload-wrapper">
2938
+ <div class="sl-import-dialog-vanilla-section">
2939
+ <div class="sl-import-dialog-vanilla-section-title">${this.uploadSectionIndex}.${config.uploadTitle}</div>
2940
+ <div class="sl-import-dialog-vanilla-upload-wrapper">
2929
2941
  ${hasFiles ? this.renderFileList() : ""}
2930
2942
  ${!reachedLimit ? `
2931
- <div id="import-dialog-upload-area" class="import-dialog-vanilla-upload-area ${isAllUploading ? "disabled" : ""}">
2932
- <input type="file" class="import-dialog-vanilla-file-input" accept="${config.acceptTypes}" ${this.context.multiple ? "multiple" : ""} ${isAllUploading ? "disabled" : ""}>
2933
- <div class="import-dialog-vanilla-upload-content">
2934
- <img class="import-dialog-vanilla-upload-icon" src="${uploadImage}" alt="">
2935
- <p class="import-dialog-vanilla-upload-text">
2943
+ <div id="sl-import-dialog-upload-area" class="sl-import-dialog-vanilla-upload-area ${isAllUploading ? "disabled" : ""}">
2944
+ <input type="file" class="sl-import-dialog-vanilla-file-input" accept="${config.acceptTypes}" ${this.context.multiple ? "multiple" : ""} ${isAllUploading ? "disabled" : ""}>
2945
+ <div class="sl-import-dialog-vanilla-upload-content">
2946
+ <img class="sl-import-dialog-vanilla-upload-icon" src="${uploadImage}" alt="">
2947
+ <p class="sl-import-dialog-vanilla-upload-text">
2936
2948
  ${t("dragFileHere")}
2937
2949
  ${t("or")}
2938
- <a class="import-dialog-vanilla-upload-link">${config.uploadLinkText}</a>
2950
+ <a class="sl-import-dialog-vanilla-upload-link">${config.uploadLinkText}</a>
2939
2951
  </p>
2940
- <p class="import-dialog-vanilla-upload-hint">${config.uploadHint}</p>
2952
+ <p class="sl-import-dialog-vanilla-upload-hint">${config.uploadHint}</p>
2941
2953
  </div>
2942
2954
  </div>
2943
2955
  ` : ""}
@@ -2948,7 +2960,7 @@ class ImportDialogRenderer {
2948
2960
  renderFileList() {
2949
2961
  if (this.context.uploadFileList.length === 0) return "";
2950
2962
  return `
2951
- <div class="import-dialog-vanilla-file-list">
2963
+ <div class="sl-import-dialog-vanilla-file-list">
2952
2964
  ${this.context.uploadFileList.map((fileItem, index) => this.renderFileItem(fileItem, index)).join("")}
2953
2965
  </div>
2954
2966
  `;
@@ -2964,7 +2976,7 @@ class ImportDialogRenderer {
2964
2976
  const iconColor = isError ? "#FF1212" : "#FFD741";
2965
2977
  let metaContent = "";
2966
2978
  if (isError) {
2967
- metaContent = `<span class="import-dialog-vanilla-file-error-text">${t("uploadFailed")}</span>`;
2979
+ metaContent = `<span class="sl-import-dialog-vanilla-file-error-text">${t("uploadFailed")}</span>`;
2968
2980
  } else if (isUploading) {
2969
2981
  metaContent = `<span>${t("uploading")}...</span><span>·</span><span>${fileSize}</span>`;
2970
2982
  } else {
@@ -2972,19 +2984,19 @@ class ImportDialogRenderer {
2972
2984
  }
2973
2985
  if (isUploading) {
2974
2986
  return `
2975
- <div class="import-dialog-vanilla-file-item ${statusClass} ${widthClass}" data-file-id="${fileItem.id}">
2976
- <div class="import-dialog-vanilla-file-loading-icon">
2977
- <div class="loading-spinner"></div>
2987
+ <div class="sl-import-dialog-vanilla-file-item ${statusClass} ${widthClass}" data-file-id="${fileItem.id}">
2988
+ <div class="sl-import-dialog-vanilla-file-loading-icon">
2989
+ <div class="sl-loading-spinner"></div>
2978
2990
  </div>
2979
- <div class="import-dialog-vanilla-file-remove-btn" data-file-index="${index}" title="删除">
2991
+ <div class="sl-import-dialog-vanilla-file-remove-btn" data-file-index="${index}" title="删除">
2980
2992
  <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2981
2993
  <circle cx="8" cy="8" r="8" fill="rgba(0,0,0)"/>
2982
2994
  <path d="M5 5L11 11M11 5L5 11" stroke="white" stroke-width="1.5" stroke-linecap="round"/>
2983
2995
  </svg>
2984
2996
  </div>
2985
- <div class="import-dialog-vanilla-file-info">
2986
- <div class="import-dialog-vanilla-file-name" title="${fileItem.name}">${fileItem.name}</div>
2987
- <div class="import-dialog-vanilla-file-meta">
2997
+ <div class="sl-import-dialog-vanilla-file-info">
2998
+ <div class="sl-import-dialog-vanilla-file-name" title="${fileItem.name}">${fileItem.name}</div>
2999
+ <div class="sl-import-dialog-vanilla-file-meta">
2988
3000
  ${metaContent}
2989
3001
  </div>
2990
3002
  </div>
@@ -2992,21 +3004,21 @@ class ImportDialogRenderer {
2992
3004
  `;
2993
3005
  }
2994
3006
  return `
2995
- <div class="import-dialog-vanilla-file-item ${statusClass} ${widthClass}" data-file-id="${fileItem.id}">
2996
- <div class="import-dialog-vanilla-file-icon">
3007
+ <div class="sl-import-dialog-vanilla-file-item ${statusClass} ${widthClass}" data-file-id="${fileItem.id}">
3008
+ <div class="sl-import-dialog-vanilla-file-icon">
2997
3009
  <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2998
3010
  <path d="M4 6C4 4.89543 4.89543 4 6 4H14L18 8H26C27.1046 8 28 8.89543 28 10V26C28 27.1046 27.1046 28 26 28H6C4.89543 28 4 27.1046 4 26V6Z" fill="${iconColor}"/>
2999
3011
  </svg>
3000
3012
  </div>
3001
- <div class="import-dialog-vanilla-file-remove-btn" data-file-index="${index}" title="删除">
3013
+ <div class="sl-import-dialog-vanilla-file-remove-btn" data-file-index="${index}" title="删除">
3002
3014
  <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
3003
3015
  <circle cx="8" cy="8" r="8" fill="rgba(0,0,0)"/>
3004
3016
  <path d="M5 5L11 11M11 5L5 11" stroke="white" stroke-width="1.5" stroke-linecap="round"/>
3005
3017
  </svg>
3006
3018
  </div>
3007
- <div class="import-dialog-vanilla-file-info">
3008
- <div class="import-dialog-vanilla-file-name" title="${fileItem.name}">${fileItem.name}</div>
3009
- <div class="import-dialog-vanilla-file-meta">
3019
+ <div class="sl-import-dialog-vanilla-file-info">
3020
+ <div class="sl-import-dialog-vanilla-file-name" title="${fileItem.name}">${fileItem.name}</div>
3021
+ <div class="sl-import-dialog-vanilla-file-meta">
3010
3022
  ${metaContent}
3011
3023
  </div>
3012
3024
  </div>
@@ -3024,15 +3036,15 @@ class ImportDialogRenderer {
3024
3036
  if (!this.context.isUploading && !this.context.uploadMessage) return "";
3025
3037
  const progressStatus = this.context.uploadMessageType === "error" ? "error" : this.context.uploadProgress === 100 ? "success" : "active";
3026
3038
  return `
3027
- <div class="import-dialog-vanilla-upload-progress">
3039
+ <div class="sl-import-dialog-vanilla-upload-progress">
3028
3040
  ${this.context.isUploading || this.context.uploadProgress > 0 ? `
3029
- <div class="import-dialog-vanilla-progress-bar">
3030
- <div class="import-dialog-vanilla-progress-inner ${progressStatus}" style="width: ${this.context.uploadProgress}%"></div>
3041
+ <div class="sl-import-dialog-vanilla-progress-bar">
3042
+ <div class="sl-import-dialog-vanilla-progress-inner ${progressStatus}" style="width: ${this.context.uploadProgress}%"></div>
3031
3043
  </div>
3032
- <span class="import-dialog-vanilla-progress-text">${this.context.uploadProgress}%</span>
3044
+ <span class="sl-import-dialog-vanilla-progress-text">${this.context.uploadProgress}%</span>
3033
3045
  ` : ""}
3034
3046
  ${this.context.uploadMessage ? `
3035
- <div class="import-dialog-vanilla-upload-message ${this.context.uploadMessageType}">
3047
+ <div class="sl-import-dialog-vanilla-upload-message ${this.context.uploadMessageType}">
3036
3048
  ${this.context.uploadMessage}
3037
3049
  </div>
3038
3050
  ` : ""}
@@ -3041,28 +3053,28 @@ class ImportDialogRenderer {
3041
3053
  }
3042
3054
  renderTipsSection() {
3043
3055
  return `
3044
- <div class="import-dialog-vanilla-section">
3045
- <div class="import-dialog-vanilla-section-title">
3046
- <span class="import-dialog-vanilla-tips-icon"><i class="iconfont icon-icon_tips"></i></span>
3047
- <span class="import-dialog-vanilla-tips-title">${t("tipsTitle")}</span>
3056
+ <div class="sl-import-dialog-vanilla-section">
3057
+ <div class="sl-import-dialog-vanilla-section-title">
3058
+ <span class="sl-import-dialog-vanilla-tips-icon"><i class="iconfont icon-icon_tips"></i></span>
3059
+ <span class="sl-import-dialog-vanilla-tips-title">${t("tipsTitle")}</span>
3048
3060
  </div>
3049
- <div class="import-dialog-vanilla-tips-content">
3050
- ${this.tipsList.map((tip) => `<p class="import-dialog-vanilla-tip-item">${tip}</p>`).join("")}
3061
+ <div class="sl-import-dialog-vanilla-tips-content">
3062
+ ${this.tipsList.map((tip) => `<p class="sl-import-dialog-vanilla-tip-item">${tip}</p>`).join("")}
3051
3063
  </div>
3052
3064
  </div>
3053
3065
  `;
3054
3066
  }
3055
3067
  renderFooter() {
3056
3068
  return `
3057
- <div class="import-dialog-vanilla-footer">
3058
- <button id="import-dialog-cancel-btn" class="import-dialog-vanilla-btn">${t("cancel")}</button>
3059
- <button id="import-dialog-confirm-btn" class="import-dialog-vanilla-btn import-dialog-vanilla-btn-primary">
3069
+ <div class="sl-import-dialog-vanilla-footer">
3070
+ <button id="sl-import-dialog-cancel-btn" class="sl-import-dialog-vanilla-btn">${t("cancel")}</button>
3071
+ <button id="sl-import-dialog-confirm-btn" class="sl-import-dialog-vanilla-btn sl-import-dialog-vanilla-btn-primary">
3060
3072
  ${t("confirm")}
3061
3073
  </button>
3062
3074
  </div>
3063
3075
  ${this.context.confirmLoading ? `
3064
- <div class="import-dialog-vanilla-loading-overlay">
3065
- <div class="import-dialog-vanilla-loading-spinner"></div>
3076
+ <div class="sl-import-dialog-vanilla-loading-overlay">
3077
+ <div class="sl-import-dialog-vanilla-loading-spinner"></div>
3066
3078
  </div>
3067
3079
  ` : ""}
3068
3080
  `;
@@ -3756,14 +3768,14 @@ const activeToasts = /* @__PURE__ */ new Set();
3756
3768
  function showToast(options) {
3757
3769
  const { message, type, duration = 3e3, closable = true } = options;
3758
3770
  const toast2 = document.createElement("div");
3759
- toast2.className = `import-dialog-vanilla-toast ${type}`;
3771
+ toast2.className = `sl-import-dialog-vanilla-toast ${type}`;
3760
3772
  const iconClass = ICON_MAP[type] || ICON_MAP.info;
3761
3773
  toast2.innerHTML = `
3762
- <div class="import-dialog-vanilla-toast-content">
3763
- <i class="iconfont ${iconClass} import-dialog-vanilla-toast-icon"></i>
3764
- <span class="import-dialog-vanilla-toast-message">${message}</span>
3774
+ <div class="sl-import-dialog-vanilla-toast-content">
3775
+ <i class="iconfont ${iconClass} sl-import-dialog-vanilla-toast-icon"></i>
3776
+ <span class="sl-import-dialog-vanilla-toast-message">${message}</span>
3765
3777
  </div>
3766
- ${closable ? `<button class="import-dialog-vanilla-toast-close" data-action="close-toast">
3778
+ ${closable ? `<button class="sl-import-dialog-vanilla-toast-close" data-action="close-toast">
3767
3779
  <i class="iconfont icon-guanbi"></i>
3768
3780
  </button>` : ""}
3769
3781
  `;
@@ -3868,7 +3880,7 @@ const _ImportDialog = class _ImportDialog2 {
3868
3880
  __publicField(this, "handleDocumentClick", (e) => {
3869
3881
  const target = e.target;
3870
3882
  const clickedInsideSelect = Array.from(
3871
- document.querySelectorAll(".import-dialog-vanilla-custom-select")
3883
+ document.querySelectorAll(".sl-import-dialog-vanilla-custom-select")
3872
3884
  ).some((select) => select.contains(target));
3873
3885
  if (!clickedInsideSelect) {
3874
3886
  this.closeAllSelects();
@@ -3879,9 +3891,9 @@ const _ImportDialog = class _ImportDialog2 {
3879
3891
  this.initUploader();
3880
3892
  }
3881
3893
  injectStyles() {
3882
- if (document.getElementById("import-dialog-vanilla-styles")) return;
3894
+ if (document.getElementById("sl-import-dialog-vanilla-styles")) return;
3883
3895
  this.styleElement = document.createElement("style");
3884
- this.styleElement.id = "import-dialog-vanilla-styles";
3896
+ this.styleElement.id = "sl-import-dialog-vanilla-styles";
3885
3897
  this.styleElement.textContent = getImportDialogStyles();
3886
3898
  document.head.appendChild(this.styleElement);
3887
3899
  }
@@ -3970,7 +3982,7 @@ const _ImportDialog = class _ImportDialog2 {
3970
3982
  }
3971
3983
  this.renderer = new ImportDialogRenderer(this.getRenderContext());
3972
3984
  this.modalElement = document.createElement("div");
3973
- this.modalElement.className = "import-dialog-vanilla-wrapper";
3985
+ this.modalElement.className = "sl-import-dialog-vanilla-wrapper";
3974
3986
  this.modalElement.innerHTML = this.renderer.render();
3975
3987
  (_a = this.container) == null ? void 0 : _a.appendChild(this.modalElement);
3976
3988
  this.bindEvents();
@@ -4040,19 +4052,19 @@ const _ImportDialog = class _ImportDialog2 {
4040
4052
  bindEvents() {
4041
4053
  if (!this.modalElement) return;
4042
4054
  const overlay = this.modalElement.querySelector(
4043
- ".import-dialog-vanilla-overlay"
4055
+ ".sl-import-dialog-vanilla-overlay"
4044
4056
  );
4045
4057
  overlay == null ? void 0 : overlay.addEventListener("click", (e) => e.stopPropagation());
4046
4058
  const modal = this.modalElement.querySelector(
4047
- ".import-dialog-vanilla-modal"
4059
+ ".sl-import-dialog-vanilla-modal"
4048
4060
  );
4049
4061
  modal == null ? void 0 : modal.addEventListener("click", (e) => e.stopPropagation());
4050
4062
  const closeBtn = this.modalElement.querySelector(
4051
- "#import-dialog-close-btn"
4063
+ "#sl-import-dialog-close-btn"
4052
4064
  );
4053
4065
  closeBtn == null ? void 0 : closeBtn.addEventListener("click", () => this.handleCancel());
4054
4066
  const tabs = this.modalElement.querySelectorAll(
4055
- ".import-dialog-vanilla-tab"
4067
+ ".sl-import-dialog-vanilla-tab"
4056
4068
  );
4057
4069
  tabs.forEach((tab) => {
4058
4070
  tab.addEventListener("click", (e) => {
@@ -4063,10 +4075,10 @@ const _ImportDialog = class _ImportDialog2 {
4063
4075
  });
4064
4076
  });
4065
4077
  const uploadArea = this.modalElement.querySelector(
4066
- ".import-dialog-vanilla-upload-area"
4078
+ ".sl-import-dialog-vanilla-upload-area"
4067
4079
  );
4068
4080
  const fileInput = this.modalElement.querySelector(
4069
- ".import-dialog-vanilla-file-input"
4081
+ ".sl-import-dialog-vanilla-file-input"
4070
4082
  );
4071
4083
  uploadArea == null ? void 0 : uploadArea.addEventListener("click", () => {
4072
4084
  if (!this.uploader.isUploading) {
@@ -4107,7 +4119,7 @@ const _ImportDialog = class _ImportDialog2 {
4107
4119
  }
4108
4120
  });
4109
4121
  const removeBtns = this.modalElement.querySelectorAll(
4110
- ".import-dialog-vanilla-file-remove-btn"
4122
+ ".sl-import-dialog-vanilla-file-remove-btn"
4111
4123
  );
4112
4124
  removeBtns.forEach((btn) => {
4113
4125
  btn.addEventListener("click", (e) => {
@@ -4122,15 +4134,15 @@ const _ImportDialog = class _ImportDialog2 {
4122
4134
  });
4123
4135
  this.bindFormEvents();
4124
4136
  const confirmBtn = this.modalElement.querySelector(
4125
- "#import-dialog-confirm-btn"
4137
+ "#sl-import-dialog-confirm-btn"
4126
4138
  );
4127
4139
  confirmBtn == null ? void 0 : confirmBtn.addEventListener("click", () => this.handleConfirm());
4128
4140
  const cancelBtn = this.modalElement.querySelector(
4129
- "#import-dialog-cancel-btn"
4141
+ "#sl-import-dialog-cancel-btn"
4130
4142
  );
4131
4143
  cancelBtn == null ? void 0 : cancelBtn.addEventListener("click", () => this.handleCancel());
4132
4144
  const downloadBtn = this.modalElement.querySelector(
4133
- "#import-dialog-download-btn"
4145
+ "#sl-import-dialog-download-btn"
4134
4146
  );
4135
4147
  downloadBtn == null ? void 0 : downloadBtn.addEventListener("click", (e) => {
4136
4148
  e.preventDefault();
@@ -4152,17 +4164,17 @@ const _ImportDialog = class _ImportDialog2 {
4152
4164
  bindCustomSelectEvents() {
4153
4165
  if (!this.modalElement) return;
4154
4166
  const customSelects = this.modalElement.querySelectorAll(
4155
- ".import-dialog-vanilla-custom-select"
4167
+ ".sl-import-dialog-vanilla-custom-select"
4156
4168
  );
4157
4169
  customSelects.forEach((customSelect) => {
4158
4170
  const trigger = customSelect.querySelector(
4159
- ".import-dialog-vanilla-select-trigger"
4171
+ ".sl-import-dialog-vanilla-select-trigger"
4160
4172
  );
4161
4173
  const dropdown = customSelect.querySelector(
4162
- ".import-dialog-vanilla-select-dropdown"
4174
+ ".sl-import-dialog-vanilla-select-dropdown"
4163
4175
  );
4164
4176
  const options = customSelect.querySelectorAll(
4165
- ".import-dialog-vanilla-select-option"
4177
+ ".sl-import-dialog-vanilla-select-option"
4166
4178
  );
4167
4179
  const fieldName = customSelect.getAttribute("data-field");
4168
4180
  trigger == null ? void 0 : trigger.addEventListener("click", (e) => {
@@ -4179,12 +4191,12 @@ const _ImportDialog = class _ImportDialog2 {
4179
4191
  const value = option.getAttribute("data-value");
4180
4192
  const label = option.textContent || "";
4181
4193
  const valueElement = trigger.querySelector(
4182
- ".import-dialog-vanilla-select-value"
4194
+ ".sl-import-dialog-vanilla-select-value"
4183
4195
  );
4184
4196
  if (valueElement) {
4185
4197
  valueElement.textContent = label;
4186
4198
  valueElement.classList.remove(
4187
- "import-dialog-vanilla-select-placeholder"
4199
+ "sl-import-dialog-vanilla-select-placeholder"
4188
4200
  );
4189
4201
  }
4190
4202
  options.forEach((opt) => opt.classList.remove("selected"));
@@ -4205,15 +4217,15 @@ const _ImportDialog = class _ImportDialog2 {
4205
4217
  closeAllSelects(except) {
4206
4218
  if (!this.modalElement) return;
4207
4219
  const customSelects = this.modalElement.querySelectorAll(
4208
- ".import-dialog-vanilla-custom-select"
4220
+ ".sl-import-dialog-vanilla-custom-select"
4209
4221
  );
4210
4222
  customSelects.forEach((customSelect) => {
4211
4223
  if (except && customSelect === except) return;
4212
4224
  const trigger = customSelect.querySelector(
4213
- ".import-dialog-vanilla-select-trigger"
4225
+ ".sl-import-dialog-vanilla-select-trigger"
4214
4226
  );
4215
4227
  const dropdown = customSelect.querySelector(
4216
- ".import-dialog-vanilla-select-dropdown"
4228
+ ".sl-import-dialog-vanilla-select-dropdown"
4217
4229
  );
4218
4230
  trigger == null ? void 0 : trigger.classList.remove("active");
4219
4231
  dropdown == null ? void 0 : dropdown.classList.remove("show");