@visns-studio/visns-components 5.14.9 → 5.14.11

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.
@@ -3299,3 +3299,535 @@
3299
3299
  transform: translateY(0);
3300
3300
  }
3301
3301
  }
3302
+
3303
+ /* Grouping Configuration Styles */
3304
+ .groupingSection {
3305
+ padding: 24px;
3306
+ background-color: var(--bg-color);
3307
+ border-radius: var(--radius);
3308
+ border: 1px solid var(--border-color);
3309
+ }
3310
+
3311
+ .groupingToggle {
3312
+ margin-bottom: 24px;
3313
+ padding: 20px;
3314
+ background-color: var(--tertiary-color);
3315
+ border-radius: var(--radius);
3316
+ border: 1px solid var(--border-color);
3317
+ }
3318
+
3319
+ .toggleLabel {
3320
+ display: flex;
3321
+ align-items: center;
3322
+ cursor: pointer;
3323
+ margin-bottom: 8px;
3324
+ font-weight: 500;
3325
+ color: var(--header-color);
3326
+ }
3327
+
3328
+ .toggleInput {
3329
+ margin-right: 12px;
3330
+ width: 18px;
3331
+ height: 18px;
3332
+ cursor: pointer;
3333
+ }
3334
+
3335
+ .toggleCheckbox {
3336
+ margin-right: 8px;
3337
+ }
3338
+
3339
+ .toggleText {
3340
+ font-size: 1rem;
3341
+ }
3342
+
3343
+ .helpText {
3344
+ margin: 8px 0 0 0;
3345
+ font-size: 0.875rem;
3346
+ color: var(--paragraph-color);
3347
+ line-height: 1.4;
3348
+ }
3349
+
3350
+ .groupingOptions {
3351
+ animation: fadeIn 0.3s ease-in-out;
3352
+ }
3353
+
3354
+ @keyframes fadeIn {
3355
+ from { opacity: 0; transform: translateY(-10px); }
3356
+ to { opacity: 1; transform: translateY(0); }
3357
+ }
3358
+
3359
+ .formLabel {
3360
+ display: block;
3361
+ margin-bottom: 6px;
3362
+ font-weight: 500;
3363
+ color: var(--header-color);
3364
+ font-size: 0.875rem;
3365
+ }
3366
+
3367
+ .fieldHelp {
3368
+ margin-top: 6px;
3369
+ font-size: 0.75rem;
3370
+ color: var(--paragraph-color);
3371
+ line-height: 1.3;
3372
+ }
3373
+
3374
+ .advancedGroupOptions {
3375
+ margin-top: 24px;
3376
+ padding: 20px;
3377
+ background-color: var(--tertiary-color);
3378
+ border-radius: var(--radius);
3379
+ border: 1px solid var(--border-color);
3380
+ }
3381
+
3382
+ .sectionTitle {
3383
+ margin: 0 0 16px 0;
3384
+ font-size: 1rem;
3385
+ font-weight: 600;
3386
+ color: var(--header-color);
3387
+ border-bottom: 1px solid var(--border-color);
3388
+ padding-bottom: 8px;
3389
+ }
3390
+
3391
+ .optionsGrid {
3392
+ display: grid;
3393
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
3394
+ gap: 16px;
3395
+ margin-bottom: 20px;
3396
+ }
3397
+
3398
+ .checkboxGrid {
3399
+ display: grid;
3400
+ grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
3401
+ gap: 12px;
3402
+ }
3403
+
3404
+ .checkboxLabel {
3405
+ display: flex;
3406
+ align-items: center;
3407
+ cursor: pointer;
3408
+ font-size: 0.875rem;
3409
+ color: var(--header-color);
3410
+
3411
+ input[type="checkbox"] {
3412
+ margin-right: 8px;
3413
+ width: 16px;
3414
+ height: 16px;
3415
+ cursor: pointer;
3416
+ }
3417
+ }
3418
+
3419
+ .checkboxText {
3420
+ line-height: 1.2;
3421
+ }
3422
+
3423
+ .groupingPreview {
3424
+ margin-top: 24px;
3425
+ padding: 16px;
3426
+ background-color: var(--bg-color);
3427
+ border-radius: var(--radius);
3428
+ border: 1px solid var(--primary-color);
3429
+ }
3430
+
3431
+ .previewBox {
3432
+ background-color: var(--tertiary-color);
3433
+ padding: 16px;
3434
+ border-radius: var(--radius);
3435
+ border: 1px solid var(--border-color);
3436
+
3437
+ p {
3438
+ margin: 0 0 8px 0;
3439
+ font-size: 0.875rem;
3440
+ color: var(--paragraph-color);
3441
+
3442
+ &:last-child {
3443
+ margin-bottom: 0;
3444
+ }
3445
+
3446
+ strong {
3447
+ color: var(--header-color);
3448
+ font-weight: 600;
3449
+ }
3450
+ }
3451
+ }
3452
+
3453
+ /* View Toggle Styles */
3454
+ .viewToggle {
3455
+ display: flex;
3456
+ align-items: center;
3457
+ gap: 8px;
3458
+ margin-left: 16px;
3459
+ padding: 8px 12px;
3460
+ background-color: var(--tertiary-color);
3461
+ border-radius: var(--radius);
3462
+ border: 1px solid var(--border-color);
3463
+ }
3464
+
3465
+ .viewLabel {
3466
+ font-size: 0.875rem;
3467
+ font-weight: 500;
3468
+ color: var(--header-color);
3469
+ margin-right: 4px;
3470
+ }
3471
+
3472
+ .viewToggle .btn {
3473
+ padding: 6px 12px;
3474
+ font-size: 0.8rem;
3475
+ border: 1px solid var(--border-color);
3476
+ background-color: var(--bg-color);
3477
+ color: var(--paragraph-color);
3478
+ margin: 0;
3479
+
3480
+ &:hover {
3481
+ background-color: var(--secondary-color);
3482
+ color: var(--header-color);
3483
+ }
3484
+
3485
+ &.active {
3486
+ background-color: var(--primary-color);
3487
+ color: white;
3488
+ border-color: var(--primary-color);
3489
+
3490
+ &:hover {
3491
+ background-color: var(--primary-dark-color);
3492
+ }
3493
+ }
3494
+ }
3495
+
3496
+ .previewActions {
3497
+ display: flex;
3498
+ align-items: center;
3499
+ justify-content: flex-start;
3500
+ margin-bottom: 20px;
3501
+ padding: 16px;
3502
+ background-color: var(--tertiary-color);
3503
+ border-radius: var(--radius);
3504
+ border: 1px solid var(--border-color);
3505
+ }
3506
+
3507
+ /* Enhanced Pagination Styles */
3508
+ .paginationContainer {
3509
+ display: flex;
3510
+ flex-direction: column;
3511
+ gap: 12px;
3512
+ padding: 16px 20px;
3513
+ background-color: var(--tertiary-color);
3514
+ border-top: 1px solid var(--border-color);
3515
+ border-radius: 0 0 var(--radius) var(--radius);
3516
+ }
3517
+
3518
+ .paginationInfo {
3519
+ display: flex;
3520
+ justify-content: center;
3521
+ align-items: center;
3522
+ font-size: 0.875rem;
3523
+ color: var(--paragraph-color);
3524
+ font-weight: 500;
3525
+ margin: 0;
3526
+ padding: 0;
3527
+ background: none;
3528
+ border: none;
3529
+ }
3530
+
3531
+ .paginationControls {
3532
+ display: flex;
3533
+ justify-content: space-between;
3534
+ align-items: center;
3535
+ gap: 16px;
3536
+ flex-wrap: wrap;
3537
+
3538
+ @media (max-width: 768px) {
3539
+ flex-direction: column;
3540
+ gap: 12px;
3541
+ }
3542
+ }
3543
+
3544
+ .pageSizeSelector {
3545
+ display: flex;
3546
+ align-items: center;
3547
+ gap: 8px;
3548
+ font-size: 0.875rem;
3549
+ color: var(--paragraph-color);
3550
+
3551
+ label {
3552
+ font-weight: 500;
3553
+ color: var(--header-color);
3554
+ margin: 0;
3555
+ }
3556
+
3557
+ span {
3558
+ font-weight: 400;
3559
+ color: var(--paragraph-color);
3560
+ }
3561
+ }
3562
+
3563
+ .pageSizeSelect {
3564
+ padding: 6px 8px;
3565
+ border: 1px solid var(--border-color);
3566
+ border-radius: var(--radius);
3567
+ background-color: var(--bg-color);
3568
+ color: var(--header-color);
3569
+ font-size: 0.875rem;
3570
+ cursor: pointer;
3571
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
3572
+
3573
+ &:focus {
3574
+ outline: none;
3575
+ border-color: var(--primary-color);
3576
+ box-shadow: 0 0 0 3px rgba(var(--primary-rgb), 0.1);
3577
+ }
3578
+
3579
+ &:hover {
3580
+ border-color: var(--primary-color);
3581
+ }
3582
+ }
3583
+
3584
+ .pageNavigation {
3585
+ display: flex;
3586
+ align-items: center;
3587
+ gap: 8px;
3588
+
3589
+ @media (max-width: 768px) {
3590
+ width: 100%;
3591
+ justify-content: center;
3592
+ }
3593
+ }
3594
+
3595
+ .pageNumbers {
3596
+ display: flex;
3597
+ align-items: center;
3598
+ gap: 4px;
3599
+
3600
+ @media (max-width: 480px) {
3601
+ gap: 2px;
3602
+ }
3603
+ }
3604
+
3605
+ .pageBtn {
3606
+ display: flex;
3607
+ align-items: center;
3608
+ justify-content: center;
3609
+ min-width: 36px;
3610
+ height: 36px;
3611
+ padding: 0 8px;
3612
+ border: 1px solid var(--border-color);
3613
+ background-color: var(--bg-color);
3614
+ color: var(--paragraph-color);
3615
+ font-size: 0.875rem;
3616
+ font-weight: 500;
3617
+ border-radius: var(--radius);
3618
+ cursor: pointer;
3619
+ transition: all 0.2s ease;
3620
+ user-select: none;
3621
+
3622
+ &:hover:not(.disabled) {
3623
+ background-color: var(--secondary-color);
3624
+ border-color: var(--primary-color);
3625
+ color: var(--header-color);
3626
+ transform: translateY(-1px);
3627
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
3628
+ }
3629
+
3630
+ &:active:not(.disabled) {
3631
+ transform: translateY(0);
3632
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
3633
+ }
3634
+
3635
+ &.active {
3636
+ background-color: var(--primary-color);
3637
+ border-color: var(--primary-color);
3638
+ color: white;
3639
+ font-weight: 600;
3640
+ box-shadow: 0 2px 4px rgba(var(--primary-rgb), 0.3);
3641
+
3642
+ &:hover {
3643
+ background-color: var(--primary-dark-color);
3644
+ transform: none;
3645
+ }
3646
+ }
3647
+
3648
+ &.disabled {
3649
+ background-color: var(--tertiary-color);
3650
+ border-color: var(--border-color);
3651
+ color: var(--disabled-color, #9CA3AF);
3652
+ cursor: not-allowed;
3653
+ opacity: 0.6;
3654
+
3655
+ &:hover {
3656
+ transform: none;
3657
+ box-shadow: none;
3658
+ background-color: var(--tertiary-color);
3659
+ border-color: var(--border-color);
3660
+ }
3661
+ }
3662
+
3663
+ @media (max-width: 480px) {
3664
+ min-width: 32px;
3665
+ height: 32px;
3666
+ font-size: 0.8rem;
3667
+ padding: 0 6px;
3668
+ }
3669
+ }
3670
+
3671
+ .ellipsis {
3672
+ display: flex;
3673
+ align-items: center;
3674
+ justify-content: center;
3675
+ min-width: 36px;
3676
+ height: 36px;
3677
+ color: var(--paragraph-color);
3678
+ font-size: 0.875rem;
3679
+ font-weight: 500;
3680
+ user-select: none;
3681
+
3682
+ @media (max-width: 480px) {
3683
+ min-width: 24px;
3684
+ height: 32px;
3685
+ font-size: 0.8rem;
3686
+ }
3687
+ }
3688
+
3689
+ /* Pagination animations */
3690
+ @keyframes paginationSlideIn {
3691
+ from {
3692
+ opacity: 0;
3693
+ transform: translateY(10px);
3694
+ }
3695
+ to {
3696
+ opacity: 1;
3697
+ transform: translateY(0);
3698
+ }
3699
+ }
3700
+
3701
+ .paginationContainer {
3702
+ animation: paginationSlideIn 0.3s ease-out;
3703
+ }
3704
+
3705
+ /* Loading state for pagination */
3706
+ .paginationContainer.loading {
3707
+ opacity: 0.6;
3708
+ pointer-events: none;
3709
+
3710
+ .pageBtn {
3711
+ cursor: wait;
3712
+ }
3713
+
3714
+ .pageSizeSelect {
3715
+ cursor: wait;
3716
+ }
3717
+ }
3718
+
3719
+ /* Enhanced accessibility */
3720
+ .pageBtn:focus-visible {
3721
+ outline: 2px solid var(--primary-color);
3722
+ outline-offset: 2px;
3723
+ }
3724
+
3725
+ .pageSizeSelect:focus-visible {
3726
+ outline: 2px solid var(--primary-color);
3727
+ outline-offset: 2px;
3728
+ }
3729
+
3730
+ /* No Data Message Styles */
3731
+ .noDataContainer {
3732
+ display: flex;
3733
+ justify-content: center;
3734
+ align-items: center;
3735
+ min-height: 400px;
3736
+ padding: 40px 20px;
3737
+ }
3738
+
3739
+ .noDataMessage {
3740
+ text-align: center;
3741
+ max-width: 500px;
3742
+ padding: 40px;
3743
+ background-color: var(--tertiary-color);
3744
+ border: 1px solid var(--border-color);
3745
+ border-radius: var(--radius);
3746
+ box-shadow: var(--box-shadow-small);
3747
+ }
3748
+
3749
+ .noDataIcon {
3750
+ margin-bottom: 20px;
3751
+ opacity: 0.7;
3752
+ color: var(--paragraph-color);
3753
+
3754
+ svg {
3755
+ width: 48px;
3756
+ height: 48px;
3757
+ }
3758
+ }
3759
+
3760
+ .noDataTitle {
3761
+ font-size: 1.5rem;
3762
+ font-weight: 600;
3763
+ color: var(--header-color);
3764
+ margin: 0 0 12px 0;
3765
+ }
3766
+
3767
+ .noDataText {
3768
+ font-size: 1rem;
3769
+ color: var(--paragraph-color);
3770
+ margin: 0 0 24px 0;
3771
+ line-height: 1.5;
3772
+ }
3773
+
3774
+ .noDataSuggestions {
3775
+ text-align: left;
3776
+ background-color: var(--bg-color);
3777
+ border: 1px solid var(--border-color);
3778
+ border-radius: var(--radius);
3779
+ padding: 20px;
3780
+ margin-top: 20px;
3781
+
3782
+ p {
3783
+ margin: 0 0 12px 0;
3784
+ font-weight: 600;
3785
+ color: var(--header-color);
3786
+ font-size: 0.9rem;
3787
+ }
3788
+
3789
+ ul {
3790
+ margin: 0;
3791
+ padding-left: 20px;
3792
+ color: var(--paragraph-color);
3793
+
3794
+ li {
3795
+ margin-bottom: 8px;
3796
+ font-size: 0.9rem;
3797
+ line-height: 1.4;
3798
+
3799
+ &:last-child {
3800
+ margin-bottom: 0;
3801
+ }
3802
+ }
3803
+ }
3804
+ }
3805
+
3806
+ /* Responsive adjustments for no data message */
3807
+ @media (max-width: 768px) {
3808
+ .noDataContainer {
3809
+ min-height: 300px;
3810
+ padding: 20px 15px;
3811
+ }
3812
+
3813
+ .noDataMessage {
3814
+ padding: 30px 20px;
3815
+ }
3816
+
3817
+ .noDataIcon {
3818
+ margin-bottom: 16px;
3819
+
3820
+ svg {
3821
+ width: 40px;
3822
+ height: 40px;
3823
+ }
3824
+ }
3825
+
3826
+ .noDataTitle {
3827
+ font-size: 1.3rem;
3828
+ }
3829
+
3830
+ .noDataText {
3831
+ font-size: 0.9rem;
3832
+ }
3833
+ }