@genexus/mercury 0.9.18 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/mercury.scss CHANGED
@@ -5461,45 +5461,183 @@
5461
5461
  }
5462
5462
 
5463
5463
  %flexible-layout {
5464
- --ch-tab-close-button__background-image-size: var(--mer-icon__size--md);
5465
- --ch-tab-close-button__image-size: var(--mer-icon__box--md);
5464
+ --flexible-layout--tab-list-block__background-color: var(
5465
+ --mer-surface__elevation--01
5466
+ );
5467
+ --flexible-layout--tab-list-inline__background-color: var(
5468
+ --mer-surface__elevation--02
5469
+ );
5466
5470
 
5467
- --spacing-body-block-start: var(--mer-spacing--md);
5468
- --spacing-body-block-end: var(--mer-spacing--md);
5469
- --spacing-body-inline-start: var(--mer-spacing--md);
5470
- --spacing-body-inline-end: var(--mer-spacing--md);
5471
+ --flexible-layout--tab-list-inline__inline-size: 48px;
5471
5472
 
5472
- &-tab-caption {
5473
- background-color: color-mix(
5474
- in srgb,
5475
- var(--colors-foundation__gray--300) 20%,
5476
- transparent
5473
+ --flexible-layout--tab-button-block-start__background-color: var(
5474
+ --flexible-layout--tab-list-block__background-color
5475
+ );
5476
+ --flexible-layout--tab-button-block-end__background-color: var(
5477
+ --flexible-layout--tab-list-block__background-color
5478
+ );
5479
+
5480
+ --flexible-layout--tab-button-inline-start__background-color: var(
5481
+ --flexible-layout--tab-list-inline__background-color
5482
+ );
5483
+ --flexible-layout--tab-button-inline-end__background-color: var(
5484
+ --flexible-layout--tab-list-inline__background-color
5485
+ );
5486
+
5487
+ --flexible-layout--tab-button-block-start__background-color--selected: var(
5488
+ --mer-surface
5489
+ );
5490
+ --flexible-layout--tab-button-block-end__background-color--selected: var(
5491
+ --mer-surface
5492
+ );
5493
+
5494
+ &-tab {
5495
+ --ch-tab-close-button__background-image-size: var(--mer-icon__size--md);
5496
+ --ch-tab-close-button__image-size: 16px; // TODO: Use a token
5497
+
5498
+ --spacing-body-block-start: var(--mer-spacing--md);
5499
+ --spacing-body-block-end: var(--mer-spacing--md);
5500
+ --spacing-body-inline-start: var(--mer-spacing--md);
5501
+ --spacing-body-inline-end: var(--mer-spacing--md);
5502
+ }
5503
+
5504
+ &-tab-button-block {
5505
+ @include tab-button-colors-enabled();
5506
+ @include tab-button-font();
5507
+ @include tab-button-gap();
5508
+
5509
+ padding-inline: var(--tab-caption__padding-inline);
5510
+
5511
+ // Due to border-block-width: 1px;
5512
+ padding-block: calc(var(--tab-caption__padding-block) - 1px);
5513
+
5514
+ border-block: 1px solid transparent;
5515
+ }
5516
+
5517
+ &-tab-button-inline {
5518
+ @include tab-button-colors-enabled();
5519
+ @include tab-button-font();
5520
+ @include tab-button-gap();
5521
+
5522
+ padding-block: var(--tab-caption__padding-block);
5523
+
5524
+ // Due to border-inline-width: 1px;
5525
+ padding-inline: calc(var(--tab-caption__padding-inline) - 1px);
5526
+
5527
+ border-inline: 1px solid transparent;
5528
+ }
5529
+
5530
+ // Block Start
5531
+ &-tab-button-block-start {
5532
+ background-color: var(
5533
+ --flexible-layout--tab-button-block-start__background-color
5477
5534
  );
5535
+ }
5478
5536
 
5479
- &--selected {
5480
- background-color: color-mix(
5481
- in srgb,
5482
- var(--colors-foundation__gray--300) 50%,
5483
- transparent
5484
- );
5485
- }
5537
+ &-tab-button-block-start--hover {
5538
+ @include tab-button-colors-hover();
5539
+ }
5540
+
5541
+ &-tab-button-block-start--active {
5542
+ @include tab-button-colors-hover();
5543
+ }
5544
+
5545
+ &-tab-button-block-start--selected {
5546
+ border-block-start-color: var(--mer-accent__primary);
5547
+ background-color: var(
5548
+ --flexible-layout--tab-button-block-start__background-color--selected
5549
+ );
5550
+ }
5551
+
5552
+ // Block End
5553
+ &-tab-button-block-end {
5554
+ background-color: var(
5555
+ --flexible-layout--tab-button-block-end__background-color
5556
+ );
5557
+ }
5558
+
5559
+ &-tab-button-block-end--hover {
5560
+ @include tab-button-colors-hover();
5561
+ }
5562
+
5563
+ &-tab-button-block-end--active {
5564
+ @include tab-button-colors-hover();
5565
+ }
5566
+
5567
+ &-tab-button-block-end--selected {
5568
+ border-block-end-color: var(--mer-accent__primary);
5569
+ background-color: var(
5570
+ --flexible-layout--tab-button-block-end__background-color--selected
5571
+ );
5572
+ }
5573
+
5574
+ // Inline Start
5575
+ &-tab-button-inline-start {
5576
+ background-color: var(
5577
+ --flexible-layout--tab-button-inline-start__background-color
5578
+ );
5579
+ inline-size: var(--flexible-layout--tab-list-inline__inline-size);
5580
+ }
5581
+
5582
+ &-tab-button-inline-start--hover {
5583
+ @include tab-button-colors-hover();
5584
+ }
5585
+
5586
+ &-tab-button-inline-start--active {
5587
+ @include tab-button-colors-hover();
5588
+ }
5589
+
5590
+ &-tab-button-inline-start--selected {
5591
+ border-inline-start-color: var(--mer-accent__primary);
5592
+ color: var(--mer-accent__primary);
5593
+ }
5594
+
5595
+ // Inline End
5596
+ &-tab-button-inline-end {
5597
+ background-color: var(
5598
+ --flexible-layout--tab-button-inline-end__background-color
5599
+ );
5600
+ inline-size: var(--flexible-layout--tab-list-inline__inline-size);
5601
+ }
5602
+
5603
+ &-tab-button-inline-end--hover {
5604
+ @include tab-button-colors-hover();
5605
+ }
5606
+
5607
+ &-tab-button-inline-end--active {
5608
+ @include tab-button-colors-hover();
5609
+ }
5610
+
5611
+ &-tab-button-inline-end--selected {
5612
+ border-inline-end-color: var(--mer-accent__primary);
5613
+ color: var(--mer-accent__primary);
5614
+ }
5615
+
5616
+ // Disabled
5617
+ &-tab-button--disabled {
5618
+ @include tab-button-colors-disabled();
5486
5619
  }
5487
5620
 
5488
5621
  &-tab-list--inline {
5489
- background-color: var(--mer-color__neutral-gray--600);
5490
- inline-size: 48px;
5622
+ background-color: var(--flexible-layout--tab-list-inline__background-color);
5623
+ inline-size: var(--flexible-layout--tab-list-inline__inline-size);
5491
5624
  gap: 4px;
5492
5625
  }
5493
5626
 
5494
5627
  &-tab-list--block {
5495
- background-color: var(--mer-color__neutral-gray--650);
5628
+ background-color: var(--flexible-layout--tab-list-block__background-color);
5496
5629
  overflow: auto;
5497
5630
  }
5498
5631
 
5632
+ // Disabled
5633
+ &-tab-button--disabled {
5634
+ @include tab-button-colors-disabled();
5635
+ }
5636
+
5499
5637
  &-droppable-area {
5500
5638
  background-color: color-mix(
5501
5639
  in srgb,
5502
- var(--accents__secondary--hover) 25%,
5640
+ var(--mer-accent__primary) 25%,
5503
5641
  transparent
5504
5642
  );
5505
5643
  }
@@ -5511,48 +5649,194 @@
5511
5649
 
5512
5650
  @mixin flexible-layout(
5513
5651
  $flexible-layout-selector: ".flexible-layout",
5514
- $flexible-layout__bar-selector: ".flexible-layout::part(bar)",
5515
5652
  $tab-selector: ".flexible-layout::part(leaf)",
5516
- $tab-caption-selector: ".flexible-layout::part(button)",
5517
- $tab-caption--block-selector: ".flexible-layout::part(button block)",
5518
- $tab-caption--inline-selector: ".flexible-layout::part(button inline)",
5519
- $tab-caption--selected-selector: ".flexible-layout::part(button selected)",
5520
- $tab-caption--disabled-selector: ".flexible-layout::part(button disabled)",
5521
- $tab-caption__close-button-selector: ".flexible-layout::part(close-button)",
5653
+
5654
+ $tab-button-block-start-selector: ".flexible-layout::part(tab block-start)",
5655
+ $tab-button-block-start--selected-selector:
5656
+ ".flexible-layout::part(tab block-start selected)",
5657
+ $tab-button-block-start--disabled-selector:
5658
+ ".flexible-layout::part(tab block-start disabled)",
5659
+
5660
+ $tab-button-block-end-selector: ".flexible-layout::part(tab block-end)",
5661
+ $tab-button-block-end--selected-selector:
5662
+ ".flexible-layout::part(tab block-end selected)",
5663
+ $tab-button-block-end--disabled-selector:
5664
+ ".flexible-layout::part(tab block-end disabled)",
5665
+
5666
+ $tab-button-inline-start-selector: ".flexible-layout::part(tab inline-start)",
5667
+ $tab-button-inline-start--selected-selector:
5668
+ ".flexible-layout::part(tab inline-start selected)",
5669
+ $tab-button-inline-start--disabled-selector:
5670
+ ".flexible-layout::part(tab inline-start disabled)",
5671
+
5672
+ $tab-button-inline-end-selector: ".flexible-layout::part(tab inline-end)",
5673
+ $tab-button-inline-end--selected-selector:
5674
+ ".flexible-layout::part(tab inline-end selected)",
5675
+ $tab-button-inline-end--disabled-selector:
5676
+ ".flexible-layout::part(tab inline-end disabled)",
5677
+
5678
+ $tab-button-close-button-selector: ".flexible-layout::part(close-button)",
5679
+
5522
5680
  $tab-list--inline-selector: ".flexible-layout::part(tab-list inline)",
5523
5681
  $tab-list--block-selector: ".flexible-layout::part(tab-list block)",
5682
+
5683
+ $bar-selector: ".flexible-layout::part(bar)",
5524
5684
  $droppable-area-selector: ".flexible-layout::part(droppable-area)",
5685
+ $add--tab-button-block-start: true,
5686
+ $add--tab-button-block-end: true,
5687
+ $add--tab-button-inline-start: true,
5688
+ $add--tab-button-inline-end: true,
5525
5689
  $add--disabled: true
5526
5690
  ) {
5691
+ #{$flexible-layout-selector} {
5692
+ @extend %flexible-layout;
5693
+ }
5694
+
5527
5695
  @include tab(
5528
- $tab-selector: #{$tab-selector},
5529
- $tab-caption-selector: #{$tab-caption-selector},
5530
- $tab-caption--block-selector: #{$tab-caption--block-selector},
5531
- $tab-caption--inline-selector: #{$tab-caption--inline-selector},
5532
- $tab-caption--selected-selector: #{$tab-caption--selected-selector},
5533
- $tab-caption__close-button-selector: #{$tab-caption__close-button-selector},
5696
+ $tab-button-close-button-selector: #{$tab-button-close-button-selector},
5697
+ $add--tab-button-block-start: false,
5698
+ $add--tab-button-block-end: false,
5699
+ $add--tab-button-inline-start: false,
5700
+ $add--tab-button-inline-end: false,
5534
5701
  $add--tab: false,
5535
5702
  $add--tab-list: false,
5536
5703
  $add--disabled: $add--disabled
5537
5704
  );
5538
5705
 
5539
- #{$flexible-layout-selector} {
5540
- @extend %flexible-layout;
5706
+ #{$tab-selector} {
5707
+ @extend %flexible-layout-tab;
5541
5708
  }
5542
5709
 
5543
- #{$flexible-layout__bar-selector} {
5710
+ #{$bar-selector} {
5544
5711
  @extend %flexible-layout-bar;
5545
5712
  }
5546
5713
 
5547
5714
  // - - - - - - - - - - - - - - - - - - - -
5548
- // Tab Caption
5715
+ // Tab Button (block-start)
5549
5716
  // - - - - - - - - - - - - - - - - - - - -
5550
- #{$tab-caption-selector} {
5551
- @extend %flexible-layout-tab-caption;
5717
+ @if $add--tab-button-block-start {
5718
+ #{$tab-button-block-start-selector} {
5719
+ @extend %flexible-layout-tab-button-block;
5720
+ @extend %flexible-layout-tab-button-block-start;
5721
+
5722
+ &:hover {
5723
+ @extend %flexible-layout-tab-button-block-start--hover;
5724
+ }
5725
+
5726
+ &:active {
5727
+ @extend %flexible-layout-tab-button-block-start--active;
5728
+ }
5729
+
5730
+ &:focus-visible {
5731
+ @extend %tab-button--focus-visible;
5732
+ }
5733
+ }
5734
+
5735
+ #{$tab-button-block-start--selected-selector} {
5736
+ @extend %flexible-layout-tab-button-block-start--selected;
5737
+ }
5738
+
5739
+ @if $add--disabled {
5740
+ #{$tab-button-block-start--disabled-selector} {
5741
+ @extend %flexible-layout-tab-button--disabled;
5742
+ }
5743
+ }
5744
+ }
5745
+
5746
+ // - - - - - - - - - - - - - - - - - - - -
5747
+ // Tab Button (block-end)
5748
+ // - - - - - - - - - - - - - - - - - - - -
5749
+ @if $add--tab-button-block-end {
5750
+ #{$tab-button-block-end-selector} {
5751
+ @extend %flexible-layout-tab-button-block;
5752
+ @extend %flexible-layout-tab-button-block-end;
5753
+
5754
+ &:hover {
5755
+ @extend %flexible-layout-tab-button-block-end--hover;
5756
+ }
5757
+
5758
+ &:active {
5759
+ @extend %flexible-layout-tab-button-block-end--active;
5760
+ }
5761
+
5762
+ &:focus-visible {
5763
+ @extend %tab-button--focus-visible;
5764
+ }
5765
+ }
5766
+
5767
+ #{$tab-button-block-end--selected-selector} {
5768
+ @extend %flexible-layout-tab-button-block-end--selected;
5769
+ }
5770
+
5771
+ @if $add--disabled {
5772
+ #{$tab-button-block-end--disabled-selector} {
5773
+ @extend %flexible-layout-tab-button--disabled;
5774
+ }
5775
+ }
5552
5776
  }
5553
5777
 
5554
- #{$tab-caption--selected-selector} {
5555
- @extend %flexible-layout-tab-caption--selected;
5778
+ // - - - - - - - - - - - - - - - - - - - -
5779
+ // Tab Button (inline-start)
5780
+ // - - - - - - - - - - - - - - - - - - - -
5781
+ @if $add--tab-button-inline-start {
5782
+ #{$tab-button-inline-start-selector} {
5783
+ @extend %flexible-layout-tab-button-inline;
5784
+ @extend %flexible-layout-tab-button-inline-start;
5785
+
5786
+ &:hover {
5787
+ @extend %flexible-layout-tab-button-inline-start--hover;
5788
+ }
5789
+
5790
+ &:active {
5791
+ @extend %flexible-layout-tab-button-inline-start--active;
5792
+ }
5793
+
5794
+ &:focus-visible {
5795
+ @extend %tab-button--focus-visible;
5796
+ }
5797
+ }
5798
+
5799
+ #{$tab-button-inline-start--selected-selector} {
5800
+ @extend %flexible-layout-tab-button-inline-start--selected;
5801
+ }
5802
+
5803
+ @if $add--disabled {
5804
+ #{$tab-button-inline-start--disabled-selector} {
5805
+ @extend %flexible-layout-tab-button--disabled;
5806
+ }
5807
+ }
5808
+ }
5809
+
5810
+ // - - - - - - - - - - - - - - - - - - - -
5811
+ // Tab Button (inline-end)
5812
+ // - - - - - - - - - - - - - - - - - - - -
5813
+ @if $add--tab-button-inline-end {
5814
+ #{$tab-button-inline-end-selector} {
5815
+ @extend %flexible-layout-tab-button-inline;
5816
+ @extend %flexible-layout-tab-button-inline-end;
5817
+
5818
+ &:hover {
5819
+ @extend %flexible-layout-tab-button-inline-end--hover;
5820
+ }
5821
+
5822
+ &:active {
5823
+ @extend %flexible-layout-tab-button-inline-end--active;
5824
+ }
5825
+
5826
+ &:focus-visible {
5827
+ @extend %tab-button--focus-visible;
5828
+ }
5829
+ }
5830
+
5831
+ #{$tab-button-inline-end--selected-selector} {
5832
+ @extend %flexible-layout-tab-button-inline-end--selected;
5833
+ }
5834
+
5835
+ @if $add--disabled {
5836
+ #{$tab-button-inline-end--disabled-selector} {
5837
+ @extend %flexible-layout-tab-button--disabled;
5838
+ }
5839
+ }
5556
5840
  }
5557
5841
 
5558
5842
  // - - - - - - - - - - - - - - - - - - - -
@@ -8412,7 +8696,7 @@
8412
8696
 
8413
8697
  %tab {
8414
8698
  --ch-tab-close-button__background-image-size: var(--mer-icon__size--md);
8415
- --ch-tab-close-button__image-size: var(--mer-icon__box--md);
8699
+ --ch-tab-close-button__image-size: 16px; // TODO: Use a token
8416
8700
 
8417
8701
  --spacing-body-block-start: var(--mer-spacing--md);
8418
8702
  --spacing-body-block-end: var(--mer-spacing--md);
@@ -8423,76 +8707,176 @@
8423
8707
  @include items-container-colors();
8424
8708
  }
8425
8709
 
8426
- %tab-caption {
8710
+ %tab-button-block {
8427
8711
  @include tab-button-colors-enabled();
8428
8712
  @include tab-button-font();
8429
8713
  @include tab-button-gap();
8430
8714
 
8431
- &--hover {
8432
- @include tab-button-colors-hover();
8433
- }
8715
+ @include tab-button-padding-inline();
8716
+ border-block: var(--tab-caption__border-width)
8717
+ var(--tab-caption__border-style) transparent;
8434
8718
 
8435
- &--focus-visible {
8436
- @include focus-outline();
8437
- }
8719
+ // TODO: Remove this mixin
8720
+ // @include tab-button-border-block-end();
8721
+ }
8438
8722
 
8439
- &--block {
8440
- @include tab-button-padding-inline();
8441
- @include tab-button-border-block-end();
8442
- }
8723
+ %tab-button-inline {
8724
+ @include tab-button-colors-enabled();
8725
+ @include tab-button-font();
8726
+ @include tab-button-gap();
8443
8727
 
8444
- &--inline {
8445
- @include tab-button-padding-stack();
8446
- @include tab-button-border-block();
8447
- }
8728
+ @include tab-button-padding-stack();
8729
+ border-inline: var(--tab-caption__border-width)
8730
+ var(--tab-caption__border-style) transparent;
8448
8731
 
8449
- &--selected {
8450
- &-inline {
8451
- @include tab-button-colors-selected-stack();
8452
- }
8453
- &-block {
8454
- @include tab-button-colors-selected-inline();
8455
- }
8456
- }
8732
+ // TODO: Remove this mixin
8733
+ // @include tab-button-border-block();
8734
+ }
8457
8735
 
8458
- &--disabled {
8459
- @include tab-button-colors-disabled();
8460
- --tab-caption__border-width: 0;
8736
+ // Block Start
8737
+ %tab-button-block-start--hover {
8738
+ @include tab-button-colors-hover();
8739
+ }
8740
+
8741
+ %tab-button-block-start--active {
8742
+ // TODO
8743
+ @include tab-button-colors-hover();
8744
+ }
8745
+
8746
+ %tab-button-block-start--selected {
8747
+ @include tab-button-colors-selected-inline();
8748
+ border-block-end-color: var(--tab-caption__border-color);
8749
+ }
8750
+
8751
+ // Block End
8752
+ %tab-button-block-end--hover {
8753
+ @include tab-button-colors-hover();
8754
+ }
8755
+
8756
+ %tab-button-block-end--active {
8757
+ // TODO
8758
+ @include tab-button-colors-hover();
8759
+ }
8760
+
8761
+ %tab-button-block-end--selected {
8762
+ @include tab-button-colors-selected-inline();
8763
+ border-block-start-color: var(--tab-caption__border-color);
8764
+ }
8765
+
8766
+ // Inline Start
8767
+ %tab-button-inline-start--hover {
8768
+ @include tab-button-colors-hover();
8769
+ }
8770
+
8771
+ %tab-button-inline-start--active {
8772
+ // TODO
8773
+ @include tab-button-colors-hover();
8774
+ }
8775
+
8776
+ %tab-button-inline-start--selected {
8777
+ @include tab-button-colors-selected-stack();
8778
+ border-inline-end-color: var(--tab-caption__border-color);
8779
+ }
8780
+
8781
+ // Inline End
8782
+ %tab-button-inline-end--hover {
8783
+ @include tab-button-colors-hover();
8784
+ }
8785
+
8786
+ %tab-button-inline-end--active {
8787
+ // TODO
8788
+ @include tab-button-colors-hover();
8789
+ }
8790
+
8791
+ %tab-button-inline-end--selected {
8792
+ @include tab-button-colors-selected-stack();
8793
+ border-inline-start-color: var(--tab-caption__border-color);
8794
+ }
8795
+
8796
+ // Focus
8797
+ %tab-button--focus-visible {
8798
+ @include focus-outline();
8799
+ }
8800
+
8801
+ // Disabled
8802
+ %tab-button--disabled {
8803
+ @include tab-button-colors-disabled();
8804
+ --tab-button__border-width: 0;
8805
+ }
8806
+
8807
+ %tab-button-close-button {
8808
+ margin-inline-start: 4px;
8809
+ border-radius: 4px;
8810
+
8811
+ &--hover {
8812
+ background-color: var(--mer-color__tinted-primary--20);
8461
8813
  }
8462
8814
 
8463
- &__close-button {
8464
- &--focus {
8465
- @include focus-outline();
8466
- }
8815
+ &--focus-visible {
8816
+ @include focus-outline();
8467
8817
  }
8468
8818
  }
8469
8819
 
8470
8820
  %tab-list {
8471
- &--block {
8821
+ &--block-start {
8472
8822
  border-block-end: var(--items-container__border-width)
8473
8823
  var(--items-container__border-style) var(--items-container__border-color);
8474
8824
  }
8475
8825
 
8476
- &--inline {
8826
+ &--block-end {
8827
+ border-block-start: var(--items-container__border-width)
8828
+ var(--items-container__border-style) var(--items-container__border-color);
8829
+ }
8830
+
8831
+ &--inline-start {
8477
8832
  border-inline-end: var(--items-container__border-width)
8478
8833
  var(--items-container__border-style) var(--items-container__border-color);
8479
8834
  }
8835
+
8836
+ &--inline-end {
8837
+ border-inline-start: var(--items-container__border-width)
8838
+ var(--items-container__border-style) var(--items-container__border-color);
8839
+ }
8480
8840
  }
8481
8841
 
8482
8842
  @mixin tab(
8483
8843
  $tab-selector: ".tab",
8484
- $tab-caption-selector: ".tab::part(button)",
8485
- $tab-caption--block-selector: ".tab::part(button block)",
8486
- $tab-caption--inline-selector: ".tab::part(button inline)",
8487
- $tab-caption--selected-selector: ".tab::part(button selected)",
8488
- $tab-caption--selected-inline-selector: ".tab::part(button inline selected)",
8489
- $tab-caption--selected-block-selector: ".tab::part(button block selected)",
8490
- $tab-caption--disabled-selector: ".tab::part(button disabled)",
8491
- $tab-caption__close-button-selector: ".tab::part(close-button)",
8492
- $tab-list-selector: ".tab::part(tab-list)",
8493
- $tab-list--block-selector: ".tab::part(tab-list block)",
8494
- $tab-list--inline-selector: ".tab::part(tab-list inline)",
8844
+
8845
+ $tab-button-block-start-selector: ".tab::part(tab block-start)",
8846
+ $tab-button-block-start--selected-selector:
8847
+ ".tab::part(tab block-start selected)",
8848
+ $tab-button-block-start--disabled-selector:
8849
+ ".tab::part(tab block-start disabled)",
8850
+
8851
+ $tab-button-block-end-selector: ".tab::part(tab block-end)",
8852
+ $tab-button-block-end--selected-selector: ".tab::part(tab block-end selected)",
8853
+ $tab-button-block-end--disabled-selector: ".tab::part(tab block-end disabled)",
8854
+
8855
+ $tab-button-inline-start-selector: ".tab::part(tab inline-start)",
8856
+ $tab-button-inline-start--selected-selector:
8857
+ ".tab::part(tab inline-start selected)",
8858
+ $tab-button-inline-start--disabled-selector:
8859
+ ".tab::part(tab inline-start disabled)",
8860
+
8861
+ $tab-button-inline-end-selector: ".tab::part(tab inline-end)",
8862
+ $tab-button-inline-end--selected-selector:
8863
+ ".tab::part(tab inline-end selected)",
8864
+ $tab-button-inline-end--disabled-selector:
8865
+ ".tab::part(tab inline-end disabled)",
8866
+
8867
+ $tab-button--disabled-selector: ".tab::part(tab disabled)",
8868
+ $tab-button-close-button-selector: ".tab::part(close-button)",
8869
+
8870
+ $tab-list--block-start-selector: ".tab::part(tab-list block-start)",
8871
+ $tab-list--block-end-selector: ".tab::part(tab-list block-end)",
8872
+ $tab-list--inline-start-selector: ".tab::part(tab-list inline-start)",
8873
+ $tab-list--inline-end-selector: ".tab::part(tab-list inline-end)",
8874
+
8495
8875
  $add--tab: true,
8876
+ $add--tab-button-block-start: true,
8877
+ $add--tab-button-block-end: true,
8878
+ $add--tab-button-inline-start: true,
8879
+ $add--tab-button-inline-end: true,
8496
8880
  $add--tab-list: true,
8497
8881
  $add--disabled: true
8498
8882
  ) {
@@ -8502,62 +8886,165 @@
8502
8886
  }
8503
8887
  }
8504
8888
 
8505
- #{$tab-caption-selector} {
8506
- // @extend %tab-text;
8507
- @extend %tab-caption;
8889
+ // - - - - - - - - - - - - - - - - - - - -
8890
+ // Tab Button (block-start)
8891
+ // - - - - - - - - - - - - - - - - - - - -
8892
+ @if ($add--tab-button-block-start) {
8893
+ #{$tab-button-block-start-selector} {
8894
+ @extend %tab-button-block;
8508
8895
 
8509
- &:hover {
8510
- @extend %tab-caption--hover;
8896
+ &:hover {
8897
+ @extend %tab-button-block-start--hover;
8898
+ }
8899
+
8900
+ &:active {
8901
+ @extend %tab-button-block-start--active;
8902
+ }
8903
+
8904
+ &:focus-visible {
8905
+ @extend %tab-button--focus-visible;
8906
+ }
8511
8907
  }
8512
8908
 
8513
- &:focus-visible {
8514
- @extend %tab-caption--focus-visible;
8909
+ #{$tab-button-block-start--selected-selector} {
8910
+ @extend %tab-button-block-start--selected;
8515
8911
  }
8516
- }
8517
8912
 
8518
- #{$tab-caption--block-selector} {
8519
- @extend %tab-caption--block;
8913
+ @if $add--disabled {
8914
+ #{$tab-button-block-start--disabled-selector} {
8915
+ @extend %tab-button--disabled;
8916
+ }
8917
+ }
8520
8918
  }
8521
8919
 
8522
- #{$tab-caption--inline-selector} {
8523
- @extend %tab-caption--inline;
8920
+ // - - - - - - - - - - - - - - - - - - - -
8921
+ // Tab Button (block-end)
8922
+ // - - - - - - - - - - - - - - - - - - - -
8923
+ @if ($add--tab-button-block-end) {
8924
+ #{$tab-button-block-end-selector} {
8925
+ @extend %tab-button-block;
8926
+
8927
+ &:hover {
8928
+ @extend %tab-button-block-end--hover;
8929
+ }
8930
+
8931
+ &:active {
8932
+ @extend %tab-button-block-end--active;
8933
+ }
8934
+
8935
+ &:focus-visible {
8936
+ @extend %tab-button--focus-visible;
8937
+ }
8938
+ }
8939
+
8940
+ #{$tab-button-block-end--selected-selector} {
8941
+ @extend %tab-button-block-end--selected;
8942
+ }
8943
+
8944
+ @if $add--disabled {
8945
+ #{$tab-button-block-end--disabled-selector} {
8946
+ @extend %tab-button--disabled;
8947
+ }
8948
+ }
8524
8949
  }
8525
8950
 
8526
- #{$tab-caption--selected-selector} {
8527
- @extend %tab-caption--selected;
8951
+ // - - - - - - - - - - - - - - - - - - - -
8952
+ // Tab Button (inline-start)
8953
+ // - - - - - - - - - - - - - - - - - - - -
8954
+ @if ($add--tab-button-inline-start) {
8955
+ #{$tab-button-inline-start-selector} {
8956
+ @extend %tab-button-inline;
8957
+
8958
+ &:hover {
8959
+ @extend %tab-button-inline-start--hover;
8960
+ }
8961
+
8962
+ &:active {
8963
+ @extend %tab-button-inline-start--active;
8964
+ }
8965
+
8966
+ &:focus-visible {
8967
+ @extend %tab-button--focus-visible;
8968
+ }
8969
+ }
8970
+
8971
+ #{$tab-button-inline-start--selected-selector} {
8972
+ @extend %tab-button-inline-start--selected;
8973
+ }
8974
+
8975
+ @if $add--disabled {
8976
+ #{$tab-button-inline-start--disabled-selector} {
8977
+ @extend %tab-button--disabled;
8978
+ }
8979
+ }
8528
8980
  }
8529
8981
 
8530
- #{$tab-caption--selected-inline-selector} {
8531
- @extend %tab-caption--selected-inline;
8982
+ // - - - - - - - - - - - - - - - - - - - -
8983
+ // Tab Button (inline-end)
8984
+ // - - - - - - - - - - - - - - - - - - - -
8985
+ @if ($add--tab-button-inline-end) {
8986
+ #{$tab-button-inline-end-selector} {
8987
+ @extend %tab-button-inline;
8988
+
8989
+ &:hover {
8990
+ @extend %tab-button-inline-end--hover;
8991
+ }
8992
+
8993
+ &:active {
8994
+ @extend %tab-button-inline-end--active;
8995
+ }
8996
+
8997
+ &:focus-visible {
8998
+ @extend %tab-button--focus-visible;
8999
+ }
9000
+ }
9001
+
9002
+ #{$tab-button-inline-end--selected-selector} {
9003
+ @extend %tab-button-inline-end--selected;
9004
+ }
9005
+
9006
+ @if $add--disabled {
9007
+ #{$tab-button-inline-end--disabled-selector} {
9008
+ @extend %tab-button--disabled;
9009
+ }
9010
+ }
8532
9011
  }
8533
9012
 
8534
- #{$tab-caption--selected-block-selector} {
8535
- @extend %tab-caption--selected-block;
9013
+ #{$tab-button-close-button-selector} {
9014
+ @extend %tab-button-close-button;
9015
+
9016
+ &:focus-visible {
9017
+ @extend %tab-button-close-button--focus-visible;
9018
+ }
8536
9019
  }
8537
9020
 
8538
- #{$tab-caption__close-button-selector} {
9021
+ #{$tab-button-close-button-selector} {
9022
+ @extend %tab-button-close-button;
9023
+
9024
+ &:hover {
9025
+ @extend %tab-button-close-button--hover;
9026
+ }
9027
+
8539
9028
  &:focus-visible {
8540
- @extend %tab-caption__close-button--focus;
9029
+ @extend %tab-button-close-button--focus-visible;
8541
9030
  }
8542
9031
  }
8543
9032
 
8544
9033
  @if $add--tab-list {
8545
- #{$tab-list-selector} {
8546
- @extend %tab-list;
9034
+ #{$tab-list--block-start-selector} {
9035
+ @extend %tab-list--block-start;
8547
9036
  }
8548
- }
8549
9037
 
8550
- #{$tab-list--block-selector} {
8551
- @extend %tab-list--block;
8552
- }
9038
+ #{$tab-list--block-end-selector} {
9039
+ @extend %tab-list--block-end;
9040
+ }
8553
9041
 
8554
- #{$tab-list--inline-selector} {
8555
- @extend %tab-list--inline;
8556
- }
9042
+ #{$tab-list--inline-start-selector} {
9043
+ @extend %tab-list--inline-start;
9044
+ }
8557
9045
 
8558
- @if $add--disabled {
8559
- #{$tab-caption--disabled-selector} {
8560
- @extend %tab-caption--disabled;
9046
+ #{$tab-list--inline-end-selector} {
9047
+ @extend %tab-list--inline-end;
8561
9048
  }
8562
9049
  }
8563
9050
  }