@ni/nimble-components 17.0.7 → 17.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/all-components-bundle.js +447 -160
  2. package/dist/all-components-bundle.js.map +1 -1
  3. package/dist/all-components-bundle.min.js +1112 -1021
  4. package/dist/all-components-bundle.min.js.map +1 -1
  5. package/dist/esm/all-components.d.ts +2 -0
  6. package/dist/esm/all-components.js +2 -0
  7. package/dist/esm/all-components.js.map +1 -1
  8. package/dist/esm/anchor-tab/index.d.ts +20 -0
  9. package/dist/esm/anchor-tab/index.js +31 -0
  10. package/dist/esm/anchor-tab/index.js.map +1 -0
  11. package/dist/esm/{tab → anchor-tab}/styles.d.ts +0 -0
  12. package/dist/esm/anchor-tab/styles.js +13 -0
  13. package/dist/esm/anchor-tab/styles.js.map +1 -0
  14. package/dist/esm/anchor-tab/template.d.ts +4 -0
  15. package/dist/esm/anchor-tab/template.js +19 -0
  16. package/dist/esm/anchor-tab/template.js.map +1 -0
  17. package/dist/esm/anchor-tabs/index.d.ts +58 -0
  18. package/dist/esm/anchor-tabs/index.js +214 -0
  19. package/dist/esm/anchor-tabs/index.js.map +1 -0
  20. package/dist/esm/anchor-tabs/styles.d.ts +1 -0
  21. package/dist/esm/anchor-tabs/styles.js +20 -0
  22. package/dist/esm/anchor-tabs/styles.js.map +1 -0
  23. package/dist/esm/anchor-tabs/template.d.ts +4 -0
  24. package/dist/esm/anchor-tabs/template.js +10 -0
  25. package/dist/esm/anchor-tabs/template.js.map +1 -0
  26. package/dist/esm/patterns/tab/styles.d.ts +1 -0
  27. package/dist/esm/{tab → patterns/tab}/styles.js +17 -7
  28. package/dist/esm/patterns/tab/styles.js.map +1 -0
  29. package/dist/esm/tab/index.js +1 -1
  30. package/dist/esm/tab/index.js.map +1 -1
  31. package/dist/esm/wafer-map/types.d.ts +1 -0
  32. package/package.json +1 -1
  33. package/dist/esm/tab/styles.js.map +0 -1
@@ -15713,9 +15713,9 @@
15713
15713
  const prefix = 'ni-nimble';
15714
15714
  const styleNameFromTokenName = (tokenName) => `${prefix}-${tokenName}`;
15715
15715
 
15716
- const template$h = html `<slot></slot>`;
15716
+ const template$j = html `<slot></slot>`;
15717
15717
 
15718
- const styles$G = css `
15718
+ const styles$I = css `
15719
15719
  :host {
15720
15720
  display: contents;
15721
15721
  }
@@ -15771,8 +15771,8 @@
15771
15771
  ], ThemeProvider.prototype, "theme", void 0);
15772
15772
  const nimbleDesignSystemProvider = ThemeProvider.compose({
15773
15773
  baseName: 'theme-provider',
15774
- styles: styles$G,
15775
- template: template$h
15774
+ styles: styles$I,
15775
+ template: template$j
15776
15776
  });
15777
15777
  DesignSystem.getOrCreate()
15778
15778
  .withPrefix('nimble')
@@ -15931,7 +15931,7 @@
15931
15931
  }
15932
15932
  }
15933
15933
 
15934
- const styles$F = css `
15934
+ const styles$H = css `
15935
15935
  ${display('inline')}
15936
15936
 
15937
15937
  :host {
@@ -16014,7 +16014,7 @@
16014
16014
  `;
16015
16015
 
16016
16016
  // prettier-ignore
16017
- const template$g = (context, definition) => html `
16017
+ const template$i = (context, definition) => html `
16018
16018
  <a
16019
16019
  class="control"
16020
16020
  part="control"
@@ -16087,8 +16087,8 @@
16087
16087
  const nimbleAnchor = Anchor.compose({
16088
16088
  baseName: 'anchor',
16089
16089
  baseClass: Anchor$1,
16090
- template: template$g,
16091
- styles: styles$F,
16090
+ template: template$i,
16091
+ styles: styles$H,
16092
16092
  shadowOptions: {
16093
16093
  delegatesFocus: true
16094
16094
  }
@@ -16173,7 +16173,7 @@
16173
16173
  return new MultivaluePropertyStyleSheetBehavior('appearance', value, styles);
16174
16174
  }
16175
16175
 
16176
- const styles$E = css `
16176
+ const styles$G = css `
16177
16177
  ${display('inline-flex')}
16178
16178
 
16179
16179
  :host {
@@ -16454,8 +16454,8 @@
16454
16454
  }
16455
16455
  `));
16456
16456
 
16457
- const styles$D = css `
16458
- ${styles$E}
16457
+ const styles$F = css `
16458
+ ${styles$G}
16459
16459
  ${buttonAppearanceVariantStyles}
16460
16460
 
16461
16461
  .control {
@@ -16463,7 +16463,7 @@
16463
16463
  }
16464
16464
  `;
16465
16465
 
16466
- const template$f = (context, definition) => html `
16466
+ const template$h = (context, definition) => html `
16467
16467
  <a
16468
16468
  class="control"
16469
16469
  part="control"
@@ -16545,15 +16545,398 @@
16545
16545
  ], AnchorButton.prototype, "disabled", void 0);
16546
16546
  const nimbleAnchorButton = AnchorButton.compose({
16547
16547
  baseName: 'anchor-button',
16548
- template: template$f,
16549
- styles: styles$D,
16548
+ template: template$h,
16549
+ styles: styles$F,
16550
16550
  shadowOptions: {
16551
16551
  delegatesFocus: true
16552
16552
  }
16553
16553
  });
16554
16554
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorButton());
16555
16555
 
16556
+ const styles$E = css `
16557
+ ${display('inline-flex')}
16558
+
16559
+ :host {
16560
+ position: relative;
16561
+ box-sizing: border-box;
16562
+ font: ${bodyFont};
16563
+ height: ${controlHeight};
16564
+ color: ${bodyFontColor};
16565
+ align-items: center;
16566
+ justify-content: center;
16567
+ cursor: pointer;
16568
+ --ni-private-active-indicator-width: 2px;
16569
+ --ni-private-focus-indicator-width: 1px;
16570
+ --ni-private-indicator-lines-gap: 1px;
16571
+ --ni-private-focus-indicator-inset-width: 3px;
16572
+ }
16573
+
16574
+ :host(:hover) {
16575
+ background-color: ${fillHoverColor};
16576
+ }
16577
+
16578
+ :host(:hover[aria-selected='true']) {
16579
+ background-color: ${fillHoverSelectedColor};
16580
+ }
16581
+
16582
+ :host(:focus) {
16583
+ outline: none;
16584
+ }
16585
+
16586
+ :host(${focusVisible}) {
16587
+ outline: none;
16588
+ }
16589
+
16590
+ :host(:active) {
16591
+ background: none;
16592
+ }
16593
+
16594
+ :host([disabled]) {
16595
+ cursor: default;
16596
+ color: ${bodyDisabledFontColor};
16597
+ background: none;
16598
+ }
16599
+
16600
+ slot:not([name]) {
16601
+ display: block;
16602
+ padding: calc(${standardPadding} / 2) ${standardPadding}
16603
+ calc(${standardPadding} / 2 - ${borderWidth});
16604
+ }
16605
+
16606
+ :host::before {
16607
+ content: '';
16608
+ position: absolute;
16609
+ bottom: calc(
16610
+ var(--ni-private-active-indicator-width) +
16611
+ var(--ni-private-indicator-lines-gap)
16612
+ );
16613
+ width: 0px;
16614
+ height: 0px;
16615
+ border-bottom: ${borderHoverColor}
16616
+ var(--ni-private-focus-indicator-width) solid;
16617
+ transition: width ${smallDelay} ease-in;
16618
+ }
16619
+
16620
+ @media (prefers-reduced-motion) {
16621
+ :host::before {
16622
+ transition-duration: 0.01s;
16623
+ }
16624
+ }
16625
+
16626
+ :host(${focusVisible})::before {
16627
+ width: calc(100% - 2 * var(--ni-private-focus-indicator-inset-width));
16628
+ }
16629
+
16630
+ :host::after {
16631
+ content: '';
16632
+ position: absolute;
16633
+ bottom: 0px;
16634
+ width: 0px;
16635
+ height: 0px;
16636
+ border-bottom: ${borderHoverColor}
16637
+ var(--ni-private-active-indicator-width) solid;
16638
+ transition: width ${smallDelay} ease-in;
16639
+ }
16640
+
16641
+ @media (prefers-reduced-motion) {
16642
+ :host::after {
16643
+ transition-duration: 0.01s;
16644
+ }
16645
+ }
16646
+
16647
+ :host(${focusVisible})::after {
16648
+ width: 100%;
16649
+ border-bottom-width: var(--ni-private-focus-indicator-width);
16650
+ }
16651
+
16652
+ :host([aria-selected='true'])::after {
16653
+ width: 100%;
16654
+ border-bottom-width: var(--ni-private-active-indicator-width);
16655
+ }
16656
+
16657
+ :host([aria-selected='true'][disabled])::after {
16658
+ border-bottom-color: rgba(${borderHoverColor}, 0.3);
16659
+ }
16660
+ `;
16661
+
16662
+ const styles$D = css `
16663
+ ${styles$E}
16664
+
16665
+ a {
16666
+ text-decoration: none;
16667
+ color: inherit;
16668
+ cursor: inherit;
16669
+ outline: none;
16670
+ }
16671
+ `;
16672
+
16673
+ const template$g = () => html `
16674
+ <template slot="anchortab" role="tab" aria-disabled="${x => x.disabled}">
16675
+ <a
16676
+ download="${x => x.download}"
16677
+ href=${x => (x.disabled ? null : x.href)}
16678
+ hreflang="${x => x.hreflang}"
16679
+ ping="${x => x.ping}"
16680
+ referrerpolicy="${x => x.referrerpolicy}"
16681
+ rel="${x => x.rel}"
16682
+ target="${x => x.target}"
16683
+ type="${x => x.type}"
16684
+ tabindex="-1"
16685
+ >
16686
+ <slot></slot>
16687
+ </a>
16688
+ </template>
16689
+ `;
16690
+
16691
+ /**
16692
+ * A nimble-styled link tab
16693
+ */
16694
+ class AnchorTab extends AnchorBase {
16695
+ constructor() {
16696
+ super(...arguments);
16697
+ /**
16698
+ * 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.
16699
+ * @public
16700
+ * @remarks
16701
+ * HTML Attribute: disabled
16702
+ */
16703
+ this.disabled = false;
16704
+ }
16705
+ }
16706
+ __decorate$1([
16707
+ attr({ mode: 'boolean' })
16708
+ ], AnchorTab.prototype, "disabled", void 0);
16709
+ const nimbleAnchorTab = AnchorTab.compose({
16710
+ baseName: 'anchor-tab',
16711
+ template: template$g,
16712
+ styles: styles$D
16713
+ });
16714
+ DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorTab());
16715
+
16556
16716
  const styles$C = css `
16717
+ ${display('grid')}
16718
+
16719
+ :host {
16720
+ box-sizing: border-box;
16721
+ grid-template-columns: auto auto 1fr;
16722
+ grid-template-rows: auto 1fr;
16723
+ }
16724
+
16725
+ .tablist {
16726
+ display: grid;
16727
+ grid-template-rows: auto auto;
16728
+ grid-template-columns: auto;
16729
+ width: max-content;
16730
+ align-self: end;
16731
+ }
16732
+ `;
16733
+
16734
+ const template$f = (context, definition) => html `
16735
+ ${startSlotTemplate(context, definition)}
16736
+ <div ${ref('tablist')} class="tablist" part="tablist" role="tablist">
16737
+ <slot name="anchortab" ${slotted('tabs')}></slot>
16738
+ </div>
16739
+ ${endSlotTemplate(context, definition)}
16740
+ `;
16741
+
16742
+ /**
16743
+ * A nimble-styled set of anchor tabs
16744
+ */
16745
+ class AnchorTabs extends FoundationElement {
16746
+ constructor() {
16747
+ super(...arguments);
16748
+ this.tabIds = [];
16749
+ this.isDisabledElement = (el) => {
16750
+ return el.getAttribute('aria-disabled') === 'true';
16751
+ };
16752
+ this.isFocusableElement = (el) => {
16753
+ return !this.isDisabledElement(el);
16754
+ };
16755
+ this.setTabs = () => {
16756
+ const gridHorizontalProperty = 'gridColumn';
16757
+ const gridVerticalProperty = 'gridRow';
16758
+ this.activetab = undefined;
16759
+ let firstFocusableTab;
16760
+ this.tabs.forEach((tab, index) => {
16761
+ const tabId = this.tabIds[index];
16762
+ const isActiveTab = this.activeid === tabId;
16763
+ if (!firstFocusableTab && this.isFocusableElement(tab)) {
16764
+ firstFocusableTab = tab;
16765
+ }
16766
+ const isTabStop = this.activeid === tabId && this.isFocusableElement(tab);
16767
+ tab.setAttribute('id', tabId);
16768
+ tab.setAttribute('aria-selected', isActiveTab ? 'true' : 'false');
16769
+ tab.removeEventListener('click', this.handleTabClick);
16770
+ tab.addEventListener('click', this.handleTabClick);
16771
+ tab.removeEventListener('keydown', this.handleTabKeyDown);
16772
+ tab.addEventListener('keydown', this.handleTabKeyDown);
16773
+ tab.setAttribute('tabindex', isTabStop ? '0' : '-1');
16774
+ if (isActiveTab) {
16775
+ this.activetab = tab;
16776
+ }
16777
+ tab.style[gridVerticalProperty] = '';
16778
+ tab.style[gridHorizontalProperty] = `${index + 1}`;
16779
+ });
16780
+ if (firstFocusableTab
16781
+ && (!this.activetab || !this.isFocusableElement(this.activetab))) {
16782
+ firstFocusableTab.setAttribute('tabindex', '0');
16783
+ }
16784
+ };
16785
+ this.handleTabClick = (event) => {
16786
+ const selectedTab = event.currentTarget;
16787
+ if (selectedTab.nodeType === 1
16788
+ && this.isFocusableElement(selectedTab)) {
16789
+ this.tabs.forEach((tab) => {
16790
+ tab.setAttribute('tabindex', tab === selectedTab ? '0' : '-1');
16791
+ });
16792
+ }
16793
+ };
16794
+ this.handleTabKeyDown = (event) => {
16795
+ let anchor;
16796
+ switch (event.key) {
16797
+ case keyArrowLeft:
16798
+ event.preventDefault();
16799
+ this.adjustBackward();
16800
+ break;
16801
+ case keyArrowRight:
16802
+ event.preventDefault();
16803
+ this.adjustForward();
16804
+ break;
16805
+ case keyHome:
16806
+ event.preventDefault();
16807
+ this.focusFirstOrLast(false);
16808
+ break;
16809
+ case keyEnd:
16810
+ event.preventDefault();
16811
+ this.focusFirstOrLast(true);
16812
+ break;
16813
+ case keySpace:
16814
+ case keyEnter:
16815
+ event.preventDefault();
16816
+ this.getTabAnchor(event.target).click();
16817
+ break;
16818
+ case 'ContextMenu':
16819
+ event.preventDefault();
16820
+ anchor = this.getTabAnchor(event.target);
16821
+ anchor.focus();
16822
+ anchor.dispatchEvent(new KeyboardEvent('keydown', {
16823
+ key: event.key,
16824
+ bubbles: false
16825
+ }));
16826
+ break;
16827
+ // do nothing
16828
+ }
16829
+ };
16830
+ this.adjustForward = () => {
16831
+ const group = this.tabs;
16832
+ let index = 0;
16833
+ const focusedTab = group.find(x => x === document.activeElement);
16834
+ index = focusedTab ? group.indexOf(focusedTab) + 1 : 1;
16835
+ if (index === group.length) {
16836
+ index = 0;
16837
+ }
16838
+ while (index < group.length && group.length > 1) {
16839
+ if (this.isFocusableElement(group[index])) {
16840
+ this.focusTabByIndex(group, index);
16841
+ break;
16842
+ }
16843
+ else if (focusedTab && index === group.indexOf(focusedTab)) {
16844
+ break;
16845
+ }
16846
+ else if (index + 1 >= group.length) {
16847
+ index = 0;
16848
+ }
16849
+ else {
16850
+ index += 1;
16851
+ }
16852
+ }
16853
+ };
16854
+ this.adjustBackward = () => {
16855
+ const group = this.tabs;
16856
+ let index = 0;
16857
+ const focusedTab = group.find(x => x === document.activeElement);
16858
+ index = focusedTab ? group.indexOf(focusedTab) - 1 : 0;
16859
+ index = index < 0 ? group.length - 1 : index;
16860
+ while (index >= 0 && group.length > 1) {
16861
+ if (this.isFocusableElement(group[index])) {
16862
+ this.focusTabByIndex(group, index);
16863
+ break;
16864
+ }
16865
+ else if (index - 1 < 0) {
16866
+ index = group.length - 1;
16867
+ }
16868
+ else {
16869
+ index -= 1;
16870
+ }
16871
+ }
16872
+ };
16873
+ this.focusTabByIndex = (group, index) => {
16874
+ const focusedTab = group[index];
16875
+ focusedTab.focus();
16876
+ this.tabs.forEach((tab) => {
16877
+ tab.setAttribute('tabindex', tab === focusedTab ? '0' : '-1');
16878
+ });
16879
+ };
16880
+ }
16881
+ /**
16882
+ * @internal
16883
+ */
16884
+ activeidChanged(_oldValue, _newValue) {
16885
+ if (this.$fastController.isConnected) {
16886
+ this.setTabs();
16887
+ }
16888
+ }
16889
+ /**
16890
+ * @internal
16891
+ */
16892
+ tabsChanged() {
16893
+ if (this.$fastController.isConnected) {
16894
+ this.tabIds = this.getTabIds();
16895
+ this.setTabs();
16896
+ }
16897
+ }
16898
+ /**
16899
+ * @internal
16900
+ */
16901
+ connectedCallback() {
16902
+ super.connectedCallback();
16903
+ this.tabIds = this.getTabIds();
16904
+ }
16905
+ getTabIds() {
16906
+ return this.tabs.map((tab) => {
16907
+ return tab.getAttribute('id') ?? `tab-${uniqueId()}`;
16908
+ });
16909
+ }
16910
+ focusFirstOrLast(focusLast) {
16911
+ const focusableTabs = this.tabs.filter(t => !this.isDisabledElement(t));
16912
+ const focusableIndex = focusLast ? focusableTabs.length - 1 : 0;
16913
+ const index = this.tabs.indexOf(focusableTabs[focusableIndex]);
16914
+ if (index > -1) {
16915
+ this.focusTabByIndex(this.tabs, index);
16916
+ }
16917
+ }
16918
+ getTabAnchor(tab) {
16919
+ return tab.shadowRoot.querySelector('a');
16920
+ }
16921
+ }
16922
+ __decorate$1([
16923
+ attr
16924
+ ], AnchorTabs.prototype, "activeid", void 0);
16925
+ __decorate$1([
16926
+ observable
16927
+ ], AnchorTabs.prototype, "tabs", void 0);
16928
+ applyMixins(AnchorTabs, StartEnd);
16929
+ const nimbleAnchorTabs = AnchorTabs.compose({
16930
+ baseName: 'anchor-tabs',
16931
+ template: template$f,
16932
+ styles: styles$C,
16933
+ shadowOptions: {
16934
+ delegatesFocus: false
16935
+ }
16936
+ });
16937
+ DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorTabs());
16938
+
16939
+ const styles$B = css `
16557
16940
  :host {
16558
16941
  contain: layout;
16559
16942
  display: block;
@@ -16577,13 +16960,13 @@
16577
16960
  baseName: 'anchored-region',
16578
16961
  baseClass: AnchoredRegion$1,
16579
16962
  template: anchoredRegionTemplate,
16580
- styles: styles$C
16963
+ styles: styles$B
16581
16964
  });
16582
16965
  DesignSystem.getOrCreate()
16583
16966
  .withPrefix('nimble')
16584
16967
  .register(nimbleAnchoredRegion());
16585
16968
 
16586
- const styles$B = css `
16969
+ const styles$A = css `
16587
16970
  ${display('inline-block')}
16588
16971
 
16589
16972
  :host {
@@ -16624,7 +17007,7 @@
16624
17007
  baseName: 'breadcrumb',
16625
17008
  baseClass: Breadcrumb$1,
16626
17009
  template: breadcrumbTemplate,
16627
- styles: styles$B
17010
+ styles: styles$A
16628
17011
  });
16629
17012
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleBreadcrumb());
16630
17013
 
@@ -17230,7 +17613,7 @@
17230
17613
  data: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path class="cls-1" d="M8.033 14.026L4.9 10.866 6.277 9.53l1.744 1.81 4.562-4.507 1.307 1.363zm1.155-10.68l-1.321-1.32-2.312 2.311-2.311-2.311-1.321 1.32 2.311 2.312L1.923 7.97l1.32 1.32 2.312-2.31 2.312 2.31 1.32-1.32-2.31-2.312z"/></svg>`
17231
17614
  };
17232
17615
 
17233
- const styles$A = css `
17616
+ const styles$z = css `
17234
17617
  ${display('inline-flex')}
17235
17618
 
17236
17619
  :host {
@@ -17309,15 +17692,15 @@
17309
17692
  baseName: 'breadcrumb-item',
17310
17693
  baseClass: BreadcrumbItem$1,
17311
17694
  template: breadcrumbItemTemplate,
17312
- styles: styles$A,
17695
+ styles: styles$z,
17313
17696
  separator: forwardSlash16X16.data
17314
17697
  });
17315
17698
  DesignSystem.getOrCreate()
17316
17699
  .withPrefix('nimble')
17317
17700
  .register(nimbleBreadcrumbItem());
17318
17701
 
17319
- const styles$z = css `
17320
- ${styles$E}
17702
+ const styles$y = css `
17703
+ ${styles$G}
17321
17704
  ${buttonAppearanceVariantStyles}
17322
17705
  `;
17323
17706
 
@@ -17363,7 +17746,7 @@
17363
17746
  baseName: 'button',
17364
17747
  baseClass: Button$1,
17365
17748
  template: buttonTemplate,
17366
- styles: styles$z,
17749
+ styles: styles$y,
17367
17750
  shadowOptions: {
17368
17751
  delegatesFocus: true
17369
17752
  }
@@ -17443,7 +17826,7 @@
17443
17826
  */
17444
17827
  const themeBehavior = (theme, styles) => new ThemeStyleSheetBehavior(theme, styles);
17445
17828
 
17446
- const styles$y = css `
17829
+ const styles$x = css `
17447
17830
  ${display('inline-flex')}
17448
17831
 
17449
17832
  :host {
@@ -17602,14 +17985,14 @@
17602
17985
  const nimbleCardButton = CardButton.compose({
17603
17986
  baseName: 'card-button',
17604
17987
  template: buttonTemplate,
17605
- styles: styles$y,
17988
+ styles: styles$x,
17606
17989
  shadowOptions: {
17607
17990
  delegatesFocus: true
17608
17991
  }
17609
17992
  });
17610
17993
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCardButton());
17611
17994
 
17612
- const styles$x = css `
17995
+ const styles$w = css `
17613
17996
  ${display('inline-flex')}
17614
17997
 
17615
17998
  :host {
@@ -17727,14 +18110,14 @@
17727
18110
  baseName: 'checkbox',
17728
18111
  baseClass: Checkbox$1,
17729
18112
  template: checkboxTemplate,
17730
- styles: styles$x,
18113
+ styles: styles$w,
17731
18114
  checkedIndicator: check16X16.data,
17732
18115
  indeterminateIndicator: minus16X16.data
17733
18116
  });
17734
18117
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCheckbox());
17735
18118
 
17736
- const styles$w = css `
17737
- ${styles$E}
18119
+ const styles$v = css `
18120
+ ${styles$G}
17738
18121
 
17739
18122
  .control[aria-pressed='true'] {
17740
18123
  background-color: ${fillSelectedColor};
@@ -17836,7 +18219,7 @@
17836
18219
  const nimbleToggleButton = ToggleButton.compose({
17837
18220
  baseName: 'toggle-button',
17838
18221
  template: template$e,
17839
- styles: styles$w,
18222
+ styles: styles$v,
17840
18223
  shadowOptions: {
17841
18224
  delegatesFocus: true
17842
18225
  }
@@ -17855,7 +18238,7 @@
17855
18238
  </template
17856
18239
  `;
17857
18240
 
17858
- const styles$v = css `
18241
+ const styles$u = css `
17859
18242
  ${display('inline-flex')}
17860
18243
 
17861
18244
  :host {
@@ -17909,7 +18292,7 @@
17909
18292
  const composedIcon = iconClass.compose({
17910
18293
  baseName,
17911
18294
  template: template$d,
17912
- styles: styles$v,
18295
+ styles: styles$u,
17913
18296
  baseClass: iconClass
17914
18297
  });
17915
18298
  DesignSystem.getOrCreate().withPrefix('nimble').register(composedIcon());
@@ -17943,7 +18326,7 @@
17943
18326
  block: 'block'
17944
18327
  };
17945
18328
 
17946
- const styles$u = css `
18329
+ const styles$t = css `
17947
18330
  ${display('inline-flex')}
17948
18331
 
17949
18332
  :host {
@@ -18171,7 +18554,7 @@
18171
18554
  }
18172
18555
  `));
18173
18556
 
18174
- const styles$t = css `
18557
+ const styles$s = css `
18175
18558
  .error-icon {
18176
18559
  display: none;
18177
18560
  }
@@ -18209,9 +18592,9 @@
18209
18592
  }
18210
18593
  `;
18211
18594
 
18212
- const styles$s = css `
18213
- ${styles$u}
18595
+ const styles$r = css `
18214
18596
  ${styles$t}
18597
+ ${styles$s}
18215
18598
 
18216
18599
  :host {
18217
18600
  --ni-private-hover-bottom-border-width: 2px;
@@ -18447,7 +18830,7 @@
18447
18830
  baseName: 'combobox',
18448
18831
  baseClass: Combobox$1,
18449
18832
  template: comboboxTemplate,
18450
- styles: styles$s,
18833
+ styles: styles$r,
18451
18834
  shadowOptions: {
18452
18835
  delegatesFocus: true
18453
18836
  },
@@ -18491,7 +18874,7 @@
18491
18874
  */
18492
18875
  const UserDismissed = Symbol('user dismissed');
18493
18876
 
18494
- const styles$r = css `
18877
+ const styles$q = css `
18495
18878
  ${display('grid')}
18496
18879
 
18497
18880
  dialog {
@@ -18734,12 +19117,12 @@
18734
19117
  const nimbleDialog = Dialog.compose({
18735
19118
  baseName: 'dialog',
18736
19119
  template: template$c,
18737
- styles: styles$r,
19120
+ styles: styles$q,
18738
19121
  baseClass: Dialog
18739
19122
  });
18740
19123
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleDialog());
18741
19124
 
18742
- const styles$q = css `
19125
+ const styles$p = css `
18743
19126
  ${display('block')}
18744
19127
 
18745
19128
  :host {
@@ -19007,7 +19390,7 @@
19007
19390
  const nimbleDrawer = Drawer.compose({
19008
19391
  baseName: 'drawer',
19009
19392
  template: template$b,
19010
- styles: styles$q
19393
+ styles: styles$p
19011
19394
  });
19012
19395
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleDrawer());
19013
19396
 
@@ -20639,7 +21022,7 @@
20639
21022
  }
20640
21023
  registerIcon('icon-xmark-check', IconXmarkCheck);
20641
21024
 
20642
- const styles$p = css `
21025
+ const styles$o = css `
20643
21026
  ${display('flex')}
20644
21027
 
20645
21028
  :host {
@@ -20719,11 +21102,11 @@
20719
21102
  baseName: 'list-option',
20720
21103
  baseClass: ListboxOption,
20721
21104
  template: listboxOptionTemplate,
20722
- styles: styles$p
21105
+ styles: styles$o
20723
21106
  });
20724
21107
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleListOption());
20725
21108
 
20726
- const styles$o = css `
21109
+ const styles$n = css `
20727
21110
  ${display('grid')}
20728
21111
 
20729
21112
  :host {
@@ -20790,11 +21173,11 @@
20790
21173
  baseName: 'menu',
20791
21174
  baseClass: Menu$1,
20792
21175
  template: menuTemplate,
20793
- styles: styles$o
21176
+ styles: styles$n
20794
21177
  });
20795
21178
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleMenu());
20796
21179
 
20797
- const styles$n = css `
21180
+ const styles$m = css `
20798
21181
  ${display('inline-block')}
20799
21182
 
20800
21183
  :host {
@@ -21022,14 +21405,14 @@
21022
21405
  const nimbleMenuButton = MenuButton.compose({
21023
21406
  baseName: 'menu-button',
21024
21407
  template: template$a,
21025
- styles: styles$n,
21408
+ styles: styles$m,
21026
21409
  shadowOptions: {
21027
21410
  delegatesFocus: true
21028
21411
  }
21029
21412
  });
21030
21413
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleMenuButton());
21031
21414
 
21032
- const styles$m = css `
21415
+ const styles$l = css `
21033
21416
  ${display('grid')}
21034
21417
 
21035
21418
  :host {
@@ -21127,7 +21510,7 @@
21127
21510
  baseName: 'menu-item',
21128
21511
  baseClass: MenuItem$1,
21129
21512
  template: menuItemTemplate,
21130
- styles: styles$m,
21513
+ styles: styles$l,
21131
21514
  expandCollapseGlyph: arrowExpanderRight16X16.data
21132
21515
  });
21133
21516
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleMenuItem());
@@ -21141,9 +21524,9 @@
21141
21524
  block: 'block'
21142
21525
  };
21143
21526
 
21144
- const styles$l = css `
21527
+ const styles$k = css `
21145
21528
  ${display('inline-block')}
21146
- ${styles$t}
21529
+ ${styles$s}
21147
21530
 
21148
21531
  :host {
21149
21532
  font: ${bodyFont};
@@ -21357,7 +21740,7 @@
21357
21740
  baseName: 'number-field',
21358
21741
  baseClass: NumberField$1,
21359
21742
  template: numberFieldTemplate,
21360
- styles: styles$l,
21743
+ styles: styles$k,
21361
21744
  shadowOptions: {
21362
21745
  delegatesFocus: true
21363
21746
  },
@@ -21398,7 +21781,7 @@
21398
21781
  });
21399
21782
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleNumberField());
21400
21783
 
21401
- const styles$k = css `
21784
+ const styles$j = css `
21402
21785
  ${display('inline-flex')}
21403
21786
 
21404
21787
  :host {
@@ -21498,12 +21881,12 @@
21498
21881
  baseName: 'radio',
21499
21882
  baseClass: Radio$1,
21500
21883
  template: radioTemplate,
21501
- styles: styles$k,
21884
+ styles: styles$j,
21502
21885
  checkedIndicator: circleFilled16X16.data
21503
21886
  });
21504
21887
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleRadio());
21505
21888
 
21506
- const styles$j = css `
21889
+ const styles$i = css `
21507
21890
  ${display('inline-block')}
21508
21891
 
21509
21892
  .positioning-region {
@@ -21538,16 +21921,16 @@
21538
21921
  baseName: 'radio-group',
21539
21922
  baseClass: RadioGroup$1,
21540
21923
  template: radioGroupTemplate,
21541
- styles: styles$j,
21924
+ styles: styles$i,
21542
21925
  shadowOptions: {
21543
21926
  delegatesFocus: true
21544
21927
  }
21545
21928
  });
21546
21929
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleRadioGroup());
21547
21930
 
21548
- const styles$i = css `
21549
- ${styles$u}
21931
+ const styles$h = css `
21550
21932
  ${styles$t}
21933
+ ${styles$s}
21551
21934
 
21552
21935
  ${
21553
21936
  /* We are using flex `order` to define the visual ordering of the selected value,
@@ -21623,7 +22006,7 @@
21623
22006
  baseName: 'select',
21624
22007
  baseClass: Select$1,
21625
22008
  template: selectTemplate,
21626
- styles: styles$i,
22009
+ styles: styles$h,
21627
22010
  indicator: arrowExpanderDown16X16.data,
21628
22011
  end: html `
21629
22012
  <${DesignSystem.tagFor(IconExclamationMark)}
@@ -21635,7 +22018,7 @@
21635
22018
  });
21636
22019
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSelect());
21637
22020
 
21638
- const styles$h = css `
22021
+ const styles$g = css `
21639
22022
  ${display('inline-flex')}
21640
22023
 
21641
22024
  :host {
@@ -21797,11 +22180,11 @@
21797
22180
  const nimbleSpinner = Spinner.compose({
21798
22181
  baseName: 'spinner',
21799
22182
  template: template$9,
21800
- styles: styles$h
22183
+ styles: styles$g
21801
22184
  });
21802
22185
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSpinner());
21803
22186
 
21804
- const styles$g = css `
22187
+ const styles$f = css `
21805
22188
  ${display('inline-flex')}
21806
22189
 
21807
22190
  :host {
@@ -22009,106 +22392,10 @@
22009
22392
  baseClass: Switch$1,
22010
22393
  baseName: 'switch',
22011
22394
  template: template$8,
22012
- styles: styles$g
22395
+ styles: styles$f
22013
22396
  });
22014
22397
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSwitch());
22015
22398
 
22016
- const styles$f = css `
22017
- ${display('inline-flex')}
22018
-
22019
- :host {
22020
- position: relative;
22021
- box-sizing: border-box;
22022
- font: ${bodyFont};
22023
- height: ${controlHeight};
22024
- color: ${bodyFontColor};
22025
- align-items: center;
22026
- justify-content: center;
22027
- cursor: pointer;
22028
- --ni-private-active-indicator-width: 2px;
22029
- --ni-private-focus-indicator-width: 1px;
22030
- --ni-private-indicator-lines-gap: 1px;
22031
- --ni-private-focus-indicator-inset-width: 3px;
22032
- }
22033
-
22034
- :host(:hover) {
22035
- background-color: ${fillHoverColor};
22036
- }
22037
-
22038
- :host(:focus) {
22039
- outline: none;
22040
- }
22041
-
22042
- :host(:focus:hover) {
22043
- background-color: ${fillHoverSelectedColor};
22044
- }
22045
-
22046
- :host(${focusVisible}) {
22047
- outline: none;
22048
- }
22049
-
22050
- :host(:active) {
22051
- background: none;
22052
- }
22053
-
22054
- :host([disabled]) {
22055
- cursor: default;
22056
- color: ${bodyDisabledFontColor};
22057
- background: none;
22058
- }
22059
-
22060
- slot {
22061
- display: block;
22062
- padding: calc(${standardPadding} / 2) ${standardPadding}
22063
- calc(${standardPadding} / 2 - ${borderWidth});
22064
- }
22065
-
22066
- :host::before {
22067
- content: '';
22068
- position: absolute;
22069
- bottom: calc(
22070
- var(--ni-private-active-indicator-width) +
22071
- var(--ni-private-indicator-lines-gap)
22072
- );
22073
- width: 0px;
22074
- height: 0px;
22075
- border-bottom: ${borderHoverColor}
22076
- var(--ni-private-focus-indicator-width) solid;
22077
- transition: width ${smallDelay} ease-in;
22078
- }
22079
-
22080
- @media (prefers-reduced-motion) {
22081
- :host::before {
22082
- transition-duration: 0.01s;
22083
- }
22084
- }
22085
-
22086
- :host(${focusVisible})::before {
22087
- width: calc(100% - 2 * var(--ni-private-focus-indicator-inset-width));
22088
- }
22089
-
22090
- :host::after {
22091
- content: '';
22092
- position: absolute;
22093
- bottom: 0px;
22094
- width: 0px;
22095
- height: 0px;
22096
- border-bottom: ${borderHoverColor}
22097
- var(--ni-private-active-indicator-width) solid;
22098
- transition: width ${smallDelay} ease-in;
22099
- }
22100
-
22101
- @media (prefers-reduced-motion) {
22102
- :host::after {
22103
- transition-duration: 0.01s;
22104
- }
22105
- }
22106
-
22107
- :host([aria-selected='true'])::after {
22108
- width: 100%;
22109
- }
22110
- `;
22111
-
22112
22399
  /**
22113
22400
  * A nimble-styled HTML tab
22114
22401
  */
@@ -22118,7 +22405,7 @@
22118
22405
  baseName: 'tab',
22119
22406
  baseClass: Tab$1,
22120
22407
  template: tabTemplate,
22121
- styles: styles$f
22408
+ styles: styles$E
22122
22409
  });
22123
22410
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTab());
22124
22411
 
@@ -25850,7 +26137,7 @@
25850
26137
 
25851
26138
  const styles$5 = css `
25852
26139
  ${display('inline-block')}
25853
- ${styles$t}
26140
+ ${styles$s}
25854
26141
 
25855
26142
  :host {
25856
26143
  font: ${bodyFont};