@fluentui/web-components 3.0.0-beta.31 → 3.0.0-beta.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/CHANGELOG.md +18 -2
  2. package/dist/dts/anchor-button/anchor-button.d.ts +1 -1
  3. package/dist/dts/checkbox/checkbox.d.ts +13 -1
  4. package/dist/dts/divider/divider.d.ts +18 -0
  5. package/dist/dts/image/image.d.ts +36 -0
  6. package/dist/dts/label/label.d.ts +24 -0
  7. package/dist/dts/link/link.d.ts +12 -0
  8. package/dist/dts/progress-bar/progress-bar.d.ts +18 -0
  9. package/dist/dts/spinner/spinner.d.ts +13 -1
  10. package/dist/dts/styles/states/index.d.ts +65 -0
  11. package/dist/dts/text-input/text-input.d.ts +12 -0
  12. package/dist/esm/anchor-button/anchor-button.js.map +1 -1
  13. package/dist/esm/checkbox/checkbox.js +26 -0
  14. package/dist/esm/checkbox/checkbox.js.map +1 -1
  15. package/dist/esm/checkbox/checkbox.styles.js +6 -5
  16. package/dist/esm/checkbox/checkbox.styles.js.map +1 -1
  17. package/dist/esm/divider/divider.js +47 -2
  18. package/dist/esm/divider/divider.js.map +1 -1
  19. package/dist/esm/divider/divider.styles.js +31 -30
  20. package/dist/esm/divider/divider.styles.js.map +1 -1
  21. package/dist/esm/image/image.js +68 -0
  22. package/dist/esm/image/image.js.map +1 -1
  23. package/dist/esm/image/image.styles.js +10 -9
  24. package/dist/esm/image/image.styles.js.map +1 -1
  25. package/dist/esm/label/label.js +41 -0
  26. package/dist/esm/label/label.js.map +1 -1
  27. package/dist/esm/label/label.styles.js +7 -6
  28. package/dist/esm/label/label.styles.js.map +1 -1
  29. package/dist/esm/link/link.js +22 -0
  30. package/dist/esm/link/link.js.map +1 -1
  31. package/dist/esm/link/link.styles.js +5 -4
  32. package/dist/esm/link/link.styles.js.map +1 -1
  33. package/dist/esm/progress-bar/progress-bar.js +40 -0
  34. package/dist/esm/progress-bar/progress-bar.js.map +1 -1
  35. package/dist/esm/progress-bar/progress-bar.styles.js +7 -6
  36. package/dist/esm/progress-bar/progress-bar.styles.js.map +1 -1
  37. package/dist/esm/spinner/spinner.js +27 -0
  38. package/dist/esm/spinner/spinner.js.map +1 -1
  39. package/dist/esm/spinner/spinner.styles.js +9 -8
  40. package/dist/esm/spinner/spinner.styles.js.map +1 -1
  41. package/dist/esm/styles/states/index.js +65 -0
  42. package/dist/esm/styles/states/index.js.map +1 -1
  43. package/dist/esm/text-input/text-input.js +27 -0
  44. package/dist/esm/text-input/text-input.js.map +1 -1
  45. package/dist/esm/text-input/text-input.styles.js +23 -22
  46. package/dist/esm/text-input/text-input.styles.js.map +1 -1
  47. package/dist/web-components.d.ts +147 -3
  48. package/dist/web-components.js +307 -15
  49. package/dist/web-components.min.js +277 -277
  50. package/package.json +1 -1
@@ -4391,11 +4391,16 @@ __decorateClass$p([attr({
4391
4391
  })], AnchorButton.prototype, "iconOnly", 2);
4392
4392
  applyMixins(AnchorButton, StartEnd);
4393
4393
 
4394
+ const filledLighterState = css.partial`:is([state--filled-lighter], :state(filled-lighter))`;
4395
+ const filledDarkerState = css.partial`:is([state--filled-darker], :state(filled-darker))`;
4394
4396
  const ghostState = css.partial`:is([state--ghost], :state(ghost))`;
4397
+ const invertedState = css.partial`:is([state--inverted], :state(inverted))`;
4395
4398
  const primaryState = css.partial`:is([state--primary], :state(primary))`;
4396
4399
  const outlineState = css.partial`:is([state--outline], :state(outline))`;
4400
+ const strongState = css.partial`:is([state--strong], :state(strong))`;
4397
4401
  const subtleState = css.partial`:is([state--subtle], :state(subtle))`;
4398
4402
  const tintState = css.partial`:is([state--tint], :state(tint))`;
4403
+ const underlineState = css.partial`:is([state--underline], :state(underline))`;
4399
4404
  const transparentState = css.partial`:is([state--transparent], :state(transparent))`;
4400
4405
  const circularState = css.partial`:is([state--circular], :state(circular))`;
4401
4406
  const roundedState = css.partial`:is([state--rounded], :state(rounded))`;
@@ -4405,14 +4410,22 @@ const extraSmallState = css.partial`:is([state--extra-small], :state(extra-small
4405
4410
  const smallState = css.partial`:is([state--small], :state(small))`;
4406
4411
  const largeState = css.partial`:is([state--large], :state(large))`;
4407
4412
  const extraLargeState = css.partial`:is([state--extra-large], :state(extra-large))`;
4413
+ const hugeState = css.partial`:is([state--huge], :state(huge))`;
4414
+ const alignStartState = css.partial`:is([state--align-start], :state(align-start))`;
4415
+ const alignEndState = css.partial`:is([state--align-end], :state(align-end))`;
4416
+ const insetState = css.partial`:is([state--inset], :state(inset))`;
4408
4417
  const iconOnlyState = css.partial`:is([state--icon], :state(icon))`;
4409
4418
  const pressedState = css.partial`:is([state--pressed], :state(pressed))`;
4419
+ const brandState = css.partial`:is([state--brand], :state(brand))`;
4420
+ const errorState = css.partial`:is([state--error], :state(error))`;
4410
4421
  const dangerState = css.partial`:is([state--danger], :state(danger))`;
4411
4422
  const importantState = css.partial`:is([state--important], :state(important))`;
4412
4423
  const informativeState = css.partial`:is([state--informative], :state(informative))`;
4413
4424
  const severeState = css.partial`:is([state--severe], :state(severe))`;
4414
4425
  const successState = css.partial`:is([state--success], :state(success))`;
4415
4426
  const warningState = css.partial`:is([state--warning], :state(warning))`;
4427
+ const verticalState = css.partial`:is([state--vertical], :state(vertical))`;
4428
+ css.partial`:is([state--horizontal], :state(horizontal))`;
4416
4429
 
4417
4430
  const baseButtonStyles = css`
4418
4431
  ${display("inline-flex")}
@@ -5781,7 +5794,34 @@ __decorateClass$l([attr], BaseCheckbox.prototype, "name", 2);
5781
5794
  __decorateClass$l([attr({
5782
5795
  mode: "boolean"
5783
5796
  })], BaseCheckbox.prototype, "required", 2);
5784
- class Checkbox extends BaseCheckbox {}
5797
+ class Checkbox extends BaseCheckbox {
5798
+ /**
5799
+ * Handles changes to shape attribute custom states
5800
+ * @param prev - the previous state
5801
+ * @param next - the next state
5802
+ */
5803
+ shapeChanged(prev, next) {
5804
+ if (prev) {
5805
+ toggleState(this.elementInternals, prev, false);
5806
+ }
5807
+ if (next) {
5808
+ toggleState(this.elementInternals, next, true);
5809
+ }
5810
+ }
5811
+ /**
5812
+ * Handles changes to size attribute custom states
5813
+ * @param prev - the previous state
5814
+ * @param next - the next state
5815
+ */
5816
+ sizeChanged(prev, next) {
5817
+ if (prev) {
5818
+ toggleState(this.elementInternals, prev, false);
5819
+ }
5820
+ if (next) {
5821
+ toggleState(this.elementInternals, next, true);
5822
+ }
5823
+ }
5824
+ }
5785
5825
  __decorateClass$l([attr], Checkbox.prototype, "shape", 2);
5786
5826
  __decorateClass$l([attr], Checkbox.prototype, "size", 2);
5787
5827
 
@@ -5790,7 +5830,7 @@ const indeterminateState = css.partial`:is([state--indeterminate], :state(indete
5790
5830
  const styles$o = css`
5791
5831
  ${display("inline-flex")}
5792
5832
 
5793
- :host{--size:16px;background-color:${colorNeutralBackground1};border-radius:${borderRadiusSmall};border:${strokeWidthThin} solid ${colorNeutralStrokeAccessible};box-sizing:border-box;cursor:pointer;position:relative;width:var(--size)}:host,.indeterminate-indicator,.checked-indicator{aspect-ratio:1}:host(:hover){border-color:${colorNeutralStrokeAccessibleHover}}:host(:active){border-color:${colorNeutralStrokeAccessiblePressed}}:host(${checkedState$1}:hover){background-color:${colorCompoundBrandBackgroundHover};border-color:${colorCompoundBrandStrokeHover}}:host(${checkedState$1}:active){background-color:${colorCompoundBrandBackgroundPressed};border-color:${colorCompoundBrandStrokePressed}}:host(:focus-visible){outline:none}:host(:not([slot='input']))::after{content:'';position:absolute;inset:-8px;box-sizing:border-box;outline:none;border:${strokeWidthThick} solid ${colorTransparentStroke};border-radius:${borderRadiusMedium}}:host(:not([slot='input']):focus-visible)::after{border-color:${colorStrokeFocus2}}.indeterminate-indicator,.checked-indicator{color:${colorNeutralForegroundInverted};inset:0;margin:auto;position:absolute}::slotted([slot='checked-indicator']),.checked-indicator{fill:currentColor;display:inline-flex;flex:1 0 auto;width:12px}:host(:not(${checkedState$1})) *:is(::slotted([slot='checked-indicator']),.checked-indicator){display:none}:host(${checkedState$1}),:host(${indeterminateState}){border-color:${colorCompoundBrandStroke}}:host(${checkedState$1}),:host(${indeterminateState}) .indeterminate-indicator{background-color:${colorCompoundBrandBackground}}:host(${indeterminateState}) .indeterminate-indicator{border-radius:${borderRadiusSmall};position:absolute;width:calc(var(--size) / 2);inset:0}:host([size='large']){--size:20px}:host([size='large']) ::slotted([slot='checked-indicator']),:host([size='large']) .checked-indicator{width:16px}:host([shape='circular']),:host([shape='circular']) .indeterminate-indicator{border-radius:${borderRadiusCircular}}:host([disabled]),:host([disabled]${checkedState$1}){background-color:${colorNeutralBackgroundDisabled};border-color:${colorNeutralStrokeDisabled}}:host([disabled]){cursor:unset}:host([disabled]${indeterminateState}) .indeterminate-indicator{background-color:${colorNeutralStrokeDisabled}}:host([disabled]${checkedState$1}) .checked-indicator{color:${colorNeutralStrokeDisabled}}`.withBehaviors(forcedColorsStylesheetBehavior(css`
5833
+ :host{--size:16px;background-color:${colorNeutralBackground1};border-radius:${borderRadiusSmall};border:${strokeWidthThin} solid ${colorNeutralStrokeAccessible};box-sizing:border-box;cursor:pointer;position:relative;width:var(--size)}:host,.indeterminate-indicator,.checked-indicator{aspect-ratio:1}:host(:hover){border-color:${colorNeutralStrokeAccessibleHover}}:host(:active){border-color:${colorNeutralStrokeAccessiblePressed}}:host(${checkedState$1}:hover){background-color:${colorCompoundBrandBackgroundHover};border-color:${colorCompoundBrandStrokeHover}}:host(${checkedState$1}:active){background-color:${colorCompoundBrandBackgroundPressed};border-color:${colorCompoundBrandStrokePressed}}:host(:focus-visible){outline:none}:host(:not([slot='input']))::after{content:'';position:absolute;inset:-8px;box-sizing:border-box;outline:none;border:${strokeWidthThick} solid ${colorTransparentStroke};border-radius:${borderRadiusMedium}}:host(:not([slot='input']):focus-visible)::after{border-color:${colorStrokeFocus2}}.indeterminate-indicator,.checked-indicator{color:${colorNeutralForegroundInverted};inset:0;margin:auto;position:absolute}::slotted([slot='checked-indicator']),.checked-indicator{fill:currentColor;display:inline-flex;flex:1 0 auto;width:12px}:host(:not(${checkedState$1})) *:is(::slotted([slot='checked-indicator']),.checked-indicator){display:none}:host(${checkedState$1}),:host(${indeterminateState}){border-color:${colorCompoundBrandStroke}}:host(${checkedState$1}),:host(${indeterminateState}) .indeterminate-indicator{background-color:${colorCompoundBrandBackground}}:host(${indeterminateState}) .indeterminate-indicator{border-radius:${borderRadiusSmall};position:absolute;width:calc(var(--size) / 2);inset:0}:host(${largeState}){--size:20px}:host(${largeState}) ::slotted([slot='checked-indicator']),:host(${largeState}) .checked-indicator{width:16px}:host(${circularState}),:host(${circularState}) .indeterminate-indicator{border-radius:${borderRadiusCircular}}:host([disabled]),:host([disabled]${checkedState$1}){background-color:${colorNeutralBackgroundDisabled};border-color:${colorNeutralStrokeDisabled}}:host([disabled]){cursor:unset}:host([disabled]${indeterminateState}) .indeterminate-indicator{background-color:${colorNeutralStrokeDisabled}}:host([disabled]${checkedState$1}) .checked-indicator{color:${colorNeutralStrokeDisabled}}`.withBehaviors(forcedColorsStylesheetBehavior(css`
5794
5834
  :host{border-color:FieldText}:host(:not([slot='input']:focus-visible))::after{border-color:Canvas}:host(:not([disabled]):hover),:host(${checkedState$1}:not([disabled]):hover),:host(:not([slot='input']):focus-visible)::after{border-color:Highlight}.indeterminate-indicator,.checked-indicator{color:HighlightText}:host(${checkedState$1}),:host(${indeterminateState}) .indeterminate-indicator{background-color:FieldText}:host(${checkedState$1}:not([disabled]):hover),:host(${indeterminateState}:not([disabled]):hover) .indeterminate-indicator{background-color:Highlight}:host([disabled]){border-color:GrayText}:host([disabled]${indeterminateState}) .indeterminate-indicator{background-color:GrayText}:host([disabled]),:host([disabled]${checkedState$1}) .checked-indicator{color:GrayText}`));
5795
5835
 
5796
5836
  const checkedIndicator = html.partial( /* html */
@@ -6172,6 +6212,41 @@ class Divider extends FASTElement {
6172
6212
  * @internal
6173
6213
  */
6174
6214
  this.elementInternals = this.attachInternals();
6215
+ this.inset = false;
6216
+ }
6217
+ /**
6218
+ * Handles changes to align-content attribute custom states
6219
+ * @param prev - the previous state
6220
+ * @param next - the next state
6221
+ */
6222
+ alignContentChanged(prev, next) {
6223
+ if (prev) {
6224
+ toggleState(this.elementInternals, `align-${prev}`, false);
6225
+ }
6226
+ if (next) {
6227
+ toggleState(this.elementInternals, `align-${next}`, true);
6228
+ }
6229
+ }
6230
+ /**
6231
+ * Handles changes to appearance attribute custom states
6232
+ * @param prev - the previous state
6233
+ * @param next - the next state
6234
+ */
6235
+ appearanceChanged(prev, next) {
6236
+ if (prev) {
6237
+ toggleState(this.elementInternals, `${prev}`, false);
6238
+ }
6239
+ if (next) {
6240
+ toggleState(this.elementInternals, `${next}`, true);
6241
+ }
6242
+ }
6243
+ /**
6244
+ * Handles changes to inset custom states
6245
+ * @param prev - the previous state
6246
+ * @param next - the next state
6247
+ */
6248
+ insetChanged(prev, next) {
6249
+ toggleState(this.elementInternals, "inset", next);
6175
6250
  }
6176
6251
  connectedCallback() {
6177
6252
  super.connectedCallback();
@@ -6203,8 +6278,12 @@ class Divider extends FASTElement {
6203
6278
  * @internal
6204
6279
  */
6205
6280
  orientationChanged(previous, next) {
6206
- if (this.$fastController.isConnected) {
6207
- this.elementInternals.ariaOrientation = this.role !== DividerRole.presentation ? next : null;
6281
+ this.elementInternals.ariaOrientation = this.role !== DividerRole.presentation ? next : null;
6282
+ if (previous) {
6283
+ toggleState(this.elementInternals, `${previous}`, false);
6284
+ }
6285
+ if (next) {
6286
+ toggleState(this.elementInternals, `${next}`, true);
6208
6287
  }
6209
6288
  }
6210
6289
  }
@@ -6226,8 +6305,8 @@ const template$k = dividerTemplate();
6226
6305
  const styles$j = css`
6227
6306
  ${display("flex")}
6228
6307
 
6229
- :host{contain:content}:host::after,:host::before{align-self:center;background:${colorNeutralStroke2};box-sizing:border-box;content:'';display:flex;flex-grow:1;height:${strokeWidthThin}}:host([inset]){padding:0 12px}:host ::slotted(*){color:${colorNeutralForeground2};font-family:${fontFamilyBase};font-size:${fontSizeBase200};font-weight:${fontWeightRegular};margin:0;padding:0 12px}:host([align-content='start'])::before,:host([align-content='end'])::after{flex-basis:12px;flex-grow:0;flex-shrink:0}:host([orientation='vertical']){height:100%;min-height:84px}:host([orientation='vertical']):empty{min-height:20px}:host([orientation='vertical']){flex-direction:column;align-items:center}:host([orientation='vertical'][inset])::before{margin-top:12px}:host([orientation='vertical'][inset])::after{margin-bottom:12px}:host([orientation='vertical']):empty::before,:host([orientation='vertical']):empty::after{height:10px;min-height:10px;flex-grow:0}:host([orientation='vertical'])::before,:host([orientation='vertical'])::after{width:${strokeWidthThin};min-height:20px;height:100%}:host([orientation='vertical']) ::slotted(*){display:flex;flex-direction:column;padding:12px 0;line-height:20px}:host([orientation='vertical'][align-content='start'])::before{min-height:8px}:host([orientation='vertical'][align-content='end'])::after{min-height:8px}:host([appearance='strong'])::before,:host([appearance='strong'])::after{background:${colorNeutralStroke1}}:host([appearance='strong']) ::slotted(*){color:${colorNeutralForeground1}}:host([appearance='brand'])::before,:host([appearance='brand'])::after{background:${colorBrandStroke1}}:host([appearance='brand']) ::slotted(*){color:${colorBrandForeground1}}:host([appearance='subtle'])::before,:host([appearance='subtle'])::after{background:${colorNeutralStroke3}}:host([appearance='subtle']) ::slotted(*){color:${colorNeutralForeground3}}`.withBehaviors(forcedColorsStylesheetBehavior(css`
6230
- :host([appearance='strong'])::before,:host([appearance='strong'])::after,:host([appearance='brand'])::before,:host([appearance='brand'])::after,:host([appearance='subtle'])::before,:host([appearance='subtle'])::after,:host::after,:host::before{background:WindowText;color:WindowText}`));
6308
+ :host{contain:content}:host::after,:host::before{align-self:center;background:${colorNeutralStroke2};box-sizing:border-box;content:'';display:flex;flex-grow:1;height:${strokeWidthThin}}:host(${insetState}){padding:0 12px}:host ::slotted(*){color:${colorNeutralForeground2};font-family:${fontFamilyBase};font-size:${fontSizeBase200};font-weight:${fontWeightRegular};margin:0;padding:0 12px}:host(${alignStartState})::before,:host(${alignEndState})::after{flex-basis:12px;flex-grow:0;flex-shrink:0}:host(${verticalState}){height:100%;min-height:84px}:host(${verticalState}):empty{min-height:20px}:host(${verticalState}){flex-direction:column;align-items:center}:host(${verticalState}${insetState})::before{margin-top:12px}:host(${verticalState}${insetState})::after{margin-bottom:12px}:host(${verticalState}):empty::before,:host(${verticalState}):empty::after{height:10px;min-height:10px;flex-grow:0}:host(${verticalState})::before,:host(${verticalState})::after{width:${strokeWidthThin};min-height:20px;height:100%}:host(${verticalState}) ::slotted(*){display:flex;flex-direction:column;padding:12px 0;line-height:20px}:host(${verticalState}${alignStartState})::before{min-height:8px}:host(${verticalState}${alignEndState})::after{min-height:8px}:host(${strongState})::before,:host(${strongState})::after{background:${colorNeutralStroke1}}:host(${strongState}) ::slotted(*){color:${colorNeutralForeground1}}:host(${brandState})::before,:host(${brandState})::after{background:${colorBrandStroke1}}:host(${brandState}) ::slotted(*){color:${colorBrandForeground1}}:host(${subtleState})::before,:host(${subtleState})::after{background:${colorNeutralStroke3}}:host(${subtleState}) ::slotted(*){color:${colorNeutralForeground3}}`.withBehaviors(forcedColorsStylesheetBehavior(css`
6309
+ :host(${strongState})::before,:host(${strongState})::after,:host(${brandState})::before,:host(${brandState})::after,:host(${subtleState})::before,:host(${subtleState})::after,:host::after,:host::before{background:WindowText;color:WindowText}`));
6231
6310
 
6232
6311
  const definition$k = Divider.compose({
6233
6312
  name: `${FluentDesignSystem.prefix}-divider`,
@@ -6436,7 +6515,68 @@ var __decorateClass$f = (decorators, target, key, kind) => {
6436
6515
  if (kind && result) __defProp$f(target, key, result);
6437
6516
  return result;
6438
6517
  };
6439
- class Image extends FASTElement {}
6518
+ class Image extends FASTElement {
6519
+ constructor() {
6520
+ super(...arguments);
6521
+ /**
6522
+ * The internal {@link https://developer.mozilla.org/docs/Web/API/ElementInternals | `ElementInternals`} instance for the component.
6523
+ *
6524
+ * @internal
6525
+ */
6526
+ this.elementInternals = this.attachInternals();
6527
+ this.block = false;
6528
+ }
6529
+ /**
6530
+ * Handles changes to block custom states
6531
+ * @param prev - the previous state
6532
+ * @param next - the next state
6533
+ */
6534
+ blockChanged(prev, next) {
6535
+ toggleState(this.elementInternals, "block", next);
6536
+ }
6537
+ /**
6538
+ * Handles changes to bordered custom states
6539
+ * @param prev - the previous state
6540
+ * @param next - the next state
6541
+ */
6542
+ borderedChanged(prev, next) {
6543
+ toggleState(this.elementInternals, "bordered", next);
6544
+ }
6545
+ /**
6546
+ * Handles changes to shadow custom states
6547
+ * @param prev - the previous state
6548
+ * @param next - the next state
6549
+ */
6550
+ shadowChanged(prev, next) {
6551
+ toggleState(this.elementInternals, "shadow", next);
6552
+ }
6553
+ /**
6554
+ * Handles changes to fit attribute custom states
6555
+ * @param prev - the previous state
6556
+ * @param next - the next state
6557
+ */
6558
+ fitChanged(prev, next) {
6559
+ if (prev) {
6560
+ toggleState(this.elementInternals, `fit-${prev}`, false);
6561
+ }
6562
+ if (next) {
6563
+ toggleState(this.elementInternals, `fit-${next}`, true);
6564
+ }
6565
+ }
6566
+ /**
6567
+ * Handles changes to shape attribute custom states
6568
+ * @param prev - the previous state
6569
+ * @param next - the next state
6570
+ */
6571
+ shapeChanged(prev, next) {
6572
+ if (prev) {
6573
+ toggleState(this.elementInternals, `${prev}`, false);
6574
+ }
6575
+ if (next) {
6576
+ toggleState(this.elementInternals, `${next}`, true);
6577
+ }
6578
+ }
6579
+ }
6440
6580
  __decorateClass$f([attr({
6441
6581
  mode: "boolean"
6442
6582
  })], Image.prototype, "block", 2);
@@ -6452,7 +6592,7 @@ __decorateClass$f([attr], Image.prototype, "shape", 2);
6452
6592
  const template$i = html`<slot></slot>`;
6453
6593
 
6454
6594
  const styles$h = css`
6455
- :host{contain:content}:host ::slotted(img){box-sizing:border-box;min-height:8px;min-width:8px;display:inline-block}:host([block]) ::slotted(img){width:100%;height:auto}:host([bordered]) ::slotted(img){border:${strokeWidthThin} solid ${colorNeutralStroke2}}:host([fit='none']) ::slotted(img){object-fit:none;object-position:top left;height:100%;width:100%}:host([fit='center']) ::slotted(img){object-fit:none;object-position:center;height:100%;width:100%}:host([fit='contain']) ::slotted(img){object-fit:contain;object-position:center;height:100%;width:100%}:host([fit='cover']) ::slotted(img){object-fit:cover;object-position:center;height:100%;width:100%}:host([shadow]) ::slotted(img){box-shadow:${shadow4}}:host([shape='circular']) ::slotted(img){border-radius:${borderRadiusCircular}}:host([shape='rounded']) ::slotted(img){border-radius:${borderRadiusMedium}}`;
6595
+ :host{contain:content}:host ::slotted(img){box-sizing:border-box;min-height:8px;min-width:8px;display:inline-block}:host(:is([state--block],:state(block))) ::slotted(img){width:100%;height:auto}:host(:is([state--bordered],:state(bordered))) ::slotted(img){border:${strokeWidthThin} solid ${colorNeutralStroke2}}:host(:is([state--fit-none],:state(fit-none))) ::slotted(img){object-fit:none;object-position:top left;height:100%;width:100%}:host(:is([state--fit-center],:state(fit-center))) ::slotted(img){object-fit:none;object-position:center;height:100%;width:100%}:host(:is([state--fit-contain],:state(fit-contain))) ::slotted(img){object-fit:contain;object-position:center;height:100%;width:100%}:host(:is([state--fit-cover],:state(fit-cover))) ::slotted(img){object-fit:cover;object-position:center;height:100%;width:100%}:host(:is([state--shadowed],:state(shadowed))) ::slotted(img){box-shadow:${shadow4}}:host(${circularState}) ::slotted(img){border-radius:${borderRadiusCircular}}:host(${roundedState}) ::slotted(img){border-radius:${borderRadiusMedium}}`;
6456
6596
 
6457
6597
  const definition$i = Image.compose({
6458
6598
  name: `${FluentDesignSystem.prefix}-image`,
@@ -6473,9 +6613,49 @@ var __decorateClass$e = (decorators, target, key, kind) => {
6473
6613
  class Label extends FASTElement {
6474
6614
  constructor() {
6475
6615
  super(...arguments);
6616
+ /**
6617
+ * The internal {@link https://developer.mozilla.org/docs/Web/API/ElementInternals | `ElementInternals`} instance for the component.
6618
+ *
6619
+ * @internal
6620
+ */
6621
+ this.elementInternals = this.attachInternals();
6476
6622
  this.disabled = false;
6477
6623
  this.required = false;
6478
6624
  }
6625
+ /**
6626
+ * Handles changes to size attribute custom states
6627
+ * @param prev - the previous state
6628
+ * @param next - the next state
6629
+ */
6630
+ sizeChanged(prev, next) {
6631
+ if (prev) {
6632
+ toggleState(this.elementInternals, `${prev}`, false);
6633
+ }
6634
+ if (next) {
6635
+ toggleState(this.elementInternals, `${next}`, true);
6636
+ }
6637
+ }
6638
+ /**
6639
+ * Handles changes to weight attribute custom states
6640
+ * @param prev - the previous state
6641
+ * @param next - the next state
6642
+ */
6643
+ weightChanged(prev, next) {
6644
+ if (prev) {
6645
+ toggleState(this.elementInternals, `${prev}`, false);
6646
+ }
6647
+ if (next) {
6648
+ toggleState(this.elementInternals, `${next}`, true);
6649
+ }
6650
+ }
6651
+ /**
6652
+ * Handles changes to disabled attribute custom states
6653
+ * @param prev - the previous state
6654
+ * @param next - the next state
6655
+ */
6656
+ disabledChanged(prev, next) {
6657
+ toggleState(this.elementInternals, "disabled", next);
6658
+ }
6479
6659
  }
6480
6660
  __decorateClass$e([attr], Label.prototype, "size", 2);
6481
6661
  __decorateClass$e([attr], Label.prototype, "weight", 2);
@@ -6489,7 +6669,7 @@ __decorateClass$e([attr({
6489
6669
  const styles$g = css`
6490
6670
  ${display("inline-flex")}
6491
6671
 
6492
- :host{color:${colorNeutralForeground1};cursor:pointer;font-family:${fontFamilyBase};font-size:${fontSizeBase300};font-weight:${fontWeightRegular};line-height:${lineHeightBase300};user-select:none}.asterisk{color:${colorPaletteRedForeground1};margin-inline-start:${spacingHorizontalXS}}:host([size='small']){font-size:${fontSizeBase200};line-height:${lineHeightBase200}}:host([size='large']){font-size:${fontSizeBase400};line-height:${lineHeightBase400}}:host([size='large']),:host([weight='semibold']){font-weight:${fontWeightSemibold}}:host([disabled]),:host([disabled]) .asterisk{color:${colorNeutralForegroundDisabled}}`;
6672
+ :host{color:${colorNeutralForeground1};cursor:pointer;font-family:${fontFamilyBase};font-size:${fontSizeBase300};font-weight:${fontWeightRegular};line-height:${lineHeightBase300};user-select:none}.asterisk{color:${colorPaletteRedForeground1};margin-inline-start:${spacingHorizontalXS}}:host(${smallState}){font-size:${fontSizeBase200};line-height:${lineHeightBase200}}:host(${largeState}){font-size:${fontSizeBase400};line-height:${lineHeightBase400}}:host(${largeState}),:host(:is([state--semibold],:state(semibold))){font-weight:${fontWeightSemibold}}:host(:is([state--disabled],:state(disabled))),:host(:is([state--disabled],:state(disabled))) .asterisk{color:${colorNeutralForegroundDisabled}}`;
6493
6673
 
6494
6674
  function labelTemplate() {
6495
6675
  return html`<slot></slot><span part="asterisk" class="asterisk" ?hidden="${x => !x.required}">*</span>`;
@@ -6517,6 +6697,27 @@ class Link extends BaseAnchor {
6517
6697
  super(...arguments);
6518
6698
  this.inline = false;
6519
6699
  }
6700
+ /**
6701
+ * Handles changes to appearance attribute custom states
6702
+ * @param prev - the previous state
6703
+ * @param next - the next state
6704
+ */
6705
+ appearanceChanged(prev, next) {
6706
+ if (prev) {
6707
+ toggleState(this.elementInternals, `${prev}`, false);
6708
+ }
6709
+ if (next) {
6710
+ toggleState(this.elementInternals, `${next}`, true);
6711
+ }
6712
+ }
6713
+ /**
6714
+ * Handles changes to inline attribute custom states
6715
+ * @param prev - the previous state
6716
+ * @param next - the next state
6717
+ */
6718
+ inlineChanged(prev, next) {
6719
+ toggleState(this.elementInternals, "inline", next);
6720
+ }
6520
6721
  }
6521
6722
  __decorateClass$d([attr], Link.prototype, "appearance", 2);
6522
6723
  __decorateClass$d([attr({
@@ -6526,7 +6727,7 @@ __decorateClass$d([attr({
6526
6727
  const styles$f = css`
6527
6728
  ${display("inline")}
6528
6729
 
6529
- :host{position:relative;box-sizing:border-box;background-color:transparent;color:${colorBrandForegroundLink};cursor:pointer;font-family:${fontFamilyBase};font-size:${fontSizeBase300};font-weight:${fontWeightRegular};margin:0;padding:0;overflow:inherit;text-align:left;text-decoration:none;text-decoration-thinkness:${strokeWidthThin};text-overflow:inherit;user-select:text}:host(:is(:hover,:focus-visible)){outline:none;text-decoration-line:underline}@media (hover:hover){:host(:hover){color:${colorBrandForegroundLinkHover}}:host(:active){color:${colorBrandForegroundLinkPressed}}:host([appearance='subtle']:hover){color:${colorNeutralForeground2LinkHover}}:host([appearance='subtle']:active){color:${colorNeutralForeground2LinkPressed}}}:host([appearance='subtle']){color:${colorNeutralForeground2Link}}:host-context(:is(h1,h2,h3,h4,h5,h6,p,fluent-text)),:host([inline]){font:inherit;text-decoration:underline}:host(:not([href])){color:inherit;text-decoration:none}::slotted(a){position:absolute;inset:0}`.withBehaviors(forcedColorsStylesheetBehavior(css`
6730
+ :host{position:relative;box-sizing:border-box;background-color:transparent;color:${colorBrandForegroundLink};cursor:pointer;font-family:${fontFamilyBase};font-size:${fontSizeBase300};font-weight:${fontWeightRegular};margin:0;padding:0;overflow:inherit;text-align:left;text-decoration:none;text-decoration-thinkness:${strokeWidthThin};text-overflow:inherit;user-select:text}:host(:is(:hover,:focus-visible)){outline:none;text-decoration-line:underline}@media (hover:hover){:host(:hover){color:${colorBrandForegroundLinkHover}}:host(:active){color:${colorBrandForegroundLinkPressed}}:host(${subtleState}:hover){color:${colorNeutralForeground2LinkHover}}:host(${subtleState}:active){color:${colorNeutralForeground2LinkPressed}}}:host(${subtleState}){color:${colorNeutralForeground2Link}}:host-context(:is(h1,h2,h3,h4,h5,h6,p,fluent-text)),:host(:is([state--inline],:state(inline))){font:inherit;text-decoration:underline}:host(:not([href])){color:inherit;text-decoration:none}::slotted(a){position:absolute;inset:0}`.withBehaviors(forcedColorsStylesheetBehavior(css`
6530
6731
  :host{color:LinkText}`));
6531
6732
 
6532
6733
  function anchorTemplate() {
@@ -8422,6 +8623,45 @@ class ProgressBar extends FASTElement {
8422
8623
  this.validationState = null;
8423
8624
  this.elementInternals.role = "progressbar";
8424
8625
  }
8626
+ /**
8627
+ * Handles changes to thickness attribute custom states
8628
+ * @param prev - the previous state
8629
+ * @param next - the next state
8630
+ */
8631
+ thicknessChanged(prev, next) {
8632
+ if (prev) {
8633
+ toggleState(this.elementInternals, `${prev}`, false);
8634
+ }
8635
+ if (next) {
8636
+ toggleState(this.elementInternals, `${next}`, true);
8637
+ }
8638
+ }
8639
+ /**
8640
+ * Handles changes to shape attribute custom states
8641
+ * @param prev - the previous state
8642
+ * @param next - the next state
8643
+ */
8644
+ shapeChanged(prev, next) {
8645
+ if (prev) {
8646
+ toggleState(this.elementInternals, `${prev}`, false);
8647
+ }
8648
+ if (next) {
8649
+ toggleState(this.elementInternals, `${next}`, true);
8650
+ }
8651
+ }
8652
+ /**
8653
+ * Handles changes to validation-state attribute custom states
8654
+ * @param prev - the previous state
8655
+ * @param next - the next state
8656
+ */
8657
+ validationStateChanged(prev, next) {
8658
+ if (prev) {
8659
+ toggleState(this.elementInternals, `${prev}`, false);
8660
+ }
8661
+ if (next) {
8662
+ toggleState(this.elementInternals, `${next}`, true);
8663
+ }
8664
+ }
8425
8665
  /**
8426
8666
  * Updates the percent complete when the `value` property changes.
8427
8667
  *
@@ -8476,10 +8716,10 @@ __decorateClass$9([volatile], ProgressBar.prototype, "percentComplete", 1);
8476
8716
  const styles$b = css`
8477
8717
  ${display("block")}
8478
8718
 
8479
- :host{width:100%;height:2px;overflow-x:hidden;background-color:${colorNeutralBackground6};border-radius:${borderRadiusMedium};contain:content}:host([thickness='large']){height:4px}:host([shape='square']){border-radius:${borderRadiusNone}}.indicator{background-color:${colorCompoundBrandBackground};border-radius:inherit;height:100%}:host([value]) .indicator{transition:all 0.2s ease-in-out}:host(:not([value])) .indicator{position:relative;width:33%;background-image:linear-gradient(
8719
+ :host{width:100%;height:2px;overflow-x:hidden;background-color:${colorNeutralBackground6};border-radius:${borderRadiusMedium};contain:content}:host(${largeState}){height:4px}:host(${squareState}){border-radius:${borderRadiusNone}}.indicator{background-color:${colorCompoundBrandBackground};border-radius:inherit;height:100%}:host([value]) .indicator{transition:all 0.2s ease-in-out}:host(:not([value])) .indicator{position:relative;width:33%;background-image:linear-gradient(
8480
8720
  to right,${colorNeutralBackground6} 0%,${colorTransparentBackground} 50%,${colorNeutralBackground6} 100%
8481
- );animation-name:indeterminate;animation-duration:3s;animation-timing-function:linear;animation-iteration-count:infinite}:host([validation-state='error']) .indicator{background-color:${colorPaletteRedBackground3}}:host([validation-state='warning']) .indicator{background-color:${colorPaletteDarkOrangeBackground3}}:host([validation-state='success']) .indicator{background-color:${colorPaletteGreenBackground3}}@layer animations{@media (prefers-reduced-motion:no-preference){:host([value]){transition:none}:host(:not([value])) .indicator{animation-duration:0.01ms;animation-iteration-count:1}}}@keyframes indeterminate{0%{inset-inline-start:-33%}100%{inset-inline-start:100%}}`.withBehaviors(forcedColorsStylesheetBehavior(css`
8482
- :host{background-color:CanvasText}.indicator,:host(:is([validation-state='success'],[validation-state='warning'],[validation-state='error'])) .indicator{background-color:Highlight}`));
8721
+ );animation-name:indeterminate;animation-duration:3s;animation-timing-function:linear;animation-iteration-count:infinite}:host(${errorState}) .indicator{background-color:${colorPaletteRedBackground3}}:host(${warningState}) .indicator{background-color:${colorPaletteDarkOrangeBackground3}}:host(${successState}) .indicator{background-color:${colorPaletteGreenBackground3}}@layer animations{@media (prefers-reduced-motion:no-preference){:host([value]){transition:none}:host(:not([value])) .indicator{animation-duration:0.01ms;animation-iteration-count:1}}}@keyframes indeterminate{0%{inset-inline-start:-33%}100%{inset-inline-start:100%}}`.withBehaviors(forcedColorsStylesheetBehavior(css`
8722
+ :host{background-color:CanvasText}.indicator,:host(:is(${successState},${warningState},${errorState})) .indicator{background-color:Highlight}`));
8483
8723
 
8484
8724
  function progressTemplate() {
8485
8725
  return html`<div class="indicator" part="indicator" style="${x => typeof x.value === "number" ? `width: ${x.percentComplete}%` : void 0}"></div>`;
@@ -9806,6 +10046,32 @@ class Spinner extends FASTElement {
9806
10046
  this.elementInternals = this.attachInternals();
9807
10047
  this.elementInternals.role = "progressbar";
9808
10048
  }
10049
+ /**
10050
+ * Handles changes to size attribute custom states
10051
+ * @param prev - the previous state
10052
+ * @param next - the next state
10053
+ */
10054
+ sizeChanged(prev, next) {
10055
+ if (prev) {
10056
+ toggleState(this.elementInternals, `${prev}`, false);
10057
+ }
10058
+ if (next) {
10059
+ toggleState(this.elementInternals, `${next}`, true);
10060
+ }
10061
+ }
10062
+ /**
10063
+ * Handles changes to appearance attribute custom states
10064
+ * @param prev - the previous state
10065
+ * @param next - the next state
10066
+ */
10067
+ appearanceChanged(prev, next) {
10068
+ if (prev) {
10069
+ toggleState(this.elementInternals, `${prev}`, false);
10070
+ }
10071
+ if (next) {
10072
+ toggleState(this.elementInternals, `${next}`, true);
10073
+ }
10074
+ }
9809
10075
  }
9810
10076
  __decorateClass$5([attr], Spinner.prototype, "size", 2);
9811
10077
  __decorateClass$5([attr], Spinner.prototype, "appearance", 2);
@@ -9813,7 +10079,7 @@ __decorateClass$5([attr], Spinner.prototype, "appearance", 2);
9813
10079
  const styles$7 = css`
9814
10080
  ${display("flex")}
9815
10081
 
9816
- :host{display:flex;align-items:center;height:32px;width:32px;contain:content}:host([size='tiny']){height:20px;width:20px}:host([size='extra-small']){height:24px;width:24px}:host([size='small']){height:28px;width:28px}:host([size='large']){height:36px;width:36px}:host([size='extra-large']){height:40px;width:40px}:host([size='huge']){height:44px;width:44px}.progress{height:100%;width:100%}.background{fill:none;stroke:${colorBrandStroke2};stroke-width:1.5px}:host([appearance='inverted']) .background{stroke:rgba(255,255,255,0.2)}.indicator{stroke:${colorBrandStroke1};fill:none;stroke-width:1.5px;stroke-linecap:round;transform-origin:50% 50%;transform:rotate(-90deg);transition:all 0.2s ease-in-out;animation:spin-infinite 3s cubic-bezier(0.53,0.21,0.29,0.67) infinite}:host([appearance='inverted']) .indicator{stroke:${colorNeutralStrokeOnBrand2}}@keyframes spin-infinite{0%{stroke-dasharray:0.01px 43.97px;transform:rotate(0deg)}50%{stroke-dasharray:21.99px 21.99px;transform:rotate(450deg)}100%{stroke-dasharray:0.01px 43.97px;transform:rotate(1080deg)}}`;
10082
+ :host{display:flex;align-items:center;height:32px;width:32px;contain:content}:host(${tinyState}){height:20px;width:20px}:host(${extraSmallState}){height:24px;width:24px}:host(${smallState}){height:28px;width:28px}:host(${largeState}){height:36px;width:36px}:host(${extraLargeState}){height:40px;width:40px}:host(${hugeState}){height:44px;width:44px}.progress{height:100%;width:100%}.background{fill:none;stroke:${colorBrandStroke2};stroke-width:1.5px}:host(${invertedState}) .background{stroke:rgba(255,255,255,0.2)}.indicator{stroke:${colorBrandStroke1};fill:none;stroke-width:1.5px;stroke-linecap:round;transform-origin:50% 50%;transform:rotate(-90deg);transition:all 0.2s ease-in-out;animation:spin-infinite 3s cubic-bezier(0.53,0.21,0.29,0.67) infinite}:host(${invertedState}) .indicator{stroke:${colorNeutralStrokeOnBrand2}}@keyframes spin-infinite{0%{stroke-dasharray:0.01px 43.97px;transform:rotate(0deg)}50%{stroke-dasharray:21.99px 21.99px;transform:rotate(450deg)}100%{stroke-dasharray:0.01px 43.97px;transform:rotate(1080deg)}}`;
9817
10083
 
9818
10084
  const template$7 = html`<slot name="indicator"><svg class="progress" part="progress" viewBox="0 0 16 16"><circle class="background" cx="8px" cy="8px" r="7px"></circle><circle class="indicator" cx="8px" cy="8px" r="7px"></circle></svg></slot>`;
9819
10085
 
@@ -10367,6 +10633,32 @@ class TextInput extends FASTElement {
10367
10633
  */
10368
10634
  this.elementInternals = this.attachInternals();
10369
10635
  }
10636
+ /**
10637
+ * Handles changes to appearance attribute custom states
10638
+ * @param prev - the previous state
10639
+ * @param next - the next state
10640
+ */
10641
+ appearanceChanged(prev, next) {
10642
+ if (prev) {
10643
+ toggleState(this.elementInternals, `${prev}`, false);
10644
+ }
10645
+ if (next) {
10646
+ toggleState(this.elementInternals, `${next}`, true);
10647
+ }
10648
+ }
10649
+ /**
10650
+ * Handles changes to `control-size` attribute custom states
10651
+ * @param prev - the previous state
10652
+ * @param next - the next state
10653
+ */
10654
+ controlSizeChanged(prev, next) {
10655
+ if (prev) {
10656
+ toggleState(this.elementInternals, `${prev}`, false);
10657
+ }
10658
+ if (next) {
10659
+ toggleState(this.elementInternals, `${next}`, true);
10660
+ }
10661
+ }
10370
10662
  /**
10371
10663
  * Updates the control label visibility based on the presence of default slotted content.
10372
10664
  *
@@ -10709,7 +11001,7 @@ applyMixins(TextInput, StartEnd);
10709
11001
  const styles$2 = css`
10710
11002
  ${display("block")}
10711
11003
 
10712
- :host{font-family:${fontFamilyBase};font-size:${fontSizeBase300};font-weight:${fontWeightRegular};line-height:${lineHeightBase300};max-width:400px}.label{display:flex;color:${colorNeutralForeground1};padding-bottom:${spacingVerticalXS};flex-shrink:0;padding-inline-end:${spacingHorizontalXS}}.label[hidden],:host(:empty) .label{display:none}.root{align-items:center;background-color:${colorNeutralBackground1};border:${strokeWidthThin} solid ${colorNeutralStroke1};border-bottom-color:${colorNeutralStrokeAccessible};border-radius:${borderRadiusMedium};box-sizing:border-box;height:32px;display:inline-flex;flex-direction:row;gap:${spacingHorizontalXXS};padding:0 ${spacingHorizontalMNudge};position:relative;width:100%}:has(.control:user-invalid){border-color:${colorPaletteRedBorder2}}.root::after{box-sizing:border-box;content:'';position:absolute;left:-1px;bottom:0px;right:-1px;height:max(2px,${borderRadiusMedium});border-radius:0 0 ${borderRadiusMedium} ${borderRadiusMedium};border-bottom:2px solid ${colorCompoundBrandStroke};clip-path:inset(calc(100% - 2px) 1px 0px);transform:scaleX(0);transition-property:transform;transition-duration:${durationUltraFast};transition-delay:${curveAccelerateMid}}.control{width:100%;height:100%;box-sizing:border-box;color:${colorNeutralForeground1};border-radius:${borderRadiusMedium};background:${colorTransparentBackground};font-family:${fontFamilyBase};font-weight:${fontWeightRegular};font-size:${fontSizeBase300};border:none;vertical-align:center}.control:focus-visible{outline:0;border:0}.control::placeholder{color:${colorNeutralForeground4}}:host ::slotted([slot='start']),:host ::slotted([slot='end']){display:flex;align-items:center;justify-content:center;color:${colorNeutralForeground3};font-size:${fontSizeBase500}}:host ::slotted([slot='start']){padding-right:${spacingHorizontalXXS}}:host ::slotted([slot='end']){padding-left:${spacingHorizontalXXS};gap:${spacingHorizontalXS}}:host(:hover) .root{border-color:${colorNeutralStroke1Hover};border-bottom-color:${colorNeutralStrokeAccessibleHover}}:host(:active) .root{border-color:${colorNeutralStroke1Pressed}}:host(:focus-within) .root{outline:transparent solid 2px;border-bottom:0}:host(:focus-within) .root::after{transform:scaleX(1);transition-property:transform;transition-duration:${durationNormal};transition-delay:${curveDecelerateMid}}:host(:focus-within:active) .root:after{border-bottom-color:${colorCompoundBrandStrokePressed}}:host([appearance='outline']:focus-within) .root{border:${strokeWidthThin} solid ${colorNeutralStroke1}}:host(:focus-within) .control{color:${colorNeutralForeground1}}:host([disabled]) .root{background:${colorTransparentBackground};border:${strokeWidthThin} solid ${colorNeutralStrokeDisabled}}:host([disabled]) .control::placeholder,:host([disabled]) ::slotted([slot='start']),:host([disabled]) ::slotted([slot='end']){color:${colorNeutralForegroundDisabled}}::selection{color:${colorNeutralForegroundInverted};background-color:${colorNeutralBackgroundInverted}}:host([control-size='small']) .control{font-size:${fontSizeBase200};font-weight:${fontWeightRegular};line-height:${lineHeightBase200}}:host([control-size='small']) .root{height:24px;gap:${spacingHorizontalXXS};padding:0 ${spacingHorizontalSNudge}}:host([control-size='small']) ::slotted([slot='start']),:host([control-size='small']) ::slotted([slot='end']){font-size:${fontSizeBase400}}:host([control-size='large']) .control{font-size:${fontSizeBase400};font-weight:${fontWeightRegular};line-height:${lineHeightBase400}}:host([control-size='large']) .root{height:40px;gap:${spacingHorizontalS};padding:0 ${spacingHorizontalM}}:host([control-size='large']) ::slotted([slot='start']),:host([control-size='large']) ::slotted([slot='end']){font-size:${fontSizeBase600}}:host([appearance='underline']) .root{background:${colorTransparentBackground};border:0;border-radius:0;border-bottom:${strokeWidthThin} solid ${colorNeutralStrokeAccessible}}:host([appearance='underline']:hover) .root{border-bottom-color:${colorNeutralStrokeAccessibleHover}}:host([appearance='underline']:active) .root{border-bottom-color:${colorNeutralStrokeAccessiblePressed}}:host([appearance='underline']:focus-within) .root{border:0;border-bottom-color:${colorNeutralStrokeAccessiblePressed}}:host([appearance='underline'][disabled]) .root{border-bottom-color:${colorNeutralStrokeDisabled}}:host([appearance='filled-lighter']) .root,:host([appearance='filled-darker']) .root{border:${strokeWidthThin} solid ${colorTransparentStroke};box-shadow:${shadow2}}:host([appearance='filled-lighter']) .root{background:${colorNeutralBackground1}}:host([appearance='filled-darker']) .root{background:${colorNeutralBackground3}}:host([appearance='filled-lighter']:hover) .root,:host([appearance='filled-darker']:hover) .root{border-color:${colorTransparentStrokeInteractive}}:host([appearance='filled-lighter']:active) .root,:host([appearance='filled-darker']:active) .root{border-color:${colorTransparentStrokeInteractive};background:${colorNeutralBackground3}}`;
11004
+ :host{font-family:${fontFamilyBase};font-size:${fontSizeBase300};font-weight:${fontWeightRegular};line-height:${lineHeightBase300};max-width:400px}.label{display:flex;color:${colorNeutralForeground1};padding-bottom:${spacingVerticalXS};flex-shrink:0;padding-inline-end:${spacingHorizontalXS}}.label[hidden],:host(:empty) .label{display:none}.root{align-items:center;background-color:${colorNeutralBackground1};border:${strokeWidthThin} solid ${colorNeutralStroke1};border-bottom-color:${colorNeutralStrokeAccessible};border-radius:${borderRadiusMedium};box-sizing:border-box;height:32px;display:inline-flex;flex-direction:row;gap:${spacingHorizontalXXS};padding:0 ${spacingHorizontalMNudge};position:relative;width:100%}:has(.control:user-invalid){border-color:${colorPaletteRedBorder2}}.root::after{box-sizing:border-box;content:'';position:absolute;left:-1px;bottom:0px;right:-1px;height:max(2px,${borderRadiusMedium});border-radius:0 0 ${borderRadiusMedium} ${borderRadiusMedium};border-bottom:2px solid ${colorCompoundBrandStroke};clip-path:inset(calc(100% - 2px) 1px 0px);transform:scaleX(0);transition-property:transform;transition-duration:${durationUltraFast};transition-delay:${curveAccelerateMid}}.control{width:100%;height:100%;box-sizing:border-box;color:${colorNeutralForeground1};border-radius:${borderRadiusMedium};background:${colorTransparentBackground};font-family:${fontFamilyBase};font-weight:${fontWeightRegular};font-size:${fontSizeBase300};border:none;vertical-align:center}.control:focus-visible{outline:0;border:0}.control::placeholder{color:${colorNeutralForeground4}}:host ::slotted([slot='start']),:host ::slotted([slot='end']){display:flex;align-items:center;justify-content:center;color:${colorNeutralForeground3};font-size:${fontSizeBase500}}:host ::slotted([slot='start']){padding-right:${spacingHorizontalXXS}}:host ::slotted([slot='end']){padding-left:${spacingHorizontalXXS};gap:${spacingHorizontalXS}}:host(:hover) .root{border-color:${colorNeutralStroke1Hover};border-bottom-color:${colorNeutralStrokeAccessibleHover}}:host(:active) .root{border-color:${colorNeutralStroke1Pressed}}:host(:focus-within) .root{outline:transparent solid 2px;border-bottom:0}:host(:focus-within) .root::after{transform:scaleX(1);transition-property:transform;transition-duration:${durationNormal};transition-delay:${curveDecelerateMid}}:host(:focus-within:active) .root:after{border-bottom-color:${colorCompoundBrandStrokePressed}}:host(${outlineState}:focus-within) .root{border:${strokeWidthThin} solid ${colorNeutralStroke1}}:host(:focus-within) .control{color:${colorNeutralForeground1}}:host([disabled]) .root{background:${colorTransparentBackground};border:${strokeWidthThin} solid ${colorNeutralStrokeDisabled}}:host([disabled]) .control::placeholder,:host([disabled]) ::slotted([slot='start']),:host([disabled]) ::slotted([slot='end']){color:${colorNeutralForegroundDisabled}}::selection{color:${colorNeutralForegroundInverted};background-color:${colorNeutralBackgroundInverted}}:host(${smallState}) .control{font-size:${fontSizeBase200};font-weight:${fontWeightRegular};line-height:${lineHeightBase200}}:host(${smallState}) .root{height:24px;gap:${spacingHorizontalXXS};padding:0 ${spacingHorizontalSNudge}}:host(${smallState}) ::slotted([slot='start']),:host(${smallState}) ::slotted([slot='end']){font-size:${fontSizeBase400}}:host(${largeState}) .control{font-size:${fontSizeBase400};font-weight:${fontWeightRegular};line-height:${lineHeightBase400}}:host(${largeState}) .root{height:40px;gap:${spacingHorizontalS};padding:0 ${spacingHorizontalM}}:host(${largeState}) ::slotted([slot='start']),:host(${largeState}) ::slotted([slot='end']){font-size:${fontSizeBase600}}:host(${underlineState}) .root{background:${colorTransparentBackground};border:0;border-radius:0;border-bottom:${strokeWidthThin} solid ${colorNeutralStrokeAccessible}}:host(${underlineState}:hover) .root{border-bottom-color:${colorNeutralStrokeAccessibleHover}}:host(${underlineState}:active) .root{border-bottom-color:${colorNeutralStrokeAccessiblePressed}}:host(${underlineState}:focus-within) .root{border:0;border-bottom-color:${colorNeutralStrokeAccessiblePressed}}:host(${underlineState}[disabled]) .root{border-bottom-color:${colorNeutralStrokeDisabled}}:host(${filledLighterState}) .root,:host(${filledDarkerState}) .root{border:${strokeWidthThin} solid ${colorTransparentStroke};box-shadow:${shadow2}}:host(${filledLighterState}) .root{background:${colorNeutralBackground1}}:host(${filledDarkerState}) .root{background:${colorNeutralBackground3}}:host(${filledLighterState}:hover) .root,:host(${filledDarkerState}:hover) .root{border-color:${colorTransparentStrokeInteractive}}:host(${filledLighterState}:active) .root,:host(${filledDarkerState}:active) .root{border-color:${colorTransparentStrokeInteractive};background:${colorNeutralBackground3}}`;
10713
11005
 
10714
11006
  function textInputTemplate(options = {}) {
10715
11007
  return html`<template @beforeinput="${(x, c) => x.beforeinputHandler(c.event)}" @focusin="${(x, c) => x.focusinHandler(c.event)}" @keydown="${(x, c) => x.keydownHandler(c.event)}"><label part="label" for="control" class="label" ${ref("controlLabel")}><slot ${slotted({