@ni/spright-components 4.3.2 → 4.3.4

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.
@@ -11120,89 +11120,6 @@
11120
11120
  </template>
11121
11121
  `;
11122
11122
 
11123
- /**
11124
- * The template for the {@link @microsoft/fast-foundation#(NumberField:class)} component.
11125
- * @public
11126
- */
11127
- const numberFieldTemplate = (context, definition) => html `
11128
- <template class="${x => (x.readOnly ? "readonly" : "")}">
11129
- <label
11130
- part="label"
11131
- for="control"
11132
- class="${x => x.defaultSlottedNodes && x.defaultSlottedNodes.length
11133
- ? "label"
11134
- : "label label__hidden"}"
11135
- >
11136
- <slot ${slotted("defaultSlottedNodes")}></slot>
11137
- </label>
11138
- <div class="root" part="root">
11139
- ${startSlotTemplate(context, definition)}
11140
- <input
11141
- class="control"
11142
- part="control"
11143
- id="control"
11144
- @input="${x => x.handleTextInput()}"
11145
- @change="${x => x.handleChange()}"
11146
- @keydown="${(x, c) => x.handleKeyDown(c.event)}"
11147
- @blur="${(x, c) => x.handleBlur()}"
11148
- ?autofocus="${x => x.autofocus}"
11149
- ?disabled="${x => x.disabled}"
11150
- list="${x => x.list}"
11151
- maxlength="${x => x.maxlength}"
11152
- minlength="${x => x.minlength}"
11153
- placeholder="${x => x.placeholder}"
11154
- ?readonly="${x => x.readOnly}"
11155
- ?required="${x => x.required}"
11156
- size="${x => x.size}"
11157
- type="text"
11158
- inputmode="numeric"
11159
- min="${x => x.min}"
11160
- max="${x => x.max}"
11161
- step="${x => x.step}"
11162
- aria-atomic="${x => x.ariaAtomic}"
11163
- aria-busy="${x => x.ariaBusy}"
11164
- aria-controls="${x => x.ariaControls}"
11165
- aria-current="${x => x.ariaCurrent}"
11166
- aria-describedby="${x => x.ariaDescribedby}"
11167
- aria-details="${x => x.ariaDetails}"
11168
- aria-disabled="${x => x.ariaDisabled}"
11169
- aria-errormessage="${x => x.ariaErrormessage}"
11170
- aria-flowto="${x => x.ariaFlowto}"
11171
- aria-haspopup="${x => x.ariaHaspopup}"
11172
- aria-hidden="${x => x.ariaHidden}"
11173
- aria-invalid="${x => x.ariaInvalid}"
11174
- aria-keyshortcuts="${x => x.ariaKeyshortcuts}"
11175
- aria-label="${x => x.ariaLabel}"
11176
- aria-labelledby="${x => x.ariaLabelledby}"
11177
- aria-live="${x => x.ariaLive}"
11178
- aria-owns="${x => x.ariaOwns}"
11179
- aria-relevant="${x => x.ariaRelevant}"
11180
- aria-roledescription="${x => x.ariaRoledescription}"
11181
- ${ref("control")}
11182
- />
11183
- ${when(x => !x.hideStep && !x.readOnly && !x.disabled, html `
11184
- <div class="controls" part="controls">
11185
- <div class="step-up" part="step-up" @click="${x => x.stepUp()}">
11186
- <slot name="step-up-glyph">
11187
- ${definition.stepUpGlyph || ""}
11188
- </slot>
11189
- </div>
11190
- <div
11191
- class="step-down"
11192
- part="step-down"
11193
- @click="${x => x.stepDown()}"
11194
- >
11195
- <slot name="step-down-glyph">
11196
- ${definition.stepDownGlyph || ""}
11197
- </slot>
11198
- </div>
11199
- </div>
11200
- `)}
11201
- ${endSlotTemplate(context, definition)}
11202
- </div>
11203
- </template>
11204
- `;
11205
-
11206
11123
  class _TextField extends FoundationElement {
11207
11124
  }
11208
11125
  /**
@@ -13444,74 +13361,6 @@
13444
13361
  ], TextArea$1.prototype, "defaultSlottedNodes", void 0);
13445
13362
  applyMixins(TextArea$1, DelegatesARIATextbox);
13446
13363
 
13447
- /**
13448
- * The template for the {@link @microsoft/fast-foundation#(TextField:class)} component.
13449
- * @public
13450
- */
13451
- const textFieldTemplate = (context, definition) => html `
13452
- <template
13453
- class="
13454
- ${x => (x.readOnly ? "readonly" : "")}
13455
- "
13456
- >
13457
- <label
13458
- part="label"
13459
- for="control"
13460
- class="${x => x.defaultSlottedNodes && x.defaultSlottedNodes.length
13461
- ? "label"
13462
- : "label label__hidden"}"
13463
- >
13464
- <slot
13465
- ${slotted({ property: "defaultSlottedNodes", filter: whitespaceFilter })}
13466
- ></slot>
13467
- </label>
13468
- <div class="root" part="root">
13469
- ${startSlotTemplate(context, definition)}
13470
- <input
13471
- class="control"
13472
- part="control"
13473
- id="control"
13474
- @input="${x => x.handleTextInput()}"
13475
- @change="${x => x.handleChange()}"
13476
- ?autofocus="${x => x.autofocus}"
13477
- ?disabled="${x => x.disabled}"
13478
- list="${x => x.list}"
13479
- maxlength="${x => x.maxlength}"
13480
- minlength="${x => x.minlength}"
13481
- pattern="${x => x.pattern}"
13482
- placeholder="${x => x.placeholder}"
13483
- ?readonly="${x => x.readOnly}"
13484
- ?required="${x => x.required}"
13485
- size="${x => x.size}"
13486
- ?spellcheck="${x => x.spellcheck}"
13487
- :value="${x => x.value}"
13488
- type="${x => x.type}"
13489
- aria-atomic="${x => x.ariaAtomic}"
13490
- aria-busy="${x => x.ariaBusy}"
13491
- aria-controls="${x => x.ariaControls}"
13492
- aria-current="${x => x.ariaCurrent}"
13493
- aria-describedby="${x => x.ariaDescribedby}"
13494
- aria-details="${x => x.ariaDetails}"
13495
- aria-disabled="${x => x.ariaDisabled}"
13496
- aria-errormessage="${x => x.ariaErrormessage}"
13497
- aria-flowto="${x => x.ariaFlowto}"
13498
- aria-haspopup="${x => x.ariaHaspopup}"
13499
- aria-hidden="${x => x.ariaHidden}"
13500
- aria-invalid="${x => x.ariaInvalid}"
13501
- aria-keyshortcuts="${x => x.ariaKeyshortcuts}"
13502
- aria-label="${x => x.ariaLabel}"
13503
- aria-labelledby="${x => x.ariaLabelledby}"
13504
- aria-live="${x => x.ariaLive}"
13505
- aria-owns="${x => x.ariaOwns}"
13506
- aria-relevant="${x => x.ariaRelevant}"
13507
- aria-roledescription="${x => x.ariaRoledescription}"
13508
- ${ref("control")}
13509
- />
13510
- ${endSlotTemplate(context, definition)}
13511
- </div>
13512
- </template>
13513
- `;
13514
-
13515
13364
  /**
13516
13365
  * The template for the {@link @microsoft/fast-foundation#(Toolbar:class)} component.
13517
13366
  *
@@ -16472,9 +16321,9 @@
16472
16321
  return `${prefix}${uniqueIdCounter++}`;
16473
16322
  }
16474
16323
 
16475
- const template$N = html `<slot></slot>`;
16324
+ const template$P = html `<slot></slot>`;
16476
16325
 
16477
- const styles$11 = css `
16326
+ const styles$12 = css `
16478
16327
  ${display$1('contents')}
16479
16328
  `;
16480
16329
 
@@ -16589,8 +16438,8 @@
16589
16438
  ], ThemeProvider.prototype, "theme", void 0);
16590
16439
  const nimbleDesignSystemProvider = ThemeProvider.compose({
16591
16440
  baseName: 'theme-provider',
16592
- styles: styles$11,
16593
- template: template$N
16441
+ styles: styles$12,
16442
+ template: template$P
16594
16443
  });
16595
16444
  DesignSystem.getOrCreate()
16596
16445
  .withPrefix('nimble')
@@ -16814,7 +16663,7 @@
16814
16663
  }
16815
16664
  }
16816
16665
 
16817
- const styles$10 = css `
16666
+ const styles$11 = css `
16818
16667
  @layer base, hover, focusVisible, active, disabled;
16819
16668
 
16820
16669
  @layer base {
@@ -16893,7 +16742,7 @@
16893
16742
  `;
16894
16743
 
16895
16744
  // prettier-ignore
16896
- const template$M = (_context, definition) => html `${
16745
+ const template$O = (_context, definition) => html `${
16897
16746
  /* top-container div is necessary because setting contenteditable directly on the native anchor instead
16898
16747
  leaves it focusable, unlike the behavior you get when the anchor is _within_ a contenteditable element.
16899
16748
  */ ''}<div
@@ -16996,8 +16845,8 @@
16996
16845
  const nimbleAnchor = Anchor.compose({
16997
16846
  baseName: 'anchor',
16998
16847
  baseClass: Anchor$1,
16999
- template: template$M,
17000
- styles: styles$10,
16848
+ template: template$O,
16849
+ styles: styles$11,
17001
16850
  shadowOptions: {
17002
16851
  delegatesFocus: true
17003
16852
  }
@@ -17109,7 +16958,7 @@
17109
16958
  padding: 0;
17110
16959
  `;
17111
16960
 
17112
- const styles$$ = css `
16961
+ const styles$10 = css `
17113
16962
  @layer base, checked, hover, focusVisible, active, disabled, top;
17114
16963
 
17115
16964
  @layer base {
@@ -17393,8 +17242,8 @@
17393
17242
  }
17394
17243
  `));
17395
17244
 
17396
- const styles$_ = css `
17397
- ${styles$$}
17245
+ const styles$$ = css `
17246
+ ${styles$10}
17398
17247
  ${buttonAppearanceVariantStyles}
17399
17248
 
17400
17249
  .control {
@@ -17414,7 +17263,7 @@
17414
17263
  }
17415
17264
  `;
17416
17265
 
17417
- const template$L = (context, definition) => html `
17266
+ const template$N = (context, definition) => html `
17418
17267
  <a
17419
17268
  class="control"
17420
17269
  part="control"
@@ -17496,8 +17345,8 @@
17496
17345
  ], AnchorButton.prototype, "disabled", void 0);
17497
17346
  const nimbleAnchorButton = AnchorButton.compose({
17498
17347
  baseName: 'anchor-button',
17499
- template: template$L,
17500
- styles: styles$_,
17348
+ template: template$N,
17349
+ styles: styles$$,
17501
17350
  shadowOptions: {
17502
17351
  delegatesFocus: true
17503
17352
  }
@@ -17505,7 +17354,7 @@
17505
17354
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorButton());
17506
17355
  const anchorButtonTag = 'nimble-anchor-button';
17507
17356
 
17508
- const styles$Z = css `
17357
+ const styles$_ = css `
17509
17358
  ${display$1('grid')}
17510
17359
 
17511
17360
  :host {
@@ -17588,7 +17437,7 @@
17588
17437
  }
17589
17438
  `;
17590
17439
 
17591
- const template$K = (context, definition) => html `
17440
+ const template$M = (context, definition) => html `
17592
17441
  <template
17593
17442
  role="menuitem"
17594
17443
  class="${x => (typeof x.startColumnCount === 'number'
@@ -17689,8 +17538,8 @@
17689
17538
  // FoundationAnchor already applies the StartEnd mixin, so we don't need to do it here.
17690
17539
  const nimbleAnchorMenuItem = AnchorMenuItem.compose({
17691
17540
  baseName: 'anchor-menu-item',
17692
- template: template$K,
17693
- styles: styles$Z,
17541
+ template: template$M,
17542
+ styles: styles$_,
17694
17543
  shadowOptions: {
17695
17544
  delegatesFocus: true
17696
17545
  }
@@ -17700,7 +17549,7 @@
17700
17549
  .register(nimbleAnchorMenuItem());
17701
17550
  const anchorMenuItemTag = 'nimble-anchor-menu-item';
17702
17551
 
17703
- const styles$Y = css `
17552
+ const styles$Z = css `
17704
17553
  ${display$1('inline-flex')}
17705
17554
 
17706
17555
  :host {
@@ -17817,7 +17666,7 @@
17817
17666
  }
17818
17667
  `;
17819
17668
 
17820
- const template$J = (context, definition) => html `
17669
+ const template$L = (context, definition) => html `
17821
17670
  <template slot="anchortab" role="tab" aria-disabled="${x => x.disabled}">
17822
17671
  <a
17823
17672
  download="${x => x.download}"
@@ -17869,15 +17718,15 @@
17869
17718
  // FoundationAnchor already applies the StartEnd mixin, so we don't need to do it here.
17870
17719
  const nimbleAnchorTab = AnchorTab.compose({
17871
17720
  baseName: 'anchor-tab',
17872
- template: template$J,
17873
- styles: styles$Y,
17721
+ template: template$L,
17722
+ styles: styles$Z,
17874
17723
  shadowOptions: {
17875
17724
  delegatesFocus: true
17876
17725
  }
17877
17726
  });
17878
17727
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorTab());
17879
17728
 
17880
- const styles$X = css `
17729
+ const styles$Y = css `
17881
17730
  ${display$1('flex')}
17882
17731
 
17883
17732
  :host {
@@ -17917,12 +17766,12 @@
17917
17766
  }
17918
17767
  `;
17919
17768
 
17920
- const styles$W = css `
17921
- ${styles$$}
17769
+ const styles$X = css `
17770
+ ${styles$10}
17922
17771
  ${buttonAppearanceVariantStyles}
17923
17772
  `;
17924
17773
 
17925
- const template$I = (context, definition) => html `
17774
+ const template$K = (context, definition) => html `
17926
17775
  <button
17927
17776
  class="control"
17928
17777
  part="control"
@@ -18013,8 +17862,8 @@
18013
17862
  const nimbleButton = Button.compose({
18014
17863
  baseName: 'button',
18015
17864
  baseClass: Button$1,
18016
- template: template$I,
18017
- styles: styles$W,
17865
+ template: template$K,
17866
+ styles: styles$X,
18018
17867
  shadowOptions: {
18019
17868
  delegatesFocus: true
18020
17869
  }
@@ -18853,7 +18702,7 @@
18853
18702
  };
18854
18703
 
18855
18704
  // Avoiding any whitespace in the template because this is an inline element
18856
- const template$H = html `<div
18705
+ const template$J = html `<div
18857
18706
  class="icon"
18858
18707
  aria-hidden="true"
18859
18708
  :innerHTML=${x => x.icon.data}
@@ -18868,7 +18717,7 @@
18868
18717
  -webkit-user-select: none;
18869
18718
  `;
18870
18719
 
18871
- const styles$V = css `
18720
+ const styles$W = css `
18872
18721
  ${display$1('inline-flex')}
18873
18722
 
18874
18723
  :host {
@@ -18879,8 +18728,7 @@
18879
18728
  }
18880
18729
 
18881
18730
  .icon {
18882
- width: 100%;
18883
- height: 100%;
18731
+ display: contents;
18884
18732
  }
18885
18733
 
18886
18734
  :host([severity='error']) {
@@ -18900,6 +18748,7 @@
18900
18748
  }
18901
18749
 
18902
18750
  .icon svg {
18751
+ display: inline-flex;
18903
18752
  fill: ${iconColor};
18904
18753
  width: 100%;
18905
18754
  height: 100%;
@@ -18921,8 +18770,8 @@
18921
18770
  const registerIcon = (baseName, iconClass) => {
18922
18771
  const composedIcon = iconClass.compose({
18923
18772
  baseName,
18924
- template: template$H,
18925
- styles: styles$V
18773
+ template: template$J,
18774
+ styles: styles$W
18926
18775
  });
18927
18776
  DesignSystem.getOrCreate().withPrefix('nimble').register(composedIcon());
18928
18777
  };
@@ -19013,7 +18862,7 @@
19013
18862
  }).withDefault(coreLabelDefaults.scrollForwardLabel);
19014
18863
 
19015
18864
  // prettier-ignore
19016
- const template$G = (context, definition) => html `
18865
+ const template$I = (context, definition) => html `
19017
18866
  <div
19018
18867
  class="tab-bar"
19019
18868
  >
@@ -19312,15 +19161,15 @@
19312
19161
  applyMixins(AnchorTabs, StartEnd);
19313
19162
  const nimbleAnchorTabs = AnchorTabs.compose({
19314
19163
  baseName: 'anchor-tabs',
19315
- template: template$G,
19316
- styles: styles$X,
19164
+ template: template$I,
19165
+ styles: styles$Y,
19317
19166
  shadowOptions: {
19318
19167
  delegatesFocus: false
19319
19168
  }
19320
19169
  });
19321
19170
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorTabs());
19322
19171
 
19323
- const styles$U = css `
19172
+ const styles$V = css `
19324
19173
  ${display$1('block')}
19325
19174
 
19326
19175
  :host {
@@ -19425,7 +19274,7 @@
19425
19274
  }
19426
19275
  `;
19427
19276
 
19428
- const template$F = (context, definition) => html `
19277
+ const template$H = (context, definition) => html `
19429
19278
  <template
19430
19279
  role="treeitem"
19431
19280
  slot="${x => (x.isNestedItem() ? 'item' : null)}"
@@ -19562,8 +19411,8 @@
19562
19411
  // FoundationAnchor already applies the StartEnd mixin, so we don't need to do it here.
19563
19412
  const nimbleAnchorTreeItem = AnchorTreeItem.compose({
19564
19413
  baseName: 'anchor-tree-item',
19565
- template: template$F,
19566
- styles: styles$U,
19414
+ template: template$H,
19415
+ styles: styles$V,
19567
19416
  shadowOptions: {
19568
19417
  delegatesFocus: true
19569
19418
  }
@@ -19579,7 +19428,7 @@
19579
19428
  zIndex1000: '1000'
19580
19429
  };
19581
19430
 
19582
- const styles$T = css `
19431
+ const styles$U = css `
19583
19432
  ${display$1('block')}
19584
19433
 
19585
19434
  :host {
@@ -19610,7 +19459,7 @@
19610
19459
  baseName: 'anchored-region',
19611
19460
  baseClass: AnchoredRegion$1,
19612
19461
  template: anchoredRegionTemplate,
19613
- styles: styles$T
19462
+ styles: styles$U
19614
19463
  });
19615
19464
  DesignSystem.getOrCreate()
19616
19465
  .withPrefix('nimble')
@@ -19691,7 +19540,7 @@
19691
19540
  const themeBehavior = (theme, styles) => new ThemeStyleSheetBehavior(theme, styles);
19692
19541
  /* eslint-enable max-classes-per-file */
19693
19542
 
19694
- const styles$S = css `
19543
+ const styles$T = css `
19695
19544
  ${display$1('flex')}
19696
19545
 
19697
19546
  :host {
@@ -19870,7 +19719,7 @@
19870
19719
  };
19871
19720
 
19872
19721
  // prettier-ignore
19873
- const template$E = html `
19722
+ const template$G = html `
19874
19723
  <${themeProviderTag} theme="${Theme.color}">
19875
19724
  <div class="container"
19876
19725
  role="status"
@@ -19988,12 +19837,12 @@
19988
19837
  applyMixins(Banner, ARIAGlobalStatesAndProperties);
19989
19838
  const nimbleBanner = Banner.compose({
19990
19839
  baseName: 'banner',
19991
- template: template$E,
19992
- styles: styles$S
19840
+ template: template$G,
19841
+ styles: styles$T
19993
19842
  });
19994
19843
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleBanner());
19995
19844
 
19996
- const styles$R = css `
19845
+ const styles$S = css `
19997
19846
  ${display$1('inline-block')}
19998
19847
 
19999
19848
  .list {
@@ -20023,11 +19872,11 @@
20023
19872
  baseName: 'breadcrumb',
20024
19873
  baseClass: Breadcrumb$1,
20025
19874
  template: breadcrumbTemplate,
20026
- styles: styles$R
19875
+ styles: styles$S
20027
19876
  });
20028
19877
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleBreadcrumb());
20029
19878
 
20030
- const styles$Q = css `
19879
+ const styles$R = css `
20031
19880
  @layer base, hover, focusVisible, active, disabled;
20032
19881
 
20033
19882
  @layer base {
@@ -20124,14 +19973,14 @@ so this becomes the fallback color for the slot */ ''}
20124
19973
  baseName: 'breadcrumb-item',
20125
19974
  baseClass: BreadcrumbItem$1,
20126
19975
  template: breadcrumbItemTemplate,
20127
- styles: styles$Q,
19976
+ styles: styles$R,
20128
19977
  separator: forwardSlash16X16.data
20129
19978
  });
20130
19979
  DesignSystem.getOrCreate()
20131
19980
  .withPrefix('nimble')
20132
19981
  .register(nimbleBreadcrumbItem());
20133
19982
 
20134
- const styles$P = css `
19983
+ const styles$Q = css `
20135
19984
  ${display$1('flex')}
20136
19985
 
20137
19986
  :host {
@@ -20155,7 +20004,7 @@ so this becomes the fallback color for the slot */ ''}
20155
20004
  }
20156
20005
  `;
20157
20006
 
20158
- const template$D = html `
20007
+ const template$F = html `
20159
20008
  <section aria-labelledby="title-slot">
20160
20009
  <span id="title-slot"><slot name="title"></slot></span>
20161
20010
  <slot></slot>
@@ -20170,12 +20019,12 @@ so this becomes the fallback color for the slot */ ''}
20170
20019
  const nimbleCard = Card.compose({
20171
20020
  baseName: 'card',
20172
20021
  baseClass: Card$1,
20173
- template: template$D,
20174
- styles: styles$P
20022
+ template: template$F,
20023
+ styles: styles$Q
20175
20024
  });
20176
20025
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCard());
20177
20026
 
20178
- const styles$O = css `
20027
+ const styles$P = css `
20179
20028
  ${display$1('inline-flex')}
20180
20029
 
20181
20030
  :host {
@@ -20333,14 +20182,14 @@ so this becomes the fallback color for the slot */ ''}
20333
20182
  const nimbleCardButton = CardButton.compose({
20334
20183
  baseName: 'card-button',
20335
20184
  template: buttonTemplate,
20336
- styles: styles$O,
20185
+ styles: styles$P,
20337
20186
  shadowOptions: {
20338
20187
  delegatesFocus: true
20339
20188
  }
20340
20189
  });
20341
20190
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCardButton());
20342
20191
 
20343
- const styles$N = css `
20192
+ const styles$O = css `
20344
20193
  .error-icon {
20345
20194
  display: none;
20346
20195
  }
@@ -20374,9 +20223,9 @@ so this becomes the fallback color for the slot */ ''}
20374
20223
  }
20375
20224
  `;
20376
20225
 
20377
- const styles$M = css `
20226
+ const styles$N = css `
20378
20227
  ${display$1('inline-grid')}
20379
- ${styles$N}
20228
+ ${styles$O}
20380
20229
 
20381
20230
  :host {
20382
20231
  font: ${bodyFont};
@@ -20570,7 +20419,7 @@ so this becomes the fallback color for the slot */ ''}
20570
20419
  </div>
20571
20420
  `;
20572
20421
 
20573
- const template$C = (_context, definition) => html `
20422
+ const template$E = (_context, definition) => html `
20574
20423
  <template
20575
20424
  role="checkbox"
20576
20425
  aria-checked="${x => x.checked}"
@@ -20655,16 +20504,16 @@ so this becomes the fallback color for the slot */ ''}
20655
20504
  const nimbleCheckbox = Checkbox.compose({
20656
20505
  baseName: 'checkbox',
20657
20506
  baseClass: Checkbox$1,
20658
- template: template$C,
20659
- styles: styles$M,
20507
+ template: template$E,
20508
+ styles: styles$N,
20660
20509
  checkedIndicator: check16X16.data,
20661
20510
  indeterminateIndicator: minus16X16.data
20662
20511
  });
20663
20512
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCheckbox());
20664
20513
  const checkboxTag = 'nimble-checkbox';
20665
20514
 
20666
- const styles$L = css `
20667
- ${styles$$}
20515
+ const styles$M = css `
20516
+ ${styles$10}
20668
20517
  ${buttonAppearanceVariantStyles}
20669
20518
 
20670
20519
  @layer checked {
@@ -20713,7 +20562,7 @@ so this becomes the fallback color for the slot */ ''}
20713
20562
 
20714
20563
  /* eslint-disable @typescript-eslint/indent */
20715
20564
  // prettier-ignore
20716
- const template$B = (context, definition) => html `
20565
+ const template$D = (context, definition) => html `
20717
20566
  <div
20718
20567
  role="button"
20719
20568
  part="control"
@@ -20809,8 +20658,8 @@ so this becomes the fallback color for the slot */ ''}
20809
20658
  applyMixins(ToggleButton, StartEnd, DelegatesARIAButton);
20810
20659
  const nimbleToggleButton = ToggleButton.compose({
20811
20660
  baseName: 'toggle-button',
20812
- template: template$B,
20813
- styles: styles$L,
20661
+ template: template$D,
20662
+ styles: styles$M,
20814
20663
  shadowOptions: {
20815
20664
  delegatesFocus: true
20816
20665
  }
@@ -20842,7 +20691,7 @@ so this becomes the fallback color for the slot */ ''}
20842
20691
  };
20843
20692
 
20844
20693
  // prettier-ignore
20845
- const styles$K = css `
20694
+ const styles$L = css `
20846
20695
  ${display$1('inline-flex')}
20847
20696
 
20848
20697
  :host {
@@ -21111,6 +20960,21 @@ so this becomes the fallback color for the slot */ ''}
21111
20960
  }
21112
20961
  `));
21113
20962
 
20963
+ const styles$K = css `
20964
+ .annotated-label {
20965
+ display: flex;
20966
+ flex-direction: row;
20967
+ }
20968
+
20969
+ .required-icon {
20970
+ flex: none;
20971
+ width: 5px;
20972
+ height: 5px;
20973
+ margin-top: 3px;
20974
+ margin-left: ${smallPadding};
20975
+ }
20976
+ `;
20977
+
21114
20978
  /**
21115
20979
  * Types of dropdown appearance.
21116
20980
  * @public
@@ -21126,8 +20990,9 @@ so this becomes the fallback color for the slot */ ''}
21126
20990
  };
21127
20991
 
21128
20992
  const styles$J = css `
20993
+ ${styles$L}
20994
+ ${styles$O}
21129
20995
  ${styles$K}
21130
- ${styles$N}
21131
20996
 
21132
20997
  :host {
21133
20998
  --ni-private-hover-bottom-border-width: 2px;
@@ -21203,9 +21068,45 @@ so this becomes the fallback color for the slot */ ''}
21203
21068
  }
21204
21069
  `));
21205
21070
 
21071
+ // AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
21072
+ // See generation source in nimble-components/build/generate-icons
21073
+ /**
21074
+ * The icon component for the 'asterisk' icon
21075
+ */
21076
+ class IconAsterisk extends Icon {
21077
+ constructor() {
21078
+ super(asterisk5X5);
21079
+ }
21080
+ }
21081
+ registerIcon('icon-asterisk', IconAsterisk);
21082
+ const iconAsteriskTag = 'nimble-icon-asterisk';
21083
+
21084
+ /**
21085
+ * Given the template for a control label, creates a new template that includes
21086
+ * an icon next to the label to indicate whether or not the control is required.
21087
+ *
21088
+ * This function is intended to be used with components leveraging `mixinRequiredVisiblePattern`.
21089
+ */
21090
+ /* eslint-disable @typescript-eslint/indent */
21091
+ function createRequiredVisibleLabelTemplate(labelTemplate) {
21092
+ return html `
21093
+ <div class="annotated-label">
21094
+ ${labelTemplate}
21095
+ ${when(x => x.requiredVisible, html `
21096
+ <${iconAsteriskTag} class="required-icon" severity="error"></${iconAsteriskTag}>
21097
+ `)}
21098
+ </div>
21099
+ `;
21100
+ }
21101
+
21102
+ const labelTemplate$3 = createRequiredVisibleLabelTemplate(html `
21103
+ <label part="label" class="label">
21104
+ <slot></slot>
21105
+ </label>
21106
+ `);
21206
21107
  /* eslint-disable @typescript-eslint/indent */
21207
21108
  // prettier-ignore
21208
- const template$A = (context, definition) => html `
21109
+ const template$C = (context, definition) => html `
21209
21110
  <template
21210
21111
  aria-disabled="${x => x.ariaDisabled}"
21211
21112
  autocomplete="${x => x.autocomplete}"
@@ -21216,9 +21117,7 @@ so this becomes the fallback color for the slot */ ''}
21216
21117
  @focusout="${(x, c) => x.focusoutHandler(c.event)}"
21217
21118
  @keydown="${(x, c) => x.keydownHandler(c.event)}"
21218
21119
  >
21219
- <label part="label" class="label">
21220
- <slot></slot>
21221
- </label>
21120
+ ${labelTemplate$3}
21222
21121
  <div class="control" part="control" ${ref('controlWrapper')}>
21223
21122
  ${startSlotTemplate(context, definition)}
21224
21123
  <slot name="control">
@@ -21228,6 +21127,7 @@ so this becomes the fallback color for the slot */ ''}
21228
21127
  aria-controls="${x => x.ariaControls}"
21229
21128
  aria-disabled="${x => x.ariaDisabled}"
21230
21129
  aria-expanded="${x => x.ariaExpanded}"
21130
+ aria-required="${x => x.requiredVisible}"
21231
21131
  aria-haspopup="listbox"
21232
21132
  class="selected-value"
21233
21133
  part="selected-value"
@@ -21309,10 +21209,30 @@ so this becomes the fallback color for the slot */ ''}
21309
21209
  }
21310
21210
  }
21311
21211
 
21212
+ // As the returned class is internal to the function, we can't write a signature that uses is directly, so rely on inference
21213
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type
21214
+ function mixinRequiredVisiblePattern(base) {
21215
+ /**
21216
+ * The Mixin that provides the requiredVisible property and required-visible attribute
21217
+ * to a component.
21218
+ */
21219
+ class RequiredVisibleElement extends base {
21220
+ constructor() {
21221
+ super(...arguments);
21222
+ /*
21223
+ * Show the required appearance of the control
21224
+ */
21225
+ this.requiredVisible = false;
21226
+ }
21227
+ }
21228
+ attr({ attribute: 'required-visible', mode: 'boolean' })(RequiredVisibleElement.prototype, 'requiredVisible');
21229
+ return RequiredVisibleElement;
21230
+ }
21231
+
21312
21232
  /**
21313
21233
  * A nimble-styed HTML combobox
21314
21234
  */
21315
- class Combobox extends mixinErrorPattern(FormAssociatedCombobox) {
21235
+ class Combobox extends mixinErrorPattern(mixinRequiredVisiblePattern(FormAssociatedCombobox)) {
21316
21236
  constructor() {
21317
21237
  super(...arguments);
21318
21238
  this.appearance = DropdownAppearance.underline;
@@ -21953,7 +21873,7 @@ so this becomes the fallback color for the slot */ ''}
21953
21873
  const nimbleCombobox = Combobox.compose({
21954
21874
  baseName: 'combobox',
21955
21875
  baseClass: FormAssociatedCombobox,
21956
- template: template$A,
21876
+ template: template$C,
21957
21877
  styles: styles$J,
21958
21878
  shadowOptions: {
21959
21879
  delegatesFocus: true
@@ -22091,7 +22011,7 @@ so this becomes the fallback color for the slot */ ''}
22091
22011
  }
22092
22012
  `;
22093
22013
 
22094
- const template$z = html `
22014
+ const template$B = html `
22095
22015
  <template>
22096
22016
  <dialog
22097
22017
  ${ref('dialogElement')}
@@ -22239,7 +22159,7 @@ so this becomes the fallback color for the slot */ ''}
22239
22159
  applyMixins(Dialog, ARIAGlobalStatesAndProperties);
22240
22160
  const nimbleDialog = Dialog.compose({
22241
22161
  baseName: 'dialog',
22242
- template: template$z,
22162
+ template: template$B,
22243
22163
  styles: styles$I,
22244
22164
  baseClass: Dialog
22245
22165
  });
@@ -22388,7 +22308,7 @@ so this becomes the fallback color for the slot */ ''}
22388
22308
  }
22389
22309
  `;
22390
22310
 
22391
- const template$y = html `
22311
+ const template$A = html `
22392
22312
  <dialog
22393
22313
  ${ref('dialog')}
22394
22314
  aria-label="${x => x.ariaLabel}"
@@ -22531,7 +22451,7 @@ so this becomes the fallback color for the slot */ ''}
22531
22451
  applyMixins(Drawer, ARIAGlobalStatesAndProperties);
22532
22452
  const nimbleDrawer = Drawer.compose({
22533
22453
  baseName: 'drawer',
22534
- template: template$y,
22454
+ template: template$A,
22535
22455
  styles: styles$H
22536
22456
  });
22537
22457
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleDrawer());
@@ -22815,18 +22735,6 @@ so this becomes the fallback color for the slot */ ''}
22815
22735
  }
22816
22736
  registerIcon('icon-arrows-repeat', IconArrowsRepeat);
22817
22737
 
22818
- // AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
22819
- // See generation source in nimble-components/build/generate-icons
22820
- /**
22821
- * The icon component for the 'asterisk' icon
22822
- */
22823
- class IconAsterisk extends Icon {
22824
- constructor() {
22825
- super(asterisk5X5);
22826
- }
22827
- }
22828
- registerIcon('icon-asterisk', IconAsterisk);
22829
-
22830
22738
  // AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
22831
22739
  // See generation source in nimble-components/build/generate-icons
22832
22740
  /**
@@ -25312,7 +25220,7 @@ so this becomes the fallback color for the slot */ ''}
25312
25220
  * @public
25313
25221
  */
25314
25222
  // prettier-ignore
25315
- const template$x = (context, definition) => html `
25223
+ const template$z = (context, definition) => html `
25316
25224
  <template
25317
25225
  aria-checked="${x => x.ariaChecked}"
25318
25226
  aria-disabled="${x => x.ariaDisabled}"
@@ -25425,7 +25333,7 @@ so this becomes the fallback color for the slot */ ''}
25425
25333
  const nimbleListOption = ListOption.compose({
25426
25334
  baseName: 'list-option',
25427
25335
  baseClass: ListboxOption,
25428
- template: template$x,
25336
+ template: template$z,
25429
25337
  styles: styles$F
25430
25338
  });
25431
25339
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleListOption());
@@ -25494,7 +25402,7 @@ so this becomes the fallback color for the slot */ ''}
25494
25402
  return n instanceof ListOption;
25495
25403
  };
25496
25404
  // prettier-ignore
25497
- const template$w = html `
25405
+ const template$y = html `
25498
25406
  <template
25499
25407
  role="group"
25500
25408
  aria-label="${x => x.labelContent}"
@@ -25636,7 +25544,7 @@ so this becomes the fallback color for the slot */ ''}
25636
25544
  const nimbleListOptionGroup = ListOptionGroup.compose({
25637
25545
  baseName: 'list-option-group',
25638
25546
  baseClass: FoundationElement,
25639
- template: template$w,
25547
+ template: template$y,
25640
25548
  styles: styles$E
25641
25549
  });
25642
25550
  DesignSystem.getOrCreate()
@@ -25652,7 +25560,7 @@ so this becomes the fallback color for the slot */ ''}
25652
25560
  attr()
25653
25561
  ], Mapping$1.prototype, "key", void 0);
25654
25562
 
25655
- const template$v = html `<template slot="mapping"></template>`;
25563
+ const template$x = html `<template slot="mapping"></template>`;
25656
25564
 
25657
25565
  const styles$D = css `
25658
25566
  ${display$1('none')}
@@ -25670,7 +25578,7 @@ so this becomes the fallback color for the slot */ ''}
25670
25578
  ], MappingEmpty.prototype, "text", void 0);
25671
25579
  const emptyMapping = MappingEmpty.compose({
25672
25580
  baseName: 'mapping-empty',
25673
- template: template$v,
25581
+ template: template$x,
25674
25582
  styles: styles$D
25675
25583
  });
25676
25584
  DesignSystem.getOrCreate().withPrefix('nimble').register(emptyMapping());
@@ -25741,7 +25649,7 @@ so this becomes the fallback color for the slot */ ''}
25741
25649
  ], MappingIcon.prototype, "resolvedIcon", void 0);
25742
25650
  const iconMapping = MappingIcon.compose({
25743
25651
  baseName: 'mapping-icon',
25744
- template: template$v,
25652
+ template: template$x,
25745
25653
  styles: styles$D
25746
25654
  });
25747
25655
  DesignSystem.getOrCreate().withPrefix('nimble').register(iconMapping());
@@ -25765,7 +25673,7 @@ so this becomes the fallback color for the slot */ ''}
25765
25673
  ], MappingSpinner.prototype, "textHidden", void 0);
25766
25674
  const spinnerMapping = MappingSpinner.compose({
25767
25675
  baseName: 'mapping-spinner',
25768
- template: template$v,
25676
+ template: template$x,
25769
25677
  styles: styles$D
25770
25678
  });
25771
25679
  DesignSystem.getOrCreate().withPrefix('nimble').register(spinnerMapping());
@@ -25782,7 +25690,7 @@ so this becomes the fallback color for the slot */ ''}
25782
25690
  ], MappingText.prototype, "text", void 0);
25783
25691
  const textMapping = MappingText.compose({
25784
25692
  baseName: 'mapping-text',
25785
- template: template$v,
25693
+ template: template$x,
25786
25694
  styles: styles$D
25787
25695
  });
25788
25696
  DesignSystem.getOrCreate().withPrefix('nimble').register(textMapping());
@@ -26088,7 +25996,7 @@ so this becomes the fallback color for the slot */ ''}
26088
25996
 
26089
25997
  /* eslint-disable @typescript-eslint/indent */
26090
25998
  // prettier-ignore
26091
- const template$u = () => html `
25999
+ const template$w = () => html `
26092
26000
  <template
26093
26001
  slot="${x => {
26094
26002
  if (x.slot) {
@@ -26177,7 +26085,7 @@ so this becomes the fallback color for the slot */ ''}
26177
26085
  const nimbleMenu = Menu.compose({
26178
26086
  baseName: 'menu',
26179
26087
  baseClass: Menu$1,
26180
- template: template$u,
26088
+ template: template$w,
26181
26089
  styles: styles$C
26182
26090
  });
26183
26091
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleMenu());
@@ -26214,7 +26122,7 @@ so this becomes the fallback color for the slot */ ''}
26214
26122
  `;
26215
26123
 
26216
26124
  // prettier-ignore
26217
- const template$t = html `
26125
+ const template$v = html `
26218
26126
  <template
26219
26127
  ?open="${x => x.open}"
26220
26128
  @focusout="${(x, c) => x.focusoutHandler(c.event)}"
@@ -26464,7 +26372,7 @@ so this becomes the fallback color for the slot */ ''}
26464
26372
  ], MenuButton.prototype, "slottedMenus", void 0);
26465
26373
  const nimbleMenuButton = MenuButton.compose({
26466
26374
  baseName: 'menu-button',
26467
- template: template$t,
26375
+ template: template$v,
26468
26376
  styles: styles$B,
26469
26377
  shadowOptions: {
26470
26378
  delegatesFocus: true
@@ -26586,7 +26494,7 @@ so this becomes the fallback color for the slot */ ''}
26586
26494
 
26587
26495
  const styles$z = css `
26588
26496
  ${display$1('inline-block')}
26589
- ${styles$N}
26497
+ ${styles$O}
26590
26498
 
26591
26499
  :host {
26592
26500
  font: ${bodyFont};
@@ -26774,6 +26682,93 @@ so this becomes the fallback color for the slot */ ''}
26774
26682
  }
26775
26683
  `));
26776
26684
 
26685
+ /**
26686
+ * The template for the {@link @microsoft/fast-foundation#(NumberField:class)} component.
26687
+ * @public
26688
+ */
26689
+ const template$u = (context, definition) => html `
26690
+ <template class="${x => (x.readOnly ? 'readonly' : '')}">
26691
+ <label
26692
+ part="label"
26693
+ for="control"
26694
+ class="${x => (x.defaultSlottedNodes?.length
26695
+ ? 'label'
26696
+ : 'label label__hidden')}"
26697
+ >
26698
+ <slot ${slotted('defaultSlottedNodes')}></slot>
26699
+ </label>
26700
+ <div class="root" part="root">
26701
+ ${startSlotTemplate(context, definition)}
26702
+ <input
26703
+ class="control"
26704
+ part="control"
26705
+ id="control"
26706
+ @input="${x => x.handleTextInput()}"
26707
+ @change="${x => x.handleChange()}"
26708
+ @keydown="${(x, c) => x.handleKeyDown(c.event)}"
26709
+ @blur="${x => x.handleBlur()}"
26710
+ ?autofocus="${x => x.autofocus}"
26711
+ ?disabled="${x => x.disabled}"
26712
+ list="${x => x.list}"
26713
+ maxlength="${x => x.maxlength}"
26714
+ minlength="${x => x.minlength}"
26715
+ placeholder="${x => x.placeholder}"
26716
+ ?readonly="${x => x.readOnly}"
26717
+ ?required="${x => x.required}"
26718
+ size="${x => x.size}"
26719
+ type="text"
26720
+ inputmode="numeric"
26721
+ min="${x => x.min}"
26722
+ max="${x => x.max}"
26723
+ step="${x => x.step}"
26724
+ aria-atomic="${x => x.ariaAtomic}"
26725
+ aria-busy="${x => x.ariaBusy}"
26726
+ aria-controls="${x => x.ariaControls}"
26727
+ aria-current="${x => x.ariaCurrent}"
26728
+ aria-describedby="${x => x.ariaDescribedby}"
26729
+ aria-details="${x => x.ariaDetails}"
26730
+ aria-disabled="${x => x.ariaDisabled}"
26731
+ aria-errormessage="${x => x.ariaErrormessage}"
26732
+ aria-flowto="${x => x.ariaFlowto}"
26733
+ aria-haspopup="${x => x.ariaHaspopup}"
26734
+ aria-hidden="${x => x.ariaHidden}"
26735
+ aria-invalid="${x => x.ariaInvalid}"
26736
+ aria-keyshortcuts="${x => x.ariaKeyshortcuts}"
26737
+ aria-label="${x => x.ariaLabel}"
26738
+ aria-labelledby="${x => x.ariaLabelledby}"
26739
+ aria-live="${x => x.ariaLive}"
26740
+ aria-owns="${x => x.ariaOwns}"
26741
+ aria-relevant="${x => x.ariaRelevant}"
26742
+ aria-roledescription="${x => x.ariaRoledescription}"
26743
+ ${ref('control')}
26744
+ />
26745
+ ${when(x => !x.hideStep && !x.readOnly && !x.disabled, html `
26746
+ <div class="controls" part="controls">
26747
+ <div
26748
+ class="step-up"
26749
+ part="step-up"
26750
+ @click="${x => x.stepUp()}"
26751
+ >
26752
+ <slot name="step-up-glyph">
26753
+ ${definition.stepUpGlyph || ''}
26754
+ </slot>
26755
+ </div>
26756
+ <div
26757
+ class="step-down"
26758
+ part="step-down"
26759
+ @click="${x => x.stepDown()}"
26760
+ >
26761
+ <slot name="step-down-glyph">
26762
+ ${definition.stepDownGlyph || ''}
26763
+ </slot>
26764
+ </div>
26765
+ </div>
26766
+ `)}
26767
+ ${endSlotTemplate(context, definition)}
26768
+ </div>
26769
+ </template>
26770
+ `;
26771
+
26777
26772
  /**
26778
26773
  * A nimble-styled HTML number input
26779
26774
  */
@@ -26802,7 +26797,7 @@ so this becomes the fallback color for the slot */ ''}
26802
26797
  const nimbleNumberField = NumberField.compose({
26803
26798
  baseName: 'number-field',
26804
26799
  baseClass: NumberField$1,
26805
- template: numberFieldTemplate,
26800
+ template: template$u,
26806
26801
  styles: styles$z,
26807
26802
  shadowOptions: {
26808
26803
  delegatesFocus: true
@@ -26953,7 +26948,8 @@ so this becomes the fallback color for the slot */ ''}
26953
26948
 
26954
26949
  const styles$x = css `
26955
26950
  ${display$1('inline-block')}
26956
- ${styles$N}
26951
+ ${styles$O}
26952
+ ${styles$K}
26957
26953
 
26958
26954
  .positioning-region {
26959
26955
  display: flex;
@@ -26971,7 +26967,7 @@ so this becomes the fallback color for the slot */ ''}
26971
26967
 
26972
26968
  .label-container {
26973
26969
  display: flex;
26974
- height: ${controlLabelFontLineHeight};
26970
+ min-height: ${controlLabelFontLineHeight};
26975
26971
  gap: ${smallPadding};
26976
26972
  margin-bottom: ${smallPadding};
26977
26973
  }
@@ -26991,18 +26987,20 @@ so this becomes the fallback color for the slot */ ''}
26991
26987
  }
26992
26988
  `;
26993
26989
 
26990
+ const labelTemplate$2 = createRequiredVisibleLabelTemplate(html `<slot name="label"></slot>`);
26994
26991
  /* eslint-disable @typescript-eslint/indent */
26995
- const template$s = html `
26992
+ const template$t = html `
26996
26993
  <template
26997
26994
  role="radiogroup"
26998
26995
  aria-disabled="${x => x.disabled}"
26999
26996
  aria-readonly="${x => x.readOnly}"
26997
+ aria-required="${x => x.requiredVisible}"
27000
26998
  @click="${(x, c) => x.clickHandler(c.event)}"
27001
26999
  @keydown="${(x, c) => x.keydownHandler(c.event)}"
27002
27000
  @focusout="${(x, c) => x.focusOutHandler(c.event)}"
27003
27001
  >
27004
27002
  <div class="label-container">
27005
- <slot name="label"></slot>
27003
+ ${labelTemplate$2}
27006
27004
  <${iconExclamationMarkTag}
27007
27005
  severity="error"
27008
27006
  class="error-icon"
@@ -27026,12 +27024,12 @@ so this becomes the fallback color for the slot */ ''}
27026
27024
  /**
27027
27025
  * A nimble-styled grouping element for radio buttons
27028
27026
  */
27029
- class RadioGroup extends mixinErrorPattern(RadioGroup$1) {
27027
+ class RadioGroup extends mixinErrorPattern(mixinRequiredVisiblePattern(RadioGroup$1)) {
27030
27028
  }
27031
27029
  const nimbleRadioGroup = RadioGroup.compose({
27032
27030
  baseName: 'radio-group',
27033
27031
  baseClass: RadioGroup$1,
27034
- template: template$s,
27032
+ template: template$t,
27035
27033
  styles: styles$x,
27036
27034
  shadowOptions: {
27037
27035
  delegatesFocus: true
@@ -45379,7 +45377,7 @@ img.ProseMirror-separator {
45379
45377
  }).withDefault(richTextLabelDefaults.richTextToggleNumberedListLabel);
45380
45378
 
45381
45379
  const styles$v = css `
45382
- ${styles$K}
45380
+ ${styles$L}
45383
45381
 
45384
45382
  :host {
45385
45383
  height: auto;
@@ -45399,7 +45397,7 @@ img.ProseMirror-separator {
45399
45397
 
45400
45398
  /* eslint-disable @typescript-eslint/indent */
45401
45399
  // prettier-ignore
45402
- const template$r = html `
45400
+ const template$s = html `
45403
45401
  <template>
45404
45402
  <${anchoredRegionTag}
45405
45403
  ${ref('region')}
@@ -45687,7 +45685,7 @@ img.ProseMirror-separator {
45687
45685
  ], RichTextMentionListbox.prototype, "anchorElement", void 0);
45688
45686
  const nimbleRichTextMentionListbox = RichTextMentionListbox.compose({
45689
45687
  baseName: 'rich-text-mention-listbox',
45690
- template: template$r,
45688
+ template: template$s,
45691
45689
  styles: styles$v
45692
45690
  });
45693
45691
  DesignSystem.getOrCreate()
@@ -45696,7 +45694,7 @@ img.ProseMirror-separator {
45696
45694
  const richTextMentionListboxTag = 'nimble-rich-text-mention-listbox';
45697
45695
 
45698
45696
  // prettier-ignore
45699
- const template$q = html `
45697
+ const template$r = html `
45700
45698
  <template
45701
45699
  ${children$1({ property: 'childItems', filter: elements() })}
45702
45700
  @focusout="${x => x.focusoutHandler()}"
@@ -45800,7 +45798,7 @@ img.ProseMirror-separator {
45800
45798
 
45801
45799
  const styles$u = css `
45802
45800
  ${display$1('inline-flex')}
45803
- ${styles$N}
45801
+ ${styles$O}
45804
45802
 
45805
45803
  :host {
45806
45804
  font: ${bodyFont};
@@ -60492,7 +60490,7 @@ img.ProseMirror-separator {
60492
60490
  applyMixins(RichTextEditor, ARIAGlobalStatesAndProperties);
60493
60491
  const nimbleRichTextEditor = RichTextEditor.compose({
60494
60492
  baseName: 'rich-text-editor',
60495
- template: template$q,
60493
+ template: template$r,
60496
60494
  styles: styles$u,
60497
60495
  shadowOptions: {
60498
60496
  delegatesFocus: true
@@ -60502,7 +60500,7 @@ img.ProseMirror-separator {
60502
60500
  .withPrefix('nimble')
60503
60501
  .register(nimbleRichTextEditor());
60504
60502
 
60505
- const template$p = html `
60503
+ const template$q = html `
60506
60504
  <template ${children$1({ property: 'childItems', filter: elements() })}>
60507
60505
  <div ${ref('viewer')} class="viewer"></div>
60508
60506
  </template>
@@ -60619,7 +60617,7 @@ img.ProseMirror-separator {
60619
60617
  ], RichTextViewer.prototype, "markdown", void 0);
60620
60618
  const nimbleRichTextViewer = RichTextViewer.compose({
60621
60619
  baseName: 'rich-text-viewer',
60622
- template: template$p,
60620
+ template: template$q,
60623
60621
  styles: styles$t
60624
60622
  });
60625
60623
  DesignSystem.getOrCreate()
@@ -60627,8 +60625,9 @@ img.ProseMirror-separator {
60627
60625
  .register(nimbleRichTextViewer());
60628
60626
 
60629
60627
  const styles$s = css `
60628
+ ${styles$L}
60629
+ ${styles$O}
60630
60630
  ${styles$K}
60631
- ${styles$N}
60632
60631
 
60633
60632
  ${
60634
60633
  /* We are using flex `order` to define the visual ordering of the selected value,
@@ -60953,7 +60952,7 @@ img.ProseMirror-separator {
60953
60952
 
60954
60953
  /* eslint-disable @typescript-eslint/indent */
60955
60954
  // prettier-ignore
60956
- const template$o = html `
60955
+ const template$p = html `
60957
60956
  <template role="progressbar">
60958
60957
  ${''
60959
60958
  /**
@@ -61001,7 +61000,7 @@ img.ProseMirror-separator {
61001
61000
  ], Spinner.prototype, "appearance", void 0);
61002
61001
  const nimbleSpinner = Spinner.compose({
61003
61002
  baseName: 'spinner',
61004
- template: template$o,
61003
+ template: template$p,
61005
61004
  styles: styles$r
61006
61005
  });
61007
61006
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSpinner());
@@ -61013,9 +61012,14 @@ img.ProseMirror-separator {
61013
61012
  const isListOptionGroup = (n) => {
61014
61013
  return n instanceof ListOptionGroup;
61015
61014
  };
61015
+ const labelTemplate$1 = createRequiredVisibleLabelTemplate(html `
61016
+ <label part="label" class="label" aria-hidden="true">
61017
+ <slot ${ref('labelSlot')}></slot>
61018
+ </label>
61019
+ `);
61016
61020
  /* eslint-disable @typescript-eslint/indent */
61017
61021
  // prettier-ignore
61018
- const template$n = (context, definition) => html `
61022
+ const template$o = (context, definition) => html `
61019
61023
  <template
61020
61024
  class="${x => [
61021
61025
  x.collapsible && 'collapsible',
@@ -61030,6 +61034,7 @@ img.ProseMirror-separator {
61030
61034
  aria-haspopup="${x => (x.collapsible ? 'listbox' : null)}"
61031
61035
  aria-label="${x => x.labelContent}"
61032
61036
  aria-multiselectable="${x => x.ariaMultiSelectable}"
61037
+ aria-required="${x => x.requiredVisible}"
61033
61038
  ?open="${x => x.open}"
61034
61039
  role="combobox"
61035
61040
  tabindex="${x => (!x.disabled ? '0' : null)}"
@@ -61040,9 +61045,7 @@ img.ProseMirror-separator {
61040
61045
  @keydown="${(x, c) => x.keydownHandler(c.event)}"
61041
61046
  @mousedown="${(x, c) => x.mousedownHandler(c.event)}"
61042
61047
  >
61043
- <label part="label" class="label" aria-hidden="true">
61044
- <slot ${ref('labelSlot')}></slot>
61045
- </label>
61048
+ ${labelTemplate$1}
61046
61049
  ${when(x => x.collapsible, html `
61047
61050
  <div
61048
61051
  class="control"
@@ -61179,7 +61182,7 @@ img.ProseMirror-separator {
61179
61182
  /**
61180
61183
  * A nimble-styled HTML select.
61181
61184
  */
61182
- class Select extends mixinErrorPattern(FormAssociatedSelect) {
61185
+ class Select extends mixinErrorPattern(mixinRequiredVisiblePattern(FormAssociatedSelect)) {
61183
61186
  constructor() {
61184
61187
  super(...arguments);
61185
61188
  this.appearance = DropdownAppearance.underline;
@@ -62225,7 +62228,7 @@ img.ProseMirror-separator {
62225
62228
  const nimbleSelect = Select.compose({
62226
62229
  baseName: 'select',
62227
62230
  baseClass: Select$2,
62228
- template: template$n,
62231
+ template: template$o,
62229
62232
  styles: styles$s,
62230
62233
  indicator: arrowExpanderDown16X16.data,
62231
62234
  end: html `
@@ -62402,7 +62405,7 @@ img.ProseMirror-separator {
62402
62405
  `));
62403
62406
 
62404
62407
  // prettier-ignore
62405
- const template$m = html `
62408
+ const template$n = html `
62406
62409
  <template
62407
62410
  role="switch"
62408
62411
  aria-checked="${x => x.checked}"
@@ -62446,7 +62449,7 @@ img.ProseMirror-separator {
62446
62449
  const nimbleSwitch = Switch.compose({
62447
62450
  baseClass: Switch$1,
62448
62451
  baseName: 'switch',
62449
- template: template$m,
62452
+ template: template$n,
62450
62453
  styles: styles$q
62451
62454
  });
62452
62455
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSwitch());
@@ -66562,7 +66565,7 @@ focus outline in that case.
66562
66565
  `;
66563
66566
 
66564
66567
  // prettier-ignore
66565
- const template$l = html `
66568
+ const template$m = html `
66566
66569
  <template role="columnheader"
66567
66570
  class="${x => (x.alignment === TableColumnAlignment.right ? 'right-align' : '')}"
66568
66571
  aria-sort="${x => x.ariaSort}"
@@ -66648,7 +66651,7 @@ focus outline in that case.
66648
66651
  ], TableHeader.prototype, "isGrouped", void 0);
66649
66652
  const nimbleTableHeader = TableHeader.compose({
66650
66653
  baseName: 'table-header',
66651
- template: template$l,
66654
+ template: template$m,
66652
66655
  styles: styles$m
66653
66656
  });
66654
66657
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTableHeader());
@@ -66897,7 +66900,7 @@ focus outline in that case.
66897
66900
  `;
66898
66901
 
66899
66902
  // prettier-ignore
66900
- const template$k = html `
66903
+ const template$l = html `
66901
66904
  <template role="cell" style="--ni-private-table-cell-nesting-level: ${x => x.nestingLevel}"
66902
66905
  @focusin="${x => x.onCellFocusIn()}"
66903
66906
  @blur="${x => x.onCellBlur()}"
@@ -66994,14 +66997,14 @@ focus outline in that case.
66994
66997
  ], TableCell.prototype, "nestingLevel", void 0);
66995
66998
  const nimbleTableCell = TableCell.compose({
66996
66999
  baseName: 'table-cell',
66997
- template: template$k,
67000
+ template: template$l,
66998
67001
  styles: styles$j
66999
67002
  });
67000
67003
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTableCell());
67001
67004
  const tableCellTag = 'nimble-table-cell';
67002
67005
 
67003
67006
  // prettier-ignore
67004
- const template$j = html `
67007
+ const template$k = html `
67005
67008
  <template
67006
67009
  role="row"
67007
67010
  aria-selected=${x => x.ariaSelected}
@@ -67395,7 +67398,7 @@ focus outline in that case.
67395
67398
  ], TableRow.prototype, "ariaSelected", null);
67396
67399
  const nimbleTableRow = TableRow.compose({
67397
67400
  baseName: 'table-row',
67398
- template: template$j,
67401
+ template: template$k,
67399
67402
  styles: styles$k
67400
67403
  });
67401
67404
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTableRow());
@@ -67493,7 +67496,7 @@ focus outline in that case.
67493
67496
 
67494
67497
  /* eslint-disable @typescript-eslint/indent */
67495
67498
  // prettier-ignore
67496
- const template$i = html `
67499
+ const template$j = html `
67497
67500
  <template
67498
67501
  role="row"
67499
67502
  @click=${x => x.onGroupExpandToggle()}
@@ -67651,14 +67654,14 @@ focus outline in that case.
67651
67654
  ], TableGroupRow.prototype, "allowHover", void 0);
67652
67655
  const nimbleTableGroupRow = TableGroupRow.compose({
67653
67656
  baseName: 'table-group-row',
67654
- template: template$i,
67657
+ template: template$j,
67655
67658
  styles: styles$i
67656
67659
  });
67657
67660
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTableGroupRow());
67658
67661
  const tableGroupRowTag = 'nimble-table-group-row';
67659
67662
 
67660
67663
  // prettier-ignore
67661
- const template$h = html `
67664
+ const template$i = html `
67662
67665
  <template
67663
67666
  role="treegrid"
67664
67667
  ${'' /* tabindex managed dynamically by KeyboardNavigationManager */}
@@ -71719,7 +71722,7 @@ focus outline in that case.
71719
71722
  ], Table$1.prototype, "windowShiftKeyDown", void 0);
71720
71723
  const nimbleTable = Table$1.compose({
71721
71724
  baseName: 'table',
71722
- template: template$h,
71725
+ template: template$i,
71723
71726
  styles: styles$n
71724
71727
  });
71725
71728
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTable());
@@ -71737,7 +71740,7 @@ focus outline in that case.
71737
71740
  // Avoiding a wrapping <template> and be careful about starting and ending whitspace
71738
71741
  // so the template can be composed into other column header templates
71739
71742
  // prettier-ignore
71740
- const template$g = html `<span
71743
+ const template$h = html `<span
71741
71744
  ${overflow('hasOverflow')}
71742
71745
  class="header-content"
71743
71746
  title=${x => (x.hasOverflow && x.headerTextContent ? x.headerTextContent : null)}
@@ -71845,7 +71848,7 @@ focus outline in that case.
71845
71848
 
71846
71849
  /* eslint-disable @typescript-eslint/indent */
71847
71850
  // prettier-ignore
71848
- const template$f = html `
71851
+ const template$g = html `
71849
71852
  <template
71850
71853
  @click="${(x, c) => {
71851
71854
  if (typeof x.cellRecord?.href === 'string') {
@@ -71938,7 +71941,7 @@ focus outline in that case.
71938
71941
  ], TableColumnAnchorCellView.prototype, "showAnchor", null);
71939
71942
  const anchorCellView = TableColumnAnchorCellView.compose({
71940
71943
  baseName: 'table-column-anchor-cell-view',
71941
- template: template$f,
71944
+ template: template$g,
71942
71945
  styles: styles$g
71943
71946
  });
71944
71947
  DesignSystem.getOrCreate().withPrefix('nimble').register(anchorCellView());
@@ -72016,7 +72019,7 @@ focus outline in that case.
72016
72019
  observable
72017
72020
  ], TableColumnTextGroupHeaderViewBase.prototype, "text", void 0);
72018
72021
 
72019
- const template$e = html `
72022
+ const template$f = html `
72020
72023
  <span
72021
72024
  ${overflow('hasOverflow')}
72022
72025
  title="${x => (x.hasOverflow && x.text ? x.text : null)}"
@@ -72049,7 +72052,7 @@ focus outline in that case.
72049
72052
  }
72050
72053
  const tableColumnTextGroupHeaderView = TableColumnTextGroupHeaderView.compose({
72051
72054
  baseName: 'table-column-text-group-header-view',
72052
- template: template$e,
72055
+ template: template$f,
72053
72056
  styles: styles$f
72054
72057
  });
72055
72058
  DesignSystem.getOrCreate()
@@ -72302,7 +72305,7 @@ focus outline in that case.
72302
72305
  ], TableColumnAnchor.prototype, "download", void 0);
72303
72306
  const nimbleTableColumnAnchor = TableColumnAnchor.compose({
72304
72307
  baseName: 'table-column-anchor',
72305
- template: template$g,
72308
+ template: template$h,
72306
72309
  styles: styles$h
72307
72310
  });
72308
72311
  DesignSystem.getOrCreate()
@@ -72355,7 +72358,7 @@ focus outline in that case.
72355
72358
  }
72356
72359
  const tableColumnDateTextGroupHeaderView = TableColumnDateTextGroupHeaderView.compose({
72357
72360
  baseName: 'table-column-date-text-group-header-view',
72358
- template: template$e,
72361
+ template: template$f,
72359
72362
  styles: styles$f
72360
72363
  });
72361
72364
  DesignSystem.getOrCreate()
@@ -72364,7 +72367,7 @@ focus outline in that case.
72364
72367
  const tableColumnDateTextGroupHeaderViewTag = 'nimble-table-column-date-text-group-header-view';
72365
72368
 
72366
72369
  // prettier-ignore
72367
- const template$d = html `
72370
+ const template$e = html `
72368
72371
  <template
72369
72372
  class="
72370
72373
  ${x => (x.alignment === TableColumnAlignment.right ? 'right-align' : '')}
@@ -72482,7 +72485,7 @@ focus outline in that case.
72482
72485
  }
72483
72486
  const dateTextCellView = TableColumnDateTextCellView.compose({
72484
72487
  baseName: 'table-column-date-text-cell-view',
72485
- template: template$d,
72488
+ template: template$e,
72486
72489
  styles: styles$e
72487
72490
  });
72488
72491
  DesignSystem.getOrCreate().withPrefix('nimble').register(dateTextCellView());
@@ -72743,7 +72746,7 @@ focus outline in that case.
72743
72746
  ], TableColumnDateText.prototype, "customHourCycle", void 0);
72744
72747
  const nimbleTableColumnDateText = TableColumnDateText.compose({
72745
72748
  baseName: 'table-column-date-text',
72746
- template: template$g,
72749
+ template: template$h,
72747
72750
  styles: styles$h
72748
72751
  });
72749
72752
  DesignSystem.getOrCreate()
@@ -72760,7 +72763,7 @@ focus outline in that case.
72760
72763
  }
72761
72764
  const durationTextCellView = TableColumnDurationTextCellView.compose({
72762
72765
  baseName: 'table-column-duration-text-cell-view',
72763
- template: template$d,
72766
+ template: template$e,
72764
72767
  styles: styles$e
72765
72768
  });
72766
72769
  DesignSystem.getOrCreate()
@@ -72862,7 +72865,7 @@ focus outline in that case.
72862
72865
  }
72863
72866
  const tableColumnDurationTextGroupHeaderView = TableColumnDurationTextGroupHeaderView.compose({
72864
72867
  baseName: 'table-column-duration-text-group-header-view',
72865
- template: template$e,
72868
+ template: template$f,
72866
72869
  styles: styles$f
72867
72870
  });
72868
72871
  DesignSystem.getOrCreate()
@@ -72915,7 +72918,7 @@ focus outline in that case.
72915
72918
  }
72916
72919
  const nimbleTableColumnDurationText = TableColumnDurationText.compose({
72917
72920
  baseName: 'table-column-duration-text',
72918
- template: template$g,
72921
+ template: template$h,
72919
72922
  styles: styles$h
72920
72923
  });
72921
72924
  DesignSystem.getOrCreate()
@@ -73032,7 +73035,7 @@ focus outline in that case.
73032
73035
  }
73033
73036
  `;
73034
73037
 
73035
- const template$c = html `${template$g}<slot ${slotted('mappings')} name="mapping"></slot>`;
73038
+ const template$d = html `${template$h}<slot ${slotted('mappings')} name="mapping"></slot>`;
73036
73039
 
73037
73040
  const enumBaseValidityFlagNames = [
73038
73041
  'invalidMappingKeyValueForType',
@@ -73143,7 +73146,7 @@ focus outline in that case.
73143
73146
  `;
73144
73147
 
73145
73148
  // prettier-ignore
73146
- const template$b = html `
73149
+ const template$c = html `
73147
73150
  ${when(x => x.visualizationTemplate, html `
73148
73151
  <span class="reserve-icon-size">
73149
73152
  ${x => x.visualizationTemplate}
@@ -73292,7 +73295,7 @@ focus outline in that case.
73292
73295
  ], TableColumnMappingGroupHeaderView.prototype, "visualizationTemplate", void 0);
73293
73296
  const mappingGroupHeaderView = TableColumnMappingGroupHeaderView.compose({
73294
73297
  baseName: 'table-column-mapping-group-header-view',
73295
- template: template$b,
73298
+ template: template$c,
73296
73299
  styles: styles$c
73297
73300
  });
73298
73301
  DesignSystem.getOrCreate()
@@ -73325,7 +73328,7 @@ focus outline in that case.
73325
73328
  `;
73326
73329
 
73327
73330
  // prettier-ignore
73328
- const template$a = html `
73331
+ const template$b = html `
73329
73332
  ${when(x => x.visualizationTemplate, html `
73330
73333
  <span class="reserve-icon-size">
73331
73334
  ${x => x.visualizationTemplate}
@@ -73412,7 +73415,7 @@ focus outline in that case.
73412
73415
  ], TableColumnMappingCellView.prototype, "hasOverflow", void 0);
73413
73416
  const mappingCellView = TableColumnMappingCellView.compose({
73414
73417
  baseName: 'table-column-mapping-cell-view',
73415
- template: template$a,
73418
+ template: template$b,
73416
73419
  styles: styles$b
73417
73420
  });
73418
73421
  DesignSystem.getOrCreate().withPrefix('nimble').register(mappingCellView());
@@ -73497,16 +73500,16 @@ focus outline in that case.
73497
73500
  ], TableColumnMapping.prototype, "widthMode", void 0);
73498
73501
  const nimbleTableColumnMapping = TableColumnMapping.compose({
73499
73502
  baseName: 'table-column-mapping',
73500
- template: template$c,
73503
+ template: template$d,
73501
73504
  styles: styles$d
73502
73505
  });
73503
73506
  DesignSystem.getOrCreate()
73504
73507
  .withPrefix('nimble')
73505
73508
  .register(nimbleTableColumnMapping());
73506
73509
 
73507
- const template$9 = html `
73510
+ const template$a = html `
73508
73511
  <template @delegated-event="${(x, c) => x.onDelegatedEvent(c.event)}"
73509
- >${template$g}</template
73512
+ >${template$h}</template
73510
73513
  >
73511
73514
  `;
73512
73515
 
@@ -73514,7 +73517,7 @@ focus outline in that case.
73514
73517
  const cellViewMenuSlotName = 'menu-button-menu';
73515
73518
 
73516
73519
  // prettier-ignore
73517
- const template$8 = html `
73520
+ const template$9 = html `
73518
73521
  ${when(x => x.showMenuButton, html `
73519
73522
  <${menuButtonTag}
73520
73523
  ${ref('menuButton')}
@@ -73608,7 +73611,7 @@ focus outline in that case.
73608
73611
  ], TableColumnMenuButtonCellView.prototype, "showMenuButton", null);
73609
73612
  const menuButtonCellView = TableColumnMenuButtonCellView.compose({
73610
73613
  baseName: 'table-column-menu-button-cell-view',
73611
- template: template$8,
73614
+ template: template$9,
73612
73615
  styles: styles$a
73613
73616
  });
73614
73617
  DesignSystem.getOrCreate().withPrefix('nimble').register(menuButtonCellView());
@@ -73664,7 +73667,7 @@ focus outline in that case.
73664
73667
  ], TableColumnMenuButton.prototype, "menuSlot", void 0);
73665
73668
  const nimbleTableColumnMenuButton = TableColumnMenuButton.compose({
73666
73669
  baseName: 'table-column-menu-button',
73667
- template: template$9,
73670
+ template: template$a,
73668
73671
  styles: styles$h
73669
73672
  });
73670
73673
  DesignSystem.getOrCreate()
@@ -73674,7 +73677,7 @@ focus outline in that case.
73674
73677
  // Avoiding a wrapping <template> and be careful about starting and ending whitespace
73675
73678
  // so the template can be composed into other column header templates
73676
73679
  // prettier-ignore
73677
- const template$7 = html `<span
73680
+ const template$8 = html `<span
73678
73681
  ${overflow('hasOverflow')}
73679
73682
  class="header-content"
73680
73683
  title=${x => (x.hasOverflow && x.headerTextContent ? x.headerTextContent : null)}
@@ -73693,7 +73696,7 @@ focus outline in that case.
73693
73696
  }
73694
73697
  const tableColumnNumberTextGroupHeaderView = TableColumnNumberTextGroupHeaderView.compose({
73695
73698
  baseName: 'table-column-number-text-group-header-view',
73696
- template: template$e,
73699
+ template: template$f,
73697
73700
  styles: styles$f
73698
73701
  });
73699
73702
  DesignSystem.getOrCreate()
@@ -73715,7 +73718,7 @@ focus outline in that case.
73715
73718
  }
73716
73719
  const numberTextCellView = TableColumnNumberTextCellView.compose({
73717
73720
  baseName: 'table-column-number-text-cell-view',
73718
- template: template$d,
73721
+ template: template$e,
73719
73722
  styles: styles$e
73720
73723
  });
73721
73724
  DesignSystem.getOrCreate().withPrefix('nimble').register(numberTextCellView());
@@ -74257,7 +74260,7 @@ focus outline in that case.
74257
74260
  ], TableColumnNumberText.prototype, "unit", void 0);
74258
74261
  const nimbleTableColumnNumberText = TableColumnNumberText.compose({
74259
74262
  baseName: 'table-column-number-text',
74260
- template: template$7,
74263
+ template: template$8,
74261
74264
  styles: styles$h
74262
74265
  });
74263
74266
  DesignSystem.getOrCreate()
@@ -74276,7 +74279,7 @@ focus outline in that case.
74276
74279
  }
74277
74280
  const textCellView = TableColumnTextCellView.compose({
74278
74281
  baseName: 'table-column-text-cell-view',
74279
- template: template$d,
74282
+ template: template$e,
74280
74283
  styles: styles$e
74281
74284
  });
74282
74285
  DesignSystem.getOrCreate().withPrefix('nimble').register(textCellView());
@@ -74331,7 +74334,7 @@ focus outline in that case.
74331
74334
  }
74332
74335
  const nimbleTableColumnText = TableColumnText.compose({
74333
74336
  baseName: 'table-column-text',
74334
- template: template$g,
74337
+ template: template$h,
74335
74338
  styles: styles$h
74336
74339
  });
74337
74340
  DesignSystem.getOrCreate()
@@ -74339,7 +74342,7 @@ focus outline in that case.
74339
74342
  .register(nimbleTableColumnText());
74340
74343
 
74341
74344
  const styles$9 = css `
74342
- ${styles$X}
74345
+ ${styles$Y}
74343
74346
 
74344
74347
  .tabpanel {
74345
74348
  overflow: auto;
@@ -74420,7 +74423,7 @@ focus outline in that case.
74420
74423
  const nimbleTabs = Tabs.compose({
74421
74424
  baseName: 'tabs',
74422
74425
  baseClass: Tabs$1,
74423
- template: template$G,
74426
+ template: template$I,
74424
74427
  styles: styles$9
74425
74428
  });
74426
74429
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTabs());
@@ -74444,7 +74447,7 @@ focus outline in that case.
74444
74447
  }
74445
74448
  `;
74446
74449
 
74447
- const template$6 = html `
74450
+ const template$7 = html `
74448
74451
  <template slot="end">
74449
74452
  <div class="separator"></div>
74450
74453
  <slot></slot>
@@ -74458,7 +74461,7 @@ focus outline in that case.
74458
74461
  }
74459
74462
  const nimbleTabsToolbar = TabsToolbar.compose({
74460
74463
  baseName: 'tabs-toolbar',
74461
- template: template$6,
74464
+ template: template$7,
74462
74465
  styles: styles$8
74463
74466
  });
74464
74467
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTabsToolbar());
@@ -74470,7 +74473,8 @@ focus outline in that case.
74470
74473
 
74471
74474
  const styles$7 = css `
74472
74475
  ${display$1('inline-flex')}
74473
- ${styles$N}
74476
+ ${styles$O}
74477
+ ${styles$K}
74474
74478
 
74475
74479
  :host {
74476
74480
  font: ${bodyFont};
@@ -74632,7 +74636,7 @@ focus outline in that case.
74632
74636
  }
74633
74637
  `));
74634
74638
 
74635
- const template$5 = () => html `
74639
+ const labelTemplate = createRequiredVisibleLabelTemplate(html `
74636
74640
  <label
74637
74641
  part="label"
74638
74642
  for="control"
@@ -74640,6 +74644,9 @@ focus outline in that case.
74640
74644
  >
74641
74645
  <slot ${slotted('defaultSlottedNodes')}></slot>
74642
74646
  </label>
74647
+ `);
74648
+ const template$6 = () => html `
74649
+ ${labelTemplate}
74643
74650
  <div class="container">
74644
74651
  <textarea
74645
74652
  part="control"
@@ -74678,6 +74685,7 @@ focus outline in that case.
74678
74685
  aria-owns="${x => x.ariaOwns}"
74679
74686
  aria-relevant="${x => x.ariaRelevant}"
74680
74687
  aria-roledescription="${x => x.ariaRoledescription}"
74688
+ aria-required="${x => x.requiredVisible}"
74681
74689
  @input="${x => x.onTextAreaInput()}"
74682
74690
  @change="${x => x.handleChange()}"
74683
74691
  ${ref('control')}
@@ -74694,7 +74702,7 @@ focus outline in that case.
74694
74702
  /**
74695
74703
  * A nimble-styed HTML text area
74696
74704
  */
74697
- class TextArea extends mixinErrorPattern(TextArea$1) {
74705
+ class TextArea extends mixinErrorPattern(mixinRequiredVisiblePattern(TextArea$1)) {
74698
74706
  constructor() {
74699
74707
  super(...arguments);
74700
74708
  /**
@@ -74781,7 +74789,7 @@ focus outline in that case.
74781
74789
  const nimbleTextArea = TextArea.compose({
74782
74790
  baseName: 'text-area',
74783
74791
  baseClass: TextArea$1,
74784
- template: template$5,
74792
+ template: template$6,
74785
74793
  styles: styles$7,
74786
74794
  shadowOptions: {
74787
74795
  delegatesFocus: true
@@ -74801,7 +74809,7 @@ focus outline in that case.
74801
74809
 
74802
74810
  const styles$6 = css `
74803
74811
  ${display$1('inline-block')}
74804
- ${styles$N}
74812
+ ${styles$O}
74805
74813
 
74806
74814
  :host {
74807
74815
  font: ${bodyFont};
@@ -75038,6 +75046,77 @@ focus outline in that case.
75038
75046
  }
75039
75047
  `));
75040
75048
 
75049
+ /**
75050
+ * The template for the {@link @microsoft/fast-foundation#(TextField:class)} component.
75051
+ * @public
75052
+ */
75053
+ const template$5 = (context, definition) => html `
75054
+ <template
75055
+ class="
75056
+ ${x => (x.readOnly ? 'readonly' : '')}
75057
+ "
75058
+ >
75059
+ <label
75060
+ part="label"
75061
+ for="control"
75062
+ class="${x => (x.defaultSlottedNodes?.length
75063
+ ? 'label'
75064
+ : 'label label__hidden')}"
75065
+ >
75066
+ <slot
75067
+ ${slotted({
75068
+ property: 'defaultSlottedNodes',
75069
+ filter: whitespaceFilter
75070
+ })}
75071
+ ></slot>
75072
+ </label>
75073
+ <div class="root" part="root">
75074
+ ${startSlotTemplate(context, definition)}
75075
+ <input
75076
+ class="control"
75077
+ part="control"
75078
+ id="control"
75079
+ @input="${x => x.handleTextInput()}"
75080
+ @change="${x => x.handleChange()}"
75081
+ ?autofocus="${x => x.autofocus}"
75082
+ ?disabled="${x => x.disabled}"
75083
+ list="${x => x.list}"
75084
+ maxlength="${x => x.maxlength}"
75085
+ minlength="${x => x.minlength}"
75086
+ pattern="${x => x.pattern}"
75087
+ placeholder="${x => x.placeholder}"
75088
+ ?readonly="${x => x.readOnly}"
75089
+ ?required="${x => x.required}"
75090
+ size="${x => x.size}"
75091
+ ?spellcheck="${x => x.spellcheck}"
75092
+ :value="${x => x.value}"
75093
+ type="${x => x.type}"
75094
+ aria-atomic="${x => x.ariaAtomic}"
75095
+ aria-busy="${x => x.ariaBusy}"
75096
+ aria-controls="${x => x.ariaControls}"
75097
+ aria-current="${x => x.ariaCurrent}"
75098
+ aria-describedby="${x => x.ariaDescribedby}"
75099
+ aria-details="${x => x.ariaDetails}"
75100
+ aria-disabled="${x => x.ariaDisabled}"
75101
+ aria-errormessage="${x => x.ariaErrormessage}"
75102
+ aria-flowto="${x => x.ariaFlowto}"
75103
+ aria-haspopup="${x => x.ariaHaspopup}"
75104
+ aria-hidden="${x => x.ariaHidden}"
75105
+ aria-invalid="${x => x.ariaInvalid}"
75106
+ aria-keyshortcuts="${x => x.ariaKeyshortcuts}"
75107
+ aria-label="${x => x.ariaLabel}"
75108
+ aria-labelledby="${x => x.ariaLabelledby}"
75109
+ aria-live="${x => x.ariaLive}"
75110
+ aria-owns="${x => x.ariaOwns}"
75111
+ aria-relevant="${x => x.ariaRelevant}"
75112
+ aria-roledescription="${x => x.ariaRoledescription}"
75113
+ ${ref('control')}
75114
+ />
75115
+ ${endSlotTemplate(context, definition)}
75116
+ </div>
75117
+ </template>
75118
+ `;
75119
+
75041
75120
  /**
75042
75121
  * A nimble-styed HTML text input
75043
75122
  */
@@ -75064,7 +75143,7 @@ focus outline in that case.
75064
75143
  const nimbleTextField = TextField.compose({
75065
75144
  baseName: 'text-field',
75066
75145
  baseClass: TextField$1,
75067
- template: textFieldTemplate,
75146
+ template: template$5,
75068
75147
  styles: styles$6,
75069
75148
  shadowOptions: {
75070
75149
  delegatesFocus: true