@ni/nimble-components 8.6.2 → 9.0.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.
@@ -13544,7 +13544,7 @@
13544
13544
  const groupHeaderTextTransform = DesignToken.create(styleNameFromTokenName(tokenNames.groupHeaderTextTransform)).withDefault('uppercase');
13545
13545
  // Animation Tokens
13546
13546
  const smallDelay = DesignToken.create(styleNameFromTokenName(tokenNames.smallDelay)).withDefault(SmallDelay);
13547
- const mediumDelay = DesignToken.create(styleNameFromTokenName(tokenNames.mediumDelay)).withDefault(MediumDelay);
13547
+ DesignToken.create(styleNameFromTokenName(tokenNames.mediumDelay)).withDefault(MediumDelay);
13548
13548
  const largeDelay = DesignToken.create(styleNameFromTokenName(tokenNames.largeDelay)).withDefault(LargeDelay);
13549
13549
  // Private helpers functions
13550
13550
  function hexToRgbPartial(hexValue) {
@@ -16077,8 +16077,7 @@
16077
16077
  position: relative;
16078
16078
  top: 0px;
16079
16079
  bottom: 0px;
16080
- display: grid;
16081
- grid-template-rows: max-content auto max-content;
16080
+ display: flex;
16082
16081
  flex-direction: column;
16083
16082
  box-sizing: border-box;
16084
16083
  border-radius: 0px;
@@ -16115,20 +16114,21 @@
16115
16114
 
16116
16115
  ::slotted(header) {
16117
16116
  padding: ${standardPadding};
16117
+ flex: none;
16118
16118
  font: ${titlePlus1Font};
16119
16119
  }
16120
16120
 
16121
16121
  ::slotted(section) {
16122
16122
  padding: ${standardPadding};
16123
- grid-row: 2;
16123
+ flex: auto;
16124
16124
  overflow-y: auto;
16125
16125
  }
16126
16126
 
16127
16127
  ::slotted(footer) {
16128
16128
  padding: ${standardPadding};
16129
+ flex: none;
16129
16130
  display: flex;
16130
16131
  justify-content: flex-end;
16131
- grid-row: 3;
16132
16132
  border-top: ${borderWidth} solid ${popupBorderColor};
16133
16133
  }
16134
16134
  `;
@@ -18710,17 +18710,17 @@
18710
18710
  ${display('inline-flex')}
18711
18711
 
18712
18712
  :host {
18713
+ position: relative;
18713
18714
  box-sizing: border-box;
18714
18715
  font: ${bodyFont};
18715
18716
  height: ${controlHeight};
18716
- padding: calc(${standardPadding} / 2) ${standardPadding}
18717
- calc(${standardPadding} / 2 - ${borderWidth});
18718
18717
  color: ${bodyFontColor};
18719
18718
  align-items: center;
18720
18719
  justify-content: center;
18721
18720
  cursor: pointer;
18722
- ${ /* Separate focus indicator from active indicator */''}
18723
- border-bottom: transparent ${borderWidth} solid;
18721
+ --ni-private-active-indicator-width: 2px;
18722
+ --ni-private-focus-indicator-width: 1px;
18723
+ --ni-private-indicator-lines-gap: 1px;
18724
18724
  }
18725
18725
 
18726
18726
  :host(:hover) {
@@ -18731,16 +18731,12 @@
18731
18731
  outline: none;
18732
18732
  }
18733
18733
 
18734
- :host(${focusVisible}) {
18735
- outline: none;
18736
- box-shadow: 0 calc(${borderWidth} * -1) ${borderHoverColor} inset;
18737
- transition: box-shadow ${mediumDelay} ease-in-out;
18734
+ :host(:focus:hover) {
18735
+ background-color: ${fillHoverSelectedColor};
18738
18736
  }
18739
18737
 
18740
- @media (prefers-reduced-motion) {
18741
- :host(${focusVisible}) {
18742
- transition-duration: 0.01s;
18743
- }
18738
+ :host(${focusVisible}) {
18739
+ outline: none;
18744
18740
  }
18745
18741
 
18746
18742
  :host(:active) {
@@ -18752,6 +18748,57 @@
18752
18748
  color: ${bodyDisabledFontColor};
18753
18749
  background: none;
18754
18750
  }
18751
+
18752
+ slot {
18753
+ display: block;
18754
+ padding: calc(${standardPadding} / 2) ${standardPadding}
18755
+ calc(${standardPadding} / 2 - ${borderWidth});
18756
+ }
18757
+
18758
+ :host::before {
18759
+ content: '';
18760
+ position: absolute;
18761
+ bottom: calc(
18762
+ var(--ni-private-active-indicator-width) +
18763
+ var(--ni-private-indicator-lines-gap)
18764
+ );
18765
+ width: 0px;
18766
+ height: 0px;
18767
+ border-bottom: ${borderHoverColor}
18768
+ var(--ni-private-focus-indicator-width) solid;
18769
+ transition: width ${smallDelay} ease-in;
18770
+ }
18771
+
18772
+ @media (prefers-reduced-motion) {
18773
+ :host::before {
18774
+ transition-duration: 0.01s;
18775
+ }
18776
+ }
18777
+
18778
+ :host(${focusVisible})::before {
18779
+ width: 100%;
18780
+ }
18781
+
18782
+ :host::after {
18783
+ content: '';
18784
+ position: absolute;
18785
+ bottom: 0px;
18786
+ width: 0px;
18787
+ height: 0px;
18788
+ border-bottom: ${borderHoverColor}
18789
+ var(--ni-private-active-indicator-width) solid;
18790
+ transition: width ${smallDelay} ease-in;
18791
+ }
18792
+
18793
+ @media (prefers-reduced-motion) {
18794
+ :host::after {
18795
+ transition-duration: 0.01s;
18796
+ }
18797
+ }
18798
+
18799
+ :host([aria-selected='true'])::after {
18800
+ width: 100%;
18801
+ }
18755
18802
  `;
18756
18803
 
18757
18804
  /**
@@ -18808,22 +18855,6 @@
18808
18855
  align-self: end;
18809
18856
  }
18810
18857
 
18811
- .activeIndicator {
18812
- grid-row: 2;
18813
- height: calc(${borderWidth} * 2);
18814
- background-color: ${borderHoverColor};
18815
- }
18816
-
18817
- .activeIndicatorTransition {
18818
- transition: transform ${smallDelay} ease-in-out;
18819
- }
18820
-
18821
- @media (prefers-reduced-motion) {
18822
- .activeIndicatorTransition {
18823
- transition: transform 0.01s;
18824
- }
18825
- }
18826
-
18827
18858
  .tabpanel {
18828
18859
  grid-row: 2;
18829
18860
  grid-column-start: 1;
@@ -18835,6 +18866,11 @@
18835
18866
  * A nimble-styled tabs control
18836
18867
  */
18837
18868
  class Tabs extends Tabs$1 {
18869
+ constructor() {
18870
+ super();
18871
+ // We disable the built-in active indicator so that we can implement our own
18872
+ this.activeindicator = false;
18873
+ }
18838
18874
  }
18839
18875
  const nimbleTabs = Tabs.compose({
18840
18876
  baseName: 'tabs',
@@ -19192,6 +19228,14 @@
19192
19228
  outline: none;
19193
19229
  }
19194
19230
 
19231
+ .control:disabled {
19232
+ ${
19233
+ /* There's an issue with the input element where the ellipsized
19234
+ overflowed text is blank when scrolled into view, so just clip instead.
19235
+ See https://webcompat.com/issues/104481 */ ''}
19236
+ text-overflow: clip;
19237
+ }
19238
+
19195
19239
  .control::selection {
19196
19240
  color: ${controlLabelFontColor};
19197
19241
  background: rgba(${fillSelectedRgbPartialColor}, 0.3);