@sbb-esta/lyne-elements-dev 5.10.0-dev.1790760894 → 5.10.0-dev.1790845184

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.
@@ -1754,6 +1754,13 @@ summary {
1754
1754
  --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-2x);
1755
1755
  --sbb-table-cell-padding-block: var(--sbb-spacing-fixed-1x);
1756
1756
  --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-2x);
1757
+ --sbb-table-sort-header-animation-easing: cubic-bezier(0.4, 0, 0.2, 1);
1758
+ --sbb-table-sort-header-color: var(--sbb-color-2);
1759
+ --sbb-table-sort-header-hover-color: var(--sbb-color-primary125);
1760
+ --sbb-table-sort-header-hover-color: light-dark(
1761
+ var(--sbb-color-primary125),
1762
+ var(--sbb-color-primary85)
1763
+ );
1757
1764
  --sbb-tab-group-content-gap-size-s: var(--sbb-spacing-responsive-xs);
1758
1765
  --sbb-tab-group-content-gap-size-l: var(--sbb-spacing-responsive-s);
1759
1766
  --sbb-tab-group-content-gap-size-xl: var(--sbb-spacing-responsive-m);
@@ -3256,6 +3263,10 @@ sbb-sidebar-container:is(:has(> sbb-sidebar:not([position=end]):is(:is(:state(st
3256
3263
  --sbb-disable-animation-duration,
3257
3264
  var(--sbb-animation-duration-6x)
3258
3265
  );
3266
+ --sbb-table-sort-header-animation-duration: var(
3267
+ --sbb-disable-animation-duration,
3268
+ var(--sbb-animation-duration-6x)
3269
+ );
3259
3270
  border-spacing: 0;
3260
3271
  caption-side: bottom;
3261
3272
  color: var(--sbb-table-color);
@@ -3342,6 +3353,8 @@ sbb-table-wrapper[negative] .sbb-table,
3342
3353
  --sbb-table-color: var(--sbb-color-1-negative);
3343
3354
  --sbb-table-row-striped-color: var(--sbb-background-color-3-negative);
3344
3355
  --sbb-table-caption-color: var(--sbb-color-cement);
3356
+ --sbb-table-sort-header-color: var(--sbb-color-2-negative);
3357
+ --sbb-table-sort-header-hover-color: var(--sbb-color-primary85);
3345
3358
  }
3346
3359
 
3347
3360
  .sbb-table--striped tbody tr:nth-child(odd) :is(th, td) {
@@ -3469,6 +3482,153 @@ sbb-table-wrapper[negative] .sbb-table--theme-iron, .sbb-table--theme-iron.sbb-t
3469
3482
  text-align: right;
3470
3483
  }
3471
3484
 
3485
+ .sbb-sort-header {
3486
+ position: relative;
3487
+ }
3488
+ .sbb-sort-header:is(:focus-visible, .cdk-keyboard-focused, .cdk-program-focused), .sbb-sort-header:has(.sbb-sort-header-container:focus-visible) {
3489
+ --sbb-focus-outline-offset: calc(-1 * var(--sbb-focus-outline-width));
3490
+ outline-offset: var(--sbb-focus-outline-offset);
3491
+ outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);
3492
+ }
3493
+ .sbb-sort-header:not(.sbb-sort-header-disabled) {
3494
+ cursor: pointer;
3495
+ }
3496
+ .sbb-sort-header:not(.sbb-sort-header-disabled):hover .sbb-sort-header-container {
3497
+ color: var(--sbb-table-sort-header-hover-color);
3498
+ }
3499
+
3500
+ .sbb-sort-header-sorted {
3501
+ color: var(--sbb-table-sort-header-color);
3502
+ }
3503
+
3504
+ .sbb-sort-header-container {
3505
+ display: flex;
3506
+ letter-spacing: normal;
3507
+ text-align: left;
3508
+ height: 100%;
3509
+ outline: 0;
3510
+ }
3511
+ .sbb-sort-header-disabled .sbb-sort-header-container {
3512
+ cursor: default;
3513
+ }
3514
+ .sbb-table-align-center .sbb-sort-header-container {
3515
+ text-align: center;
3516
+ }
3517
+
3518
+ .sbb-sort-header-content {
3519
+ flex-shrink: 1;
3520
+ flex-grow: 1;
3521
+ }
3522
+
3523
+ .sbb-sort-header-position-before {
3524
+ flex-direction: row-reverse;
3525
+ }
3526
+
3527
+ .sbb-sort-header-arrow {
3528
+ height: var(--sbb-size-icon-ui-small);
3529
+ width: var(--sbb-size-icon-ui-small);
3530
+ min-width: var(--sbb-size-icon-ui-small);
3531
+ position: relative;
3532
+ opacity: 0;
3533
+ animation: var(--sbb-sort-header-animation-name) var(--sbb-table-sort-header-animation-duration) var(--sbb-table-sort-header-animation-easing);
3534
+ transition-property: opacity, translate;
3535
+ transition-duration: var(--sbb-table-sort-header-animation-duration);
3536
+ transition-timing-function: var(--sbb-table-sort-header-animation-easing);
3537
+ margin: -0.0625rem -0.5rem -0.0625rem -0.25rem;
3538
+ }
3539
+ .sbb-sort-header-position-before .sbb-sort-header-arrow {
3540
+ margin: -0.0625rem -0.25rem -0.0625rem -0.0625rem;
3541
+ }
3542
+ .sbb-sort-header-arrow svg {
3543
+ width: 100%;
3544
+ height: 100%;
3545
+ }
3546
+ .sbb-sort-header-arrow svg :where(path:nth-child(2)) {
3547
+ transform-origin: center;
3548
+ }
3549
+ .sbb-sort-header-arrow.no-transition {
3550
+ transition: opacity 0ms, translate 0ms !important;
3551
+ }
3552
+ .sbb-sort-header-arrow.active, .sbb-sort-header-arrow.desc-to-active, .sbb-sort-header-arrow.asc-to-active {
3553
+ opacity: 1;
3554
+ }
3555
+ .sbb-sort-header-arrow.hint, .sbb-sort-header-arrow.desc-to-hint, .sbb-sort-header-arrow.asc-to-hint {
3556
+ opacity: 0.54;
3557
+ }
3558
+ .sbb-sort-header-arrow.desc, .sbb-sort-header-arrow.asc, .sbb-sort-header-arrow.void, .sbb-sort-header-arrow.hint-to-desc, .sbb-sort-header-arrow.active-to-desc, .sbb-sort-header-arrow.hint-to-asc, .sbb-sort-header-arrow.active-to-asc {
3559
+ opacity: 0;
3560
+ }
3561
+ .sbb-sort-header-arrow.hint, .sbb-sort-header-arrow.active, .sbb-sort-header-arrow.desc-to-active, .sbb-sort-header-arrow.asc-to-active {
3562
+ translate: 0;
3563
+ }
3564
+ .sbb-sort-header-arrow.desc, .sbb-sort-header-arrow.active-to-desc {
3565
+ translate: 0 25%;
3566
+ }
3567
+ .sbb-sort-header-arrow.asc, .sbb-sort-header-arrow.active-to-asc {
3568
+ translate: 0 -25%;
3569
+ }
3570
+ .sbb-sort-header-arrow.desc-to-hint {
3571
+ --sbb-sort-header-animation-name: move-desc-to-hint;
3572
+ translate: 0;
3573
+ }
3574
+ .sbb-sort-header-arrow.hint-to-desc {
3575
+ --sbb-sort-header-animation-name: move-hint-to-desc;
3576
+ translate: 0 25%;
3577
+ }
3578
+ .sbb-sort-header-arrow.asc-to-hint {
3579
+ --sbb-sort-header-animation-name: move-asc-to-hint;
3580
+ translate: 0;
3581
+ }
3582
+ .sbb-sort-header-arrow.hint-to-asc {
3583
+ --sbb-sort-header-animation-name: move-hint-to-asc;
3584
+ translate: 0 -25%;
3585
+ }
3586
+
3587
+ .sbb-sort-indicator {
3588
+ transition: scale var(--sbb-table-sort-header-animation-duration) var(--sbb-table-sort-header-animation-easing);
3589
+ }
3590
+ .sbb-sort-indicator.asc, .sbb-sort-indicator.active-asc {
3591
+ scale: 1 -1;
3592
+ }
3593
+ .sbb-sort-indicator.desc, .sbb-sort-indicator.active-desc {
3594
+ scale: 1 1;
3595
+ }
3596
+ .sbb-sort-indicator.no-transition {
3597
+ transition: none !important;
3598
+ }
3599
+
3600
+ @keyframes move-desc-to-hint {
3601
+ from {
3602
+ translate: 0 25%;
3603
+ }
3604
+ to {
3605
+ translate: 0 0;
3606
+ }
3607
+ }
3608
+ @keyframes move-hint-to-desc {
3609
+ from {
3610
+ translate: 0 0;
3611
+ }
3612
+ to {
3613
+ translate: 0 25%;
3614
+ }
3615
+ }
3616
+ @keyframes move-asc-to-hint {
3617
+ from {
3618
+ translate: 0 -25%;
3619
+ }
3620
+ to {
3621
+ translate: 0 0;
3622
+ }
3623
+ }
3624
+ @keyframes move-hint-to-asc {
3625
+ from {
3626
+ translate: 0 0;
3627
+ }
3628
+ to {
3629
+ translate: 0 -25%;
3630
+ }
3631
+ }
3472
3632
  sbb-tab-nav-bar .sbb-tab-amount {
3473
3633
  margin: 0;
3474
3634
  color: var(--sbb-tab-label-amount-color);
@@ -1774,6 +1774,13 @@ summary {
1774
1774
  --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-2x);
1775
1775
  --sbb-table-cell-padding-block: var(--sbb-spacing-fixed-1x);
1776
1776
  --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-2x);
1777
+ --sbb-table-sort-header-animation-easing: cubic-bezier(0.4, 0, 0.2, 1);
1778
+ --sbb-table-sort-header-color: var(--sbb-color-2);
1779
+ --sbb-table-sort-header-hover-color: var(--sbb-color-primary125);
1780
+ --sbb-table-sort-header-hover-color: light-dark(
1781
+ var(--sbb-color-primary125),
1782
+ var(--sbb-color-primary85)
1783
+ );
1777
1784
  --sbb-tab-group-content-gap-size-s: var(--sbb-spacing-responsive-xs);
1778
1785
  --sbb-tab-group-content-gap-size-l: var(--sbb-spacing-responsive-s);
1779
1786
  --sbb-tab-group-content-gap-size-xl: var(--sbb-spacing-responsive-m);
@@ -3276,6 +3283,10 @@ sbb-sidebar-container:is(:has(> sbb-sidebar:not([position=end]):is(:is(:state(st
3276
3283
  --sbb-disable-animation-duration,
3277
3284
  var(--sbb-animation-duration-6x)
3278
3285
  );
3286
+ --sbb-table-sort-header-animation-duration: var(
3287
+ --sbb-disable-animation-duration,
3288
+ var(--sbb-animation-duration-6x)
3289
+ );
3279
3290
  border-spacing: 0;
3280
3291
  caption-side: bottom;
3281
3292
  color: var(--sbb-table-color);
@@ -3362,6 +3373,8 @@ sbb-table-wrapper[negative] .sbb-table,
3362
3373
  --sbb-table-color: var(--sbb-color-1-negative);
3363
3374
  --sbb-table-row-striped-color: var(--sbb-background-color-3-negative);
3364
3375
  --sbb-table-caption-color: var(--sbb-color-cement);
3376
+ --sbb-table-sort-header-color: var(--sbb-color-2-negative);
3377
+ --sbb-table-sort-header-hover-color: var(--sbb-color-primary85);
3365
3378
  }
3366
3379
 
3367
3380
  .sbb-table--striped tbody tr:nth-child(odd) :is(th, td) {
@@ -3489,6 +3502,153 @@ sbb-table-wrapper[negative] .sbb-table--theme-iron, .sbb-table--theme-iron.sbb-t
3489
3502
  text-align: right;
3490
3503
  }
3491
3504
 
3505
+ .sbb-sort-header {
3506
+ position: relative;
3507
+ }
3508
+ .sbb-sort-header:is(:focus-visible, .cdk-keyboard-focused, .cdk-program-focused), .sbb-sort-header:has(.sbb-sort-header-container:focus-visible) {
3509
+ --sbb-focus-outline-offset: calc(-1 * var(--sbb-focus-outline-width));
3510
+ outline-offset: var(--sbb-focus-outline-offset);
3511
+ outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);
3512
+ }
3513
+ .sbb-sort-header:not(.sbb-sort-header-disabled) {
3514
+ cursor: pointer;
3515
+ }
3516
+ .sbb-sort-header:not(.sbb-sort-header-disabled):hover .sbb-sort-header-container {
3517
+ color: var(--sbb-table-sort-header-hover-color);
3518
+ }
3519
+
3520
+ .sbb-sort-header-sorted {
3521
+ color: var(--sbb-table-sort-header-color);
3522
+ }
3523
+
3524
+ .sbb-sort-header-container {
3525
+ display: flex;
3526
+ letter-spacing: normal;
3527
+ text-align: left;
3528
+ height: 100%;
3529
+ outline: 0;
3530
+ }
3531
+ .sbb-sort-header-disabled .sbb-sort-header-container {
3532
+ cursor: default;
3533
+ }
3534
+ .sbb-table-align-center .sbb-sort-header-container {
3535
+ text-align: center;
3536
+ }
3537
+
3538
+ .sbb-sort-header-content {
3539
+ flex-shrink: 1;
3540
+ flex-grow: 1;
3541
+ }
3542
+
3543
+ .sbb-sort-header-position-before {
3544
+ flex-direction: row-reverse;
3545
+ }
3546
+
3547
+ .sbb-sort-header-arrow {
3548
+ height: var(--sbb-size-icon-ui-small);
3549
+ width: var(--sbb-size-icon-ui-small);
3550
+ min-width: var(--sbb-size-icon-ui-small);
3551
+ position: relative;
3552
+ opacity: 0;
3553
+ animation: var(--sbb-sort-header-animation-name) var(--sbb-table-sort-header-animation-duration) var(--sbb-table-sort-header-animation-easing);
3554
+ transition-property: opacity, translate;
3555
+ transition-duration: var(--sbb-table-sort-header-animation-duration);
3556
+ transition-timing-function: var(--sbb-table-sort-header-animation-easing);
3557
+ margin: -0.0625rem -0.5rem -0.0625rem -0.25rem;
3558
+ }
3559
+ .sbb-sort-header-position-before .sbb-sort-header-arrow {
3560
+ margin: -0.0625rem -0.25rem -0.0625rem -0.0625rem;
3561
+ }
3562
+ .sbb-sort-header-arrow svg {
3563
+ width: 100%;
3564
+ height: 100%;
3565
+ }
3566
+ .sbb-sort-header-arrow svg :where(path:nth-child(2)) {
3567
+ transform-origin: center;
3568
+ }
3569
+ .sbb-sort-header-arrow.no-transition {
3570
+ transition: opacity 0ms, translate 0ms !important;
3571
+ }
3572
+ .sbb-sort-header-arrow.active, .sbb-sort-header-arrow.desc-to-active, .sbb-sort-header-arrow.asc-to-active {
3573
+ opacity: 1;
3574
+ }
3575
+ .sbb-sort-header-arrow.hint, .sbb-sort-header-arrow.desc-to-hint, .sbb-sort-header-arrow.asc-to-hint {
3576
+ opacity: 0.54;
3577
+ }
3578
+ .sbb-sort-header-arrow.desc, .sbb-sort-header-arrow.asc, .sbb-sort-header-arrow.void, .sbb-sort-header-arrow.hint-to-desc, .sbb-sort-header-arrow.active-to-desc, .sbb-sort-header-arrow.hint-to-asc, .sbb-sort-header-arrow.active-to-asc {
3579
+ opacity: 0;
3580
+ }
3581
+ .sbb-sort-header-arrow.hint, .sbb-sort-header-arrow.active, .sbb-sort-header-arrow.desc-to-active, .sbb-sort-header-arrow.asc-to-active {
3582
+ translate: 0;
3583
+ }
3584
+ .sbb-sort-header-arrow.desc, .sbb-sort-header-arrow.active-to-desc {
3585
+ translate: 0 25%;
3586
+ }
3587
+ .sbb-sort-header-arrow.asc, .sbb-sort-header-arrow.active-to-asc {
3588
+ translate: 0 -25%;
3589
+ }
3590
+ .sbb-sort-header-arrow.desc-to-hint {
3591
+ --sbb-sort-header-animation-name: move-desc-to-hint;
3592
+ translate: 0;
3593
+ }
3594
+ .sbb-sort-header-arrow.hint-to-desc {
3595
+ --sbb-sort-header-animation-name: move-hint-to-desc;
3596
+ translate: 0 25%;
3597
+ }
3598
+ .sbb-sort-header-arrow.asc-to-hint {
3599
+ --sbb-sort-header-animation-name: move-asc-to-hint;
3600
+ translate: 0;
3601
+ }
3602
+ .sbb-sort-header-arrow.hint-to-asc {
3603
+ --sbb-sort-header-animation-name: move-hint-to-asc;
3604
+ translate: 0 -25%;
3605
+ }
3606
+
3607
+ .sbb-sort-indicator {
3608
+ transition: scale var(--sbb-table-sort-header-animation-duration) var(--sbb-table-sort-header-animation-easing);
3609
+ }
3610
+ .sbb-sort-indicator.asc, .sbb-sort-indicator.active-asc {
3611
+ scale: 1 -1;
3612
+ }
3613
+ .sbb-sort-indicator.desc, .sbb-sort-indicator.active-desc {
3614
+ scale: 1 1;
3615
+ }
3616
+ .sbb-sort-indicator.no-transition {
3617
+ transition: none !important;
3618
+ }
3619
+
3620
+ @keyframes move-desc-to-hint {
3621
+ from {
3622
+ translate: 0 25%;
3623
+ }
3624
+ to {
3625
+ translate: 0 0;
3626
+ }
3627
+ }
3628
+ @keyframes move-hint-to-desc {
3629
+ from {
3630
+ translate: 0 0;
3631
+ }
3632
+ to {
3633
+ translate: 0 25%;
3634
+ }
3635
+ }
3636
+ @keyframes move-asc-to-hint {
3637
+ from {
3638
+ translate: 0 -25%;
3639
+ }
3640
+ to {
3641
+ translate: 0 0;
3642
+ }
3643
+ }
3644
+ @keyframes move-hint-to-asc {
3645
+ from {
3646
+ translate: 0 0;
3647
+ }
3648
+ to {
3649
+ translate: 0 -25%;
3650
+ }
3651
+ }
3492
3652
  sbb-tab-nav-bar .sbb-tab-amount {
3493
3653
  margin: 0;
3494
3654
  color: var(--sbb-tab-label-amount-color);
package/lean-theme.css CHANGED
@@ -1774,6 +1774,13 @@ summary {
1774
1774
  --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-2x);
1775
1775
  --sbb-table-cell-padding-block: var(--sbb-spacing-fixed-1x);
1776
1776
  --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-2x);
1777
+ --sbb-table-sort-header-animation-easing: cubic-bezier(0.4, 0, 0.2, 1);
1778
+ --sbb-table-sort-header-color: var(--sbb-color-2);
1779
+ --sbb-table-sort-header-hover-color: var(--sbb-color-primary125);
1780
+ --sbb-table-sort-header-hover-color: light-dark(
1781
+ var(--sbb-color-primary125),
1782
+ var(--sbb-color-primary85)
1783
+ );
1777
1784
  --sbb-tab-group-content-gap-size-s: var(--sbb-spacing-responsive-xs);
1778
1785
  --sbb-tab-group-content-gap-size-l: var(--sbb-spacing-responsive-s);
1779
1786
  --sbb-tab-group-content-gap-size-xl: var(--sbb-spacing-responsive-m);
@@ -3276,6 +3283,10 @@ sbb-sidebar-container:is(:has(> sbb-sidebar:not([position=end]):is(:is(:state(st
3276
3283
  --sbb-disable-animation-duration,
3277
3284
  var(--sbb-animation-duration-6x)
3278
3285
  );
3286
+ --sbb-table-sort-header-animation-duration: var(
3287
+ --sbb-disable-animation-duration,
3288
+ var(--sbb-animation-duration-6x)
3289
+ );
3279
3290
  border-spacing: 0;
3280
3291
  caption-side: bottom;
3281
3292
  color: var(--sbb-table-color);
@@ -3362,6 +3373,8 @@ sbb-table-wrapper[negative] .sbb-table,
3362
3373
  --sbb-table-color: var(--sbb-color-1-negative);
3363
3374
  --sbb-table-row-striped-color: var(--sbb-background-color-3-negative);
3364
3375
  --sbb-table-caption-color: var(--sbb-color-cement);
3376
+ --sbb-table-sort-header-color: var(--sbb-color-2-negative);
3377
+ --sbb-table-sort-header-hover-color: var(--sbb-color-primary85);
3365
3378
  }
3366
3379
 
3367
3380
  .sbb-table--striped tbody tr:nth-child(odd) :is(th, td) {
@@ -3489,6 +3502,153 @@ sbb-table-wrapper[negative] .sbb-table--theme-iron, .sbb-table--theme-iron.sbb-t
3489
3502
  text-align: right;
3490
3503
  }
3491
3504
 
3505
+ .sbb-sort-header {
3506
+ position: relative;
3507
+ }
3508
+ .sbb-sort-header:is(:focus-visible, .cdk-keyboard-focused, .cdk-program-focused), .sbb-sort-header:has(.sbb-sort-header-container:focus-visible) {
3509
+ --sbb-focus-outline-offset: calc(-1 * var(--sbb-focus-outline-width));
3510
+ outline-offset: var(--sbb-focus-outline-offset);
3511
+ outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);
3512
+ }
3513
+ .sbb-sort-header:not(.sbb-sort-header-disabled) {
3514
+ cursor: pointer;
3515
+ }
3516
+ .sbb-sort-header:not(.sbb-sort-header-disabled):hover .sbb-sort-header-container {
3517
+ color: var(--sbb-table-sort-header-hover-color);
3518
+ }
3519
+
3520
+ .sbb-sort-header-sorted {
3521
+ color: var(--sbb-table-sort-header-color);
3522
+ }
3523
+
3524
+ .sbb-sort-header-container {
3525
+ display: flex;
3526
+ letter-spacing: normal;
3527
+ text-align: left;
3528
+ height: 100%;
3529
+ outline: 0;
3530
+ }
3531
+ .sbb-sort-header-disabled .sbb-sort-header-container {
3532
+ cursor: default;
3533
+ }
3534
+ .sbb-table-align-center .sbb-sort-header-container {
3535
+ text-align: center;
3536
+ }
3537
+
3538
+ .sbb-sort-header-content {
3539
+ flex-shrink: 1;
3540
+ flex-grow: 1;
3541
+ }
3542
+
3543
+ .sbb-sort-header-position-before {
3544
+ flex-direction: row-reverse;
3545
+ }
3546
+
3547
+ .sbb-sort-header-arrow {
3548
+ height: var(--sbb-size-icon-ui-small);
3549
+ width: var(--sbb-size-icon-ui-small);
3550
+ min-width: var(--sbb-size-icon-ui-small);
3551
+ position: relative;
3552
+ opacity: 0;
3553
+ animation: var(--sbb-sort-header-animation-name) var(--sbb-table-sort-header-animation-duration) var(--sbb-table-sort-header-animation-easing);
3554
+ transition-property: opacity, translate;
3555
+ transition-duration: var(--sbb-table-sort-header-animation-duration);
3556
+ transition-timing-function: var(--sbb-table-sort-header-animation-easing);
3557
+ margin: -0.0625rem -0.5rem -0.0625rem -0.25rem;
3558
+ }
3559
+ .sbb-sort-header-position-before .sbb-sort-header-arrow {
3560
+ margin: -0.0625rem -0.25rem -0.0625rem -0.0625rem;
3561
+ }
3562
+ .sbb-sort-header-arrow svg {
3563
+ width: 100%;
3564
+ height: 100%;
3565
+ }
3566
+ .sbb-sort-header-arrow svg :where(path:nth-child(2)) {
3567
+ transform-origin: center;
3568
+ }
3569
+ .sbb-sort-header-arrow.no-transition {
3570
+ transition: opacity 0ms, translate 0ms !important;
3571
+ }
3572
+ .sbb-sort-header-arrow.active, .sbb-sort-header-arrow.desc-to-active, .sbb-sort-header-arrow.asc-to-active {
3573
+ opacity: 1;
3574
+ }
3575
+ .sbb-sort-header-arrow.hint, .sbb-sort-header-arrow.desc-to-hint, .sbb-sort-header-arrow.asc-to-hint {
3576
+ opacity: 0.54;
3577
+ }
3578
+ .sbb-sort-header-arrow.desc, .sbb-sort-header-arrow.asc, .sbb-sort-header-arrow.void, .sbb-sort-header-arrow.hint-to-desc, .sbb-sort-header-arrow.active-to-desc, .sbb-sort-header-arrow.hint-to-asc, .sbb-sort-header-arrow.active-to-asc {
3579
+ opacity: 0;
3580
+ }
3581
+ .sbb-sort-header-arrow.hint, .sbb-sort-header-arrow.active, .sbb-sort-header-arrow.desc-to-active, .sbb-sort-header-arrow.asc-to-active {
3582
+ translate: 0;
3583
+ }
3584
+ .sbb-sort-header-arrow.desc, .sbb-sort-header-arrow.active-to-desc {
3585
+ translate: 0 25%;
3586
+ }
3587
+ .sbb-sort-header-arrow.asc, .sbb-sort-header-arrow.active-to-asc {
3588
+ translate: 0 -25%;
3589
+ }
3590
+ .sbb-sort-header-arrow.desc-to-hint {
3591
+ --sbb-sort-header-animation-name: move-desc-to-hint;
3592
+ translate: 0;
3593
+ }
3594
+ .sbb-sort-header-arrow.hint-to-desc {
3595
+ --sbb-sort-header-animation-name: move-hint-to-desc;
3596
+ translate: 0 25%;
3597
+ }
3598
+ .sbb-sort-header-arrow.asc-to-hint {
3599
+ --sbb-sort-header-animation-name: move-asc-to-hint;
3600
+ translate: 0;
3601
+ }
3602
+ .sbb-sort-header-arrow.hint-to-asc {
3603
+ --sbb-sort-header-animation-name: move-hint-to-asc;
3604
+ translate: 0 -25%;
3605
+ }
3606
+
3607
+ .sbb-sort-indicator {
3608
+ transition: scale var(--sbb-table-sort-header-animation-duration) var(--sbb-table-sort-header-animation-easing);
3609
+ }
3610
+ .sbb-sort-indicator.asc, .sbb-sort-indicator.active-asc {
3611
+ scale: 1 -1;
3612
+ }
3613
+ .sbb-sort-indicator.desc, .sbb-sort-indicator.active-desc {
3614
+ scale: 1 1;
3615
+ }
3616
+ .sbb-sort-indicator.no-transition {
3617
+ transition: none !important;
3618
+ }
3619
+
3620
+ @keyframes move-desc-to-hint {
3621
+ from {
3622
+ translate: 0 25%;
3623
+ }
3624
+ to {
3625
+ translate: 0 0;
3626
+ }
3627
+ }
3628
+ @keyframes move-hint-to-desc {
3629
+ from {
3630
+ translate: 0 0;
3631
+ }
3632
+ to {
3633
+ translate: 0 25%;
3634
+ }
3635
+ }
3636
+ @keyframes move-asc-to-hint {
3637
+ from {
3638
+ translate: 0 -25%;
3639
+ }
3640
+ to {
3641
+ translate: 0 0;
3642
+ }
3643
+ }
3644
+ @keyframes move-hint-to-asc {
3645
+ from {
3646
+ translate: 0 0;
3647
+ }
3648
+ to {
3649
+ translate: 0 -25%;
3650
+ }
3651
+ }
3492
3652
  sbb-tab-nav-bar .sbb-tab-amount {
3493
3653
  margin: 0;
3494
3654
  color: var(--sbb-tab-label-amount-color);
@@ -1754,6 +1754,13 @@ summary {
1754
1754
  --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-4x);
1755
1755
  --sbb-table-cell-padding-block: var(--sbb-spacing-responsive-xxxs);
1756
1756
  --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-4x);
1757
+ --sbb-table-sort-header-animation-easing: cubic-bezier(0.4, 0, 0.2, 1);
1758
+ --sbb-table-sort-header-color: var(--sbb-color-2);
1759
+ --sbb-table-sort-header-hover-color: var(--sbb-color-primary125);
1760
+ --sbb-table-sort-header-hover-color: light-dark(
1761
+ var(--sbb-color-primary125),
1762
+ var(--sbb-color-primary85)
1763
+ );
1757
1764
  --sbb-tab-group-content-gap-size-s: var(--sbb-spacing-responsive-xs);
1758
1765
  --sbb-tab-group-content-gap-size-l: var(--sbb-spacing-responsive-s);
1759
1766
  --sbb-tab-group-content-gap-size-xl: var(--sbb-spacing-responsive-m);
@@ -3256,6 +3263,10 @@ sbb-sidebar-container:is(:has(> sbb-sidebar:not([position=end]):is(:is(:state(st
3256
3263
  --sbb-disable-animation-duration,
3257
3264
  var(--sbb-animation-duration-6x)
3258
3265
  );
3266
+ --sbb-table-sort-header-animation-duration: var(
3267
+ --sbb-disable-animation-duration,
3268
+ var(--sbb-animation-duration-6x)
3269
+ );
3259
3270
  border-spacing: 0;
3260
3271
  caption-side: bottom;
3261
3272
  color: var(--sbb-table-color);
@@ -3342,6 +3353,8 @@ sbb-table-wrapper[negative] .sbb-table,
3342
3353
  --sbb-table-color: var(--sbb-color-1-negative);
3343
3354
  --sbb-table-row-striped-color: var(--sbb-background-color-3-negative);
3344
3355
  --sbb-table-caption-color: var(--sbb-color-cement);
3356
+ --sbb-table-sort-header-color: var(--sbb-color-2-negative);
3357
+ --sbb-table-sort-header-hover-color: var(--sbb-color-primary85);
3345
3358
  }
3346
3359
 
3347
3360
  .sbb-table--striped tbody tr:nth-child(odd) :is(th, td) {
@@ -3469,6 +3482,153 @@ sbb-table-wrapper[negative] .sbb-table--theme-iron, .sbb-table--theme-iron.sbb-t
3469
3482
  text-align: right;
3470
3483
  }
3471
3484
 
3485
+ .sbb-sort-header {
3486
+ position: relative;
3487
+ }
3488
+ .sbb-sort-header:is(:focus-visible, .cdk-keyboard-focused, .cdk-program-focused), .sbb-sort-header:has(.sbb-sort-header-container:focus-visible) {
3489
+ --sbb-focus-outline-offset: calc(-1 * var(--sbb-focus-outline-width));
3490
+ outline-offset: var(--sbb-focus-outline-offset);
3491
+ outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);
3492
+ }
3493
+ .sbb-sort-header:not(.sbb-sort-header-disabled) {
3494
+ cursor: pointer;
3495
+ }
3496
+ .sbb-sort-header:not(.sbb-sort-header-disabled):hover .sbb-sort-header-container {
3497
+ color: var(--sbb-table-sort-header-hover-color);
3498
+ }
3499
+
3500
+ .sbb-sort-header-sorted {
3501
+ color: var(--sbb-table-sort-header-color);
3502
+ }
3503
+
3504
+ .sbb-sort-header-container {
3505
+ display: flex;
3506
+ letter-spacing: normal;
3507
+ text-align: left;
3508
+ height: 100%;
3509
+ outline: 0;
3510
+ }
3511
+ .sbb-sort-header-disabled .sbb-sort-header-container {
3512
+ cursor: default;
3513
+ }
3514
+ .sbb-table-align-center .sbb-sort-header-container {
3515
+ text-align: center;
3516
+ }
3517
+
3518
+ .sbb-sort-header-content {
3519
+ flex-shrink: 1;
3520
+ flex-grow: 1;
3521
+ }
3522
+
3523
+ .sbb-sort-header-position-before {
3524
+ flex-direction: row-reverse;
3525
+ }
3526
+
3527
+ .sbb-sort-header-arrow {
3528
+ height: var(--sbb-size-icon-ui-small);
3529
+ width: var(--sbb-size-icon-ui-small);
3530
+ min-width: var(--sbb-size-icon-ui-small);
3531
+ position: relative;
3532
+ opacity: 0;
3533
+ animation: var(--sbb-sort-header-animation-name) var(--sbb-table-sort-header-animation-duration) var(--sbb-table-sort-header-animation-easing);
3534
+ transition-property: opacity, translate;
3535
+ transition-duration: var(--sbb-table-sort-header-animation-duration);
3536
+ transition-timing-function: var(--sbb-table-sort-header-animation-easing);
3537
+ margin: -0.0625rem -0.5rem -0.0625rem -0.25rem;
3538
+ }
3539
+ .sbb-sort-header-position-before .sbb-sort-header-arrow {
3540
+ margin: -0.0625rem -0.25rem -0.0625rem -0.0625rem;
3541
+ }
3542
+ .sbb-sort-header-arrow svg {
3543
+ width: 100%;
3544
+ height: 100%;
3545
+ }
3546
+ .sbb-sort-header-arrow svg :where(path:nth-child(2)) {
3547
+ transform-origin: center;
3548
+ }
3549
+ .sbb-sort-header-arrow.no-transition {
3550
+ transition: opacity 0ms, translate 0ms !important;
3551
+ }
3552
+ .sbb-sort-header-arrow.active, .sbb-sort-header-arrow.desc-to-active, .sbb-sort-header-arrow.asc-to-active {
3553
+ opacity: 1;
3554
+ }
3555
+ .sbb-sort-header-arrow.hint, .sbb-sort-header-arrow.desc-to-hint, .sbb-sort-header-arrow.asc-to-hint {
3556
+ opacity: 0.54;
3557
+ }
3558
+ .sbb-sort-header-arrow.desc, .sbb-sort-header-arrow.asc, .sbb-sort-header-arrow.void, .sbb-sort-header-arrow.hint-to-desc, .sbb-sort-header-arrow.active-to-desc, .sbb-sort-header-arrow.hint-to-asc, .sbb-sort-header-arrow.active-to-asc {
3559
+ opacity: 0;
3560
+ }
3561
+ .sbb-sort-header-arrow.hint, .sbb-sort-header-arrow.active, .sbb-sort-header-arrow.desc-to-active, .sbb-sort-header-arrow.asc-to-active {
3562
+ translate: 0;
3563
+ }
3564
+ .sbb-sort-header-arrow.desc, .sbb-sort-header-arrow.active-to-desc {
3565
+ translate: 0 25%;
3566
+ }
3567
+ .sbb-sort-header-arrow.asc, .sbb-sort-header-arrow.active-to-asc {
3568
+ translate: 0 -25%;
3569
+ }
3570
+ .sbb-sort-header-arrow.desc-to-hint {
3571
+ --sbb-sort-header-animation-name: move-desc-to-hint;
3572
+ translate: 0;
3573
+ }
3574
+ .sbb-sort-header-arrow.hint-to-desc {
3575
+ --sbb-sort-header-animation-name: move-hint-to-desc;
3576
+ translate: 0 25%;
3577
+ }
3578
+ .sbb-sort-header-arrow.asc-to-hint {
3579
+ --sbb-sort-header-animation-name: move-asc-to-hint;
3580
+ translate: 0;
3581
+ }
3582
+ .sbb-sort-header-arrow.hint-to-asc {
3583
+ --sbb-sort-header-animation-name: move-hint-to-asc;
3584
+ translate: 0 -25%;
3585
+ }
3586
+
3587
+ .sbb-sort-indicator {
3588
+ transition: scale var(--sbb-table-sort-header-animation-duration) var(--sbb-table-sort-header-animation-easing);
3589
+ }
3590
+ .sbb-sort-indicator.asc, .sbb-sort-indicator.active-asc {
3591
+ scale: 1 -1;
3592
+ }
3593
+ .sbb-sort-indicator.desc, .sbb-sort-indicator.active-desc {
3594
+ scale: 1 1;
3595
+ }
3596
+ .sbb-sort-indicator.no-transition {
3597
+ transition: none !important;
3598
+ }
3599
+
3600
+ @keyframes move-desc-to-hint {
3601
+ from {
3602
+ translate: 0 25%;
3603
+ }
3604
+ to {
3605
+ translate: 0 0;
3606
+ }
3607
+ }
3608
+ @keyframes move-hint-to-desc {
3609
+ from {
3610
+ translate: 0 0;
3611
+ }
3612
+ to {
3613
+ translate: 0 25%;
3614
+ }
3615
+ }
3616
+ @keyframes move-asc-to-hint {
3617
+ from {
3618
+ translate: 0 -25%;
3619
+ }
3620
+ to {
3621
+ translate: 0 0;
3622
+ }
3623
+ }
3624
+ @keyframes move-hint-to-asc {
3625
+ from {
3626
+ translate: 0 0;
3627
+ }
3628
+ to {
3629
+ translate: 0 -25%;
3630
+ }
3631
+ }
3472
3632
  sbb-tab-nav-bar .sbb-tab-amount {
3473
3633
  margin: 0;
3474
3634
  color: var(--sbb-tab-label-amount-color);
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@sbb-esta/lyne-elements-dev",
3
- "version": "5.10.0-dev.1790760894",
3
+ "version": "5.10.0-dev.1790845184",
4
4
  "description": "Lyne Design System",
5
5
  "keywords": [
6
6
  "design system",
7
7
  "web components",
8
8
  "lit",
9
- "https://github.com/sbb-design-systems/lyne-components/commit/2e221ce0fe3563fe6cf5fe6292d10ac7d4bfe767"
9
+ "https://github.com/sbb-design-systems/lyne-components/commit/69385ac61e43bc8b9b6e8daaf02d0a7db2feaf8f"
10
10
  ],
11
11
  "type": "module",
12
12
  "exports": {
package/safety-theme.css CHANGED
@@ -1774,6 +1774,13 @@ summary {
1774
1774
  --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-4x);
1775
1775
  --sbb-table-cell-padding-block: var(--sbb-spacing-responsive-xxxs);
1776
1776
  --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-4x);
1777
+ --sbb-table-sort-header-animation-easing: cubic-bezier(0.4, 0, 0.2, 1);
1778
+ --sbb-table-sort-header-color: var(--sbb-color-2);
1779
+ --sbb-table-sort-header-hover-color: var(--sbb-color-primary125);
1780
+ --sbb-table-sort-header-hover-color: light-dark(
1781
+ var(--sbb-color-primary125),
1782
+ var(--sbb-color-primary85)
1783
+ );
1777
1784
  --sbb-tab-group-content-gap-size-s: var(--sbb-spacing-responsive-xs);
1778
1785
  --sbb-tab-group-content-gap-size-l: var(--sbb-spacing-responsive-s);
1779
1786
  --sbb-tab-group-content-gap-size-xl: var(--sbb-spacing-responsive-m);
@@ -3276,6 +3283,10 @@ sbb-sidebar-container:is(:has(> sbb-sidebar:not([position=end]):is(:is(:state(st
3276
3283
  --sbb-disable-animation-duration,
3277
3284
  var(--sbb-animation-duration-6x)
3278
3285
  );
3286
+ --sbb-table-sort-header-animation-duration: var(
3287
+ --sbb-disable-animation-duration,
3288
+ var(--sbb-animation-duration-6x)
3289
+ );
3279
3290
  border-spacing: 0;
3280
3291
  caption-side: bottom;
3281
3292
  color: var(--sbb-table-color);
@@ -3362,6 +3373,8 @@ sbb-table-wrapper[negative] .sbb-table,
3362
3373
  --sbb-table-color: var(--sbb-color-1-negative);
3363
3374
  --sbb-table-row-striped-color: var(--sbb-background-color-3-negative);
3364
3375
  --sbb-table-caption-color: var(--sbb-color-cement);
3376
+ --sbb-table-sort-header-color: var(--sbb-color-2-negative);
3377
+ --sbb-table-sort-header-hover-color: var(--sbb-color-primary85);
3365
3378
  }
3366
3379
 
3367
3380
  .sbb-table--striped tbody tr:nth-child(odd) :is(th, td) {
@@ -3489,6 +3502,153 @@ sbb-table-wrapper[negative] .sbb-table--theme-iron, .sbb-table--theme-iron.sbb-t
3489
3502
  text-align: right;
3490
3503
  }
3491
3504
 
3505
+ .sbb-sort-header {
3506
+ position: relative;
3507
+ }
3508
+ .sbb-sort-header:is(:focus-visible, .cdk-keyboard-focused, .cdk-program-focused), .sbb-sort-header:has(.sbb-sort-header-container:focus-visible) {
3509
+ --sbb-focus-outline-offset: calc(-1 * var(--sbb-focus-outline-width));
3510
+ outline-offset: var(--sbb-focus-outline-offset);
3511
+ outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);
3512
+ }
3513
+ .sbb-sort-header:not(.sbb-sort-header-disabled) {
3514
+ cursor: pointer;
3515
+ }
3516
+ .sbb-sort-header:not(.sbb-sort-header-disabled):hover .sbb-sort-header-container {
3517
+ color: var(--sbb-table-sort-header-hover-color);
3518
+ }
3519
+
3520
+ .sbb-sort-header-sorted {
3521
+ color: var(--sbb-table-sort-header-color);
3522
+ }
3523
+
3524
+ .sbb-sort-header-container {
3525
+ display: flex;
3526
+ letter-spacing: normal;
3527
+ text-align: left;
3528
+ height: 100%;
3529
+ outline: 0;
3530
+ }
3531
+ .sbb-sort-header-disabled .sbb-sort-header-container {
3532
+ cursor: default;
3533
+ }
3534
+ .sbb-table-align-center .sbb-sort-header-container {
3535
+ text-align: center;
3536
+ }
3537
+
3538
+ .sbb-sort-header-content {
3539
+ flex-shrink: 1;
3540
+ flex-grow: 1;
3541
+ }
3542
+
3543
+ .sbb-sort-header-position-before {
3544
+ flex-direction: row-reverse;
3545
+ }
3546
+
3547
+ .sbb-sort-header-arrow {
3548
+ height: var(--sbb-size-icon-ui-small);
3549
+ width: var(--sbb-size-icon-ui-small);
3550
+ min-width: var(--sbb-size-icon-ui-small);
3551
+ position: relative;
3552
+ opacity: 0;
3553
+ animation: var(--sbb-sort-header-animation-name) var(--sbb-table-sort-header-animation-duration) var(--sbb-table-sort-header-animation-easing);
3554
+ transition-property: opacity, translate;
3555
+ transition-duration: var(--sbb-table-sort-header-animation-duration);
3556
+ transition-timing-function: var(--sbb-table-sort-header-animation-easing);
3557
+ margin: -0.0625rem -0.5rem -0.0625rem -0.25rem;
3558
+ }
3559
+ .sbb-sort-header-position-before .sbb-sort-header-arrow {
3560
+ margin: -0.0625rem -0.25rem -0.0625rem -0.0625rem;
3561
+ }
3562
+ .sbb-sort-header-arrow svg {
3563
+ width: 100%;
3564
+ height: 100%;
3565
+ }
3566
+ .sbb-sort-header-arrow svg :where(path:nth-child(2)) {
3567
+ transform-origin: center;
3568
+ }
3569
+ .sbb-sort-header-arrow.no-transition {
3570
+ transition: opacity 0ms, translate 0ms !important;
3571
+ }
3572
+ .sbb-sort-header-arrow.active, .sbb-sort-header-arrow.desc-to-active, .sbb-sort-header-arrow.asc-to-active {
3573
+ opacity: 1;
3574
+ }
3575
+ .sbb-sort-header-arrow.hint, .sbb-sort-header-arrow.desc-to-hint, .sbb-sort-header-arrow.asc-to-hint {
3576
+ opacity: 0.54;
3577
+ }
3578
+ .sbb-sort-header-arrow.desc, .sbb-sort-header-arrow.asc, .sbb-sort-header-arrow.void, .sbb-sort-header-arrow.hint-to-desc, .sbb-sort-header-arrow.active-to-desc, .sbb-sort-header-arrow.hint-to-asc, .sbb-sort-header-arrow.active-to-asc {
3579
+ opacity: 0;
3580
+ }
3581
+ .sbb-sort-header-arrow.hint, .sbb-sort-header-arrow.active, .sbb-sort-header-arrow.desc-to-active, .sbb-sort-header-arrow.asc-to-active {
3582
+ translate: 0;
3583
+ }
3584
+ .sbb-sort-header-arrow.desc, .sbb-sort-header-arrow.active-to-desc {
3585
+ translate: 0 25%;
3586
+ }
3587
+ .sbb-sort-header-arrow.asc, .sbb-sort-header-arrow.active-to-asc {
3588
+ translate: 0 -25%;
3589
+ }
3590
+ .sbb-sort-header-arrow.desc-to-hint {
3591
+ --sbb-sort-header-animation-name: move-desc-to-hint;
3592
+ translate: 0;
3593
+ }
3594
+ .sbb-sort-header-arrow.hint-to-desc {
3595
+ --sbb-sort-header-animation-name: move-hint-to-desc;
3596
+ translate: 0 25%;
3597
+ }
3598
+ .sbb-sort-header-arrow.asc-to-hint {
3599
+ --sbb-sort-header-animation-name: move-asc-to-hint;
3600
+ translate: 0;
3601
+ }
3602
+ .sbb-sort-header-arrow.hint-to-asc {
3603
+ --sbb-sort-header-animation-name: move-hint-to-asc;
3604
+ translate: 0 -25%;
3605
+ }
3606
+
3607
+ .sbb-sort-indicator {
3608
+ transition: scale var(--sbb-table-sort-header-animation-duration) var(--sbb-table-sort-header-animation-easing);
3609
+ }
3610
+ .sbb-sort-indicator.asc, .sbb-sort-indicator.active-asc {
3611
+ scale: 1 -1;
3612
+ }
3613
+ .sbb-sort-indicator.desc, .sbb-sort-indicator.active-desc {
3614
+ scale: 1 1;
3615
+ }
3616
+ .sbb-sort-indicator.no-transition {
3617
+ transition: none !important;
3618
+ }
3619
+
3620
+ @keyframes move-desc-to-hint {
3621
+ from {
3622
+ translate: 0 25%;
3623
+ }
3624
+ to {
3625
+ translate: 0 0;
3626
+ }
3627
+ }
3628
+ @keyframes move-hint-to-desc {
3629
+ from {
3630
+ translate: 0 0;
3631
+ }
3632
+ to {
3633
+ translate: 0 25%;
3634
+ }
3635
+ }
3636
+ @keyframes move-asc-to-hint {
3637
+ from {
3638
+ translate: 0 -25%;
3639
+ }
3640
+ to {
3641
+ translate: 0 0;
3642
+ }
3643
+ }
3644
+ @keyframes move-hint-to-asc {
3645
+ from {
3646
+ translate: 0 0;
3647
+ }
3648
+ to {
3649
+ translate: 0 -25%;
3650
+ }
3651
+ }
3492
3652
  sbb-tab-nav-bar .sbb-tab-amount {
3493
3653
  margin: 0;
3494
3654
  color: var(--sbb-tab-label-amount-color);
@@ -1774,6 +1774,13 @@ summary {
1774
1774
  --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-4x);
1775
1775
  --sbb-table-cell-padding-block: var(--sbb-spacing-responsive-xxxs);
1776
1776
  --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-4x);
1777
+ --sbb-table-sort-header-animation-easing: cubic-bezier(0.4, 0, 0.2, 1);
1778
+ --sbb-table-sort-header-color: var(--sbb-color-2);
1779
+ --sbb-table-sort-header-hover-color: var(--sbb-color-primary125);
1780
+ --sbb-table-sort-header-hover-color: light-dark(
1781
+ var(--sbb-color-primary125),
1782
+ var(--sbb-color-primary85)
1783
+ );
1777
1784
  --sbb-tab-group-content-gap-size-s: var(--sbb-spacing-responsive-xs);
1778
1785
  --sbb-tab-group-content-gap-size-l: var(--sbb-spacing-responsive-s);
1779
1786
  --sbb-tab-group-content-gap-size-xl: var(--sbb-spacing-responsive-m);
@@ -3276,6 +3283,10 @@ sbb-sidebar-container:is(:has(> sbb-sidebar:not([position=end]):is(:is(:state(st
3276
3283
  --sbb-disable-animation-duration,
3277
3284
  var(--sbb-animation-duration-6x)
3278
3285
  );
3286
+ --sbb-table-sort-header-animation-duration: var(
3287
+ --sbb-disable-animation-duration,
3288
+ var(--sbb-animation-duration-6x)
3289
+ );
3279
3290
  border-spacing: 0;
3280
3291
  caption-side: bottom;
3281
3292
  color: var(--sbb-table-color);
@@ -3362,6 +3373,8 @@ sbb-table-wrapper[negative] .sbb-table,
3362
3373
  --sbb-table-color: var(--sbb-color-1-negative);
3363
3374
  --sbb-table-row-striped-color: var(--sbb-background-color-3-negative);
3364
3375
  --sbb-table-caption-color: var(--sbb-color-cement);
3376
+ --sbb-table-sort-header-color: var(--sbb-color-2-negative);
3377
+ --sbb-table-sort-header-hover-color: var(--sbb-color-primary85);
3365
3378
  }
3366
3379
 
3367
3380
  .sbb-table--striped tbody tr:nth-child(odd) :is(th, td) {
@@ -3489,6 +3502,153 @@ sbb-table-wrapper[negative] .sbb-table--theme-iron, .sbb-table--theme-iron.sbb-t
3489
3502
  text-align: right;
3490
3503
  }
3491
3504
 
3505
+ .sbb-sort-header {
3506
+ position: relative;
3507
+ }
3508
+ .sbb-sort-header:is(:focus-visible, .cdk-keyboard-focused, .cdk-program-focused), .sbb-sort-header:has(.sbb-sort-header-container:focus-visible) {
3509
+ --sbb-focus-outline-offset: calc(-1 * var(--sbb-focus-outline-width));
3510
+ outline-offset: var(--sbb-focus-outline-offset);
3511
+ outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);
3512
+ }
3513
+ .sbb-sort-header:not(.sbb-sort-header-disabled) {
3514
+ cursor: pointer;
3515
+ }
3516
+ .sbb-sort-header:not(.sbb-sort-header-disabled):hover .sbb-sort-header-container {
3517
+ color: var(--sbb-table-sort-header-hover-color);
3518
+ }
3519
+
3520
+ .sbb-sort-header-sorted {
3521
+ color: var(--sbb-table-sort-header-color);
3522
+ }
3523
+
3524
+ .sbb-sort-header-container {
3525
+ display: flex;
3526
+ letter-spacing: normal;
3527
+ text-align: left;
3528
+ height: 100%;
3529
+ outline: 0;
3530
+ }
3531
+ .sbb-sort-header-disabled .sbb-sort-header-container {
3532
+ cursor: default;
3533
+ }
3534
+ .sbb-table-align-center .sbb-sort-header-container {
3535
+ text-align: center;
3536
+ }
3537
+
3538
+ .sbb-sort-header-content {
3539
+ flex-shrink: 1;
3540
+ flex-grow: 1;
3541
+ }
3542
+
3543
+ .sbb-sort-header-position-before {
3544
+ flex-direction: row-reverse;
3545
+ }
3546
+
3547
+ .sbb-sort-header-arrow {
3548
+ height: var(--sbb-size-icon-ui-small);
3549
+ width: var(--sbb-size-icon-ui-small);
3550
+ min-width: var(--sbb-size-icon-ui-small);
3551
+ position: relative;
3552
+ opacity: 0;
3553
+ animation: var(--sbb-sort-header-animation-name) var(--sbb-table-sort-header-animation-duration) var(--sbb-table-sort-header-animation-easing);
3554
+ transition-property: opacity, translate;
3555
+ transition-duration: var(--sbb-table-sort-header-animation-duration);
3556
+ transition-timing-function: var(--sbb-table-sort-header-animation-easing);
3557
+ margin: -0.0625rem -0.5rem -0.0625rem -0.25rem;
3558
+ }
3559
+ .sbb-sort-header-position-before .sbb-sort-header-arrow {
3560
+ margin: -0.0625rem -0.25rem -0.0625rem -0.0625rem;
3561
+ }
3562
+ .sbb-sort-header-arrow svg {
3563
+ width: 100%;
3564
+ height: 100%;
3565
+ }
3566
+ .sbb-sort-header-arrow svg :where(path:nth-child(2)) {
3567
+ transform-origin: center;
3568
+ }
3569
+ .sbb-sort-header-arrow.no-transition {
3570
+ transition: opacity 0ms, translate 0ms !important;
3571
+ }
3572
+ .sbb-sort-header-arrow.active, .sbb-sort-header-arrow.desc-to-active, .sbb-sort-header-arrow.asc-to-active {
3573
+ opacity: 1;
3574
+ }
3575
+ .sbb-sort-header-arrow.hint, .sbb-sort-header-arrow.desc-to-hint, .sbb-sort-header-arrow.asc-to-hint {
3576
+ opacity: 0.54;
3577
+ }
3578
+ .sbb-sort-header-arrow.desc, .sbb-sort-header-arrow.asc, .sbb-sort-header-arrow.void, .sbb-sort-header-arrow.hint-to-desc, .sbb-sort-header-arrow.active-to-desc, .sbb-sort-header-arrow.hint-to-asc, .sbb-sort-header-arrow.active-to-asc {
3579
+ opacity: 0;
3580
+ }
3581
+ .sbb-sort-header-arrow.hint, .sbb-sort-header-arrow.active, .sbb-sort-header-arrow.desc-to-active, .sbb-sort-header-arrow.asc-to-active {
3582
+ translate: 0;
3583
+ }
3584
+ .sbb-sort-header-arrow.desc, .sbb-sort-header-arrow.active-to-desc {
3585
+ translate: 0 25%;
3586
+ }
3587
+ .sbb-sort-header-arrow.asc, .sbb-sort-header-arrow.active-to-asc {
3588
+ translate: 0 -25%;
3589
+ }
3590
+ .sbb-sort-header-arrow.desc-to-hint {
3591
+ --sbb-sort-header-animation-name: move-desc-to-hint;
3592
+ translate: 0;
3593
+ }
3594
+ .sbb-sort-header-arrow.hint-to-desc {
3595
+ --sbb-sort-header-animation-name: move-hint-to-desc;
3596
+ translate: 0 25%;
3597
+ }
3598
+ .sbb-sort-header-arrow.asc-to-hint {
3599
+ --sbb-sort-header-animation-name: move-asc-to-hint;
3600
+ translate: 0;
3601
+ }
3602
+ .sbb-sort-header-arrow.hint-to-asc {
3603
+ --sbb-sort-header-animation-name: move-hint-to-asc;
3604
+ translate: 0 -25%;
3605
+ }
3606
+
3607
+ .sbb-sort-indicator {
3608
+ transition: scale var(--sbb-table-sort-header-animation-duration) var(--sbb-table-sort-header-animation-easing);
3609
+ }
3610
+ .sbb-sort-indicator.asc, .sbb-sort-indicator.active-asc {
3611
+ scale: 1 -1;
3612
+ }
3613
+ .sbb-sort-indicator.desc, .sbb-sort-indicator.active-desc {
3614
+ scale: 1 1;
3615
+ }
3616
+ .sbb-sort-indicator.no-transition {
3617
+ transition: none !important;
3618
+ }
3619
+
3620
+ @keyframes move-desc-to-hint {
3621
+ from {
3622
+ translate: 0 25%;
3623
+ }
3624
+ to {
3625
+ translate: 0 0;
3626
+ }
3627
+ }
3628
+ @keyframes move-hint-to-desc {
3629
+ from {
3630
+ translate: 0 0;
3631
+ }
3632
+ to {
3633
+ translate: 0 25%;
3634
+ }
3635
+ }
3636
+ @keyframes move-asc-to-hint {
3637
+ from {
3638
+ translate: 0 -25%;
3639
+ }
3640
+ to {
3641
+ translate: 0 0;
3642
+ }
3643
+ }
3644
+ @keyframes move-hint-to-asc {
3645
+ from {
3646
+ translate: 0 0;
3647
+ }
3648
+ to {
3649
+ translate: 0 -25%;
3650
+ }
3651
+ }
3492
3652
  sbb-tab-nav-bar .sbb-tab-amount {
3493
3653
  margin: 0;
3494
3654
  color: var(--sbb-tab-label-amount-color);
@@ -56,6 +56,12 @@ $theme: 'standard' !default;
56
56
  ),
57
57
  $theme
58
58
  )};
59
+ --sbb-table-sort-header-animation-easing: cubic-bezier(0.4, 0, 0.2, 1);
60
+ --sbb-table-sort-header-color: var(--sbb-color-2);
61
+ --sbb-table-sort-header-hover-color: light-dark(
62
+ var(--sbb-color-primary125),
63
+ var(--sbb-color-primary85)
64
+ );
59
65
  }
60
66
 
61
67
  @mixin rules {
@@ -68,6 +74,10 @@ $theme: 'standard' !default;
68
74
  --sbb-disable-animation-duration,
69
75
  var(--sbb-animation-duration-6x)
70
76
  );
77
+ --sbb-table-sort-header-animation-duration: var(
78
+ --sbb-disable-animation-duration,
79
+ var(--sbb-animation-duration-6x)
80
+ );
71
81
 
72
82
  border-spacing: 0;
73
83
  caption-side: bottom;
@@ -172,6 +182,8 @@ $theme: 'standard' !default;
172
182
  --sbb-table-color: var(--sbb-color-1-negative);
173
183
  --sbb-table-row-striped-color: var(--sbb-background-color-3-negative);
174
184
  --sbb-table-caption-color: var(--sbb-color-cement);
185
+ --sbb-table-sort-header-color: var(--sbb-color-2-negative);
186
+ --sbb-table-sort-header-hover-color: var(--sbb-color-primary85);
175
187
  }
176
188
 
177
189
  .sbb-table--striped {
@@ -337,4 +349,221 @@ $theme: 'standard' !default;
337
349
  .sbb-table-align-right {
338
350
  text-align: right;
339
351
  }
352
+
353
+ // Sort header classes
354
+ .sbb-sort-header {
355
+ position: relative;
356
+
357
+ // Usually we could rely on the arrow showing up to be focus indication, but if a header is
358
+ // active, the arrow will always be shown so the user has no way of telling the difference.
359
+ &:is(:focus-visible, .cdk-keyboard-focused, .cdk-program-focused),
360
+ &:has(.sbb-sort-header-container:focus-visible) {
361
+ --sbb-focus-outline-offset: calc(-1 * var(--sbb-focus-outline-width));
362
+
363
+ @include sbb.focus-outline;
364
+ }
365
+
366
+ &:not(.sbb-sort-header-disabled) {
367
+ cursor: pointer;
368
+ }
369
+
370
+ &:not(.sbb-sort-header-disabled):hover .sbb-sort-header-container {
371
+ color: var(--sbb-table-sort-header-hover-color);
372
+ }
373
+ }
374
+
375
+ .sbb-sort-header-sorted {
376
+ color: var(--sbb-table-sort-header-color);
377
+ }
378
+
379
+ .sbb-sort-header-container {
380
+ display: flex;
381
+ letter-spacing: normal;
382
+ text-align: left;
383
+ height: 100%;
384
+
385
+ // Needs to be reset since we don't want an outline around the inner
386
+ // div which is focusable. We have our own alternate focus styling.
387
+ outline: 0;
388
+
389
+ .sbb-sort-header-disabled & {
390
+ cursor: default;
391
+ }
392
+
393
+ .sbb-table-align-center & {
394
+ text-align: center;
395
+ }
396
+ }
397
+
398
+ .sbb-sort-header-content {
399
+ flex-shrink: 1;
400
+ flex-grow: 1;
401
+ }
402
+
403
+ .sbb-sort-header-position-before {
404
+ flex-direction: row-reverse;
405
+ }
406
+
407
+ .sbb-sort-header-arrow {
408
+ height: var(--sbb-size-icon-ui-small);
409
+ width: var(--sbb-size-icon-ui-small);
410
+ min-width: var(--sbb-size-icon-ui-small);
411
+ position: relative;
412
+
413
+ // Start off at 0 since the arrow may become visible while parent are animating.
414
+ // This will be overwritten when the arrow animations kick in. See #11819.
415
+ opacity: 0;
416
+ animation: var(--sbb-sort-header-animation-name) var(--sbb-table-sort-header-animation-duration)
417
+ var(--sbb-table-sort-header-animation-easing);
418
+ transition: {
419
+ property: opacity, translate;
420
+ duration: var(--sbb-table-sort-header-animation-duration);
421
+ timing-function: var(--sbb-table-sort-header-animation-easing);
422
+ }
423
+
424
+ margin: #{sbb.px-to-rem-build(-1)} #{sbb.px-to-rem-build(-8)} #{sbb.px-to-rem-build(-1)}
425
+ #{sbb.px-to-rem-build(-4)};
426
+
427
+ .sbb-sort-header-position-before & {
428
+ margin: #{sbb.px-to-rem-build(-1)} #{sbb.px-to-rem-build(-4)} #{sbb.px-to-rem-build(-1)}
429
+ #{sbb.px-to-rem-build(-1)};
430
+ }
431
+
432
+ svg {
433
+ width: 100%;
434
+ height: 100%;
435
+
436
+ :where(path:nth-child(2)) {
437
+ transform-origin: center;
438
+ }
439
+ }
440
+
441
+ &.no-transition {
442
+ transition:
443
+ opacity 0ms,
444
+ translate 0ms !important;
445
+ }
446
+
447
+ &.active,
448
+ &.desc-to-active,
449
+ &.asc-to-active {
450
+ opacity: 1;
451
+ }
452
+
453
+ &.hint,
454
+ &.desc-to-hint,
455
+ &.asc-to-hint {
456
+ opacity: 0.54;
457
+ }
458
+
459
+ &.desc,
460
+ &.asc,
461
+ &.void,
462
+ &.hint-to-desc,
463
+ &.active-to-desc,
464
+ &.hint-to-asc,
465
+ &.active-to-asc {
466
+ opacity: 0;
467
+ }
468
+
469
+ &.hint,
470
+ &.active,
471
+ &.desc-to-active,
472
+ &.asc-to-active {
473
+ translate: 0;
474
+ }
475
+
476
+ &.desc,
477
+ &.active-to-desc {
478
+ translate: 0 25%;
479
+ }
480
+
481
+ &.asc,
482
+ &.active-to-asc {
483
+ translate: 0 -25%;
484
+ }
485
+
486
+ &.desc-to-hint {
487
+ --sbb-sort-header-animation-name: move-desc-to-hint;
488
+
489
+ translate: 0;
490
+ }
491
+
492
+ &.hint-to-desc {
493
+ --sbb-sort-header-animation-name: move-hint-to-desc;
494
+
495
+ translate: 0 25%;
496
+ }
497
+
498
+ &.asc-to-hint {
499
+ --sbb-sort-header-animation-name: move-asc-to-hint;
500
+
501
+ translate: 0;
502
+ }
503
+
504
+ &.hint-to-asc {
505
+ --sbb-sort-header-animation-name: move-hint-to-asc;
506
+
507
+ translate: 0 -25%;
508
+ }
509
+ }
510
+
511
+ .sbb-sort-indicator {
512
+ transition: scale var(--sbb-table-sort-header-animation-duration)
513
+ var(--sbb-table-sort-header-animation-easing);
514
+
515
+ &.asc,
516
+ &.active-asc {
517
+ scale: 1 -1;
518
+ }
519
+
520
+ &.desc,
521
+ &.active-desc {
522
+ scale: 1 1;
523
+ }
524
+
525
+ &.no-transition {
526
+ transition: none !important;
527
+ }
528
+ }
529
+
530
+ @keyframes move-desc-to-hint {
531
+ from {
532
+ translate: 0 25%;
533
+ }
534
+
535
+ to {
536
+ translate: 0 0;
537
+ }
538
+ }
539
+
540
+ @keyframes move-hint-to-desc {
541
+ from {
542
+ translate: 0 0;
543
+ }
544
+
545
+ to {
546
+ translate: 0 25%;
547
+ }
548
+ }
549
+
550
+ @keyframes move-asc-to-hint {
551
+ from {
552
+ translate: 0 -25%;
553
+ }
554
+
555
+ to {
556
+ translate: 0 0;
557
+ }
558
+ }
559
+
560
+ @keyframes move-hint-to-asc {
561
+ from {
562
+ translate: 0 0;
563
+ }
564
+
565
+ to {
566
+ translate: 0 -25%;
567
+ }
568
+ }
340
569
  }