@ni/nimble-components 35.5.7 → 35.6.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.
@@ -14898,9 +14898,9 @@
14898
14898
  const prefix = 'ni-nimble';
14899
14899
  const styleNameFromTokenName = (tokenName) => `${prefix}-${tokenName}`;
14900
14900
 
14901
- const template$R = html `<slot></slot>`;
14901
+ const template$S = html `<slot></slot>`;
14902
14902
 
14903
- const styles$16 = css `
14903
+ const styles$17 = css `
14904
14904
  ${display('contents')}
14905
14905
  `;
14906
14906
 
@@ -15015,8 +15015,8 @@
15015
15015
  ], ThemeProvider.prototype, "theme", void 0);
15016
15016
  const nimbleDesignSystemProvider = ThemeProvider.compose({
15017
15017
  baseName: 'theme-provider',
15018
- styles: styles$16,
15019
- template: template$R
15018
+ styles: styles$17,
15019
+ template: template$S
15020
15020
  });
15021
15021
  DesignSystem.getOrCreate()
15022
15022
  .withPrefix('nimble')
@@ -16658,7 +16658,7 @@
16658
16658
  }
16659
16659
  // #endregion
16660
16660
 
16661
- const styles$15 = css `
16661
+ const styles$16 = css `
16662
16662
  @layer base, hover, focusVisible, active, disabled, top;
16663
16663
 
16664
16664
  @layer base {
@@ -16736,7 +16736,7 @@
16736
16736
  }
16737
16737
  `;
16738
16738
 
16739
- const template$Q = (_context, definition) => html `${
16739
+ const template$R = (_context, definition) => html `${
16740
16740
  /* top-container div is necessary because setting contenteditable directly on the native anchor instead
16741
16741
  leaves it focusable, unlike the behavior you get when the anchor is _within_ a contenteditable element.
16742
16742
  */ ''}<div
@@ -16839,8 +16839,8 @@
16839
16839
  const nimbleAnchor = Anchor.compose({
16840
16840
  baseName: 'anchor',
16841
16841
  baseClass: Anchor$1,
16842
- template: template$Q,
16843
- styles: styles$15,
16842
+ template: template$R,
16843
+ styles: styles$16,
16844
16844
  shadowOptions: {
16845
16845
  delegatesFocus: true
16846
16846
  }
@@ -16949,7 +16949,7 @@
16949
16949
  padding: 0;
16950
16950
  `;
16951
16951
 
16952
- const styles$14 = css `
16952
+ const styles$15 = css `
16953
16953
  @layer base, checked, hover, focusVisible, active, disabled, top;
16954
16954
 
16955
16955
  @layer base {
@@ -17233,8 +17233,8 @@
17233
17233
  }
17234
17234
  `));
17235
17235
 
17236
- const styles$13 = css `
17237
- ${styles$14}
17236
+ const styles$14 = css `
17237
+ ${styles$15}
17238
17238
  ${buttonAppearanceVariantStyles}
17239
17239
 
17240
17240
  .control {
@@ -17254,7 +17254,7 @@
17254
17254
  }
17255
17255
  `;
17256
17256
 
17257
- const template$P = (context, definition) => html `
17257
+ const template$Q = (context, definition) => html `
17258
17258
  <a
17259
17259
  class="control"
17260
17260
  part="control"
@@ -17336,8 +17336,8 @@
17336
17336
  ], AnchorButton.prototype, "disabled", void 0);
17337
17337
  const nimbleAnchorButton = AnchorButton.compose({
17338
17338
  baseName: 'anchor-button',
17339
- template: template$P,
17340
- styles: styles$13,
17339
+ template: template$Q,
17340
+ styles: styles$14,
17341
17341
  shadowOptions: {
17342
17342
  delegatesFocus: true
17343
17343
  }
@@ -17345,7 +17345,7 @@
17345
17345
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorButton());
17346
17346
  const anchorButtonTag = 'nimble-anchor-button';
17347
17347
 
17348
- const styles$12 = css `
17348
+ const styles$13 = css `
17349
17349
  ${display('grid')}
17350
17350
 
17351
17351
  :host {
@@ -17428,7 +17428,7 @@
17428
17428
  }
17429
17429
  `;
17430
17430
 
17431
- const template$O = (context, definition) => html `
17431
+ const template$P = (context, definition) => html `
17432
17432
  <template
17433
17433
  role="menuitem"
17434
17434
  class="${x => (typeof x.startColumnCount === 'number'
@@ -17529,8 +17529,8 @@
17529
17529
  // FoundationAnchor already applies the StartEnd mixin, so we don't need to do it here.
17530
17530
  const nimbleAnchorMenuItem = AnchorMenuItem.compose({
17531
17531
  baseName: 'anchor-menu-item',
17532
- template: template$O,
17533
- styles: styles$12,
17532
+ template: template$P,
17533
+ styles: styles$13,
17534
17534
  shadowOptions: {
17535
17535
  delegatesFocus: true
17536
17536
  }
@@ -17542,7 +17542,7 @@
17542
17542
 
17543
17543
  // These styles end up inside a @layer block so must use the
17544
17544
  // cssPartial tag instead of the css tag
17545
- const styles$11 = cssPartial `
17545
+ const styles$12 = cssPartial `
17546
17546
  .severity-text {
17547
17547
  display: none;
17548
17548
  font: ${errorTextFont};
@@ -17652,12 +17652,12 @@
17652
17652
  const themeBehavior = (theme, styles) => new ThemeStyleSheetBehavior(theme, styles);
17653
17653
  /* eslint-enable max-classes-per-file */
17654
17654
 
17655
- const styles$10 = css `
17655
+ const styles$11 = css `
17656
17656
  @layer base, hover, focusVisible, active, disabled, top;
17657
17657
 
17658
17658
  @layer base {
17659
17659
  ${display('inline-flex')}
17660
- ${styles$11}
17660
+ ${styles$12}
17661
17661
  :host {
17662
17662
  color: ${buttonLabelFontColor};
17663
17663
  font: ${buttonLabelFont};
@@ -18203,8 +18203,8 @@ Defines an interaction area clip-path that leaves out the severity text so it is
18203
18203
  }
18204
18204
  `));
18205
18205
 
18206
- const styles$$ = css `
18207
- ${styles$10}
18206
+ const styles$10 = css `
18207
+ ${styles$11}
18208
18208
  ${'' /* Anchor specific styles */}
18209
18209
  @layer base {
18210
18210
  .control {
@@ -19247,13 +19247,13 @@ Defines an interaction area clip-path that leaves out the severity text so it is
19247
19247
  };
19248
19248
 
19249
19249
  // Avoiding any whitespace in the template because this is an inline element
19250
- const template$N = html `<div
19250
+ const template$O = html `<div
19251
19251
  class="icon"
19252
19252
  aria-hidden="true"
19253
19253
  :innerHTML=${x => x.icon.data}
19254
19254
  ></div>`;
19255
19255
 
19256
- const styles$_ = css `
19256
+ const styles$$ = css `
19257
19257
  ${display('inline-flex')}
19258
19258
 
19259
19259
  :host {
@@ -19316,8 +19316,8 @@ Defines an interaction area clip-path that leaves out the severity text so it is
19316
19316
  const registerIconSvg = (baseName, iconClass) => {
19317
19317
  const composedIcon = iconClass.compose({
19318
19318
  baseName,
19319
- template: template$N,
19320
- styles: styles$_
19319
+ template: template$O,
19320
+ styles: styles$$
19321
19321
  });
19322
19322
  DesignSystem.getOrCreate().withPrefix('nimble').register(composedIcon());
19323
19323
  };
@@ -19363,8 +19363,8 @@ Defines an interaction area clip-path that leaves out the severity text so it is
19363
19363
 
19364
19364
  const coreLabelDefaults = {
19365
19365
  popupDismissLabel: 'Close',
19366
- numericIncrementLabel: 'Increment',
19367
19366
  numericDecrementLabel: 'Decrement',
19367
+ numericIncrementLabel: 'Increment',
19368
19368
  popupIconErrorLabel: 'Error',
19369
19369
  popupIconWarningLabel: 'Warning',
19370
19370
  popupIconCompletedLabel: 'Completed',
@@ -19441,7 +19441,7 @@ Defines an interaction area clip-path that leaves out the severity text so it is
19441
19441
  */
19442
19442
  const StepperOrientation = Orientation;
19443
19443
 
19444
- const template$M = (context, definition) => html `
19444
+ const template$N = (context, definition) => html `
19445
19445
  <template slot="step">
19446
19446
  <li class="
19447
19447
  container
@@ -19587,15 +19587,15 @@ Defines an interaction area clip-path that leaves out the severity text so it is
19587
19587
  ], AnchorStep.prototype, "tabIndex", void 0);
19588
19588
  const nimbleAnchorStep = AnchorStep.compose({
19589
19589
  baseName: 'anchor-step',
19590
- template: template$M,
19591
- styles: styles$$,
19590
+ template: template$N,
19591
+ styles: styles$10,
19592
19592
  shadowOptions: {
19593
19593
  delegatesFocus: true
19594
19594
  }
19595
19595
  });
19596
19596
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorStep());
19597
19597
 
19598
- const styles$Z = css `
19598
+ const styles$_ = css `
19599
19599
  ${display('inline-flex')}
19600
19600
 
19601
19601
  :host {
@@ -19712,7 +19712,7 @@ Defines an interaction area clip-path that leaves out the severity text so it is
19712
19712
  }
19713
19713
  `;
19714
19714
 
19715
- const template$L = (context, definition) => html `
19715
+ const template$M = (context, definition) => html `
19716
19716
  <template slot="anchortab" role="tab" aria-disabled="${x => x.disabled}">
19717
19717
  <a
19718
19718
  download="${x => x.download}"
@@ -19764,15 +19764,15 @@ Defines an interaction area clip-path that leaves out the severity text so it is
19764
19764
  // FoundationAnchor already applies the StartEnd mixin, so we don't need to do it here.
19765
19765
  const nimbleAnchorTab = AnchorTab.compose({
19766
19766
  baseName: 'anchor-tab',
19767
- template: template$L,
19768
- styles: styles$Z,
19767
+ template: template$M,
19768
+ styles: styles$_,
19769
19769
  shadowOptions: {
19770
19770
  delegatesFocus: true
19771
19771
  }
19772
19772
  });
19773
19773
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorTab());
19774
19774
 
19775
- const styles$Y = css `
19775
+ const styles$Z = css `
19776
19776
  ${display('flex')}
19777
19777
 
19778
19778
  :host {
@@ -19812,12 +19812,12 @@ Defines an interaction area clip-path that leaves out the severity text so it is
19812
19812
  }
19813
19813
  `;
19814
19814
 
19815
- const styles$X = css `
19816
- ${styles$14}
19815
+ const styles$Y = css `
19816
+ ${styles$15}
19817
19817
  ${buttonAppearanceVariantStyles}
19818
19818
  `;
19819
19819
 
19820
- const template$K = (context, definition) => html `
19820
+ const template$L = (context, definition) => html `
19821
19821
  <button
19822
19822
  class="control"
19823
19823
  part="control"
@@ -19908,8 +19908,8 @@ Defines an interaction area clip-path that leaves out the severity text so it is
19908
19908
  const nimbleButton = Button.compose({
19909
19909
  baseName: 'button',
19910
19910
  baseClass: Button$1,
19911
- template: template$K,
19912
- styles: styles$X,
19911
+ template: template$L,
19912
+ styles: styles$Y,
19913
19913
  shadowOptions: {
19914
19914
  delegatesFocus: true
19915
19915
  }
@@ -19943,7 +19943,7 @@ Defines an interaction area clip-path that leaves out the severity text so it is
19943
19943
  registerIconSvg('icon-arrow-expander-right', IconArrowExpanderRight);
19944
19944
  const iconArrowExpanderRightTag = 'nimble-icon-arrow-expander-right';
19945
19945
 
19946
- const template$J = (context, definition) => html `
19946
+ const template$K = (context, definition) => html `
19947
19947
  <div
19948
19948
  class="tab-bar"
19949
19949
  >
@@ -20244,15 +20244,15 @@ Defines an interaction area clip-path that leaves out the severity text so it is
20244
20244
  applyMixins(AnchorTabs, StartEnd);
20245
20245
  const nimbleAnchorTabs = AnchorTabs.compose({
20246
20246
  baseName: 'anchor-tabs',
20247
- template: template$J,
20248
- styles: styles$Y,
20247
+ template: template$K,
20248
+ styles: styles$Z,
20249
20249
  shadowOptions: {
20250
20250
  delegatesFocus: false
20251
20251
  }
20252
20252
  });
20253
20253
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorTabs());
20254
20254
 
20255
- const styles$W = css `
20255
+ const styles$X = css `
20256
20256
  ${display('block')}
20257
20257
 
20258
20258
  :host {
@@ -20357,7 +20357,7 @@ Defines an interaction area clip-path that leaves out the severity text so it is
20357
20357
  }
20358
20358
  `;
20359
20359
 
20360
- const template$I = (context, definition) => html `
20360
+ const template$J = (context, definition) => html `
20361
20361
  <template
20362
20362
  role="treeitem"
20363
20363
  slot="${x => (x.isNestedItem() ? 'item' : null)}"
@@ -20494,8 +20494,8 @@ Defines an interaction area clip-path that leaves out the severity text so it is
20494
20494
  // FoundationAnchor already applies the StartEnd mixin, so we don't need to do it here.
20495
20495
  const nimbleAnchorTreeItem = AnchorTreeItem.compose({
20496
20496
  baseName: 'anchor-tree-item',
20497
- template: template$I,
20498
- styles: styles$W,
20497
+ template: template$J,
20498
+ styles: styles$X,
20499
20499
  shadowOptions: {
20500
20500
  delegatesFocus: true
20501
20501
  }
@@ -20511,7 +20511,7 @@ Defines an interaction area clip-path that leaves out the severity text so it is
20511
20511
  zIndex1000: '1000'
20512
20512
  };
20513
20513
 
20514
- const styles$V = css `
20514
+ const styles$W = css `
20515
20515
  ${display('block')}
20516
20516
 
20517
20517
  :host {
@@ -20542,14 +20542,14 @@ Defines an interaction area clip-path that leaves out the severity text so it is
20542
20542
  baseName: 'anchored-region',
20543
20543
  baseClass: AnchoredRegion$1,
20544
20544
  template: anchoredRegionTemplate,
20545
- styles: styles$V
20545
+ styles: styles$W
20546
20546
  });
20547
20547
  DesignSystem.getOrCreate()
20548
20548
  .withPrefix('nimble')
20549
20549
  .register(nimbleAnchoredRegion());
20550
20550
  const anchoredRegionTag = 'nimble-anchored-region';
20551
20551
 
20552
- const styles$U = css `
20552
+ const styles$V = css `
20553
20553
  ${display('flex')}
20554
20554
 
20555
20555
  :host {
@@ -20701,7 +20701,7 @@ Defines an interaction area clip-path that leaves out the severity text so it is
20701
20701
  information: 'information'
20702
20702
  };
20703
20703
 
20704
- const template$H = html `
20704
+ const template$I = html `
20705
20705
  <${themeProviderTag} theme="${Theme.color}">
20706
20706
  <div class="container"
20707
20707
  role="status"
@@ -20819,8 +20819,8 @@ Defines an interaction area clip-path that leaves out the severity text so it is
20819
20819
  applyMixins(Banner, ARIAGlobalStatesAndProperties);
20820
20820
  const nimbleBanner = Banner.compose({
20821
20821
  baseName: 'banner',
20822
- template: template$H,
20823
- styles: styles$U
20822
+ template: template$I,
20823
+ styles: styles$V
20824
20824
  });
20825
20825
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleBanner());
20826
20826
 
@@ -20861,7 +20861,7 @@ Defines an interaction area clip-path that leaves out the severity text so it is
20861
20861
  </template>
20862
20862
  `;
20863
20863
 
20864
- const styles$T = css `
20864
+ const styles$U = css `
20865
20865
  ${display('inline-flex')}
20866
20866
 
20867
20867
  :host {
@@ -20965,11 +20965,11 @@ Defines an interaction area clip-path that leaves out the severity text so it is
20965
20965
  baseName: 'breadcrumb',
20966
20966
  baseClass: Breadcrumb$1,
20967
20967
  template: breadcrumbTemplate,
20968
- styles: styles$T
20968
+ styles: styles$U
20969
20969
  });
20970
20970
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleBreadcrumb());
20971
20971
 
20972
- const styles$S = css `
20972
+ const styles$T = css `
20973
20973
  @layer base, hover, focusVisible, active, disabled, top;
20974
20974
 
20975
20975
  @layer base {
@@ -21066,14 +21066,14 @@ so this becomes the fallback color for the slot */ ''}
21066
21066
  baseName: 'breadcrumb-item',
21067
21067
  baseClass: BreadcrumbItem$1,
21068
21068
  template: breadcrumbItemTemplate,
21069
- styles: styles$S,
21069
+ styles: styles$T,
21070
21070
  separator: forwardSlash16X16.data
21071
21071
  });
21072
21072
  DesignSystem.getOrCreate()
21073
21073
  .withPrefix('nimble')
21074
21074
  .register(nimbleBreadcrumbItem());
21075
21075
 
21076
- const styles$R = css `
21076
+ const styles$S = css `
21077
21077
  ${display('flex')}
21078
21078
 
21079
21079
  :host {
@@ -21097,7 +21097,7 @@ so this becomes the fallback color for the slot */ ''}
21097
21097
  }
21098
21098
  `;
21099
21099
 
21100
- const template$G = html `
21100
+ const template$H = html `
21101
21101
  <section aria-labelledby="title-slot">
21102
21102
  <span id="title-slot"><slot name="title"></slot></span>
21103
21103
  <slot></slot>
@@ -21112,12 +21112,12 @@ so this becomes the fallback color for the slot */ ''}
21112
21112
  const nimbleCard = Card.compose({
21113
21113
  baseName: 'card',
21114
21114
  baseClass: Card$1,
21115
- template: template$G,
21116
- styles: styles$R
21115
+ template: template$H,
21116
+ styles: styles$S
21117
21117
  });
21118
21118
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCard());
21119
21119
 
21120
- const styles$Q = css `
21120
+ const styles$R = css `
21121
21121
  ${display('inline-flex')}
21122
21122
 
21123
21123
  :host {
@@ -21275,14 +21275,14 @@ so this becomes the fallback color for the slot */ ''}
21275
21275
  const nimbleCardButton = CardButton.compose({
21276
21276
  baseName: 'card-button',
21277
21277
  template: buttonTemplate,
21278
- styles: styles$Q,
21278
+ styles: styles$R,
21279
21279
  shadowOptions: {
21280
21280
  delegatesFocus: true
21281
21281
  }
21282
21282
  });
21283
21283
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCardButton());
21284
21284
 
21285
- const styles$P = css `
21285
+ const styles$Q = css `
21286
21286
  .error-icon {
21287
21287
  display: none;
21288
21288
  }
@@ -21316,9 +21316,9 @@ so this becomes the fallback color for the slot */ ''}
21316
21316
  }
21317
21317
  `;
21318
21318
 
21319
- const styles$O = css `
21319
+ const styles$P = css `
21320
21320
  ${display('inline-grid')}
21321
- ${styles$P}
21321
+ ${styles$Q}
21322
21322
 
21323
21323
  :host {
21324
21324
  font: ${bodyFont};
@@ -21457,7 +21457,7 @@ so this becomes the fallback color for the slot */ ''}
21457
21457
  </div>
21458
21458
  `;
21459
21459
 
21460
- const template$F = (_context, definition) => html `
21460
+ const template$G = (_context, definition) => html `
21461
21461
  <template
21462
21462
  role="checkbox"
21463
21463
  aria-checked="${x => x.checked}"
@@ -21542,16 +21542,176 @@ so this becomes the fallback color for the slot */ ''}
21542
21542
  const nimbleCheckbox = Checkbox.compose({
21543
21543
  baseName: 'checkbox',
21544
21544
  baseClass: Checkbox$1,
21545
- template: template$F,
21546
- styles: styles$O,
21545
+ template: template$G,
21546
+ styles: styles$P,
21547
21547
  checkedIndicator: check16X16.data,
21548
21548
  indeterminateIndicator: minus16X16.data
21549
21549
  });
21550
21550
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCheckbox());
21551
21551
  const checkboxTag = 'nimble-checkbox';
21552
21552
 
21553
+ const ChipAppearance = {
21554
+ outline: 'outline',
21555
+ block: 'block'
21556
+ };
21557
+
21558
+ const styles$O = css `
21559
+ ${display('inline-flex')}
21560
+
21561
+ :host {
21562
+ height: ${controlHeight};
21563
+ width: fit-content;
21564
+ max-width: 300px;
21565
+ color: ${bodyFontColor};
21566
+ font: ${bodyFont};
21567
+ padding: 0 ${mediumPadding};
21568
+ gap: 4px;
21569
+ background-color: transparent;
21570
+ border: ${borderWidth} solid rgba(${actionRgbPartialColor}, 0.3);
21571
+ border-radius: 4px;
21572
+ justify-content: center;
21573
+ align-items: center;
21574
+ }
21575
+
21576
+ :host([disabled]) {
21577
+ cursor: default;
21578
+ color: ${bodyDisabledFontColor};
21579
+ border-color: rgba(${borderRgbPartialColor}, 0.3);
21580
+ }
21581
+
21582
+ :host([disabled]) slot[name='start']::slotted(*) {
21583
+ opacity: 0.3;
21584
+ ${iconColor.cssCustomProperty}: ${bodyFontColor};
21585
+ }
21586
+
21587
+ slot[name='start']::slotted(*) {
21588
+ flex-shrink: 0;
21589
+ }
21590
+
21591
+ [part='start'] {
21592
+ display: contents;
21593
+ ${iconColor.cssCustomProperty}: ${bodyFontColor};
21594
+ }
21595
+
21596
+ .content {
21597
+ text-overflow: ellipsis;
21598
+ overflow: hidden;
21599
+ white-space: nowrap;
21600
+ }
21601
+
21602
+ .remove-button {
21603
+ height: ${iconSize};
21604
+ width: ${iconSize};
21605
+ margin-right: calc(-1 * ${smallPadding});
21606
+ }
21607
+
21608
+ [part='end'] {
21609
+ display: none;
21610
+ }
21611
+ `.withBehaviors(appearanceBehavior(ChipAppearance.block, css `
21612
+ :host,
21613
+ :host([disabled]) {
21614
+ background-color: rgba(${borderRgbPartialColor}, 0.1);
21615
+ border-color: transparent;
21616
+ }
21617
+ `));
21618
+
21619
+ const template$F = (context, definition) => html `
21620
+ ${startSlotTemplate(context, definition)}
21621
+ <span
21622
+ class="content"
21623
+ part="content"
21624
+ ${overflow('hasOverflow')}
21625
+ title=${x => (x.hasOverflow && x.elementTextContent
21626
+ ? x.elementTextContent
21627
+ : null)}
21628
+ >
21629
+ <slot
21630
+ ${ref('contentSlot')}
21631
+ ${slotted({ property: 'content' })}
21632
+ ></slot>
21633
+ </span>
21634
+ ${when(x => x.removable && !x.disabled, html `
21635
+ <${buttonTag}
21636
+ class="remove-button"
21637
+ content-hidden
21638
+ appearance="${ButtonAppearance.ghost}"
21639
+ tabindex="${x => x.tabIndex}"
21640
+ @click="${x => x.handleRemoveClick()}"
21641
+ >
21642
+ <${iconTimesTag} slot="start"></${iconTimesTag}>
21643
+ ${x => x.removeButtonContent}
21644
+ </${buttonTag}>
21645
+ `)}
21646
+ ${endSlotTemplate(context, definition)}
21647
+ `;
21648
+
21649
+ /**
21650
+ * Finds all text content within a slot and returns it as a space-delimited string.
21651
+ */
21652
+ const slotTextContent = (slot) => {
21653
+ return slot
21654
+ .assignedNodes()
21655
+ .map(node => node.textContent?.trim())
21656
+ .filter(content => content !== undefined && content !== '')
21657
+ .join(' ');
21658
+ };
21659
+
21660
+ /**
21661
+ * A Nimble chip component
21662
+ */
21663
+ class Chip extends FoundationElement {
21664
+ constructor() {
21665
+ super(...arguments);
21666
+ this.removable = false;
21667
+ this.disabled = false;
21668
+ this.appearance = ChipAppearance.outline;
21669
+ /** @internal */
21670
+ this.hasOverflow = false;
21671
+ }
21672
+ /** @internal */
21673
+ get elementTextContent() {
21674
+ return slotTextContent(this.contentSlot);
21675
+ }
21676
+ /** @internal */
21677
+ get removeButtonContent() {
21678
+ return itemRemoveLabel.getValueFor(this);
21679
+ }
21680
+ /** @internal */
21681
+ handleRemoveClick() {
21682
+ if (this.removable) {
21683
+ this.$emit('remove');
21684
+ }
21685
+ }
21686
+ }
21687
+ __decorate([
21688
+ attr({ mode: 'boolean' })
21689
+ ], Chip.prototype, "removable", void 0);
21690
+ __decorate([
21691
+ attr({ mode: 'boolean' })
21692
+ ], Chip.prototype, "disabled", void 0);
21693
+ __decorate([
21694
+ attr()
21695
+ ], Chip.prototype, "appearance", void 0);
21696
+ __decorate([
21697
+ attr({ attribute: 'tabindex', converter: nullableNumberConverter })
21698
+ ], Chip.prototype, "tabIndex", void 0);
21699
+ __decorate([
21700
+ observable
21701
+ ], Chip.prototype, "hasOverflow", void 0);
21702
+ applyMixins(Chip, StartEnd);
21703
+ const nimbleChip = Chip.compose({
21704
+ baseName: 'chip',
21705
+ template: template$F,
21706
+ styles: styles$O,
21707
+ shadowOptions: {
21708
+ delegatesFocus: true
21709
+ }
21710
+ });
21711
+ DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleChip());
21712
+
21553
21713
  const styles$N = css `
21554
- ${styles$14}
21714
+ ${styles$15}
21555
21715
  ${buttonAppearanceVariantStyles}
21556
21716
 
21557
21717
  @layer checked {
@@ -22043,7 +22203,7 @@ so this becomes the fallback color for the slot */ ''}
22043
22203
 
22044
22204
  const styles$K = css `
22045
22205
  ${styles$M}
22046
- ${styles$P}
22206
+ ${styles$Q}
22047
22207
  ${styles$L}
22048
22208
 
22049
22209
  :host {
@@ -26648,17 +26808,6 @@ so this becomes the fallback color for the slot */ ''}
26648
26808
  </template>
26649
26809
  `;
26650
26810
 
26651
- /**
26652
- * Finds all text content within a slot and returns it as a space-delimited string.
26653
- */
26654
- const slotTextContent = (slot) => {
26655
- return slot
26656
- .assignedNodes()
26657
- .map(node => node.textContent?.trim())
26658
- .filter(content => content !== undefined && content !== '')
26659
- .join(' ');
26660
- };
26661
-
26662
26811
  /**
26663
26812
  * A nimble-styled HTML listbox option
26664
26813
  */
@@ -27901,7 +28050,7 @@ so this becomes the fallback color for the slot */ ''}
27901
28050
 
27902
28051
  const styles$A = css `
27903
28052
  ${display('inline-block')}
27904
- ${styles$P}
28053
+ ${styles$Q}
27905
28054
  ${styles$L}
27906
28055
 
27907
28056
  :host {
@@ -28430,7 +28579,7 @@ so this becomes the fallback color for the slot */ ''}
28430
28579
 
28431
28580
  const styles$y = css `
28432
28581
  ${display('inline-block')}
28433
- ${styles$P}
28582
+ ${styles$Q}
28434
28583
  ${styles$L}
28435
28584
 
28436
28585
  .positioning-region {
@@ -48287,7 +48436,7 @@ ${indentedChild}`;
48287
48436
 
48288
48437
  const styles$v = css `
48289
48438
  ${display('inline-flex')}
48290
- ${styles$P}
48439
+ ${styles$Q}
48291
48440
 
48292
48441
  :host {
48293
48442
  font: ${bodyFont};
@@ -64871,7 +65020,7 @@ ${nextLine.slice(indentLevel + 2)}`;
64871
65020
 
64872
65021
  const styles$t = css `
64873
65022
  ${styles$M}
64874
- ${styles$P}
65023
+ ${styles$Q}
64875
65024
  ${styles$L}
64876
65025
 
64877
65026
  ${
@@ -66496,7 +66645,7 @@ ${nextLine.slice(indentLevel + 2)}`;
66496
66645
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSelect());
66497
66646
 
66498
66647
  const styles$r = css `
66499
- ${styles$10}
66648
+ ${styles$11}
66500
66649
  ${'' /* Button specific styles */}
66501
66650
  @layer base {
66502
66651
  .control {
@@ -79232,7 +79381,7 @@ focus outline in that case.
79232
79381
  .register(nimbleTableColumnText());
79233
79382
 
79234
79383
  const styles$8 = css `
79235
- ${styles$Y}
79384
+ ${styles$Z}
79236
79385
 
79237
79386
  .tabpanel {
79238
79387
  overflow: auto;
@@ -79313,7 +79462,7 @@ focus outline in that case.
79313
79462
  const nimbleTabs = Tabs.compose({
79314
79463
  baseName: 'tabs',
79315
79464
  baseClass: Tabs$1,
79316
- template: template$J,
79465
+ template: template$K,
79317
79466
  styles: styles$8
79318
79467
  });
79319
79468
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTabs());
@@ -79395,7 +79544,7 @@ focus outline in that case.
79395
79544
 
79396
79545
  const styles$6 = css `
79397
79546
  ${display('inline-flex')}
79398
- ${styles$P}
79547
+ ${styles$Q}
79399
79548
  ${styles$L}
79400
79549
 
79401
79550
  :host {
@@ -79756,7 +79905,7 @@ focus outline in that case.
79756
79905
 
79757
79906
  const styles$5 = css `
79758
79907
  ${display('inline-block')}
79759
- ${styles$P}
79908
+ ${styles$Q}
79760
79909
  ${styles$L}
79761
79910
 
79762
79911
  :host {