@ni/ok-components 0.2.16 → 0.2.18
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.
|
@@ -14768,6 +14768,7 @@
|
|
|
14768
14768
|
actionRgbPartialColor: 'action-rgb-partial-color',
|
|
14769
14769
|
applicationBackgroundColor: 'application-background-color',
|
|
14770
14770
|
dividerBackgroundColor: 'divider-background-color',
|
|
14771
|
+
dividerBackgroundDynamicColor: 'divider-background-dynamic-color',
|
|
14771
14772
|
headerBackgroundColor: 'header-background-color',
|
|
14772
14773
|
sectionBackgroundColor: 'section-background-color',
|
|
14773
14774
|
sectionBackgroundImage: 'section-background-image',
|
|
@@ -14787,6 +14788,7 @@
|
|
|
14787
14788
|
borderRgbPartialColor: 'border-rgb-partial-color',
|
|
14788
14789
|
failColor: 'fail-color',
|
|
14789
14790
|
warningColor: 'warning-color',
|
|
14791
|
+
warningFontColor: 'warning-font-color',
|
|
14790
14792
|
passColor: 'pass-color',
|
|
14791
14793
|
informationColor: 'information-color',
|
|
14792
14794
|
borderHoverColor: 'border-hover-color',
|
|
@@ -14901,7 +14903,7 @@
|
|
|
14901
14903
|
|
|
14902
14904
|
const template$_ = html `<slot></slot>`;
|
|
14903
14905
|
|
|
14904
|
-
const styles$
|
|
14906
|
+
const styles$1f = css `
|
|
14905
14907
|
${display$2('contents')}
|
|
14906
14908
|
`;
|
|
14907
14909
|
|
|
@@ -15016,7 +15018,7 @@
|
|
|
15016
15018
|
], ThemeProvider.prototype, "theme", void 0);
|
|
15017
15019
|
const nimbleDesignSystemProvider = ThemeProvider.compose({
|
|
15018
15020
|
baseName: 'theme-provider',
|
|
15019
|
-
styles: styles$
|
|
15021
|
+
styles: styles$1f,
|
|
15020
15022
|
template: template$_
|
|
15021
15023
|
});
|
|
15022
15024
|
DesignSystem.getOrCreate()
|
|
@@ -16141,6 +16143,7 @@
|
|
|
16141
16143
|
const WarningDark20 = "#5e4635";
|
|
16142
16144
|
const Pass100LightUi = "#009921";
|
|
16143
16145
|
const Pass100DarkUi = "#00c12b";
|
|
16146
|
+
const WarningTypographyLightUi = "#d3440d";
|
|
16144
16147
|
const Fail100LightUi = "#c4000c";
|
|
16145
16148
|
const Fail100DarkUi = "#ff4663";
|
|
16146
16149
|
const Black75 = "#818386";
|
|
@@ -16160,7 +16163,9 @@
|
|
|
16160
16163
|
const BannerFail100DarkUi = "#d63434";
|
|
16161
16164
|
const Warning100LightUi = "#ff4b00";
|
|
16162
16165
|
const Black91V10 = "#e8e8e8";
|
|
16166
|
+
const Black30 = "#d3d5d6";
|
|
16163
16167
|
const Black82V100 = "#6e6f70";
|
|
16168
|
+
const Black77V100 = "#6f7073";
|
|
16164
16169
|
const DigitalGreenDark = "#008557";
|
|
16165
16170
|
const DigitalGreenDark105 = "#00734b";
|
|
16166
16171
|
const DigitalGreenDark110 = "#00613f";
|
|
@@ -16303,6 +16308,7 @@
|
|
|
16303
16308
|
sectionBackgroundColor: createThemeColor(Black15, Black80, ForestGreen),
|
|
16304
16309
|
sectionBackgroundImage: createThemeColor(`linear-gradient(${Black15}, ${hexToRgbaCssColor(Black15, 0)})`, `linear-gradient(${Black82}, ${hexToRgbaCssColor(Black82, 0)})`, `linear-gradient(${ForestGreen}, ${hexToRgbaCssColor(ForestGreen, 0)})`),
|
|
16305
16310
|
dividerBackgroundColor: createThemeColor(Black15, Black80, ForestGreen),
|
|
16311
|
+
dividerBackgroundDynamicColor: createThemeColor(Black30, Black77V100, ForestGreen),
|
|
16306
16312
|
fillSelectedColor: hexToRgbaCssThemeColor(alias.fillSelectedColor, 0.2, 0.2, 0.2),
|
|
16307
16313
|
fillSelectedRgbPartialColor: hexToRgbPartialThemeColor(alias.fillSelectedColor),
|
|
16308
16314
|
fillHoverSelectedColor: hexToRgbaCssThemeColor(alias.fillSelectedColor, 0.15, 0.15, 0.15),
|
|
@@ -16313,6 +16319,7 @@
|
|
|
16313
16319
|
borderRgbPartialColor: hexToRgbPartialThemeColor(alias.lineColor),
|
|
16314
16320
|
failColor: alias.failColor,
|
|
16315
16321
|
warningColor: createThemeColor(Warning100LightUi, Warning100DarkUi, White),
|
|
16322
|
+
warningFontColor: createThemeColor(WarningTypographyLightUi, Warning100DarkUi, White),
|
|
16316
16323
|
passColor: createThemeColor(Pass100LightUi, Pass100DarkUi, White),
|
|
16317
16324
|
informationColor: createThemeColor(Information100LightUi, Information100DarkUi, White),
|
|
16318
16325
|
borderHoverColor: createThemeColor(DigitalGreenLight, PowerGreen, White),
|
|
@@ -16474,6 +16481,7 @@
|
|
|
16474
16481
|
createThemeColorToken(tokenNames.sectionBackgroundColor, tokenValues.sectionBackgroundColor);
|
|
16475
16482
|
const sectionBackgroundImage = createThemeColorToken(tokenNames.sectionBackgroundImage, tokenValues.sectionBackgroundImage);
|
|
16476
16483
|
createThemeColorToken(tokenNames.dividerBackgroundColor, tokenValues.dividerBackgroundColor);
|
|
16484
|
+
createThemeColorToken(tokenNames.dividerBackgroundDynamicColor, tokenValues.dividerBackgroundDynamicColor);
|
|
16477
16485
|
const fillSelectedColor = createThemeColorToken(tokenNames.fillSelectedColor, tokenValues.fillSelectedColor);
|
|
16478
16486
|
const fillSelectedRgbPartialColor = createThemeColorToken(tokenNames.fillSelectedRgbPartialColor, tokenValues.fillSelectedRgbPartialColor);
|
|
16479
16487
|
const fillHoverSelectedColor = createThemeColorToken(tokenNames.fillHoverSelectedColor, tokenValues.fillHoverSelectedColor);
|
|
@@ -16484,6 +16492,7 @@
|
|
|
16484
16492
|
const borderRgbPartialColor = createThemeColorToken(tokenNames.borderRgbPartialColor, tokenValues.borderRgbPartialColor);
|
|
16485
16493
|
const failColor = createThemeColorToken(tokenNames.failColor, tokenValues.failColor);
|
|
16486
16494
|
const warningColor = createThemeColorToken(tokenNames.warningColor, tokenValues.warningColor);
|
|
16495
|
+
const warningFontColor = createThemeColorToken(tokenNames.warningFontColor, tokenValues.warningFontColor);
|
|
16487
16496
|
const passColor = createThemeColorToken(tokenNames.passColor, tokenValues.passColor);
|
|
16488
16497
|
const informationColor = createThemeColorToken(tokenNames.informationColor, tokenValues.informationColor);
|
|
16489
16498
|
const borderHoverColor = createThemeColorToken(tokenNames.borderHoverColor, tokenValues.borderHoverColor);
|
|
@@ -16652,8 +16661,8 @@
|
|
|
16652
16661
|
}
|
|
16653
16662
|
// #endregion
|
|
16654
16663
|
|
|
16655
|
-
const styles$
|
|
16656
|
-
@layer base, hover, focusVisible, active, disabled;
|
|
16664
|
+
const styles$1e = css `
|
|
16665
|
+
@layer base, hover, focusVisible, active, disabled, top;
|
|
16657
16666
|
|
|
16658
16667
|
@layer base {
|
|
16659
16668
|
${display$2('inline')}
|
|
@@ -16834,7 +16843,7 @@
|
|
|
16834
16843
|
baseName: 'anchor',
|
|
16835
16844
|
baseClass: Anchor$1,
|
|
16836
16845
|
template: template$Z,
|
|
16837
|
-
styles: styles$
|
|
16846
|
+
styles: styles$1e,
|
|
16838
16847
|
shadowOptions: {
|
|
16839
16848
|
delegatesFocus: true
|
|
16840
16849
|
}
|
|
@@ -16943,7 +16952,7 @@
|
|
|
16943
16952
|
padding: 0;
|
|
16944
16953
|
`;
|
|
16945
16954
|
|
|
16946
|
-
const styles$
|
|
16955
|
+
const styles$1d = css `
|
|
16947
16956
|
@layer base, checked, hover, focusVisible, active, disabled, top;
|
|
16948
16957
|
|
|
16949
16958
|
@layer base {
|
|
@@ -17227,8 +17236,8 @@
|
|
|
17227
17236
|
}
|
|
17228
17237
|
`));
|
|
17229
17238
|
|
|
17230
|
-
const styles$
|
|
17231
|
-
${styles$
|
|
17239
|
+
const styles$1c = css `
|
|
17240
|
+
${styles$1d}
|
|
17232
17241
|
${buttonAppearanceVariantStyles}
|
|
17233
17242
|
|
|
17234
17243
|
.control {
|
|
@@ -17331,7 +17340,7 @@
|
|
|
17331
17340
|
const nimbleAnchorButton = AnchorButton.compose({
|
|
17332
17341
|
baseName: 'anchor-button',
|
|
17333
17342
|
template: template$Y,
|
|
17334
|
-
styles: styles$
|
|
17343
|
+
styles: styles$1c,
|
|
17335
17344
|
shadowOptions: {
|
|
17336
17345
|
delegatesFocus: true
|
|
17337
17346
|
}
|
|
@@ -17339,7 +17348,7 @@
|
|
|
17339
17348
|
DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorButton());
|
|
17340
17349
|
const anchorButtonTag = 'nimble-anchor-button';
|
|
17341
17350
|
|
|
17342
|
-
const styles$
|
|
17351
|
+
const styles$1b = css `
|
|
17343
17352
|
${display$2('grid')}
|
|
17344
17353
|
|
|
17345
17354
|
:host {
|
|
@@ -17524,7 +17533,7 @@
|
|
|
17524
17533
|
const nimbleAnchorMenuItem = AnchorMenuItem.compose({
|
|
17525
17534
|
baseName: 'anchor-menu-item',
|
|
17526
17535
|
template: template$X,
|
|
17527
|
-
styles: styles$
|
|
17536
|
+
styles: styles$1b,
|
|
17528
17537
|
shadowOptions: {
|
|
17529
17538
|
delegatesFocus: true
|
|
17530
17539
|
}
|
|
@@ -17534,347 +17543,639 @@
|
|
|
17534
17543
|
.register(nimbleAnchorMenuItem());
|
|
17535
17544
|
const anchorMenuItemTag = 'nimble-anchor-menu-item';
|
|
17536
17545
|
|
|
17537
|
-
|
|
17538
|
-
|
|
17546
|
+
// These styles end up inside a @layer block so must use the
|
|
17547
|
+
// cssPartial tag instead of the css tag
|
|
17548
|
+
const styles$1a = cssPartial `
|
|
17549
|
+
.severity-text {
|
|
17550
|
+
display: none;
|
|
17551
|
+
font: ${errorTextFont};
|
|
17552
|
+
color: ${buttonLabelFontColor};
|
|
17553
|
+
width: 100%;
|
|
17554
|
+
position: absolute;
|
|
17555
|
+
${'' /* The -2px modifier of the bottom position is to intentionally have the severity text slightly overlap the control by 2px */}
|
|
17556
|
+
bottom: calc(-1 * (${errorTextFontLineHeight} - 2px));
|
|
17557
|
+
left: 0px;
|
|
17558
|
+
overflow: hidden;
|
|
17559
|
+
text-overflow: ellipsis;
|
|
17560
|
+
white-space: nowrap;
|
|
17561
|
+
}
|
|
17562
|
+
|
|
17563
|
+
:host([severity="error"]) .severity-text {
|
|
17564
|
+
display: block;
|
|
17565
|
+
color: ${failColor};
|
|
17566
|
+
}
|
|
17567
|
+
|
|
17568
|
+
:host([severity="warning"]) .severity-text {
|
|
17569
|
+
display: block;
|
|
17570
|
+
color: ${warningFontColor};
|
|
17571
|
+
}
|
|
17572
|
+
.severity-text:empty {
|
|
17573
|
+
display: none;
|
|
17574
|
+
}
|
|
17539
17575
|
`;
|
|
17540
17576
|
|
|
17541
|
-
|
|
17542
|
-
|
|
17577
|
+
/**
|
|
17578
|
+
* Set user-select: none in a way that works across all supported browsers.
|
|
17579
|
+
* https://developer.mozilla.org/en-US/docs/Web/CSS/user-select#browser_compatibility
|
|
17580
|
+
*/
|
|
17581
|
+
const userSelectNone$1 = cssPartial `
|
|
17582
|
+
user-select: none;
|
|
17583
|
+
-webkit-user-select: none;
|
|
17543
17584
|
`;
|
|
17544
17585
|
|
|
17545
17586
|
/**
|
|
17546
|
-
*
|
|
17587
|
+
* Subscription for {@link ThemeStyleSheetBehavior}
|
|
17547
17588
|
*/
|
|
17548
|
-
class
|
|
17589
|
+
class ThemeStyleSheetBehaviorSubscription {
|
|
17590
|
+
constructor(value, styles, source) {
|
|
17591
|
+
this.value = value;
|
|
17592
|
+
this.styles = styles;
|
|
17593
|
+
this.source = source;
|
|
17594
|
+
}
|
|
17595
|
+
handleChange() {
|
|
17596
|
+
const theme$1 = theme.getValueFor(this.source);
|
|
17597
|
+
if (Array.isArray(this.value)
|
|
17598
|
+
? this.value.includes(theme$1)
|
|
17599
|
+
: this.value === theme$1) {
|
|
17600
|
+
this.source.$fastController.addStyles(this.styles);
|
|
17601
|
+
}
|
|
17602
|
+
else {
|
|
17603
|
+
this.source.$fastController.removeStyles(this.styles);
|
|
17604
|
+
}
|
|
17605
|
+
}
|
|
17549
17606
|
}
|
|
17550
|
-
|
|
17551
|
-
|
|
17552
|
-
|
|
17553
|
-
|
|
17554
|
-
|
|
17555
|
-
|
|
17607
|
+
/**
|
|
17608
|
+
* Behavior to conditionally apply theme-based stylesheets.
|
|
17609
|
+
*/
|
|
17610
|
+
class ThemeStyleSheetBehavior {
|
|
17611
|
+
constructor(theme, styles) {
|
|
17612
|
+
this.theme = theme;
|
|
17613
|
+
this.styles = styles;
|
|
17614
|
+
this.cache = new WeakMap();
|
|
17615
|
+
}
|
|
17616
|
+
/**
|
|
17617
|
+
* @internal
|
|
17618
|
+
*/
|
|
17619
|
+
bind(source) {
|
|
17620
|
+
const subscriber = this.cache.get(source)
|
|
17621
|
+
|| new ThemeStyleSheetBehaviorSubscription(this.theme, this.styles, source);
|
|
17622
|
+
// Currently subscriber from cache may have gone through unbind
|
|
17623
|
+
// but still be in cache so always resubscribe
|
|
17624
|
+
// See: https://github.com/microsoft/fast/issues/3246#issuecomment-1030424876
|
|
17625
|
+
theme.subscribe(subscriber, source);
|
|
17626
|
+
subscriber.handleChange();
|
|
17627
|
+
this.cache.set(source, subscriber);
|
|
17628
|
+
}
|
|
17629
|
+
/**
|
|
17630
|
+
* @internal
|
|
17631
|
+
*/
|
|
17632
|
+
unbind(source) {
|
|
17633
|
+
const subscriber = this.cache.get(source);
|
|
17634
|
+
if (subscriber) {
|
|
17635
|
+
theme.unsubscribe(subscriber);
|
|
17636
|
+
}
|
|
17637
|
+
// Currently does not evict subscriber from cache
|
|
17638
|
+
// See: https://github.com/microsoft/fast/issues/3246#issuecomment-1030424876
|
|
17639
|
+
}
|
|
17640
|
+
}
|
|
17641
|
+
/**
|
|
17642
|
+
* Behavior to conditionally apply theme-based stylesheets. To determine which to apply,
|
|
17643
|
+
* the behavior will use the nearest ThemeProvider's 'theme' design system value.
|
|
17644
|
+
*
|
|
17645
|
+
* @public
|
|
17646
|
+
* @example
|
|
17647
|
+
* ```ts
|
|
17648
|
+
* css`
|
|
17649
|
+
* // ...
|
|
17650
|
+
* `.withBehaviors(
|
|
17651
|
+
* themeBehavior(Theme.light, css` ... `),
|
|
17652
|
+
* // Apply style for both dark and color theme
|
|
17653
|
+
* themeBehavior([Theme.dark, Theme.color], css` ... `)
|
|
17654
|
+
* )
|
|
17655
|
+
* ```
|
|
17656
|
+
*/
|
|
17657
|
+
const themeBehavior = (theme, styles) => new ThemeStyleSheetBehavior(theme, styles);
|
|
17658
|
+
/* eslint-enable max-classes-per-file */
|
|
17556
17659
|
|
|
17557
|
-
const styles$
|
|
17558
|
-
|
|
17660
|
+
const styles$19 = css `
|
|
17661
|
+
@layer base, hover, focusVisible, active, disabled, top;
|
|
17559
17662
|
|
|
17560
|
-
|
|
17561
|
-
|
|
17562
|
-
|
|
17563
|
-
|
|
17564
|
-
|
|
17565
|
-
|
|
17566
|
-
|
|
17567
|
-
|
|
17568
|
-
|
|
17569
|
-
|
|
17570
|
-
|
|
17571
|
-
|
|
17572
|
-
|
|
17573
|
-
}
|
|
17663
|
+
@layer base {
|
|
17664
|
+
${display$2('inline-flex')}
|
|
17665
|
+
${styles$1a}
|
|
17666
|
+
:host {
|
|
17667
|
+
${'' /* Based on text layout: Top padding + title height + subtitle height + bottom padding */}
|
|
17668
|
+
height: calc(${smallPadding} + ${controlSlimHeight} + ${errorTextFontLineHeight} + ${smallPadding});
|
|
17669
|
+
width: ${menuMinWidth};
|
|
17670
|
+
color: ${buttonLabelFontColor};
|
|
17671
|
+
font: ${buttonLabelFont};
|
|
17672
|
+
white-space: nowrap;
|
|
17673
|
+
outline: none;
|
|
17674
|
+
border: none;
|
|
17675
|
+
}
|
|
17574
17676
|
|
|
17575
|
-
|
|
17576
|
-
|
|
17577
|
-
|
|
17677
|
+
${'' /* Container wrapper for severity text to position against */}
|
|
17678
|
+
.container {
|
|
17679
|
+
display: inline-flex;
|
|
17680
|
+
width: 100%;
|
|
17681
|
+
height: 100%;
|
|
17682
|
+
position: relative;
|
|
17683
|
+
}
|
|
17578
17684
|
|
|
17579
|
-
|
|
17580
|
-
|
|
17581
|
-
|
|
17685
|
+
.control {
|
|
17686
|
+
display: inline-flex;
|
|
17687
|
+
align-items: start;
|
|
17688
|
+
justify-content: flex-start;
|
|
17689
|
+
height: 100%;
|
|
17690
|
+
width: 100%;
|
|
17691
|
+
color: inherit;
|
|
17692
|
+
background-color: transparent;
|
|
17693
|
+
gap: ${smallPadding};
|
|
17694
|
+
cursor: pointer;
|
|
17695
|
+
outline: none;
|
|
17696
|
+
margin: 0;
|
|
17697
|
+
padding: 0 ${smallPadding} 0 0;
|
|
17698
|
+
--ni-private-step-icon-background-full-size: 100% 100%;
|
|
17699
|
+
${'' /* 6px = (2px icon border + 1px inset) * 2 sides */}
|
|
17700
|
+
--ni-private-step-icon-background-inset-size: calc(100% - 6px) calc(100% - 6px);
|
|
17701
|
+
--ni-private-step-icon-background-none-size: 0% 0%;
|
|
17702
|
+
|
|
17703
|
+
--ni-private-step-icon-color: ${buttonLabelFontColor};
|
|
17704
|
+
--ni-private-step-icon-border-color: transparent;
|
|
17705
|
+
--ni-private-step-icon-background-color: rgba(${borderRgbPartialColor}, 0.1);
|
|
17706
|
+
--ni-private-step-icon-background-size: var(--ni-private-step-icon-background-full-size);
|
|
17707
|
+
--ni-private-step-icon-outline-inset-color: transparent;
|
|
17708
|
+
--ni-private-step-line-color: rgba(${borderRgbPartialColor}, 0.1);
|
|
17709
|
+
}
|
|
17710
|
+
|
|
17711
|
+
:host([severity="error"]) .control {
|
|
17712
|
+
--ni-private-step-icon-color: ${failColor};
|
|
17713
|
+
--ni-private-step-icon-border-color: ${failColor};
|
|
17714
|
+
--ni-private-step-icon-background-color: rgb(from ${failColor} r g b / 30%);
|
|
17715
|
+
--ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);
|
|
17716
|
+
--ni-private-step-line-color: ${failColor};
|
|
17717
|
+
}
|
|
17718
|
+
|
|
17719
|
+
:host([severity="warning"]) .control {
|
|
17720
|
+
--ni-private-step-icon-color: ${warningColor};
|
|
17721
|
+
--ni-private-step-icon-border-color: ${warningColor};
|
|
17722
|
+
--ni-private-step-icon-background-color: rgb(from ${warningColor} r g b / 30%);
|
|
17723
|
+
--ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);
|
|
17724
|
+
--ni-private-step-line-color: ${warningColor};
|
|
17725
|
+
}
|
|
17726
|
+
|
|
17727
|
+
:host([severity="success"]) .control {
|
|
17728
|
+
--ni-private-step-icon-color: var(--ni-private-step-icon-inverse-color);
|
|
17729
|
+
--ni-private-step-icon-border-color: ${passColor};
|
|
17730
|
+
--ni-private-step-icon-background-color: ${passColor};
|
|
17731
|
+
--ni-private-step-icon-background-size: var(--ni-private-step-icon-background-full-size);
|
|
17732
|
+
--ni-private-step-line-color: rgba(${borderRgbPartialColor}, 0.1);
|
|
17733
|
+
}
|
|
17734
|
+
|
|
17735
|
+
:host([selected]) .control {
|
|
17736
|
+
--ni-private-step-icon-color: ${borderHoverColor};
|
|
17737
|
+
--ni-private-step-icon-border-color: ${borderHoverColor};
|
|
17738
|
+
--ni-private-step-icon-background-color: rgb(from ${borderHoverColor} r g b / 30%);
|
|
17739
|
+
--ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);
|
|
17740
|
+
--ni-private-step-line-color: ${borderHoverColor};
|
|
17741
|
+
}
|
|
17742
|
+
|
|
17743
|
+
.icon {
|
|
17744
|
+
display: inline-flex;
|
|
17745
|
+
align-items: center;
|
|
17746
|
+
justify-content: center;
|
|
17747
|
+
flex: none;
|
|
17748
|
+
height: ${controlHeight};
|
|
17749
|
+
width: ${controlHeight};
|
|
17750
|
+
${userSelectNone$1};
|
|
17751
|
+
font: ${buttonLabelFont};
|
|
17752
|
+
color: var(--ni-private-step-icon-color);
|
|
17753
|
+
${iconColor.cssCustomProperty}: var(--ni-private-step-icon-color);
|
|
17754
|
+
border-style: solid;
|
|
17755
|
+
border-radius: 100%;
|
|
17756
|
+
border-color: var(--ni-private-step-icon-border-color);
|
|
17757
|
+
border-width: 1px;
|
|
17758
|
+
background-image: radial-gradient(
|
|
17759
|
+
closest-side,
|
|
17760
|
+
${'' /* Workaround to prevent aliasing on radial-gradient boundaries, see:
|
|
17761
|
+
https://frontendmasters.com/blog/obsessing-over-smooth-radial-gradient-disc-edges
|
|
17762
|
+
*/}
|
|
17763
|
+
var(--ni-private-step-icon-background-color) calc(100% - 1px/var(--ni-private-device-resolution)),
|
|
17764
|
+
transparent 100%
|
|
17765
|
+
);
|
|
17766
|
+
background-origin: border-box;
|
|
17767
|
+
background-size: var(--ni-private-step-icon-background-size);
|
|
17768
|
+
background-repeat: no-repeat;
|
|
17769
|
+
background-position: center center;
|
|
17770
|
+
position: relative;
|
|
17771
|
+
transition:
|
|
17772
|
+
border-color ${smallDelay} ease-in-out,
|
|
17773
|
+
border-width ${smallDelay} ease-in-out,
|
|
17774
|
+
background-size ${smallDelay} ease-out;
|
|
17775
|
+
}
|
|
17582
17776
|
|
|
17583
|
-
|
|
17584
|
-
|
|
17585
|
-
|
|
17777
|
+
:host([selected]) .icon {
|
|
17778
|
+
border-width: 2px;
|
|
17779
|
+
}
|
|
17586
17780
|
|
|
17587
|
-
|
|
17588
|
-
|
|
17589
|
-
|
|
17590
|
-
|
|
17591
|
-
|
|
17781
|
+
.icon::before {
|
|
17782
|
+
content: '';
|
|
17783
|
+
position: absolute;
|
|
17784
|
+
width: 100%;
|
|
17785
|
+
height: 100%;
|
|
17786
|
+
pointer-events: none;
|
|
17787
|
+
outline-color: var(--ni-private-step-icon-outline-inset-color);
|
|
17788
|
+
outline-style: solid;
|
|
17789
|
+
outline-width: 0px;
|
|
17790
|
+
outline-offset: 0px;
|
|
17791
|
+
border: 1px solid transparent;
|
|
17792
|
+
border-radius: 100%;
|
|
17793
|
+
color: transparent;
|
|
17794
|
+
background-clip: border-box;
|
|
17795
|
+
transition:
|
|
17796
|
+
outline-color ${smallDelay} ease-in-out,
|
|
17797
|
+
outline-width ${smallDelay} ease-in-out,
|
|
17798
|
+
outline-offset ${smallDelay} ease-in-out;
|
|
17799
|
+
}
|
|
17592
17800
|
|
|
17593
|
-
|
|
17594
|
-
|
|
17595
|
-
|
|
17596
|
-
padding: ${mediumPadding} ${standardPadding}
|
|
17597
|
-
calc(${mediumPadding} - ${borderWidth});
|
|
17598
|
-
}
|
|
17801
|
+
.icon-slot {
|
|
17802
|
+
display: contents;
|
|
17803
|
+
}
|
|
17599
17804
|
|
|
17600
|
-
|
|
17601
|
-
|
|
17602
|
-
|
|
17603
|
-
|
|
17604
|
-
|
|
17605
|
-
var(--ni-private-indicator-lines-gap)
|
|
17606
|
-
);
|
|
17607
|
-
width: 0px;
|
|
17608
|
-
height: 0px;
|
|
17609
|
-
border-bottom: ${borderHoverColor}
|
|
17610
|
-
var(--ni-private-focus-indicator-width) solid;
|
|
17611
|
-
transition: width ${smallDelay} ease-in;
|
|
17612
|
-
}
|
|
17805
|
+
:host([severity="error"]) .icon-slot,
|
|
17806
|
+
:host([severity="warning"]) .icon-slot,
|
|
17807
|
+
:host([severity="success"]) .icon-slot {
|
|
17808
|
+
display: none;
|
|
17809
|
+
}
|
|
17613
17810
|
|
|
17614
|
-
|
|
17615
|
-
|
|
17616
|
-
|
|
17811
|
+
:host([selected]) .icon-slot,
|
|
17812
|
+
:host([disabled]) .icon-slot {
|
|
17813
|
+
display: contents;
|
|
17617
17814
|
}
|
|
17618
|
-
}
|
|
17619
17815
|
|
|
17620
|
-
|
|
17621
|
-
|
|
17622
|
-
|
|
17816
|
+
.icon-severity {
|
|
17817
|
+
display: none;
|
|
17818
|
+
}
|
|
17623
17819
|
|
|
17624
|
-
|
|
17625
|
-
|
|
17626
|
-
|
|
17627
|
-
|
|
17628
|
-
|
|
17629
|
-
outline: none;
|
|
17630
|
-
align-items: center;
|
|
17631
|
-
justify-content: center;
|
|
17632
|
-
}
|
|
17820
|
+
:host([severity="error"]) .icon-severity,
|
|
17821
|
+
:host([severity="warning"]) .icon-severity,
|
|
17822
|
+
:host([severity="success"]) .icon-severity {
|
|
17823
|
+
display: contents;
|
|
17824
|
+
}
|
|
17633
17825
|
|
|
17634
|
-
|
|
17635
|
-
|
|
17636
|
-
|
|
17637
|
-
|
|
17638
|
-
width: 0px;
|
|
17639
|
-
height: 0px;
|
|
17640
|
-
border-bottom: ${borderHoverColor}
|
|
17641
|
-
var(--ni-private-active-indicator-width) solid;
|
|
17642
|
-
transition: width ${smallDelay} ease-in;
|
|
17643
|
-
}
|
|
17826
|
+
:host([selected]) .icon-severity,
|
|
17827
|
+
:host([disabled]) .icon-severity {
|
|
17828
|
+
display: none;
|
|
17829
|
+
}
|
|
17644
17830
|
|
|
17645
|
-
|
|
17646
|
-
|
|
17647
|
-
|
|
17831
|
+
.content {
|
|
17832
|
+
display: inline-flex;
|
|
17833
|
+
${'' /* Control width - icon size */}
|
|
17834
|
+
width: calc(100% - 32px);
|
|
17835
|
+
flex-direction: column;
|
|
17836
|
+
padding-top: ${smallPadding};
|
|
17837
|
+
padding-bottom: ${smallPadding};
|
|
17648
17838
|
}
|
|
17649
|
-
}
|
|
17650
17839
|
|
|
17651
|
-
|
|
17652
|
-
|
|
17653
|
-
|
|
17654
|
-
|
|
17840
|
+
.title-wrapper {
|
|
17841
|
+
display: inline-flex;
|
|
17842
|
+
height: ${controlSlimHeight};
|
|
17843
|
+
flex-direction: row;
|
|
17844
|
+
align-items: center;
|
|
17845
|
+
justify-content: start;
|
|
17846
|
+
gap: ${smallPadding};
|
|
17847
|
+
font: ${bodyFont};
|
|
17848
|
+
}
|
|
17655
17849
|
|
|
17656
|
-
|
|
17657
|
-
|
|
17658
|
-
|
|
17659
|
-
}
|
|
17850
|
+
[part='start'] {
|
|
17851
|
+
display: none;
|
|
17852
|
+
}
|
|
17660
17853
|
|
|
17661
|
-
|
|
17662
|
-
|
|
17663
|
-
|
|
17854
|
+
.title {
|
|
17855
|
+
display: inline-block;
|
|
17856
|
+
flex: none;
|
|
17857
|
+
white-space: nowrap;
|
|
17858
|
+
overflow: hidden;
|
|
17859
|
+
text-overflow: ellipsis;
|
|
17860
|
+
${'' /* Content width - (gap + line min width) */}
|
|
17861
|
+
max-width: calc(100% - (${smallPadding} + ${standardPadding}));
|
|
17862
|
+
}
|
|
17664
17863
|
|
|
17665
|
-
|
|
17666
|
-
|
|
17667
|
-
|
|
17864
|
+
[part='end'] {
|
|
17865
|
+
display: none;
|
|
17866
|
+
}
|
|
17867
|
+
|
|
17868
|
+
.line {
|
|
17869
|
+
display: inline-block;
|
|
17870
|
+
flex: 1;
|
|
17871
|
+
min-width: ${standardPadding};
|
|
17872
|
+
height: 1px;
|
|
17873
|
+
background: var(--ni-private-step-line-color);
|
|
17874
|
+
transform: scale(1, 1);
|
|
17875
|
+
transition:
|
|
17876
|
+
background-color ${smallDelay} ease-in-out,
|
|
17877
|
+
transform ${smallDelay} ease-in-out;
|
|
17878
|
+
}
|
|
17668
17879
|
|
|
17669
|
-
|
|
17670
|
-
|
|
17880
|
+
.subtitle {
|
|
17881
|
+
font: ${errorTextFont};
|
|
17882
|
+
white-space: nowrap;
|
|
17883
|
+
overflow: hidden;
|
|
17884
|
+
text-overflow: ellipsis;
|
|
17885
|
+
${'' /* Content width */}
|
|
17886
|
+
max-width: 100%;
|
|
17887
|
+
}
|
|
17671
17888
|
}
|
|
17672
|
-
`;
|
|
17673
17889
|
|
|
17674
|
-
|
|
17675
|
-
|
|
17676
|
-
|
|
17677
|
-
|
|
17678
|
-
|
|
17679
|
-
|
|
17680
|
-
ping="${x => x.ping}"
|
|
17681
|
-
referrerpolicy="${x => x.referrerpolicy}"
|
|
17682
|
-
rel="${x => x.rel}"
|
|
17683
|
-
target="${x => x.target}"
|
|
17684
|
-
type="${x => x.type}"
|
|
17685
|
-
>
|
|
17686
|
-
${startSlotTemplate(context, definition)}
|
|
17687
|
-
<slot></slot>
|
|
17688
|
-
${endSlotTemplate(context, definition)}
|
|
17689
|
-
</a>
|
|
17690
|
-
</template>
|
|
17691
|
-
`;
|
|
17890
|
+
@layer hover {
|
|
17891
|
+
.control:hover {
|
|
17892
|
+
--ni-private-step-icon-border-color: ${borderHoverColor};
|
|
17893
|
+
--ni-private-step-icon-background-size: var(--ni-private-step-icon-background-inset-size);
|
|
17894
|
+
--ni-private-step-line-color: ${borderHoverColor};
|
|
17895
|
+
}
|
|
17692
17896
|
|
|
17693
|
-
|
|
17694
|
-
|
|
17695
|
-
|
|
17696
|
-
|
|
17697
|
-
|
|
17698
|
-
super(...arguments);
|
|
17699
|
-
/**
|
|
17700
|
-
* When true, the control will be immutable by user interaction. See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/disabled | disabled HTML attribute} for more information.
|
|
17701
|
-
* @public
|
|
17702
|
-
* @remarks
|
|
17703
|
-
* HTML Attribute: disabled
|
|
17704
|
-
*/
|
|
17705
|
-
this.disabled = false;
|
|
17706
|
-
/**
|
|
17707
|
-
* Indicates the current "selected" state of various widgets.
|
|
17708
|
-
* {@link https://www.w3.org/TR/wai-aria-1.1/#aria-selected}
|
|
17709
|
-
*
|
|
17710
|
-
* @public
|
|
17711
|
-
* @remarks
|
|
17712
|
-
* HTML Attribute: aria-selected
|
|
17713
|
-
*/
|
|
17714
|
-
this.ariaSelected = 'false';
|
|
17715
|
-
}
|
|
17716
|
-
}
|
|
17717
|
-
__decorate([
|
|
17718
|
-
attr({ mode: 'boolean' })
|
|
17719
|
-
], AnchorTab.prototype, "disabled", void 0);
|
|
17720
|
-
__decorate([
|
|
17721
|
-
attr({ attribute: 'aria-selected' })
|
|
17722
|
-
], AnchorTab.prototype, "ariaSelected", void 0);
|
|
17723
|
-
// FoundationAnchor already applies the StartEnd mixin, so we don't need to do it here.
|
|
17724
|
-
const nimbleAnchorTab = AnchorTab.compose({
|
|
17725
|
-
baseName: 'anchor-tab',
|
|
17726
|
-
template: template$V,
|
|
17727
|
-
styles: styles$17,
|
|
17728
|
-
shadowOptions: {
|
|
17729
|
-
delegatesFocus: true
|
|
17730
|
-
}
|
|
17731
|
-
});
|
|
17732
|
-
DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorTab());
|
|
17897
|
+
:host([severity="error"]) .control:hover {
|
|
17898
|
+
--ni-private-step-icon-border-color: ${failColor};
|
|
17899
|
+
--ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);
|
|
17900
|
+
--ni-private-step-line-color: ${failColor};
|
|
17901
|
+
}
|
|
17733
17902
|
|
|
17734
|
-
|
|
17735
|
-
|
|
17903
|
+
:host([severity="warning"]) .control:hover {
|
|
17904
|
+
--ni-private-step-icon-border-color: ${warningColor};
|
|
17905
|
+
--ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);
|
|
17906
|
+
--ni-private-step-line-color: ${warningColor};
|
|
17907
|
+
}
|
|
17736
17908
|
|
|
17737
|
-
|
|
17738
|
-
|
|
17739
|
-
|
|
17909
|
+
:host([severity="success"]) .control:hover {
|
|
17910
|
+
--ni-private-step-icon-color: var(--ni-private-step-icon-inverse-color);
|
|
17911
|
+
--ni-private-step-icon-border-color: ${passColor};
|
|
17912
|
+
--ni-private-step-icon-background-size: var(--ni-private-step-icon-background-inset-size);
|
|
17913
|
+
--ni-private-step-line-color: ${passColor};
|
|
17914
|
+
}
|
|
17740
17915
|
|
|
17741
|
-
|
|
17742
|
-
|
|
17743
|
-
|
|
17916
|
+
:host([selected]) .control:hover {
|
|
17917
|
+
--ni-private-step-icon-color: ${buttonLabelFontColor};
|
|
17918
|
+
--ni-private-step-icon-border-color: ${borderHoverColor};
|
|
17919
|
+
--ni-private-step-icon-background-size: var(--ni-private-step-icon-background-inset-size);
|
|
17920
|
+
--ni-private-step-line-color: ${borderHoverColor};
|
|
17921
|
+
}
|
|
17744
17922
|
|
|
17745
|
-
|
|
17746
|
-
|
|
17747
|
-
|
|
17923
|
+
.control:hover .icon {
|
|
17924
|
+
border-width: 2px;
|
|
17925
|
+
}
|
|
17748
17926
|
|
|
17749
|
-
|
|
17750
|
-
|
|
17927
|
+
.control:hover .line {
|
|
17928
|
+
transform: scale(1, 2);
|
|
17929
|
+
}
|
|
17751
17930
|
}
|
|
17752
17931
|
|
|
17753
|
-
|
|
17754
|
-
|
|
17755
|
-
|
|
17756
|
-
|
|
17757
|
-
|
|
17758
|
-
|
|
17932
|
+
@layer focusVisible {
|
|
17933
|
+
.control${focusVisible} {
|
|
17934
|
+
--ni-private-step-icon-border-color: ${borderHoverColor};
|
|
17935
|
+
--ni-private-step-icon-outline-inset-color: ${borderHoverColor};
|
|
17936
|
+
--ni-private-step-icon-background-size: var(--ni-private-step-icon-background-inset-size);
|
|
17937
|
+
--ni-private-step-line-color: ${borderHoverColor};
|
|
17938
|
+
}
|
|
17939
|
+
|
|
17940
|
+
:host([severity="error"]) .control${focusVisible} {
|
|
17941
|
+
--ni-private-step-icon-border-color: ${failColor};
|
|
17942
|
+
--ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);
|
|
17943
|
+
--ni-private-step-icon-outline-inset-color: ${failColor};
|
|
17944
|
+
--ni-private-step-line-color: ${failColor};
|
|
17945
|
+
}
|
|
17946
|
+
|
|
17947
|
+
:host([severity="warning"]) .control${focusVisible} {
|
|
17948
|
+
--ni-private-step-icon-border-color: ${warningColor};
|
|
17949
|
+
--ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);
|
|
17950
|
+
--ni-private-step-icon-outline-inset-color: ${warningColor};
|
|
17951
|
+
--ni-private-step-line-color: ${warningColor};
|
|
17952
|
+
}
|
|
17953
|
+
|
|
17954
|
+
:host([severity="success"]) .control${focusVisible} {
|
|
17955
|
+
--ni-private-step-icon-color: var(--ni-private-step-icon-inverse-color);
|
|
17956
|
+
--ni-private-step-icon-border-color: ${passColor};
|
|
17957
|
+
--ni-private-step-icon-background-size: var(--ni-private-step-icon-background-inset-size);
|
|
17958
|
+
--ni-private-step-icon-outline-inset-color: transparent;
|
|
17959
|
+
--ni-private-step-line-color: ${passColor};
|
|
17960
|
+
}
|
|
17961
|
+
|
|
17962
|
+
:host([selected]) .control${focusVisible} {
|
|
17963
|
+
--ni-private-step-icon-color: ${borderHoverColor};
|
|
17964
|
+
--ni-private-step-icon-border-color: ${borderHoverColor};
|
|
17965
|
+
--ni-private-step-icon-background-size: var(--ni-private-step-icon-background-none-size);
|
|
17966
|
+
--ni-private-step-icon-outline-inset-color: ${borderHoverColor};
|
|
17967
|
+
--ni-private-step-line-color: ${borderHoverColor};
|
|
17968
|
+
}
|
|
17969
|
+
|
|
17970
|
+
.control${focusVisible} .icon {
|
|
17971
|
+
border-width: 2px;
|
|
17972
|
+
}
|
|
17973
|
+
|
|
17974
|
+
.control${focusVisible} .icon::before {
|
|
17975
|
+
outline-width: ${borderWidth};
|
|
17976
|
+
outline-offset: -2px;
|
|
17977
|
+
}
|
|
17978
|
+
|
|
17979
|
+
.control${focusVisible} .line {
|
|
17980
|
+
transform: scale(1, 2);
|
|
17981
|
+
}
|
|
17759
17982
|
}
|
|
17760
17983
|
|
|
17761
|
-
|
|
17762
|
-
|
|
17984
|
+
@layer active {
|
|
17985
|
+
.control:active {
|
|
17986
|
+
--ni-private-step-icon-border-color: ${borderHoverColor};
|
|
17987
|
+
--ni-private-step-icon-background-color: ${fillSelectedColor};
|
|
17988
|
+
--ni-private-step-icon-background-size: var(--ni-private-step-icon-background-full-size);
|
|
17989
|
+
--ni-private-step-line-color: ${borderHoverColor};
|
|
17990
|
+
}
|
|
17991
|
+
|
|
17992
|
+
:host([severity="error"]) .control:active {
|
|
17993
|
+
--ni-private-step-icon-border-color: ${failColor};
|
|
17994
|
+
--ni-private-step-icon-background-color: rgb(from ${failColor} r g b / 30%);
|
|
17995
|
+
--ni-private-step-line-color: ${failColor};
|
|
17996
|
+
}
|
|
17997
|
+
|
|
17998
|
+
:host([severity="warning"]) .control:active {
|
|
17999
|
+
--ni-private-step-icon-border-color: ${warningColor};
|
|
18000
|
+
--ni-private-step-icon-background-color: rgb(from ${warningColor} r g b / 30%);
|
|
18001
|
+
--ni-private-step-line-color: ${warningColor};
|
|
18002
|
+
}
|
|
18003
|
+
|
|
18004
|
+
:host([severity="success"]) .control:active {
|
|
18005
|
+
--ni-private-step-icon-color: ${buttonLabelFontColor};
|
|
18006
|
+
--ni-private-step-icon-border-color: ${passColor};
|
|
18007
|
+
--ni-private-step-icon-background-color: rgb(from ${passColor} r g b / 30%);
|
|
18008
|
+
--ni-private-step-line-color: ${passColor};
|
|
18009
|
+
}
|
|
18010
|
+
|
|
18011
|
+
:host([selected]) .control:active {
|
|
18012
|
+
--ni-private-step-icon-color: ${buttonLabelFontColor};
|
|
18013
|
+
--ni-private-step-icon-border-color: ${borderHoverColor};
|
|
18014
|
+
--ni-private-step-icon-background-color: rgb(from ${borderHoverColor} r g b / 30%);
|
|
18015
|
+
--ni-private-step-line-color: ${borderHoverColor};
|
|
18016
|
+
}
|
|
18017
|
+
|
|
18018
|
+
.control:active .icon {
|
|
18019
|
+
border-width: 2px;
|
|
18020
|
+
}
|
|
18021
|
+
|
|
18022
|
+
.control:active .icon::before {
|
|
18023
|
+
outline-width: 0px;
|
|
18024
|
+
outline-offset: 0px;
|
|
18025
|
+
}
|
|
18026
|
+
|
|
18027
|
+
.control:active .line {
|
|
18028
|
+
transform: scale(1, 1);
|
|
18029
|
+
}
|
|
17763
18030
|
}
|
|
17764
18031
|
|
|
17765
|
-
|
|
17766
|
-
|
|
18032
|
+
@layer disabled {
|
|
18033
|
+
:host([disabled]) .control {
|
|
18034
|
+
cursor: default;
|
|
18035
|
+
color: ${buttonLabelDisabledFontColor};
|
|
18036
|
+
--ni-private-step-icon-color: rgb(from ${buttonLabelFontColor} r g b / 30%);
|
|
18037
|
+
--ni-private-step-icon-border-color: transparent;
|
|
18038
|
+
--ni-private-step-icon-background-color: rgba(${borderRgbPartialColor}, 0.1);
|
|
18039
|
+
--ni-private-step-icon-background-size: var(--ni-private-step-icon-background-full-size);
|
|
18040
|
+
--ni-private-step-icon-outline-inset-color: transparent;
|
|
18041
|
+
--ni-private-step-line-color: rgba(${borderRgbPartialColor}, 0.1);
|
|
18042
|
+
}
|
|
18043
|
+
|
|
18044
|
+
:host([disabled]) .line {
|
|
18045
|
+
transform: scale(1, 1);
|
|
18046
|
+
}
|
|
17767
18047
|
}
|
|
17768
18048
|
|
|
17769
|
-
|
|
17770
|
-
|
|
18049
|
+
@layer top {
|
|
18050
|
+
@media (prefers-reduced-motion) {
|
|
18051
|
+
.control {
|
|
18052
|
+
transition-duration: 0s;
|
|
18053
|
+
}
|
|
18054
|
+
}
|
|
17771
18055
|
}
|
|
17772
|
-
|
|
18056
|
+
`.withBehaviors(themeBehavior(Theme.light, css `
|
|
18057
|
+
@layer base {
|
|
18058
|
+
.control {
|
|
18059
|
+
--ni-private-step-icon-inverse-color: ${White};
|
|
18060
|
+
}
|
|
18061
|
+
}
|
|
18062
|
+
`), themeBehavior(Theme.dark, css `
|
|
18063
|
+
@layer base {
|
|
18064
|
+
.control {
|
|
18065
|
+
--ni-private-step-icon-inverse-color: ${Black91};
|
|
18066
|
+
}
|
|
18067
|
+
}
|
|
18068
|
+
`), themeBehavior(Theme.color, css `
|
|
18069
|
+
@layer base {
|
|
18070
|
+
.control {
|
|
18071
|
+
--ni-private-step-icon-inverse-color: ${Black15};
|
|
18072
|
+
}
|
|
17773
18073
|
|
|
17774
|
-
|
|
17775
|
-
|
|
17776
|
-
|
|
17777
|
-
|
|
18074
|
+
:host([severity="success"]) .control {
|
|
18075
|
+
--ni-private-step-icon-background-color: rgb(from ${passColor} r g b / 30%);
|
|
18076
|
+
}
|
|
18077
|
+
}
|
|
18078
|
+
`));
|
|
17778
18079
|
|
|
17779
|
-
const
|
|
17780
|
-
|
|
17781
|
-
|
|
17782
|
-
|
|
17783
|
-
|
|
17784
|
-
|
|
17785
|
-
|
|
17786
|
-
|
|
17787
|
-
formenctype="${x => x.formenctype}"
|
|
17788
|
-
formmethod="${x => x.formmethod}"
|
|
17789
|
-
formnovalidate="${x => x.formnovalidate}"
|
|
17790
|
-
formtarget="${x => x.formtarget}"
|
|
17791
|
-
name="${x => x.name}"
|
|
17792
|
-
type="${x => x.type}"
|
|
17793
|
-
value="${x => x.value}"
|
|
17794
|
-
tabindex="${x => x.tabIndex}"
|
|
17795
|
-
aria-atomic="${x => x.ariaAtomic}"
|
|
17796
|
-
aria-busy="${x => x.ariaBusy}"
|
|
17797
|
-
aria-controls="${x => x.ariaControls}"
|
|
17798
|
-
aria-current="${x => x.ariaCurrent}"
|
|
17799
|
-
aria-describedby="${x => x.ariaDescribedby}"
|
|
17800
|
-
aria-details="${x => x.ariaDetails}"
|
|
17801
|
-
aria-disabled="${x => x.ariaDisabled}"
|
|
17802
|
-
aria-errormessage="${x => x.ariaErrormessage}"
|
|
17803
|
-
aria-expanded="${x => x.ariaExpanded}"
|
|
17804
|
-
aria-flowto="${x => x.ariaFlowto}"
|
|
17805
|
-
aria-haspopup="${x => x.ariaHaspopup}"
|
|
17806
|
-
aria-hidden="${x => x.ariaHidden}"
|
|
17807
|
-
aria-invalid="${x => x.ariaInvalid}"
|
|
17808
|
-
aria-keyshortcuts="${x => x.ariaKeyshortcuts}"
|
|
17809
|
-
aria-label="${x => x.ariaLabel}"
|
|
17810
|
-
aria-labelledby="${x => x.ariaLabelledby}"
|
|
17811
|
-
aria-live="${x => x.ariaLive}"
|
|
17812
|
-
aria-owns="${x => x.ariaOwns}"
|
|
17813
|
-
aria-pressed="${x => x.ariaPressed}"
|
|
17814
|
-
aria-relevant="${x => x.ariaRelevant}"
|
|
17815
|
-
aria-roledescription="${x => x.ariaRoledescription}"
|
|
17816
|
-
${ref('control')}
|
|
17817
|
-
>
|
|
17818
|
-
${startSlotTemplate(context, definition)}
|
|
17819
|
-
<span class="content" part="content">
|
|
17820
|
-
<slot ${slotted('defaultSlottedContent')}></slot>
|
|
17821
|
-
</span>
|
|
17822
|
-
${endSlotTemplate(context, definition)}
|
|
17823
|
-
</button>
|
|
18080
|
+
const styles$18 = css `
|
|
18081
|
+
${styles$19}
|
|
18082
|
+
${'' /* Anchor specific styles */}
|
|
18083
|
+
@layer base {
|
|
18084
|
+
.control {
|
|
18085
|
+
text-decoration: none;
|
|
18086
|
+
}
|
|
18087
|
+
}
|
|
17824
18088
|
`;
|
|
17825
18089
|
|
|
17826
18090
|
/**
|
|
17827
|
-
*
|
|
18091
|
+
* The runtime behavior for template overflow detection.
|
|
18092
|
+
* @public
|
|
17828
18093
|
*/
|
|
17829
|
-
|
|
17830
|
-
|
|
17831
|
-
|
|
17832
|
-
|
|
17833
|
-
|
|
17834
|
-
|
|
17835
|
-
|
|
17836
|
-
|
|
17837
|
-
this.
|
|
17838
|
-
/**
|
|
17839
|
-
* @public
|
|
17840
|
-
* @remarks
|
|
17841
|
-
* HTML Attribute: content-hidden
|
|
17842
|
-
*/
|
|
17843
|
-
this.contentHidden = false;
|
|
18094
|
+
class OverflowBehavior {
|
|
18095
|
+
/**
|
|
18096
|
+
* Creates an instance of OverflowBehavior.
|
|
18097
|
+
* @param target - The element to check for overflow.
|
|
18098
|
+
* @param propertyName - The name of the property to assign the overflow state to.
|
|
18099
|
+
*/
|
|
18100
|
+
constructor(target, propertyName) {
|
|
18101
|
+
this.target = target;
|
|
18102
|
+
this.propertyName = propertyName;
|
|
17844
18103
|
}
|
|
17845
|
-
|
|
17846
|
-
|
|
17847
|
-
|
|
17848
|
-
|
|
17849
|
-
|
|
17850
|
-
|
|
17851
|
-
|
|
17852
|
-
|
|
17853
|
-
|
|
17854
|
-
|
|
17855
|
-
|
|
17856
|
-
|
|
17857
|
-
|
|
18104
|
+
/**
|
|
18105
|
+
* Bind this behavior to the source.
|
|
18106
|
+
* @param source - The source to bind to.
|
|
18107
|
+
* @param context - The execution context that the binding is operating within.
|
|
18108
|
+
*/
|
|
18109
|
+
bind(source) {
|
|
18110
|
+
this.source = source;
|
|
18111
|
+
this.setSourceValue(false);
|
|
18112
|
+
this.mouseOverHandler = () => {
|
|
18113
|
+
const hasOverflow = this.target.offsetWidth < this.target.scrollWidth;
|
|
18114
|
+
this.setSourceValue(hasOverflow);
|
|
18115
|
+
};
|
|
18116
|
+
this.mouseOutHandler = () => {
|
|
18117
|
+
this.setSourceValue(false);
|
|
18118
|
+
};
|
|
18119
|
+
this.target.addEventListener('mouseover', this.mouseOverHandler);
|
|
18120
|
+
this.target.addEventListener('mouseout', this.mouseOutHandler);
|
|
18121
|
+
}
|
|
18122
|
+
/**
|
|
18123
|
+
* Unbinds this behavior from the source.
|
|
18124
|
+
* @param source - The source to unbind from.
|
|
18125
|
+
*/
|
|
18126
|
+
unbind() {
|
|
18127
|
+
this.source = undefined;
|
|
18128
|
+
this.target.removeEventListener('mouseover', this.mouseOverHandler);
|
|
18129
|
+
this.target.removeEventListener('mouseout', this.mouseOutHandler);
|
|
18130
|
+
}
|
|
18131
|
+
setSourceValue(value) {
|
|
18132
|
+
// @ts-expect-error set property on source
|
|
18133
|
+
this.source[this.propertyName] = value;
|
|
18134
|
+
}
|
|
18135
|
+
}
|
|
17858
18136
|
/**
|
|
17859
|
-
* A
|
|
17860
|
-
*
|
|
17861
|
-
*
|
|
18137
|
+
* A directive that observes if an element has overflow and sets a flag.
|
|
18138
|
+
* @param propertyName - The name of the property to assign the overflow flag.
|
|
17862
18139
|
* @public
|
|
17863
|
-
* @remarks
|
|
17864
|
-
* Generates HTML Element: \<nimble-button\>
|
|
17865
|
-
*
|
|
17866
18140
|
*/
|
|
17867
|
-
|
|
17868
|
-
|
|
17869
|
-
|
|
17870
|
-
|
|
17871
|
-
|
|
17872
|
-
|
|
17873
|
-
|
|
18141
|
+
function overflow(propertyName) {
|
|
18142
|
+
return new AttachedBehaviorHTMLDirective('nimble-overflow', OverflowBehavior, propertyName);
|
|
18143
|
+
}
|
|
18144
|
+
|
|
18145
|
+
const severityTextTemplate = html `
|
|
18146
|
+
<div
|
|
18147
|
+
class="severity-text"
|
|
18148
|
+
${overflow('severityHasOverflow')}
|
|
18149
|
+
title="${x => (x.severityHasOverflow && x.severityText ? x.severityText : undefined)}"
|
|
18150
|
+
aria-live="polite"
|
|
18151
|
+
>${x => x.severityText}</div>`;
|
|
18152
|
+
|
|
18153
|
+
const Severity = {
|
|
18154
|
+
default: undefined,
|
|
18155
|
+
error: 'error',
|
|
18156
|
+
warning: 'warning',
|
|
18157
|
+
success: 'success',
|
|
18158
|
+
};
|
|
18159
|
+
// As the returned class is internal to the function, we can't write a signature that uses is directly, so rely on inference
|
|
18160
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type
|
|
18161
|
+
function mixinSeverityPattern(base) {
|
|
18162
|
+
/**
|
|
18163
|
+
* Mixin to provide severity text related properties to an element
|
|
18164
|
+
*/
|
|
18165
|
+
class SeverityPatternElement extends base {
|
|
18166
|
+
constructor() {
|
|
18167
|
+
super(...arguments);
|
|
18168
|
+
/* @internal
|
|
18169
|
+
* Indicates if the severity text has overflowed its container. The value should not be
|
|
18170
|
+
* set directly. Instead, it is used with the `overflow` directive.
|
|
18171
|
+
*/
|
|
18172
|
+
this.severityHasOverflow = false;
|
|
18173
|
+
}
|
|
17874
18174
|
}
|
|
17875
|
-
|
|
17876
|
-
|
|
17877
|
-
|
|
18175
|
+
attr({ attribute: 'severity-text' })(SeverityPatternElement.prototype, 'severityText');
|
|
18176
|
+
observable(SeverityPatternElement.prototype, 'severityHasOverflow');
|
|
18177
|
+
return SeverityPatternElement;
|
|
18178
|
+
}
|
|
17878
18179
|
|
|
17879
18180
|
/* 🤖 this file was generated by svg-to-ts */
|
|
17880
18181
|
const add16X16 = {
|
|
@@ -18815,22 +19116,13 @@
|
|
|
18815
19116
|
};
|
|
18816
19117
|
|
|
18817
19118
|
// Avoiding any whitespace in the template because this is an inline element
|
|
18818
|
-
const template$
|
|
19119
|
+
const template$W = html `<div
|
|
18819
19120
|
class="icon"
|
|
18820
19121
|
aria-hidden="true"
|
|
18821
19122
|
:innerHTML=${x => x.icon.data}
|
|
18822
19123
|
></div>`;
|
|
18823
19124
|
|
|
18824
|
-
|
|
18825
|
-
* Set user-select: none in a way that works across all supported browsers.
|
|
18826
|
-
* https://developer.mozilla.org/en-US/docs/Web/CSS/user-select#browser_compatibility
|
|
18827
|
-
*/
|
|
18828
|
-
const userSelectNone$1 = cssPartial `
|
|
18829
|
-
user-select: none;
|
|
18830
|
-
-webkit-user-select: none;
|
|
18831
|
-
`;
|
|
18832
|
-
|
|
18833
|
-
const styles$14 = css `
|
|
19125
|
+
const styles$17 = css `
|
|
18834
19126
|
${display$2('inline-flex')}
|
|
18835
19127
|
|
|
18836
19128
|
:host {
|
|
@@ -18893,12 +19185,524 @@
|
|
|
18893
19185
|
const registerIconSvg = (baseName, iconClass) => {
|
|
18894
19186
|
const composedIcon = iconClass.compose({
|
|
18895
19187
|
baseName,
|
|
18896
|
-
template: template$
|
|
18897
|
-
styles: styles$
|
|
19188
|
+
template: template$W,
|
|
19189
|
+
styles: styles$17
|
|
18898
19190
|
});
|
|
18899
19191
|
DesignSystem.getOrCreate().withPrefix('nimble').register(composedIcon());
|
|
18900
19192
|
};
|
|
18901
19193
|
|
|
19194
|
+
// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
|
|
19195
|
+
// See generation source in nimble-components/build/generate-icons
|
|
19196
|
+
/**
|
|
19197
|
+
* The icon component for the 'exclamationMark' icon
|
|
19198
|
+
*/
|
|
19199
|
+
class IconExclamationMark extends IconSvg {
|
|
19200
|
+
constructor() {
|
|
19201
|
+
super(exclamationMark16X16);
|
|
19202
|
+
}
|
|
19203
|
+
}
|
|
19204
|
+
registerIconSvg('icon-exclamation-mark', IconExclamationMark);
|
|
19205
|
+
const iconExclamationMarkTag = 'nimble-icon-exclamation-mark';
|
|
19206
|
+
|
|
19207
|
+
// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
|
|
19208
|
+
// See generation source in nimble-components/build/generate-icons
|
|
19209
|
+
/**
|
|
19210
|
+
* The icon component for the 'triangleFilled' icon
|
|
19211
|
+
*/
|
|
19212
|
+
class IconTriangleFilled extends IconSvg {
|
|
19213
|
+
constructor() {
|
|
19214
|
+
super(triangleFilled16X16);
|
|
19215
|
+
}
|
|
19216
|
+
}
|
|
19217
|
+
registerIconSvg('icon-triangle-filled', IconTriangleFilled);
|
|
19218
|
+
const iconTriangleFilledTag = 'nimble-icon-triangle-filled';
|
|
19219
|
+
|
|
19220
|
+
// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
|
|
19221
|
+
// See generation source in nimble-components/build/generate-icons
|
|
19222
|
+
/**
|
|
19223
|
+
* The icon component for the 'check' icon
|
|
19224
|
+
*/
|
|
19225
|
+
class IconCheck extends IconSvg {
|
|
19226
|
+
constructor() {
|
|
19227
|
+
super(check16X16);
|
|
19228
|
+
}
|
|
19229
|
+
}
|
|
19230
|
+
registerIconSvg('icon-check', IconCheck);
|
|
19231
|
+
const iconCheckTag = 'nimble-icon-check';
|
|
19232
|
+
|
|
19233
|
+
const template$V = (context, definition) => html `
|
|
19234
|
+
<template slot="step">
|
|
19235
|
+
<div class="
|
|
19236
|
+
container
|
|
19237
|
+
${x => (x.stepInternals.orientation === 'vertical' ? 'vertical' : '')}
|
|
19238
|
+
${x => (x.stepInternals.last ? 'last' : '')}
|
|
19239
|
+
">
|
|
19240
|
+
<a
|
|
19241
|
+
class="control"
|
|
19242
|
+
part="control"
|
|
19243
|
+
download="${x => x.download}"
|
|
19244
|
+
href=${x => (x.disabled ? null : x.href)}
|
|
19245
|
+
hreflang="${x => x.hreflang}"
|
|
19246
|
+
ping="${x => x.ping}"
|
|
19247
|
+
referrerpolicy="${x => x.referrerpolicy}"
|
|
19248
|
+
rel="${x => x.rel}"
|
|
19249
|
+
target="${x => x.target}"
|
|
19250
|
+
type="${x => x.type}"
|
|
19251
|
+
tabindex="${x => x.tabIndex}"
|
|
19252
|
+
aria-atomic="${x => x.ariaAtomic}"
|
|
19253
|
+
aria-busy="${x => x.ariaBusy}"
|
|
19254
|
+
aria-controls="${x => x.ariaControls}"
|
|
19255
|
+
aria-current="${x => x.ariaCurrent}"
|
|
19256
|
+
aria-describedby="${x => x.ariaDescribedby}"
|
|
19257
|
+
aria-details="${x => x.ariaDetails}"
|
|
19258
|
+
aria-disabled="${x => x.ariaDisabled}"
|
|
19259
|
+
aria-errormessage="${x => x.ariaErrormessage}"
|
|
19260
|
+
aria-expanded="${x => x.ariaExpanded}"
|
|
19261
|
+
aria-flowto="${x => x.ariaFlowto}"
|
|
19262
|
+
aria-haspopup="${x => x.ariaHaspopup}"
|
|
19263
|
+
aria-hidden="${x => x.ariaHidden}"
|
|
19264
|
+
aria-invalid="${x => x.ariaInvalid}"
|
|
19265
|
+
aria-keyshortcuts="${x => x.ariaKeyshortcuts}"
|
|
19266
|
+
aria-label="${x => x.ariaLabel}"
|
|
19267
|
+
aria-labelledby="${x => x.ariaLabelledby}"
|
|
19268
|
+
aria-live="${x => x.ariaLive}"
|
|
19269
|
+
aria-owns="${x => x.ariaOwns}"
|
|
19270
|
+
aria-relevant="${x => x.ariaRelevant}"
|
|
19271
|
+
aria-roledescription="${x => x.ariaRoledescription}"
|
|
19272
|
+
${ref('control')}
|
|
19273
|
+
>
|
|
19274
|
+
<div class="icon">
|
|
19275
|
+
<div class="icon-slot"><slot ${slotted('defaultSlottedContent')}></slot></div>
|
|
19276
|
+
<div class="icon-severity">
|
|
19277
|
+
${when(x => x.severity === Severity.error, html `<${iconExclamationMarkTag}></${iconExclamationMarkTag}>`)}
|
|
19278
|
+
${when(x => x.severity === Severity.warning, html `<${iconTriangleFilledTag}></${iconTriangleFilledTag}>`)}
|
|
19279
|
+
${when(x => x.severity === Severity.success, html `<${iconCheckTag}></${iconCheckTag}>`)}
|
|
19280
|
+
</div>
|
|
19281
|
+
</div>
|
|
19282
|
+
<div class="content">
|
|
19283
|
+
<div class="title-wrapper">
|
|
19284
|
+
${startSlotTemplate(context, definition)}
|
|
19285
|
+
<div class="title"><slot name="title"></slot></div>
|
|
19286
|
+
${endSlotTemplate(context, definition)}
|
|
19287
|
+
<div class="line"></div>
|
|
19288
|
+
</div>
|
|
19289
|
+
<div class="subtitle">
|
|
19290
|
+
<slot name="subtitle"></slot>
|
|
19291
|
+
</div>
|
|
19292
|
+
</div>
|
|
19293
|
+
</a>
|
|
19294
|
+
${severityTextTemplate}
|
|
19295
|
+
</div>
|
|
19296
|
+
</template>
|
|
19297
|
+
`;
|
|
19298
|
+
|
|
19299
|
+
/**
|
|
19300
|
+
* Orientation of steppers.
|
|
19301
|
+
* @public
|
|
19302
|
+
*/
|
|
19303
|
+
const StepperOrientation = Orientation;
|
|
19304
|
+
|
|
19305
|
+
/**
|
|
19306
|
+
* Internal properties configurable for a step
|
|
19307
|
+
*/
|
|
19308
|
+
class StepInternals {
|
|
19309
|
+
constructor() {
|
|
19310
|
+
this.orientation = StepperOrientation.horizontal;
|
|
19311
|
+
this.last = false;
|
|
19312
|
+
}
|
|
19313
|
+
}
|
|
19314
|
+
__decorate([
|
|
19315
|
+
observable
|
|
19316
|
+
], StepInternals.prototype, "orientation", void 0);
|
|
19317
|
+
__decorate([
|
|
19318
|
+
observable
|
|
19319
|
+
], StepInternals.prototype, "last", void 0);
|
|
19320
|
+
|
|
19321
|
+
const AnchorStepSeverity = Severity;
|
|
19322
|
+
|
|
19323
|
+
/**
|
|
19324
|
+
* A nimble-styled anchor step for a stepper
|
|
19325
|
+
*/
|
|
19326
|
+
class AnchorStep extends mixinSeverityPattern(AnchorBase) {
|
|
19327
|
+
constructor() {
|
|
19328
|
+
super(...arguments);
|
|
19329
|
+
/**
|
|
19330
|
+
* @public
|
|
19331
|
+
* @remarks
|
|
19332
|
+
* HTML Attribute: disabled
|
|
19333
|
+
*/
|
|
19334
|
+
this.severity = AnchorStepSeverity.default;
|
|
19335
|
+
/**
|
|
19336
|
+
* @public
|
|
19337
|
+
* @remarks
|
|
19338
|
+
* HTML Attribute: disabled
|
|
19339
|
+
*/
|
|
19340
|
+
this.disabled = false;
|
|
19341
|
+
/**
|
|
19342
|
+
* @public
|
|
19343
|
+
* @remarks
|
|
19344
|
+
* HTML Attribute: readonly
|
|
19345
|
+
*/
|
|
19346
|
+
this.readOnly = false;
|
|
19347
|
+
/**
|
|
19348
|
+
* @public
|
|
19349
|
+
* @remarks
|
|
19350
|
+
* HTML Attribute: selected
|
|
19351
|
+
*/
|
|
19352
|
+
this.selected = false;
|
|
19353
|
+
/**
|
|
19354
|
+
* @internal
|
|
19355
|
+
*/
|
|
19356
|
+
this.stepInternals = new StepInternals();
|
|
19357
|
+
}
|
|
19358
|
+
}
|
|
19359
|
+
__decorate([
|
|
19360
|
+
attr()
|
|
19361
|
+
], AnchorStep.prototype, "severity", void 0);
|
|
19362
|
+
__decorate([
|
|
19363
|
+
attr({ mode: 'boolean' })
|
|
19364
|
+
], AnchorStep.prototype, "disabled", void 0);
|
|
19365
|
+
__decorate([
|
|
19366
|
+
attr({ attribute: 'readonly', mode: 'boolean' })
|
|
19367
|
+
], AnchorStep.prototype, "readOnly", void 0);
|
|
19368
|
+
__decorate([
|
|
19369
|
+
attr({ mode: 'boolean' })
|
|
19370
|
+
], AnchorStep.prototype, "selected", void 0);
|
|
19371
|
+
__decorate([
|
|
19372
|
+
attr({ attribute: 'tabindex', converter: nullableNumberConverter })
|
|
19373
|
+
], AnchorStep.prototype, "tabIndex", void 0);
|
|
19374
|
+
const nimbleAnchorStep = AnchorStep.compose({
|
|
19375
|
+
baseName: 'anchor-step',
|
|
19376
|
+
template: template$V,
|
|
19377
|
+
styles: styles$18,
|
|
19378
|
+
shadowOptions: {
|
|
19379
|
+
delegatesFocus: true
|
|
19380
|
+
}
|
|
19381
|
+
});
|
|
19382
|
+
DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorStep());
|
|
19383
|
+
|
|
19384
|
+
const styles$16 = css `
|
|
19385
|
+
${display$2('inline-flex')}
|
|
19386
|
+
|
|
19387
|
+
:host {
|
|
19388
|
+
position: relative;
|
|
19389
|
+
font: ${buttonLabelFont};
|
|
19390
|
+
height: ${controlHeight};
|
|
19391
|
+
color: ${bodyFontColor};
|
|
19392
|
+
align-items: center;
|
|
19393
|
+
justify-content: center;
|
|
19394
|
+
cursor: pointer;
|
|
19395
|
+
text-wrap: nowrap;
|
|
19396
|
+
--ni-private-active-indicator-width: 2px;
|
|
19397
|
+
--ni-private-focus-indicator-width: 1px;
|
|
19398
|
+
--ni-private-indicator-lines-gap: 1px;
|
|
19399
|
+
--ni-private-focus-indicator-inset-width: 3px;
|
|
19400
|
+
}
|
|
19401
|
+
|
|
19402
|
+
:host(:hover) {
|
|
19403
|
+
background-color: ${fillHoverColor};
|
|
19404
|
+
}
|
|
19405
|
+
|
|
19406
|
+
:host(:hover[aria-current]) {
|
|
19407
|
+
background-color: ${fillHoverSelectedColor};
|
|
19408
|
+
}
|
|
19409
|
+
|
|
19410
|
+
:host(:active) {
|
|
19411
|
+
background: none;
|
|
19412
|
+
}
|
|
19413
|
+
|
|
19414
|
+
:host([disabled]) {
|
|
19415
|
+
cursor: default;
|
|
19416
|
+
color: ${bodyDisabledFontColor};
|
|
19417
|
+
background: none;
|
|
19418
|
+
}
|
|
19419
|
+
|
|
19420
|
+
slot:not([name]) {
|
|
19421
|
+
pointer-events: none;
|
|
19422
|
+
display: block;
|
|
19423
|
+
padding: ${mediumPadding} ${standardPadding}
|
|
19424
|
+
calc(${mediumPadding} - ${borderWidth});
|
|
19425
|
+
}
|
|
19426
|
+
|
|
19427
|
+
a::before {
|
|
19428
|
+
content: '';
|
|
19429
|
+
position: absolute;
|
|
19430
|
+
bottom: calc(
|
|
19431
|
+
var(--ni-private-active-indicator-width) +
|
|
19432
|
+
var(--ni-private-indicator-lines-gap)
|
|
19433
|
+
);
|
|
19434
|
+
width: 0px;
|
|
19435
|
+
height: 0px;
|
|
19436
|
+
border-bottom: ${borderHoverColor}
|
|
19437
|
+
var(--ni-private-focus-indicator-width) solid;
|
|
19438
|
+
transition: width ${smallDelay} ease-in;
|
|
19439
|
+
}
|
|
19440
|
+
|
|
19441
|
+
@media (prefers-reduced-motion) {
|
|
19442
|
+
a::before {
|
|
19443
|
+
transition-duration: 0s;
|
|
19444
|
+
}
|
|
19445
|
+
}
|
|
19446
|
+
|
|
19447
|
+
a${focusVisible}::before {
|
|
19448
|
+
width: calc(100% - 2 * var(--ni-private-focus-indicator-inset-width));
|
|
19449
|
+
}
|
|
19450
|
+
|
|
19451
|
+
a {
|
|
19452
|
+
display: inline-flex;
|
|
19453
|
+
text-decoration: none;
|
|
19454
|
+
color: inherit;
|
|
19455
|
+
cursor: inherit;
|
|
19456
|
+
outline: none;
|
|
19457
|
+
align-items: center;
|
|
19458
|
+
justify-content: center;
|
|
19459
|
+
}
|
|
19460
|
+
|
|
19461
|
+
a::after {
|
|
19462
|
+
content: '';
|
|
19463
|
+
position: absolute;
|
|
19464
|
+
bottom: 0px;
|
|
19465
|
+
width: 0px;
|
|
19466
|
+
height: 0px;
|
|
19467
|
+
border-bottom: ${borderHoverColor}
|
|
19468
|
+
var(--ni-private-active-indicator-width) solid;
|
|
19469
|
+
transition: width ${smallDelay} ease-in;
|
|
19470
|
+
}
|
|
19471
|
+
|
|
19472
|
+
@media (prefers-reduced-motion) {
|
|
19473
|
+
a::after {
|
|
19474
|
+
transition-duration: 0s;
|
|
19475
|
+
}
|
|
19476
|
+
}
|
|
19477
|
+
|
|
19478
|
+
a${focusVisible}::after {
|
|
19479
|
+
width: 100%;
|
|
19480
|
+
border-bottom-width: var(--ni-private-focus-indicator-width);
|
|
19481
|
+
}
|
|
19482
|
+
|
|
19483
|
+
:host([aria-current]) a::after {
|
|
19484
|
+
width: 100%;
|
|
19485
|
+
border-bottom-width: var(--ni-private-active-indicator-width);
|
|
19486
|
+
}
|
|
19487
|
+
|
|
19488
|
+
:host([disabled][aria-current]) a::after {
|
|
19489
|
+
border-bottom-color: rgba(${borderHoverColor}, 0.3);
|
|
19490
|
+
}
|
|
19491
|
+
|
|
19492
|
+
[part='start'] {
|
|
19493
|
+
display: none;
|
|
19494
|
+
}
|
|
19495
|
+
|
|
19496
|
+
[part='end'] {
|
|
19497
|
+
display: none;
|
|
19498
|
+
}
|
|
19499
|
+
`;
|
|
19500
|
+
|
|
19501
|
+
const template$U = (context, definition) => html `
|
|
19502
|
+
<template slot="anchortab" role="tab" aria-disabled="${x => x.disabled}">
|
|
19503
|
+
<a
|
|
19504
|
+
download="${x => x.download}"
|
|
19505
|
+
href=${x => (x.disabled ? null : x.href)}
|
|
19506
|
+
hreflang="${x => x.hreflang}"
|
|
19507
|
+
ping="${x => x.ping}"
|
|
19508
|
+
referrerpolicy="${x => x.referrerpolicy}"
|
|
19509
|
+
rel="${x => x.rel}"
|
|
19510
|
+
target="${x => x.target}"
|
|
19511
|
+
type="${x => x.type}"
|
|
19512
|
+
>
|
|
19513
|
+
${startSlotTemplate(context, definition)}
|
|
19514
|
+
<slot></slot>
|
|
19515
|
+
${endSlotTemplate(context, definition)}
|
|
19516
|
+
</a>
|
|
19517
|
+
</template>
|
|
19518
|
+
`;
|
|
19519
|
+
|
|
19520
|
+
/**
|
|
19521
|
+
* A nimble-styled link tab
|
|
19522
|
+
*/
|
|
19523
|
+
class AnchorTab extends AnchorBase {
|
|
19524
|
+
constructor() {
|
|
19525
|
+
super(...arguments);
|
|
19526
|
+
/**
|
|
19527
|
+
* When true, the control will be immutable by user interaction. See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/disabled | disabled HTML attribute} for more information.
|
|
19528
|
+
* @public
|
|
19529
|
+
* @remarks
|
|
19530
|
+
* HTML Attribute: disabled
|
|
19531
|
+
*/
|
|
19532
|
+
this.disabled = false;
|
|
19533
|
+
/**
|
|
19534
|
+
* Indicates the current "selected" state of various widgets.
|
|
19535
|
+
* {@link https://www.w3.org/TR/wai-aria-1.1/#aria-selected}
|
|
19536
|
+
*
|
|
19537
|
+
* @public
|
|
19538
|
+
* @remarks
|
|
19539
|
+
* HTML Attribute: aria-selected
|
|
19540
|
+
*/
|
|
19541
|
+
this.ariaSelected = 'false';
|
|
19542
|
+
}
|
|
19543
|
+
}
|
|
19544
|
+
__decorate([
|
|
19545
|
+
attr({ mode: 'boolean' })
|
|
19546
|
+
], AnchorTab.prototype, "disabled", void 0);
|
|
19547
|
+
__decorate([
|
|
19548
|
+
attr({ attribute: 'aria-selected' })
|
|
19549
|
+
], AnchorTab.prototype, "ariaSelected", void 0);
|
|
19550
|
+
// FoundationAnchor already applies the StartEnd mixin, so we don't need to do it here.
|
|
19551
|
+
const nimbleAnchorTab = AnchorTab.compose({
|
|
19552
|
+
baseName: 'anchor-tab',
|
|
19553
|
+
template: template$U,
|
|
19554
|
+
styles: styles$16,
|
|
19555
|
+
shadowOptions: {
|
|
19556
|
+
delegatesFocus: true
|
|
19557
|
+
}
|
|
19558
|
+
});
|
|
19559
|
+
DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorTab());
|
|
19560
|
+
|
|
19561
|
+
const styles$15 = css `
|
|
19562
|
+
${display$2('flex')}
|
|
19563
|
+
|
|
19564
|
+
:host {
|
|
19565
|
+
flex-direction: column;
|
|
19566
|
+
}
|
|
19567
|
+
|
|
19568
|
+
.tab-bar {
|
|
19569
|
+
display: flex;
|
|
19570
|
+
}
|
|
19571
|
+
|
|
19572
|
+
[part='start'] {
|
|
19573
|
+
display: none;
|
|
19574
|
+
}
|
|
19575
|
+
|
|
19576
|
+
.scroll-button.left {
|
|
19577
|
+
margin-right: ${smallPadding};
|
|
19578
|
+
}
|
|
19579
|
+
|
|
19580
|
+
.tablist {
|
|
19581
|
+
display: flex;
|
|
19582
|
+
width: max-content;
|
|
19583
|
+
align-self: end;
|
|
19584
|
+
overflow-x: scroll;
|
|
19585
|
+
scrollbar-width: none;
|
|
19586
|
+
}
|
|
19587
|
+
|
|
19588
|
+
.scroll-button.right {
|
|
19589
|
+
margin-left: ${smallPadding};
|
|
19590
|
+
}
|
|
19591
|
+
|
|
19592
|
+
[part='end'] {
|
|
19593
|
+
flex: 1;
|
|
19594
|
+
}
|
|
19595
|
+
|
|
19596
|
+
[part='tabpanel'] {
|
|
19597
|
+
flex: 1;
|
|
19598
|
+
}
|
|
19599
|
+
`;
|
|
19600
|
+
|
|
19601
|
+
const styles$14 = css `
|
|
19602
|
+
${styles$1d}
|
|
19603
|
+
${buttonAppearanceVariantStyles}
|
|
19604
|
+
`;
|
|
19605
|
+
|
|
19606
|
+
const template$T = (context, definition) => html `
|
|
19607
|
+
<button
|
|
19608
|
+
class="control"
|
|
19609
|
+
part="control"
|
|
19610
|
+
?autofocus="${x => x.autofocus}"
|
|
19611
|
+
?disabled="${x => x.disabled}"
|
|
19612
|
+
form="${x => x.formId}"
|
|
19613
|
+
formaction="${x => x.formaction}"
|
|
19614
|
+
formenctype="${x => x.formenctype}"
|
|
19615
|
+
formmethod="${x => x.formmethod}"
|
|
19616
|
+
formnovalidate="${x => x.formnovalidate}"
|
|
19617
|
+
formtarget="${x => x.formtarget}"
|
|
19618
|
+
name="${x => x.name}"
|
|
19619
|
+
type="${x => x.type}"
|
|
19620
|
+
value="${x => x.value}"
|
|
19621
|
+
tabindex="${x => x.tabIndex}"
|
|
19622
|
+
aria-atomic="${x => x.ariaAtomic}"
|
|
19623
|
+
aria-busy="${x => x.ariaBusy}"
|
|
19624
|
+
aria-controls="${x => x.ariaControls}"
|
|
19625
|
+
aria-current="${x => x.ariaCurrent}"
|
|
19626
|
+
aria-describedby="${x => x.ariaDescribedby}"
|
|
19627
|
+
aria-details="${x => x.ariaDetails}"
|
|
19628
|
+
aria-disabled="${x => x.ariaDisabled}"
|
|
19629
|
+
aria-errormessage="${x => x.ariaErrormessage}"
|
|
19630
|
+
aria-expanded="${x => x.ariaExpanded}"
|
|
19631
|
+
aria-flowto="${x => x.ariaFlowto}"
|
|
19632
|
+
aria-haspopup="${x => x.ariaHaspopup}"
|
|
19633
|
+
aria-hidden="${x => x.ariaHidden}"
|
|
19634
|
+
aria-invalid="${x => x.ariaInvalid}"
|
|
19635
|
+
aria-keyshortcuts="${x => x.ariaKeyshortcuts}"
|
|
19636
|
+
aria-label="${x => x.ariaLabel}"
|
|
19637
|
+
aria-labelledby="${x => x.ariaLabelledby}"
|
|
19638
|
+
aria-live="${x => x.ariaLive}"
|
|
19639
|
+
aria-owns="${x => x.ariaOwns}"
|
|
19640
|
+
aria-pressed="${x => x.ariaPressed}"
|
|
19641
|
+
aria-relevant="${x => x.ariaRelevant}"
|
|
19642
|
+
aria-roledescription="${x => x.ariaRoledescription}"
|
|
19643
|
+
${ref('control')}
|
|
19644
|
+
>
|
|
19645
|
+
${startSlotTemplate(context, definition)}
|
|
19646
|
+
<span class="content" part="content">
|
|
19647
|
+
<slot ${slotted('defaultSlottedContent')}></slot>
|
|
19648
|
+
</span>
|
|
19649
|
+
${endSlotTemplate(context, definition)}
|
|
19650
|
+
</button>
|
|
19651
|
+
`;
|
|
19652
|
+
|
|
19653
|
+
/**
|
|
19654
|
+
* A nimble-styled HTML button
|
|
19655
|
+
*/
|
|
19656
|
+
let Button$1 = class Button extends Button$2 {
|
|
19657
|
+
constructor() {
|
|
19658
|
+
super(...arguments);
|
|
19659
|
+
/**
|
|
19660
|
+
* @public
|
|
19661
|
+
* @remarks
|
|
19662
|
+
* HTML Attribute: appearance
|
|
19663
|
+
*/
|
|
19664
|
+
this.appearance = ButtonAppearance.outline;
|
|
19665
|
+
/**
|
|
19666
|
+
* @public
|
|
19667
|
+
* @remarks
|
|
19668
|
+
* HTML Attribute: content-hidden
|
|
19669
|
+
*/
|
|
19670
|
+
this.contentHidden = false;
|
|
19671
|
+
}
|
|
19672
|
+
};
|
|
19673
|
+
__decorate([
|
|
19674
|
+
attr
|
|
19675
|
+
], Button$1.prototype, "appearance", void 0);
|
|
19676
|
+
__decorate([
|
|
19677
|
+
attr({ attribute: 'appearance-variant' })
|
|
19678
|
+
], Button$1.prototype, "appearanceVariant", void 0);
|
|
19679
|
+
__decorate([
|
|
19680
|
+
attr({ attribute: 'content-hidden', mode: 'boolean' })
|
|
19681
|
+
], Button$1.prototype, "contentHidden", void 0);
|
|
19682
|
+
__decorate([
|
|
19683
|
+
attr({ attribute: 'tabindex', converter: nullableNumberConverter })
|
|
19684
|
+
], Button$1.prototype, "tabIndex", void 0);
|
|
19685
|
+
/**
|
|
19686
|
+
* A function that returns a nimble-button registration for configuring the component with a DesignSystem.
|
|
19687
|
+
* Implements {@link @ni/fast-foundation#buttonTemplate}
|
|
19688
|
+
*
|
|
19689
|
+
* @public
|
|
19690
|
+
* @remarks
|
|
19691
|
+
* Generates HTML Element: \<nimble-button\>
|
|
19692
|
+
*
|
|
19693
|
+
*/
|
|
19694
|
+
const nimbleButton = Button$1.compose({
|
|
19695
|
+
baseName: 'button',
|
|
19696
|
+
baseClass: Button$2,
|
|
19697
|
+
template: template$T,
|
|
19698
|
+
styles: styles$14,
|
|
19699
|
+
shadowOptions: {
|
|
19700
|
+
delegatesFocus: true
|
|
19701
|
+
}
|
|
19702
|
+
});
|
|
19703
|
+
DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleButton());
|
|
19704
|
+
const buttonTag = 'nimble-button';
|
|
19705
|
+
|
|
18902
19706
|
// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
|
|
18903
19707
|
// See generation source in nimble-components/build/generate-icons
|
|
18904
19708
|
/**
|
|
@@ -19291,7 +20095,7 @@
|
|
|
19291
20095
|
const nimbleAnchorTabs = AnchorTabs.compose({
|
|
19292
20096
|
baseName: 'anchor-tabs',
|
|
19293
20097
|
template: template$S,
|
|
19294
|
-
styles: styles$
|
|
20098
|
+
styles: styles$15,
|
|
19295
20099
|
shadowOptions: {
|
|
19296
20100
|
delegatesFocus: false
|
|
19297
20101
|
}
|
|
@@ -19595,80 +20399,6 @@
|
|
|
19595
20399
|
.register(nimbleAnchoredRegion());
|
|
19596
20400
|
const anchoredRegionTag = 'nimble-anchored-region';
|
|
19597
20401
|
|
|
19598
|
-
/**
|
|
19599
|
-
* Subscription for {@link ThemeStyleSheetBehavior}
|
|
19600
|
-
*/
|
|
19601
|
-
class ThemeStyleSheetBehaviorSubscription {
|
|
19602
|
-
constructor(value, styles, source) {
|
|
19603
|
-
this.value = value;
|
|
19604
|
-
this.styles = styles;
|
|
19605
|
-
this.source = source;
|
|
19606
|
-
}
|
|
19607
|
-
handleChange() {
|
|
19608
|
-
const theme$1 = theme.getValueFor(this.source);
|
|
19609
|
-
if (Array.isArray(this.value)
|
|
19610
|
-
? this.value.includes(theme$1)
|
|
19611
|
-
: this.value === theme$1) {
|
|
19612
|
-
this.source.$fastController.addStyles(this.styles);
|
|
19613
|
-
}
|
|
19614
|
-
else {
|
|
19615
|
-
this.source.$fastController.removeStyles(this.styles);
|
|
19616
|
-
}
|
|
19617
|
-
}
|
|
19618
|
-
}
|
|
19619
|
-
/**
|
|
19620
|
-
* Behavior to conditionally apply theme-based stylesheets.
|
|
19621
|
-
*/
|
|
19622
|
-
class ThemeStyleSheetBehavior {
|
|
19623
|
-
constructor(theme, styles) {
|
|
19624
|
-
this.theme = theme;
|
|
19625
|
-
this.styles = styles;
|
|
19626
|
-
this.cache = new WeakMap();
|
|
19627
|
-
}
|
|
19628
|
-
/**
|
|
19629
|
-
* @internal
|
|
19630
|
-
*/
|
|
19631
|
-
bind(source) {
|
|
19632
|
-
const subscriber = this.cache.get(source)
|
|
19633
|
-
|| new ThemeStyleSheetBehaviorSubscription(this.theme, this.styles, source);
|
|
19634
|
-
// Currently subscriber from cache may have gone through unbind
|
|
19635
|
-
// but still be in cache so always resubscribe
|
|
19636
|
-
// See: https://github.com/microsoft/fast/issues/3246#issuecomment-1030424876
|
|
19637
|
-
theme.subscribe(subscriber, source);
|
|
19638
|
-
subscriber.handleChange();
|
|
19639
|
-
this.cache.set(source, subscriber);
|
|
19640
|
-
}
|
|
19641
|
-
/**
|
|
19642
|
-
* @internal
|
|
19643
|
-
*/
|
|
19644
|
-
unbind(source) {
|
|
19645
|
-
const subscriber = this.cache.get(source);
|
|
19646
|
-
if (subscriber) {
|
|
19647
|
-
theme.unsubscribe(subscriber);
|
|
19648
|
-
}
|
|
19649
|
-
// Currently does not evict subscriber from cache
|
|
19650
|
-
// See: https://github.com/microsoft/fast/issues/3246#issuecomment-1030424876
|
|
19651
|
-
}
|
|
19652
|
-
}
|
|
19653
|
-
/**
|
|
19654
|
-
* Behavior to conditionally apply theme-based stylesheets. To determine which to apply,
|
|
19655
|
-
* the behavior will use the nearest ThemeProvider's 'theme' design system value.
|
|
19656
|
-
*
|
|
19657
|
-
* @public
|
|
19658
|
-
* @example
|
|
19659
|
-
* ```ts
|
|
19660
|
-
* css`
|
|
19661
|
-
* // ...
|
|
19662
|
-
* `.withBehaviors(
|
|
19663
|
-
* themeBehavior(Theme.light, css` ... `),
|
|
19664
|
-
* // Apply style for both dark and color theme
|
|
19665
|
-
* themeBehavior([Theme.dark, Theme.color], css` ... `)
|
|
19666
|
-
* )
|
|
19667
|
-
* ```
|
|
19668
|
-
*/
|
|
19669
|
-
const themeBehavior = (theme, styles) => new ThemeStyleSheetBehavior(theme, styles);
|
|
19670
|
-
/* eslint-enable max-classes-per-file */
|
|
19671
|
-
|
|
19672
20402
|
const styles$11 = css `
|
|
19673
20403
|
${display$2('flex')}
|
|
19674
20404
|
|
|
@@ -19784,19 +20514,6 @@
|
|
|
19784
20514
|
}
|
|
19785
20515
|
`));
|
|
19786
20516
|
|
|
19787
|
-
// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
|
|
19788
|
-
// See generation source in nimble-components/build/generate-icons
|
|
19789
|
-
/**
|
|
19790
|
-
* The icon component for the 'exclamationMark' icon
|
|
19791
|
-
*/
|
|
19792
|
-
class IconExclamationMark extends IconSvg {
|
|
19793
|
-
constructor() {
|
|
19794
|
-
super(exclamationMark16X16);
|
|
19795
|
-
}
|
|
19796
|
-
}
|
|
19797
|
-
registerIconSvg('icon-exclamation-mark', IconExclamationMark);
|
|
19798
|
-
const iconExclamationMarkTag = 'nimble-icon-exclamation-mark';
|
|
19799
|
-
|
|
19800
20517
|
// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
|
|
19801
20518
|
// See generation source in nimble-components/build/generate-icons
|
|
19802
20519
|
/**
|
|
@@ -19810,19 +20527,6 @@
|
|
|
19810
20527
|
registerIconSvg('icon-info', IconInfo);
|
|
19811
20528
|
const iconInfoTag = 'nimble-icon-info';
|
|
19812
20529
|
|
|
19813
|
-
// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
|
|
19814
|
-
// See generation source in nimble-components/build/generate-icons
|
|
19815
|
-
/**
|
|
19816
|
-
* The icon component for the 'triangleFilled' icon
|
|
19817
|
-
*/
|
|
19818
|
-
class IconTriangleFilled extends IconSvg {
|
|
19819
|
-
constructor() {
|
|
19820
|
-
super(triangleFilled16X16);
|
|
19821
|
-
}
|
|
19822
|
-
}
|
|
19823
|
-
registerIconSvg('icon-triangle-filled', IconTriangleFilled);
|
|
19824
|
-
const iconTriangleFilledTag = 'nimble-icon-triangle-filled';
|
|
19825
|
-
|
|
19826
20530
|
// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
|
|
19827
20531
|
// See generation source in nimble-components/build/generate-icons
|
|
19828
20532
|
/**
|
|
@@ -20116,7 +20820,7 @@
|
|
|
20116
20820
|
DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleBreadcrumb());
|
|
20117
20821
|
|
|
20118
20822
|
const styles$$ = css `
|
|
20119
|
-
@layer base, hover, focusVisible, active, disabled;
|
|
20823
|
+
@layer base, hover, focusVisible, active, disabled, top;
|
|
20120
20824
|
|
|
20121
20825
|
@layer base {
|
|
20122
20826
|
${display$2('inline-flex')}
|
|
@@ -20592,61 +21296,6 @@ so this becomes the fallback color for the slot */ ''}
|
|
|
20592
21296
|
}
|
|
20593
21297
|
`;
|
|
20594
21298
|
|
|
20595
|
-
/**
|
|
20596
|
-
* The runtime behavior for template overflow detection.
|
|
20597
|
-
* @public
|
|
20598
|
-
*/
|
|
20599
|
-
class OverflowBehavior {
|
|
20600
|
-
/**
|
|
20601
|
-
* Creates an instance of OverflowBehavior.
|
|
20602
|
-
* @param target - The element to check for overflow.
|
|
20603
|
-
* @param propertyName - The name of the property to assign the overflow state to.
|
|
20604
|
-
*/
|
|
20605
|
-
constructor(target, propertyName) {
|
|
20606
|
-
this.target = target;
|
|
20607
|
-
this.propertyName = propertyName;
|
|
20608
|
-
}
|
|
20609
|
-
/**
|
|
20610
|
-
* Bind this behavior to the source.
|
|
20611
|
-
* @param source - The source to bind to.
|
|
20612
|
-
* @param context - The execution context that the binding is operating within.
|
|
20613
|
-
*/
|
|
20614
|
-
bind(source) {
|
|
20615
|
-
this.source = source;
|
|
20616
|
-
this.setSourceValue(false);
|
|
20617
|
-
this.mouseOverHandler = () => {
|
|
20618
|
-
const hasOverflow = this.target.offsetWidth < this.target.scrollWidth;
|
|
20619
|
-
this.setSourceValue(hasOverflow);
|
|
20620
|
-
};
|
|
20621
|
-
this.mouseOutHandler = () => {
|
|
20622
|
-
this.setSourceValue(false);
|
|
20623
|
-
};
|
|
20624
|
-
this.target.addEventListener('mouseover', this.mouseOverHandler);
|
|
20625
|
-
this.target.addEventListener('mouseout', this.mouseOutHandler);
|
|
20626
|
-
}
|
|
20627
|
-
/**
|
|
20628
|
-
* Unbinds this behavior from the source.
|
|
20629
|
-
* @param source - The source to unbind from.
|
|
20630
|
-
*/
|
|
20631
|
-
unbind() {
|
|
20632
|
-
this.source = undefined;
|
|
20633
|
-
this.target.removeEventListener('mouseover', this.mouseOverHandler);
|
|
20634
|
-
this.target.removeEventListener('mouseout', this.mouseOutHandler);
|
|
20635
|
-
}
|
|
20636
|
-
setSourceValue(value) {
|
|
20637
|
-
// @ts-expect-error set property on source
|
|
20638
|
-
this.source[this.propertyName] = value;
|
|
20639
|
-
}
|
|
20640
|
-
}
|
|
20641
|
-
/**
|
|
20642
|
-
* A directive that observes if an element has overflow and sets a flag.
|
|
20643
|
-
* @param propertyName - The name of the property to assign the overflow flag.
|
|
20644
|
-
* @public
|
|
20645
|
-
*/
|
|
20646
|
-
function overflow(propertyName) {
|
|
20647
|
-
return new AttachedBehaviorHTMLDirective('nimble-overflow', OverflowBehavior, propertyName);
|
|
20648
|
-
}
|
|
20649
|
-
|
|
20650
21299
|
const errorTextTemplate = html `
|
|
20651
21300
|
<div
|
|
20652
21301
|
class="error-text"
|
|
@@ -20752,7 +21401,7 @@ so this becomes the fallback color for the slot */ ''}
|
|
|
20752
21401
|
const checkboxTag = 'nimble-checkbox';
|
|
20753
21402
|
|
|
20754
21403
|
const styles$W = css `
|
|
20755
|
-
${styles$
|
|
21404
|
+
${styles$1d}
|
|
20756
21405
|
${buttonAppearanceVariantStyles}
|
|
20757
21406
|
|
|
20758
21407
|
@layer checked {
|
|
@@ -23399,18 +24048,6 @@ so this becomes the fallback color for the slot */ ''}
|
|
|
23399
24048
|
}
|
|
23400
24049
|
registerIconSvg('icon-chart-diagram-parent-focus-two-child', IconChartDiagramParentFocusTwoChild);
|
|
23401
24050
|
|
|
23402
|
-
// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
|
|
23403
|
-
// See generation source in nimble-components/build/generate-icons
|
|
23404
|
-
/**
|
|
23405
|
-
* The icon component for the 'check' icon
|
|
23406
|
-
*/
|
|
23407
|
-
class IconCheck extends IconSvg {
|
|
23408
|
-
constructor() {
|
|
23409
|
-
super(check16X16);
|
|
23410
|
-
}
|
|
23411
|
-
}
|
|
23412
|
-
registerIconSvg('icon-check', IconCheck);
|
|
23413
|
-
|
|
23414
24051
|
// AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
|
|
23415
24052
|
// See generation source in nimble-components/build/generate-icons
|
|
23416
24053
|
/**
|
|
@@ -65535,31 +66172,173 @@ ${nextLine.slice(indentLevel + 2)}`;
|
|
|
65535
66172
|
DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSelect());
|
|
65536
66173
|
|
|
65537
66174
|
const styles$A = css `
|
|
65538
|
-
${
|
|
66175
|
+
${styles$19}
|
|
66176
|
+
${'' /* Button specific styles */}
|
|
66177
|
+
@layer base {
|
|
66178
|
+
.control {
|
|
66179
|
+
font: inherit;
|
|
66180
|
+
border: none;
|
|
66181
|
+
text-align: start;
|
|
66182
|
+
}
|
|
66183
|
+
}
|
|
65539
66184
|
`;
|
|
65540
66185
|
|
|
65541
|
-
const template$x = html `
|
|
65542
|
-
<template
|
|
66186
|
+
const template$x = (context, definition) => html `
|
|
66187
|
+
<template slot="step">
|
|
66188
|
+
<div class="
|
|
66189
|
+
container
|
|
66190
|
+
${x => (x.stepInternals.orientation === 'vertical' ? 'vertical' : '')}
|
|
66191
|
+
${x => (x.stepInternals.last ? 'last' : '')}
|
|
66192
|
+
">
|
|
66193
|
+
<button
|
|
66194
|
+
class="control"
|
|
66195
|
+
part="control"
|
|
66196
|
+
?autofocus="${x => x.autofocus}"
|
|
66197
|
+
?disabled="${x => x.disabled}"
|
|
66198
|
+
form="${x => x.formId}"
|
|
66199
|
+
formaction="${x => x.formaction}"
|
|
66200
|
+
formenctype="${x => x.formenctype}"
|
|
66201
|
+
formmethod="${x => x.formmethod}"
|
|
66202
|
+
formnovalidate="${x => x.formnovalidate}"
|
|
66203
|
+
formtarget="${x => x.formtarget}"
|
|
66204
|
+
name="${x => x.name}"
|
|
66205
|
+
type="${x => x.type}"
|
|
66206
|
+
value="${x => x.value}"
|
|
66207
|
+
tabindex="${x => x.tabIndex}"
|
|
66208
|
+
aria-atomic="${x => x.ariaAtomic}"
|
|
66209
|
+
aria-busy="${x => x.ariaBusy}"
|
|
66210
|
+
aria-controls="${x => x.ariaControls}"
|
|
66211
|
+
aria-current="${x => x.ariaCurrent}"
|
|
66212
|
+
aria-describedby="${x => x.ariaDescribedby}"
|
|
66213
|
+
aria-details="${x => x.ariaDetails}"
|
|
66214
|
+
aria-disabled="${x => x.ariaDisabled}"
|
|
66215
|
+
aria-errormessage="${x => x.ariaErrormessage}"
|
|
66216
|
+
aria-expanded="${x => x.ariaExpanded}"
|
|
66217
|
+
aria-flowto="${x => x.ariaFlowto}"
|
|
66218
|
+
aria-haspopup="${x => x.ariaHaspopup}"
|
|
66219
|
+
aria-hidden="${x => x.ariaHidden}"
|
|
66220
|
+
aria-invalid="${x => x.ariaInvalid}"
|
|
66221
|
+
aria-keyshortcuts="${x => x.ariaKeyshortcuts}"
|
|
66222
|
+
aria-label="${x => x.ariaLabel}"
|
|
66223
|
+
aria-labelledby="${x => x.ariaLabelledby}"
|
|
66224
|
+
aria-live="${x => x.ariaLive}"
|
|
66225
|
+
aria-owns="${x => x.ariaOwns}"
|
|
66226
|
+
aria-pressed="${x => x.ariaPressed}"
|
|
66227
|
+
aria-relevant="${x => x.ariaRelevant}"
|
|
66228
|
+
aria-roledescription="${x => x.ariaRoledescription}"
|
|
66229
|
+
${ref('control')}
|
|
66230
|
+
>
|
|
66231
|
+
<div class="icon">
|
|
66232
|
+
<div class="icon-slot"><slot ${slotted('defaultSlottedContent')}></slot></div>
|
|
66233
|
+
<div class="icon-severity">
|
|
66234
|
+
${when(x => x.severity === Severity.error, html `<${iconExclamationMarkTag}></${iconExclamationMarkTag}>`)}
|
|
66235
|
+
${when(x => x.severity === Severity.warning, html `<${iconTriangleFilledTag}></${iconTriangleFilledTag}>`)}
|
|
66236
|
+
${when(x => x.severity === Severity.success, html `<${iconCheckTag}></${iconCheckTag}>`)}
|
|
66237
|
+
</div>
|
|
66238
|
+
</div>
|
|
66239
|
+
<div class="content">
|
|
66240
|
+
<div class="title-wrapper">
|
|
66241
|
+
${startSlotTemplate(context, definition)}
|
|
66242
|
+
<div class="title"><slot name="title"></slot></div>
|
|
66243
|
+
${endSlotTemplate(context, definition)}
|
|
66244
|
+
<div class="line"></div>
|
|
66245
|
+
</div>
|
|
66246
|
+
<div class="subtitle">
|
|
66247
|
+
<slot name="subtitle"></slot>
|
|
66248
|
+
</div>
|
|
66249
|
+
</div>
|
|
66250
|
+
</button>
|
|
66251
|
+
${severityTextTemplate}
|
|
66252
|
+
</div>
|
|
66253
|
+
</template>
|
|
65543
66254
|
`;
|
|
65544
66255
|
|
|
66256
|
+
const StepSeverity = Severity;
|
|
66257
|
+
|
|
65545
66258
|
/**
|
|
65546
66259
|
* A nimble-styled step for a stepper
|
|
65547
66260
|
*/
|
|
65548
|
-
class Step extends
|
|
66261
|
+
class Step extends mixinSeverityPattern(Button$2) {
|
|
66262
|
+
constructor() {
|
|
66263
|
+
super(...arguments);
|
|
66264
|
+
/**
|
|
66265
|
+
* @public
|
|
66266
|
+
* @remarks
|
|
66267
|
+
* HTML Attribute: disabled
|
|
66268
|
+
*/
|
|
66269
|
+
this.severity = StepSeverity.default;
|
|
66270
|
+
/**
|
|
66271
|
+
* @public
|
|
66272
|
+
* @remarks
|
|
66273
|
+
* HTML Attribute: readonly
|
|
66274
|
+
*/
|
|
66275
|
+
this.readOnly = false;
|
|
66276
|
+
/**
|
|
66277
|
+
* @public
|
|
66278
|
+
* @remarks
|
|
66279
|
+
* HTML Attribute: selected
|
|
66280
|
+
*/
|
|
66281
|
+
this.selected = false;
|
|
66282
|
+
/**
|
|
66283
|
+
* @internal
|
|
66284
|
+
*/
|
|
66285
|
+
this.stepInternals = new StepInternals();
|
|
66286
|
+
}
|
|
65549
66287
|
}
|
|
66288
|
+
__decorate([
|
|
66289
|
+
attr()
|
|
66290
|
+
], Step.prototype, "severity", void 0);
|
|
66291
|
+
__decorate([
|
|
66292
|
+
attr({ attribute: 'readonly', mode: 'boolean' })
|
|
66293
|
+
], Step.prototype, "readOnly", void 0);
|
|
66294
|
+
__decorate([
|
|
66295
|
+
attr({ mode: 'boolean' })
|
|
66296
|
+
], Step.prototype, "selected", void 0);
|
|
66297
|
+
__decorate([
|
|
66298
|
+
attr({ attribute: 'tabindex', converter: nullableNumberConverter })
|
|
66299
|
+
], Step.prototype, "tabIndex", void 0);
|
|
65550
66300
|
const nimbleStep = Step.compose({
|
|
65551
66301
|
baseName: 'step',
|
|
65552
66302
|
template: template$x,
|
|
65553
|
-
styles: styles$A
|
|
66303
|
+
styles: styles$A,
|
|
66304
|
+
shadowOptions: {
|
|
66305
|
+
delegatesFocus: true
|
|
66306
|
+
}
|
|
65554
66307
|
});
|
|
65555
66308
|
DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleStep());
|
|
65556
66309
|
|
|
65557
66310
|
const styles$z = css `
|
|
65558
|
-
${display$2('flex')}
|
|
66311
|
+
${display$2('inline-flex')}
|
|
66312
|
+
|
|
66313
|
+
:host {
|
|
66314
|
+
border: none;
|
|
66315
|
+
gap: 0px;
|
|
66316
|
+
}
|
|
65559
66317
|
`;
|
|
65560
66318
|
|
|
66319
|
+
/**
|
|
66320
|
+
* Observable class to subscribe to changes in the page's device pixel ratio
|
|
66321
|
+
* Based on: https://frontendmasters.com/blog/obsessing-over-smooth-radial-gradient-disc-edges/#the-less-code-and-more-flexible-js-solution
|
|
66322
|
+
*/
|
|
66323
|
+
class DevicePixelRatio {
|
|
66324
|
+
constructor() {
|
|
66325
|
+
const update = () => {
|
|
66326
|
+
this.current = window.devicePixelRatio;
|
|
66327
|
+
window
|
|
66328
|
+
.matchMedia(`(resolution: ${this.current}x)`)
|
|
66329
|
+
.addEventListener('change', update, { once: true });
|
|
66330
|
+
};
|
|
66331
|
+
update();
|
|
66332
|
+
}
|
|
66333
|
+
}
|
|
66334
|
+
__decorate([
|
|
66335
|
+
observable
|
|
66336
|
+
], DevicePixelRatio.prototype, "current", void 0);
|
|
66337
|
+
const devicePixelRatio = new DevicePixelRatio();
|
|
66338
|
+
|
|
65561
66339
|
const template$w = html `
|
|
65562
|
-
<
|
|
66340
|
+
<style>:host{--ni-private-device-resolution: ${() => devicePixelRatio.current};}</style>
|
|
66341
|
+
<slot name="step"></slot>
|
|
65563
66342
|
`;
|
|
65564
66343
|
|
|
65565
66344
|
/**
|
|
@@ -77907,7 +78686,7 @@ focus outline in that case.
|
|
|
77907
78686
|
.register(nimbleTableColumnText());
|
|
77908
78687
|
|
|
77909
78688
|
const styles$h = css `
|
|
77910
|
-
${styles$
|
|
78689
|
+
${styles$15}
|
|
77911
78690
|
|
|
77912
78691
|
.tabpanel {
|
|
77913
78692
|
overflow: auto;
|