@ni/ok-components 0.3.11 → 0.3.13

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$_ = html `<slot></slot>`;
14901
+ const template$$ = html `<slot></slot>`;
14902
14902
 
14903
- const styles$1l = css `
14903
+ const styles$1m = css `
14904
14904
  ${display$2('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$1l,
15019
- template: template$_
15018
+ styles: styles$1m,
15019
+ template: template$$
15020
15020
  });
15021
15021
  DesignSystem.getOrCreate()
15022
15022
  .withPrefix('nimble')
@@ -16658,7 +16658,7 @@
16658
16658
  }
16659
16659
  // #endregion
16660
16660
 
16661
- const styles$1k = css `
16661
+ const styles$1l = 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$Z = (_context, definition) => html `${
16739
+ const template$_ = (_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$Z,
16843
- styles: styles$1k,
16842
+ template: template$_,
16843
+ styles: styles$1l,
16844
16844
  shadowOptions: {
16845
16845
  delegatesFocus: true
16846
16846
  }
@@ -16949,7 +16949,7 @@
16949
16949
  padding: 0;
16950
16950
  `;
16951
16951
 
16952
- const styles$1j = css `
16952
+ const styles$1k = 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$1i = css `
17237
- ${styles$1j}
17236
+ const styles$1j = css `
17237
+ ${styles$1k}
17238
17238
  ${buttonAppearanceVariantStyles}
17239
17239
 
17240
17240
  .control {
@@ -17254,7 +17254,7 @@
17254
17254
  }
17255
17255
  `;
17256
17256
 
17257
- const template$Y = (context, definition) => html `
17257
+ const template$Z = (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$Y,
17340
- styles: styles$1i,
17339
+ template: template$Z,
17340
+ styles: styles$1j,
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$1h = css `
17348
+ const styles$1i = css `
17349
17349
  ${display$2('grid')}
17350
17350
 
17351
17351
  :host {
@@ -17428,7 +17428,7 @@
17428
17428
  }
17429
17429
  `;
17430
17430
 
17431
- const template$X = (context, definition) => html `
17431
+ const template$Y = (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$X,
17533
- styles: styles$1h,
17532
+ template: template$Y,
17533
+ styles: styles$1i,
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$1g = cssPartial `
17545
+ const styles$1h = 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$1f = css `
17655
+ const styles$1g = css `
17656
17656
  @layer base, hover, focusVisible, active, disabled, top;
17657
17657
 
17658
17658
  @layer base {
17659
17659
  ${display$2('inline-flex')}
17660
- ${styles$1g}
17660
+ ${styles$1h}
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$1e = css `
18207
- ${styles$1f}
18206
+ const styles$1f = css `
18207
+ ${styles$1g}
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$W = html `<div
19250
+ const template$X = 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$1d = css `
19256
+ const styles$1e = css `
19257
19257
  ${display$2('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$W,
19320
- styles: styles$1d
19319
+ template: template$X,
19320
+ styles: styles$1e
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$V = (context, definition) => html `
19444
+ const template$W = (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$V,
19591
- styles: styles$1e,
19590
+ template: template$W,
19591
+ styles: styles$1f,
19592
19592
  shadowOptions: {
19593
19593
  delegatesFocus: true
19594
19594
  }
19595
19595
  });
19596
19596
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorStep());
19597
19597
 
19598
- const styles$1c = css `
19598
+ const styles$1d = css `
19599
19599
  ${display$2('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$U = (context, definition) => html `
19715
+ const template$V = (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$U,
19768
- styles: styles$1c,
19767
+ template: template$V,
19768
+ styles: styles$1d,
19769
19769
  shadowOptions: {
19770
19770
  delegatesFocus: true
19771
19771
  }
19772
19772
  });
19773
19773
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorTab());
19774
19774
 
19775
- const styles$1b = css `
19775
+ const styles$1c = css `
19776
19776
  ${display$2('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$1a = css `
19816
- ${styles$1j}
19815
+ const styles$1b = css `
19816
+ ${styles$1k}
19817
19817
  ${buttonAppearanceVariantStyles}
19818
19818
  `;
19819
19819
 
19820
- const template$T = (context, definition) => html `
19820
+ const template$U = (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$1.compose({
19909
19909
  baseName: 'button',
19910
19910
  baseClass: Button$2,
19911
- template: template$T,
19912
- styles: styles$1a,
19911
+ template: template$U,
19912
+ styles: styles$1b,
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$S = (context, definition) => html `
19946
+ const template$T = (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$S,
20248
- styles: styles$1b,
20247
+ template: template$T,
20248
+ styles: styles$1c,
20249
20249
  shadowOptions: {
20250
20250
  delegatesFocus: false
20251
20251
  }
20252
20252
  });
20253
20253
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorTabs());
20254
20254
 
20255
- const styles$19 = css `
20255
+ const styles$1a = css `
20256
20256
  ${display$2('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$R = (context, definition) => html `
20360
+ const template$S = (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$R,
20498
- styles: styles$19,
20497
+ template: template$S,
20498
+ styles: styles$1a,
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$18 = css `
20514
+ const styles$19 = css `
20515
20515
  ${display$2('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$18
20545
+ styles: styles$19
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$17 = css `
20552
+ const styles$18 = css `
20553
20553
  ${display$2('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$Q = html `
20704
+ const template$R = 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$Q,
20823
- styles: styles$17
20822
+ template: template$R,
20823
+ styles: styles$18
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$16 = css `
20864
+ const styles$17 = css `
20865
20865
  ${display$2('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$16
20968
+ styles: styles$17
20969
20969
  });
20970
20970
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleBreadcrumb());
20971
20971
 
20972
- const styles$15 = css `
20972
+ const styles$16 = 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$15,
21069
+ styles: styles$16,
21070
21070
  separator: forwardSlash16X16.data
21071
21071
  });
21072
21072
  DesignSystem.getOrCreate()
21073
21073
  .withPrefix('nimble')
21074
21074
  .register(nimbleBreadcrumbItem());
21075
21075
 
21076
- const styles$14 = css `
21076
+ const styles$15 = css `
21077
21077
  ${display$2('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$P = html `
21100
+ const template$Q = 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$P,
21116
- styles: styles$14
21115
+ template: template$Q,
21116
+ styles: styles$15
21117
21117
  });
21118
21118
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCard());
21119
21119
 
21120
- const styles$13 = css `
21120
+ const styles$14 = css `
21121
21121
  ${display$2('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$13,
21278
+ styles: styles$14,
21279
21279
  shadowOptions: {
21280
21280
  delegatesFocus: true
21281
21281
  }
21282
21282
  });
21283
21283
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCardButton());
21284
21284
 
21285
- const styles$12 = css `
21285
+ const styles$13 = 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$11 = css `
21319
+ const styles$12 = css `
21320
21320
  ${display$2('inline-grid')}
21321
- ${styles$12}
21321
+ ${styles$13}
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$O = (_context, definition) => html `
21460
+ const template$P = (_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$O,
21546
- styles: styles$11,
21545
+ template: template$P,
21546
+ styles: styles$12,
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$11 = css `
21559
+ ${display$2('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$O = (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$O,
21706
+ styles: styles$11,
21707
+ shadowOptions: {
21708
+ delegatesFocus: true
21709
+ }
21710
+ });
21711
+ DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleChip());
21712
+
21553
21713
  const styles$10 = css `
21554
- ${styles$1j}
21714
+ ${styles$1k}
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$Z = css `
22045
22205
  ${styles$$}
22046
- ${styles$12}
22206
+ ${styles$13}
22047
22207
  ${styles$_}
22048
22208
 
22049
22209
  :host {
@@ -26650,17 +26810,6 @@ so this becomes the fallback color for the slot */ ''}
26650
26810
  </template>
26651
26811
  `;
26652
26812
 
26653
- /**
26654
- * Finds all text content within a slot and returns it as a space-delimited string.
26655
- */
26656
- const slotTextContent = (slot) => {
26657
- return slot
26658
- .assignedNodes()
26659
- .map(node => node.textContent?.trim())
26660
- .filter(content => content !== undefined && content !== '')
26661
- .join(' ');
26662
- };
26663
-
26664
26813
  /**
26665
26814
  * A nimble-styled HTML listbox option
26666
26815
  */
@@ -27903,7 +28052,7 @@ so this becomes the fallback color for the slot */ ''}
27903
28052
 
27904
28053
  const styles$P = css `
27905
28054
  ${display$2('inline-block')}
27906
- ${styles$12}
28055
+ ${styles$13}
27907
28056
  ${styles$_}
27908
28057
 
27909
28058
  :host {
@@ -28432,7 +28581,7 @@ so this becomes the fallback color for the slot */ ''}
28432
28581
 
28433
28582
  const styles$N = css `
28434
28583
  ${display$2('inline-block')}
28435
- ${styles$12}
28584
+ ${styles$13}
28436
28585
  ${styles$_}
28437
28586
 
28438
28587
  .positioning-region {
@@ -48289,7 +48438,7 @@ ${indentedChild}`;
48289
48438
 
48290
48439
  const styles$K = css `
48291
48440
  ${display$2('inline-flex')}
48292
- ${styles$12}
48441
+ ${styles$13}
48293
48442
 
48294
48443
  :host {
48295
48444
  font: ${bodyFont};
@@ -64873,7 +65022,7 @@ ${nextLine.slice(indentLevel + 2)}`;
64873
65022
 
64874
65023
  const styles$I = css `
64875
65024
  ${styles$$}
64876
- ${styles$12}
65025
+ ${styles$13}
64877
65026
  ${styles$_}
64878
65027
 
64879
65028
  ${
@@ -66498,7 +66647,7 @@ ${nextLine.slice(indentLevel + 2)}`;
66498
66647
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSelect());
66499
66648
 
66500
66649
  const styles$G = css `
66501
- ${styles$1f}
66650
+ ${styles$1g}
66502
66651
  ${'' /* Button specific styles */}
66503
66652
  @layer base {
66504
66653
  .control {
@@ -79234,7 +79383,7 @@ focus outline in that case.
79234
79383
  .register(nimbleTableColumnText());
79235
79384
 
79236
79385
  const styles$n = css `
79237
- ${styles$1b}
79386
+ ${styles$1c}
79238
79387
 
79239
79388
  .tabpanel {
79240
79389
  overflow: auto;
@@ -79315,7 +79464,7 @@ focus outline in that case.
79315
79464
  const nimbleTabs = Tabs.compose({
79316
79465
  baseName: 'tabs',
79317
79466
  baseClass: Tabs$1,
79318
- template: template$S,
79467
+ template: template$T,
79319
79468
  styles: styles$n
79320
79469
  });
79321
79470
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTabs());
@@ -79397,7 +79546,7 @@ focus outline in that case.
79397
79546
 
79398
79547
  const styles$l = css `
79399
79548
  ${display$2('inline-flex')}
79400
- ${styles$12}
79549
+ ${styles$13}
79401
79550
  ${styles$_}
79402
79551
 
79403
79552
  :host {
@@ -79758,7 +79907,7 @@ focus outline in that case.
79758
79907
 
79759
79908
  const styles$k = css `
79760
79909
  ${display$2('inline-block')}
79761
- ${styles$12}
79910
+ ${styles$13}
79762
79911
  ${styles$_}
79763
79912
 
79764
79913
  :host {
@@ -98445,7 +98594,7 @@ focus outline in that case.
98445
98594
 
98446
98595
  const styles$d = css `
98447
98596
  ${display$1('flex')}
98448
- ${styles$12}
98597
+ ${styles$13}
98449
98598
 
98450
98599
  :host {
98451
98600
  width: 100%;
@@ -99113,7 +99262,7 @@ focus outline in that case.
99113
99262
  DesignSystem.getOrCreate().withPrefix('spright').register(sprightChatMessageSystem());
99114
99263
 
99115
99264
  const styles$8 = css `
99116
- ${styles$1d}
99265
+ ${styles$1e}
99117
99266
 
99118
99267
  .icon svg {
99119
99268
  fill: ${calendarEventBorderReservationColor};
@@ -99130,7 +99279,7 @@ focus outline in that case.
99130
99279
  }
99131
99280
  const sprightIconWorkItemCalendarWeek = IconWorkItemCalendarWeek.compose({
99132
99281
  baseName: 'icon-work-item-calendar-week',
99133
- template: template$W,
99282
+ template: template$X,
99134
99283
  styles: styles$8
99135
99284
  });
99136
99285
  DesignSystem.getOrCreate()
@@ -99138,7 +99287,7 @@ focus outline in that case.
99138
99287
  .register(sprightIconWorkItemCalendarWeek());
99139
99288
 
99140
99289
  const styles$7 = css `
99141
- ${styles$1d}
99290
+ ${styles$1e}
99142
99291
 
99143
99292
  .icon svg {
99144
99293
  fill: ${calendarEventBorderCalibrationColor};
@@ -99155,7 +99304,7 @@ focus outline in that case.
99155
99304
  }
99156
99305
  const sprightIconWorkItemCalipers = IconWorkItemCalipers.compose({
99157
99306
  baseName: 'icon-work-item-calipers',
99158
- template: template$W,
99307
+ template: template$X,
99159
99308
  styles: styles$7
99160
99309
  });
99161
99310
  DesignSystem.getOrCreate()
@@ -99163,7 +99312,7 @@ focus outline in that case.
99163
99312
  .register(sprightIconWorkItemCalipers());
99164
99313
 
99165
99314
  const styles$6 = css `
99166
- ${styles$1d}
99315
+ ${styles$1e}
99167
99316
 
99168
99317
  .icon svg {
99169
99318
  fill: ${calendarEventBorderTransportOrderColor};
@@ -99180,7 +99329,7 @@ focus outline in that case.
99180
99329
  }
99181
99330
  const sprightIconWorkItemForklift = IconWorkItemForklift.compose({
99182
99331
  baseName: 'icon-work-item-forklift',
99183
- template: template$W,
99332
+ template: template$X,
99184
99333
  styles: styles$6
99185
99334
  });
99186
99335
  DesignSystem.getOrCreate()
@@ -99188,7 +99337,7 @@ focus outline in that case.
99188
99337
  .register(sprightIconWorkItemForklift());
99189
99338
 
99190
99339
  const styles$5 = css `
99191
- ${styles$1d}
99340
+ ${styles$1e}
99192
99341
 
99193
99342
  .icon svg {
99194
99343
  fill: ${calendarEventBorderStaticColor};
@@ -99205,7 +99354,7 @@ focus outline in that case.
99205
99354
  }
99206
99355
  const sprightIconWorkItemRectangleCheckLines = IconWorkItemRectangleCheckLines.compose({
99207
99356
  baseName: 'icon-work-item-rectangle-check-lines',
99208
- template: template$W,
99357
+ template: template$X,
99209
99358
  styles: styles$5
99210
99359
  });
99211
99360
  DesignSystem.getOrCreate()
@@ -99213,7 +99362,7 @@ focus outline in that case.
99213
99362
  .register(sprightIconWorkItemRectangleCheckLines());
99214
99363
 
99215
99364
  const styles$4 = css `
99216
- ${styles$1d}
99365
+ ${styles$1e}
99217
99366
 
99218
99367
  .icon svg {
99219
99368
  fill: ${calendarEventBorderJobColor};
@@ -99230,7 +99379,7 @@ focus outline in that case.
99230
99379
  }
99231
99380
  const sprightIconWorkItemUserHelmetSafety = IconWorkItemUserHelmetSafety.compose({
99232
99381
  baseName: 'icon-work-item-user-helmet-safety',
99233
- template: template$W,
99382
+ template: template$X,
99234
99383
  styles: styles$4
99235
99384
  });
99236
99385
  DesignSystem.getOrCreate()
@@ -99238,7 +99387,7 @@ focus outline in that case.
99238
99387
  .register(sprightIconWorkItemUserHelmetSafety());
99239
99388
 
99240
99389
  const styles$3 = css `
99241
- ${styles$1d}
99390
+ ${styles$1e}
99242
99391
 
99243
99392
  .icon svg {
99244
99393
  fill: ${calendarEventBorderMaintenanceColor};
@@ -99255,7 +99404,7 @@ focus outline in that case.
99255
99404
  }
99256
99405
  const sprightIconWorkItemWrenchHammer = IconWorkItemWrenchHammer.compose({
99257
99406
  baseName: 'icon-work-item-wrench-hammer',
99258
- template: template$W,
99407
+ template: template$X,
99259
99408
  styles: styles$3
99260
99409
  });
99261
99410
  DesignSystem.getOrCreate()