@ni/ok-components 0.3.1 → 0.3.2

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.
@@ -17550,16 +17550,14 @@
17550
17550
  display: none;
17551
17551
  font: ${errorTextFont};
17552
17552
  color: ${buttonLabelFontColor};
17553
- width: 100%;
17554
17553
  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;
17554
+ padding: 0;
17558
17555
  overflow: hidden;
17559
17556
  text-overflow: ellipsis;
17560
17557
  white-space: nowrap;
17558
+ width: 100%;
17561
17559
  }
17562
-
17560
+
17563
17561
  :host([severity="error"]) .severity-text {
17564
17562
  display: block;
17565
17563
  color: ${failColor};
@@ -17664,9 +17662,6 @@
17664
17662
  ${display$2('inline-flex')}
17665
17663
  ${styles$1g}
17666
17664
  :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
17665
  color: ${buttonLabelFontColor};
17671
17666
  font: ${buttonLabelFont};
17672
17667
  white-space: nowrap;
@@ -17680,21 +17675,36 @@
17680
17675
  width: 100%;
17681
17676
  height: 100%;
17682
17677
  position: relative;
17678
+ list-style: none;
17679
+ --ni-private-step-content-height: calc(${smallPadding} + ${controlSlimHeight} + ${errorTextFontLineHeight});
17680
+ --ni-private-step-content-offset: calc(${controlHeight} + ${smallPadding});
17683
17681
  }
17684
17682
 
17685
- .control {
17686
- display: inline-flex;
17687
- align-items: start;
17688
- justify-content: flex-start;
17683
+ .control {
17684
+ display: inline-grid;
17689
17685
  height: 100%;
17690
17686
  width: 100%;
17687
+ grid-template-areas:
17688
+ "icon top-spacer top-spacer"
17689
+ "icon title line"
17690
+ "icon subtitle subtitle";
17691
+ grid-template-columns:
17692
+ ${controlHeight} ${'' /* Icon width */}
17693
+ min-content ${'' /* Show the full title and subtitle */}
17694
+ 1fr; ${'' /* Line is only fr unit so fills remaining space */}
17695
+ grid-template-rows:
17696
+ ${smallPadding}
17697
+ ${controlSlimHeight}
17698
+ min-content;
17699
+ column-gap: 4px;
17700
+
17701
+ align-items: start;
17702
+ margin: 0;
17703
+ padding: 0;
17691
17704
  color: inherit;
17692
17705
  background-color: transparent;
17693
- gap: ${smallPadding};
17694
17706
  cursor: pointer;
17695
17707
  outline: none;
17696
- margin: 0;
17697
- padding: 0 ${smallPadding} 0 0;
17698
17708
  --ni-private-step-icon-background-full-size: 100% 100%;
17699
17709
  ${'' /* 6px = (2px icon border + 1px inset) * 2 sides */}
17700
17710
  --ni-private-step-icon-background-inset-size: calc(100% - 6px) calc(100% - 6px);
@@ -17708,6 +17718,70 @@
17708
17718
  --ni-private-step-line-color: rgba(${borderRgbPartialColor}, 0.1);
17709
17719
  }
17710
17720
 
17721
+ .container.last .control {
17722
+ grid-template-areas:
17723
+ "icon top-spacer"
17724
+ "icon title"
17725
+ "icon subtitle";
17726
+ grid-template-columns:
17727
+ ${controlHeight}
17728
+ min-content;
17729
+ grid-template-rows:
17730
+ ${smallPadding}
17731
+ ${controlSlimHeight}
17732
+ min-content;
17733
+ }
17734
+
17735
+ .container.vertical .control {
17736
+ ${'' /*
17737
+ Defines an interaction area clip-path that leaves out the severity text so it is easily selectable:
17738
+ 1----------------2
17739
+ | title |
17740
+ | subtitle |
17741
+ | 4-------------3
17742
+ | | severity-text
17743
+ | |
17744
+ 6--5
17745
+ */}
17746
+ clip-path: polygon(
17747
+ 0% 0%,
17748
+ 100% 0%,
17749
+ 100% var(--ni-private-step-content-height),
17750
+ var(--ni-private-step-content-offset) var(--ni-private-step-content-height),
17751
+ var(--ni-private-step-content-offset) 100%,
17752
+ 0% 100%
17753
+ );
17754
+ grid-template-areas:
17755
+ "icon top-spacer"
17756
+ "icon title"
17757
+ "icon subtitle"
17758
+ "line subtitle"
17759
+ "line .";
17760
+ grid-template-columns:
17761
+ ${controlHeight}
17762
+ min-content;
17763
+ grid-template-rows:
17764
+ ${smallPadding}
17765
+ ${controlSlimHeight}
17766
+ calc(${controlHeight} - ${smallPadding} - ${controlSlimHeight})
17767
+ min-content
17768
+ 1fr;
17769
+ }
17770
+
17771
+ .container.vertical.last .control {
17772
+ grid-template-areas:
17773
+ "icon top-spacer"
17774
+ "icon title"
17775
+ "icon subtitle";
17776
+ grid-template-columns:
17777
+ ${controlHeight}
17778
+ min-content;
17779
+ grid-template-rows:
17780
+ ${smallPadding}
17781
+ ${controlSlimHeight}
17782
+ min-content;
17783
+ }
17784
+
17711
17785
  :host([severity="error"]) .control {
17712
17786
  --ni-private-step-icon-color: ${failColor};
17713
17787
  --ni-private-step-icon-border-color: ${failColor};
@@ -17741,6 +17815,7 @@
17741
17815
  }
17742
17816
 
17743
17817
  .icon {
17818
+ grid-area: icon;
17744
17819
  display: inline-flex;
17745
17820
  align-items: center;
17746
17821
  justify-content: center;
@@ -17760,7 +17835,7 @@
17760
17835
  ${'' /* Workaround to prevent aliasing on radial-gradient boundaries, see:
17761
17836
  https://frontendmasters.com/blog/obsessing-over-smooth-radial-gradient-disc-edges
17762
17837
  */}
17763
- var(--ni-private-step-icon-background-color) calc(100% - 1px/var(--ni-private-device-resolution)),
17838
+ var(--ni-private-step-icon-background-color) calc(100% - 1px/var(--ni-private-device-pixel-ratio, 1)),
17764
17839
  transparent 100%
17765
17840
  );
17766
17841
  background-origin: border-box;
@@ -17798,18 +17873,22 @@
17798
17873
  outline-offset ${smallDelay} ease-in-out;
17799
17874
  }
17800
17875
 
17801
- .icon-slot {
17876
+ .current-label {
17877
+ ${accessiblyHidden}
17878
+ }
17879
+
17880
+ .step-indicator {
17802
17881
  display: contents;
17803
17882
  }
17804
17883
 
17805
- :host([severity="error"]) .icon-slot,
17806
- :host([severity="warning"]) .icon-slot,
17807
- :host([severity="success"]) .icon-slot {
17884
+ :host([severity="error"]) .step-indicator,
17885
+ :host([severity="warning"]) .step-indicator,
17886
+ :host([severity="success"]) .step-indicator {
17808
17887
  display: none;
17809
17888
  }
17810
17889
 
17811
- :host([selected]) .icon-slot,
17812
- :host([disabled]) .icon-slot {
17890
+ :host([selected]) .step-indicator,
17891
+ :host([disabled]) .step-indicator {
17813
17892
  display: contents;
17814
17893
  }
17815
17894
 
@@ -17828,62 +17907,80 @@
17828
17907
  display: none;
17829
17908
  }
17830
17909
 
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};
17910
+ .top-spacer {
17911
+ grid-area: top-spacer;
17912
+ height: ${smallPadding};
17838
17913
  }
17839
17914
 
17840
- .title-wrapper {
17841
- display: inline-flex;
17915
+ .title {
17916
+ grid-area: title;
17917
+ min-width: min-content;
17842
17918
  height: ${controlSlimHeight};
17843
- flex-direction: row;
17844
- align-items: center;
17845
- justify-content: start;
17846
- gap: ${smallPadding};
17919
+ display: inline-block;
17920
+ align-content: center;
17847
17921
  font: ${bodyFont};
17922
+ white-space: nowrap;
17923
+ overflow: hidden;
17924
+ text-overflow: ellipsis;
17848
17925
  }
17849
17926
 
17850
17927
  [part='start'] {
17851
17928
  display: none;
17852
17929
  }
17853
17930
 
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
- }
17863
-
17864
17931
  [part='end'] {
17865
17932
  display: none;
17866
17933
  }
17867
-
17934
+
17868
17935
  .line {
17936
+ grid-area: line;
17937
+ align-self: center;
17938
+ justify-self: center;
17869
17939
  display: inline-block;
17870
- flex: 1;
17940
+ width: 100%;
17871
17941
  min-width: ${standardPadding};
17872
17942
  height: 1px;
17943
+ min-height: 1px;
17873
17944
  background: var(--ni-private-step-line-color);
17945
+ background-clip: content-box;
17874
17946
  transform: scale(1, 1);
17875
17947
  transition:
17876
17948
  background-color ${smallDelay} ease-in-out,
17877
17949
  transform ${smallDelay} ease-in-out;
17878
17950
  }
17879
17951
 
17952
+ .container.last .line {
17953
+ display: none;
17954
+ }
17955
+
17956
+ .container.vertical .line {
17957
+ width: 1px;
17958
+ min-width: 1px;
17959
+ height: 100%;
17960
+ padding-top: ${smallPadding};
17961
+ min-height: ${standardPadding};
17962
+ }
17963
+
17880
17964
  .subtitle {
17965
+ grid-area: subtitle;
17966
+ display: inline-block;
17967
+ min-width: min-content;
17968
+ height: ${errorTextFontLineHeight};
17969
+ align-content: center;
17881
17970
  font: ${errorTextFont};
17882
17971
  white-space: nowrap;
17883
17972
  overflow: hidden;
17884
17973
  text-overflow: ellipsis;
17885
- ${'' /* Content width */}
17886
- max-width: 100%;
17974
+ }
17975
+
17976
+ .severity-text {
17977
+ left: 0px;
17978
+ top: var(--ni-private-step-content-height);
17979
+ }
17980
+
17981
+ .container.vertical .severity-text {
17982
+ width: calc(100% - var(--ni-private-step-content-offset));
17983
+ left: var(--ni-private-step-content-offset);
17887
17984
  }
17888
17985
  }
17889
17986
 
@@ -17927,6 +18024,10 @@
17927
18024
  .control:hover .line {
17928
18025
  transform: scale(1, 2);
17929
18026
  }
18027
+
18028
+ .container.vertical .control:hover .line {
18029
+ transform: scale(2, 1);
18030
+ }
17930
18031
  }
17931
18032
 
17932
18033
  @layer focusVisible {
@@ -17966,7 +18067,7 @@
17966
18067
  --ni-private-step-icon-outline-inset-color: ${borderHoverColor};
17967
18068
  --ni-private-step-line-color: ${borderHoverColor};
17968
18069
  }
17969
-
18070
+
17970
18071
  .control${focusVisible} .icon {
17971
18072
  border-width: 2px;
17972
18073
  }
@@ -17979,6 +18080,10 @@
17979
18080
  .control${focusVisible} .line {
17980
18081
  transform: scale(1, 2);
17981
18082
  }
18083
+
18084
+ .container.vertical .control${focusVisible} .line {
18085
+ transform: scale(2, 1);
18086
+ }
17982
18087
  }
17983
18088
 
17984
18089
  @layer active {
@@ -18148,6 +18253,7 @@
18148
18253
  ${overflow('severityHasOverflow')}
18149
18254
  title="${x => (x.severityHasOverflow && x.severityText ? x.severityText : undefined)}"
18150
18255
  aria-live="polite"
18256
+ @click="${(_x, c) => c.event.stopImmediatePropagation()}"
18151
18257
  >${x => x.severityText}</div>`;
18152
18258
 
18153
18259
  const Severity = {
@@ -19234,9 +19340,83 @@
19234
19340
  registerIconSvg('icon-check', IconCheck);
19235
19341
  const iconCheckTag = 'nimble-icon-check';
19236
19342
 
19343
+ const coreLabelDefaults = {
19344
+ popupDismissLabel: 'Close',
19345
+ numericIncrementLabel: 'Increment',
19346
+ numericDecrementLabel: 'Decrement',
19347
+ popupIconErrorLabel: 'Error',
19348
+ popupIconWarningLabel: 'Warning',
19349
+ popupIconCompletedLabel: 'Completed',
19350
+ popupIconCurrentLabel: 'Current',
19351
+ popupIconInformationLabel: 'Information',
19352
+ filterSearchLabel: 'Search',
19353
+ filterNoResultsLabel: 'No items found',
19354
+ loadingLabel: 'Loading…',
19355
+ scrollBackwardLabel: 'Scroll backward',
19356
+ scrollForwardLabel: 'Scroll forward',
19357
+ itemRemoveLabel: 'Remove'
19358
+ };
19359
+
19360
+ const popupDismissLabel = DesignToken.create({
19361
+ name: 'popup-dismiss-label',
19362
+ cssCustomPropertyName: null
19363
+ }).withDefault(coreLabelDefaults.popupDismissLabel);
19364
+ const numericDecrementLabel = DesignToken.create({
19365
+ name: 'numeric-decrement-label',
19366
+ cssCustomPropertyName: null
19367
+ }).withDefault(coreLabelDefaults.numericDecrementLabel);
19368
+ const numericIncrementLabel = DesignToken.create({
19369
+ name: 'numeric-increment-label',
19370
+ cssCustomPropertyName: null
19371
+ }).withDefault(coreLabelDefaults.numericIncrementLabel);
19372
+ const popupIconErrorLabel = DesignToken.create({
19373
+ name: 'popup-icon-error-label',
19374
+ cssCustomPropertyName: null
19375
+ }).withDefault(coreLabelDefaults.popupIconErrorLabel);
19376
+ const popupIconWarningLabel = DesignToken.create({
19377
+ name: 'popup-icon-warning-label',
19378
+ cssCustomPropertyName: null
19379
+ }).withDefault(coreLabelDefaults.popupIconWarningLabel);
19380
+ const popupIconCompletedLabel = DesignToken.create({
19381
+ name: 'popup-icon-completed-label',
19382
+ cssCustomPropertyName: null
19383
+ }).withDefault(coreLabelDefaults.popupIconCompletedLabel);
19384
+ const popupIconCurrentLabel = DesignToken.create({
19385
+ name: 'popup-icon-current-label',
19386
+ cssCustomPropertyName: null
19387
+ }).withDefault(coreLabelDefaults.popupIconCurrentLabel);
19388
+ const popupIconInformationLabel = DesignToken.create({
19389
+ name: 'popup-icon-information-label',
19390
+ cssCustomPropertyName: null
19391
+ }).withDefault(coreLabelDefaults.popupIconInformationLabel);
19392
+ const filterSearchLabel = DesignToken.create({
19393
+ name: 'filter-search-label',
19394
+ cssCustomPropertyName: null
19395
+ }).withDefault(coreLabelDefaults.filterSearchLabel);
19396
+ const filterNoResultsLabel = DesignToken.create({
19397
+ name: 'filter-no-results-label',
19398
+ cssCustomPropertyName: null
19399
+ }).withDefault(coreLabelDefaults.filterNoResultsLabel);
19400
+ const loadingLabel = DesignToken.create({
19401
+ name: 'loading-label',
19402
+ cssCustomPropertyName: null
19403
+ }).withDefault(coreLabelDefaults.loadingLabel);
19404
+ const scrollBackwardLabel = DesignToken.create({
19405
+ name: 'scroll-backward-label',
19406
+ cssCustomPropertyName: null
19407
+ }).withDefault(coreLabelDefaults.scrollBackwardLabel);
19408
+ const scrollForwardLabel = DesignToken.create({
19409
+ name: 'scroll-forward-label',
19410
+ cssCustomPropertyName: null
19411
+ }).withDefault(coreLabelDefaults.scrollForwardLabel);
19412
+ const itemRemoveLabel = DesignToken.create({
19413
+ name: 'item-remove-label',
19414
+ cssCustomPropertyName: null
19415
+ }).withDefault(coreLabelDefaults.itemRemoveLabel);
19416
+
19237
19417
  const template$V = (context, definition) => html `
19238
19418
  <template slot="step">
19239
- <div class="
19419
+ <li class="
19240
19420
  container
19241
19421
  ${x => (x.stepInternals.orientation === 'vertical' ? 'vertical' : '')}
19242
19422
  ${x => (x.stepInternals.last ? 'last' : '')}
@@ -19275,28 +19455,22 @@
19275
19455
  aria-roledescription="${x => x.ariaRoledescription}"
19276
19456
  ${ref('control')}
19277
19457
  >
19278
- <div class="icon">
19279
- <div class="icon-slot"><slot ${slotted('defaultSlottedContent')}></slot></div>
19458
+ <div class="icon">
19459
+ <span class="current-label">${x => (x.selected ? popupIconCurrentLabel.getValueFor(x) : '')}</span>
19460
+ <div class="step-indicator"><slot name="step-indicator"><span aria-hidden="true">${x => x.stepInternals.position}</span></slot></div>
19280
19461
  <div class="icon-severity">
19281
- ${when(x => x.severity === Severity.error, html `<${iconExclamationMarkTag}></${iconExclamationMarkTag}>`)}
19282
- ${when(x => x.severity === Severity.warning, html `<${iconTriangleFilledTag}></${iconTriangleFilledTag}>`)}
19283
- ${when(x => x.severity === Severity.success, html `<${iconCheckTag}></${iconCheckTag}>`)}
19284
- </div>
19285
- </div>
19286
- <div class="content">
19287
- <div class="title-wrapper">
19288
- ${startSlotTemplate(context, definition)}
19289
- <div class="title"><slot name="title"></slot></div>
19290
- ${endSlotTemplate(context, definition)}
19291
- <div class="line"></div>
19292
- </div>
19293
- <div class="subtitle">
19294
- <slot name="subtitle"></slot>
19462
+ ${when(x => x.severity === Severity.error, html `<${iconExclamationMarkTag} role="img" aria-label="${x => popupIconErrorLabel.getValueFor(x)}"></${iconExclamationMarkTag}>`)}
19463
+ ${when(x => x.severity === Severity.warning, html `<${iconTriangleFilledTag} role="img" aria-label="${x => popupIconWarningLabel.getValueFor(x)}"></${iconTriangleFilledTag}>`)}
19464
+ ${when(x => x.severity === Severity.success, html `<${iconCheckTag} role="img" aria-label="${x => popupIconCompletedLabel.getValueFor(x)}"></${iconCheckTag}>`)}
19295
19465
  </div>
19296
19466
  </div>
19467
+ <div class="top-spacer"></div>
19468
+ <div class="title">${startSlotTemplate(context, definition)}<slot name="title"></slot>${endSlotTemplate(context, definition)}</div>
19469
+ <div class="line"></div>
19470
+ <div class="subtitle"><slot name="subtitle"></slot></div>
19297
19471
  </a>
19298
19472
  ${severityTextTemplate}
19299
- </div>
19473
+ </li>
19300
19474
  </template>
19301
19475
  `;
19302
19476
 
@@ -19313,6 +19487,7 @@
19313
19487
  constructor() {
19314
19488
  this.orientation = StepperOrientation.horizontal;
19315
19489
  this.last = false;
19490
+ this.position = 1;
19316
19491
  }
19317
19492
  }
19318
19493
  __decorate([
@@ -19321,6 +19496,9 @@
19321
19496
  __decorate([
19322
19497
  observable
19323
19498
  ], StepInternals.prototype, "last", void 0);
19499
+ __decorate([
19500
+ observable
19501
+ ], StepInternals.prototype, "position", void 0);
19324
19502
 
19325
19503
  const AnchorStepSeverity = Severity;
19326
19504
 
@@ -19733,70 +19911,6 @@
19733
19911
  registerIconSvg('icon-arrow-expander-right', IconArrowExpanderRight);
19734
19912
  const iconArrowExpanderRightTag = 'nimble-icon-arrow-expander-right';
19735
19913
 
19736
- const coreLabelDefaults = {
19737
- popupDismissLabel: 'Close',
19738
- numericIncrementLabel: 'Increment',
19739
- numericDecrementLabel: 'Decrement',
19740
- popupIconErrorLabel: 'Error',
19741
- popupIconWarningLabel: 'Warning',
19742
- popupIconInformationLabel: 'Information',
19743
- filterSearchLabel: 'Search',
19744
- filterNoResultsLabel: 'No items found',
19745
- loadingLabel: 'Loading…',
19746
- scrollBackwardLabel: 'Scroll backward',
19747
- scrollForwardLabel: 'Scroll forward',
19748
- itemRemoveLabel: 'Remove'
19749
- };
19750
-
19751
- const popupDismissLabel = DesignToken.create({
19752
- name: 'popup-dismiss-label',
19753
- cssCustomPropertyName: null
19754
- }).withDefault(coreLabelDefaults.popupDismissLabel);
19755
- const numericDecrementLabel = DesignToken.create({
19756
- name: 'numeric-decrement-label',
19757
- cssCustomPropertyName: null
19758
- }).withDefault(coreLabelDefaults.numericDecrementLabel);
19759
- const numericIncrementLabel = DesignToken.create({
19760
- name: 'numeric-increment-label',
19761
- cssCustomPropertyName: null
19762
- }).withDefault(coreLabelDefaults.numericIncrementLabel);
19763
- const popupIconErrorLabel = DesignToken.create({
19764
- name: 'popup-icon-error-label',
19765
- cssCustomPropertyName: null
19766
- }).withDefault(coreLabelDefaults.popupIconErrorLabel);
19767
- const popupIconWarningLabel = DesignToken.create({
19768
- name: 'popup-icon-warning-label',
19769
- cssCustomPropertyName: null
19770
- }).withDefault(coreLabelDefaults.popupIconWarningLabel);
19771
- const popupIconInformationLabel = DesignToken.create({
19772
- name: 'popup-icon-information-label',
19773
- cssCustomPropertyName: null
19774
- }).withDefault(coreLabelDefaults.popupIconInformationLabel);
19775
- const filterSearchLabel = DesignToken.create({
19776
- name: 'filter-search-label',
19777
- cssCustomPropertyName: null
19778
- }).withDefault(coreLabelDefaults.filterSearchLabel);
19779
- const filterNoResultsLabel = DesignToken.create({
19780
- name: 'filter-no-results-label',
19781
- cssCustomPropertyName: null
19782
- }).withDefault(coreLabelDefaults.filterNoResultsLabel);
19783
- const loadingLabel = DesignToken.create({
19784
- name: 'loading-label',
19785
- cssCustomPropertyName: null
19786
- }).withDefault(coreLabelDefaults.loadingLabel);
19787
- const scrollBackwardLabel = DesignToken.create({
19788
- name: 'scroll-backward-label',
19789
- cssCustomPropertyName: null
19790
- }).withDefault(coreLabelDefaults.scrollBackwardLabel);
19791
- const scrollForwardLabel = DesignToken.create({
19792
- name: 'scroll-forward-label',
19793
- cssCustomPropertyName: null
19794
- }).withDefault(coreLabelDefaults.scrollForwardLabel);
19795
- const itemRemoveLabel = DesignToken.create({
19796
- name: 'item-remove-label',
19797
- cssCustomPropertyName: null
19798
- }).withDefault(coreLabelDefaults.itemRemoveLabel);
19799
-
19800
19914
  const template$S = (context, definition) => html `
19801
19915
  <div
19802
19916
  class="tab-bar"
@@ -26165,6 +26279,8 @@ so this becomes the fallback color for the slot */ ''}
26165
26279
  numericIncrement: numericIncrementLabel,
26166
26280
  popupIconError: popupIconErrorLabel,
26167
26281
  popupIconWarning: popupIconWarningLabel,
26282
+ popupIconCompleted: popupIconCompletedLabel,
26283
+ popupIconCurrent: popupIconCurrentLabel,
26168
26284
  popupIconInformation: popupIconInformationLabel,
26169
26285
  filterSearch: filterSearchLabel,
26170
26286
  filterNoResults: filterNoResultsLabel,
@@ -26197,6 +26313,12 @@ so this becomes the fallback color for the slot */ ''}
26197
26313
  __decorate([
26198
26314
  attr({ attribute: 'popup-icon-warning' })
26199
26315
  ], LabelProviderCore.prototype, "popupIconWarning", void 0);
26316
+ __decorate([
26317
+ attr({ attribute: 'popup-icon-completed' })
26318
+ ], LabelProviderCore.prototype, "popupIconCompleted", void 0);
26319
+ __decorate([
26320
+ attr({ attribute: 'popup-icon-current' })
26321
+ ], LabelProviderCore.prototype, "popupIconCurrent", void 0);
26200
26322
  __decorate([
26201
26323
  attr({ attribute: 'popup-icon-information' })
26202
26324
  ], LabelProviderCore.prototype, "popupIconInformation", void 0);
@@ -66201,7 +66323,7 @@ ${nextLine.slice(indentLevel + 2)}`;
66201
66323
 
66202
66324
  const template$x = (context, definition) => html `
66203
66325
  <template slot="step">
66204
- <div class="
66326
+ <li class="
66205
66327
  container
66206
66328
  ${x => (x.stepInternals.orientation === 'vertical' ? 'vertical' : '')}
66207
66329
  ${x => (x.stepInternals.last ? 'last' : '')}
@@ -66244,28 +66366,22 @@ ${nextLine.slice(indentLevel + 2)}`;
66244
66366
  aria-roledescription="${x => x.ariaRoledescription}"
66245
66367
  ${ref('control')}
66246
66368
  >
66247
- <div class="icon">
66248
- <div class="icon-slot"><slot ${slotted('defaultSlottedContent')}></slot></div>
66369
+ <div class="icon">
66370
+ <span class="current-label">${x => (x.selected ? popupIconCurrentLabel.getValueFor(x) : '')}</span>
66371
+ <div class="step-indicator"><slot name="step-indicator"><span aria-hidden="true">${x => x.stepInternals.position}</span></slot></div>
66249
66372
  <div class="icon-severity">
66250
- ${when(x => x.severity === Severity.error, html `<${iconExclamationMarkTag}></${iconExclamationMarkTag}>`)}
66251
- ${when(x => x.severity === Severity.warning, html `<${iconTriangleFilledTag}></${iconTriangleFilledTag}>`)}
66252
- ${when(x => x.severity === Severity.success, html `<${iconCheckTag}></${iconCheckTag}>`)}
66253
- </div>
66254
- </div>
66255
- <div class="content">
66256
- <div class="title-wrapper">
66257
- ${startSlotTemplate(context, definition)}
66258
- <div class="title"><slot name="title"></slot></div>
66259
- ${endSlotTemplate(context, definition)}
66260
- <div class="line"></div>
66261
- </div>
66262
- <div class="subtitle">
66263
- <slot name="subtitle"></slot>
66373
+ ${when(x => x.severity === Severity.error, html `<${iconExclamationMarkTag} role="img" aria-label="${x => popupIconErrorLabel.getValueFor(x)}"></${iconExclamationMarkTag}>`)}
66374
+ ${when(x => x.severity === Severity.warning, html `<${iconTriangleFilledTag} role="img" aria-label="${x => popupIconWarningLabel.getValueFor(x)}"></${iconTriangleFilledTag}>`)}
66375
+ ${when(x => x.severity === Severity.success, html `<${iconCheckTag} role="img" aria-label="${x => popupIconCompletedLabel.getValueFor(x)}"></${iconCheckTag}>`)}
66264
66376
  </div>
66265
66377
  </div>
66378
+ <div class="top-spacer"></div>
66379
+ <div class="title">${startSlotTemplate(context, definition)}<slot name="title"></slot>${endSlotTemplate(context, definition)}</div>
66380
+ <div class="line"></div>
66381
+ <div class="subtitle"><slot name="subtitle"></slot></div>
66266
66382
  </button>
66267
66383
  ${severityTextTemplate}
66268
- </div>
66384
+ </li>
66269
66385
  </template>
66270
66386
  `;
66271
66387
 
@@ -66328,7 +66444,23 @@ ${nextLine.slice(indentLevel + 2)}`;
66328
66444
 
66329
66445
  :host {
66330
66446
  border: none;
66331
- gap: 0px;
66447
+ gap: ${smallPadding};
66448
+ }
66449
+
66450
+ :host([orientation="vertical"]) {
66451
+ flex-direction: column;
66452
+ }
66453
+
66454
+ ol {
66455
+ display: contents;
66456
+ }
66457
+
66458
+ slot[name="step"]::slotted(*) {
66459
+ flex-grow: 1;
66460
+ }
66461
+
66462
+ slot[name="step"]::slotted(:last-child) {
66463
+ flex-grow: 0;
66332
66464
  }
66333
66465
  `;
66334
66466
 
@@ -66352,16 +66484,44 @@ ${nextLine.slice(indentLevel + 2)}`;
66352
66484
  ], DevicePixelRatio.prototype, "current", void 0);
66353
66485
  const devicePixelRatio = new DevicePixelRatio();
66354
66486
 
66355
- const template$w = html `
66356
- <style>:host{--ni-private-device-resolution: ${() => devicePixelRatio.current};}</style>
66357
- <slot name="step"></slot>
66358
- `;
66487
+ const template$w = html `<ol><slot
66488
+ style="--ni-private-device-pixel-ratio: ${() => devicePixelRatio.current};"
66489
+ name="step"
66490
+ ${slotted('steps')}
66491
+ ></slot></ol>`;
66359
66492
 
66360
66493
  /**
66361
66494
  * A nimble-styled stepper
66362
66495
  */
66363
66496
  class Stepper extends FoundationElement {
66497
+ constructor() {
66498
+ super(...arguments);
66499
+ this.orientation = StepperOrientation.horizontal;
66500
+ }
66501
+ orientationChanged() {
66502
+ this.updateStepInternals();
66503
+ }
66504
+ stepsChanged() {
66505
+ this.updateStepInternals();
66506
+ }
66507
+ updateStepInternals() {
66508
+ if (!this.steps) {
66509
+ return;
66510
+ }
66511
+ const lastIndex = this.steps.length - 1;
66512
+ this.steps.forEach((step, index) => {
66513
+ step.stepInternals.orientation = this.orientation;
66514
+ step.stepInternals.last = index === lastIndex;
66515
+ step.stepInternals.position = index + 1;
66516
+ });
66517
+ }
66364
66518
  }
66519
+ __decorate([
66520
+ attr
66521
+ ], Stepper.prototype, "orientation", void 0);
66522
+ __decorate([
66523
+ observable
66524
+ ], Stepper.prototype, "steps", void 0);
66365
66525
  const nimbleStepper = Stepper.compose({
66366
66526
  baseName: 'stepper',
66367
66527
  template: template$w,