@fluentui/web-components 3.0.0-beta.15 → 3.0.0-beta.17

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 (70) hide show
  1. package/CHANGELOG.md +185 -103
  2. package/dist/dts/index.d.ts +1 -1
  3. package/dist/dts/menu-item/menu-item.options.d.ts +1 -1
  4. package/dist/dts/spinner/index.d.ts +1 -1
  5. package/dist/dts/spinner/spinner.d.ts +9 -10
  6. package/dist/dts/spinner/spinner.template.d.ts +2 -4
  7. package/dist/dts/theme/design-tokens.d.ts +53 -1
  8. package/dist/esm/anchor-button/anchor-button.js.map +1 -1
  9. package/dist/esm/anchor-button/anchor-button.styles.js +13 -12
  10. package/dist/esm/anchor-button/anchor-button.styles.js.map +1 -1
  11. package/dist/esm/avatar/avatar.js.map +1 -1
  12. package/dist/esm/button/button.styles.js +12 -12
  13. package/dist/esm/index.js.map +1 -1
  14. package/dist/esm/menu-list/menu-list.js.map +1 -1
  15. package/dist/esm/spinner/index.js.map +1 -1
  16. package/dist/esm/spinner/spinner.js +12 -3
  17. package/dist/esm/spinner/spinner.js.map +1 -1
  18. package/dist/esm/spinner/spinner.styles.js +2 -16
  19. package/dist/esm/spinner/spinner.styles.js.map +1 -1
  20. package/dist/esm/spinner/spinner.template.js +8 -47
  21. package/dist/esm/spinner/spinner.template.js.map +1 -1
  22. package/dist/esm/theme/design-tokens.js +53 -1
  23. package/dist/esm/theme/design-tokens.js.map +1 -1
  24. package/dist/esm/utils/get-initials.js.map +1 -1
  25. package/dist/fluent-web-components.api.json +1567 -239
  26. package/dist/web-components.d.ts +115 -11
  27. package/dist/web-components.js +1145 -173
  28. package/dist/web-components.min.js +337 -283
  29. package/docs/api-report.md +163 -8
  30. package/package.json +5 -10
  31. package/project.json +6 -0
  32. package/dist/storybook/108.78b731e00015540915a8.manager.bundle.js +0 -1
  33. package/dist/storybook/108.b31ec3a1.iframe.bundle.js +0 -1
  34. package/dist/storybook/289.703b1698.iframe.bundle.js +0 -2
  35. package/dist/storybook/289.703b1698.iframe.bundle.js.LICENSE.txt +0 -51
  36. package/dist/storybook/316.bc4aabd3.iframe.bundle.js +0 -2
  37. package/dist/storybook/316.bc4aabd3.iframe.bundle.js.LICENSE.txt +0 -17
  38. package/dist/storybook/401.7edec720.iframe.bundle.js +0 -2
  39. package/dist/storybook/401.7edec720.iframe.bundle.js.LICENSE.txt +0 -12
  40. package/dist/storybook/401.c9bdfaf0dda8b194127f.manager.bundle.js +0 -2
  41. package/dist/storybook/401.c9bdfaf0dda8b194127f.manager.bundle.js.LICENSE.txt +0 -12
  42. package/dist/storybook/491.77b24750.iframe.bundle.js +0 -1
  43. package/dist/storybook/591.f5bf0d78d2f203de19f5.manager.bundle.js +0 -2
  44. package/dist/storybook/591.f5bf0d78d2f203de19f5.manager.bundle.js.LICENSE.txt +0 -94
  45. package/dist/storybook/709.22096ad4.iframe.bundle.js +0 -2
  46. package/dist/storybook/709.22096ad4.iframe.bundle.js.LICENSE.txt +0 -8
  47. package/dist/storybook/709.b131e33993a6b94d7ad8.manager.bundle.js +0 -2
  48. package/dist/storybook/709.b131e33993a6b94d7ad8.manager.bundle.js.LICENSE.txt +0 -8
  49. package/dist/storybook/721.46fa9f53.iframe.bundle.js +0 -2
  50. package/dist/storybook/721.46fa9f53.iframe.bundle.js.LICENSE.txt +0 -31
  51. package/dist/storybook/721.c225c101a0a55a8f98eb.manager.bundle.js +0 -2
  52. package/dist/storybook/721.c225c101a0a55a8f98eb.manager.bundle.js.LICENSE.txt +0 -31
  53. package/dist/storybook/858.da40ed98.iframe.bundle.js +0 -1
  54. package/dist/storybook/858.e08e25a6901d2e21e9d8.manager.bundle.js +0 -1
  55. package/dist/storybook/950.674e7934b4a26a022608.manager.bundle.js +0 -1
  56. package/dist/storybook/954.630c5748.iframe.bundle.js +0 -1
  57. package/dist/storybook/954.7f985e2fdf9f15a7748b.manager.bundle.js +0 -1
  58. package/dist/storybook/SegoeUI-VF.ttf +0 -0
  59. package/dist/storybook/favicon.ico +0 -0
  60. package/dist/storybook/favicon.png +0 -0
  61. package/dist/storybook/iframe.html +0 -364
  62. package/dist/storybook/index.html +0 -165
  63. package/dist/storybook/main.5d7b916dc1e37293b1d8.manager.bundle.js +0 -1
  64. package/dist/storybook/main.6c75b8cb.iframe.bundle.js +0 -2
  65. package/dist/storybook/main.6c75b8cb.iframe.bundle.js.LICENSE.txt +0 -1
  66. package/dist/storybook/project.json +0 -1
  67. package/dist/storybook/runtime~main.5d918fe7.iframe.bundle.js +0 -1
  68. package/dist/storybook/runtime~main.dbf00b470fe610082919.manager.bundle.js +0 -1
  69. package/dist/storybook/shell.css +0 -83
  70. package/dist/storybook/theme-switch.ts +0 -13
@@ -256,7 +256,6 @@ const DOM = Object.freeze({
256
256
  if (defaultPolicy !== fastPolicy) {
257
257
  throw FAST.error(1201 /* Message.onlySetDOMPolicyOnce */);
258
258
  }
259
-
260
259
  defaultPolicy = value;
261
260
  },
262
261
  /**
@@ -530,7 +529,6 @@ const Observable = FAST.getById(KernelServiceId.observable, () => {
530
529
  let createArrayObserver = array => {
531
530
  throw FAST.error(1101 /* Message.needsArrayObservation */);
532
531
  };
533
-
534
532
  function getNotifier(source) {
535
533
  var _a;
536
534
  let found = (_a = source.$fastController) !== null && _a !== void 0 ? _a : notifierLookup.get(source);
@@ -1454,7 +1452,6 @@ class HTMLBindingDirective {
1454
1452
  if (!sink) {
1455
1453
  throw FAST.error(1205 /* Message.unsupportedBindingBehavior */);
1456
1454
  }
1457
-
1458
1455
  this.data = `${this.id}-d`;
1459
1456
  this.updateTarget = policy.protect(this.targetTagName, this.aspectType, this.targetAspect, sink);
1460
1457
  }
@@ -1830,7 +1827,6 @@ class CompilationContext {
1830
1827
  for (const id of this.nodeIds) {
1831
1828
  targets[id]; // trigger locator
1832
1829
  }
1833
-
1834
1830
  return new HTMLView(fragment, this.factories, targets);
1835
1831
  }
1836
1832
  }
@@ -2116,11 +2112,9 @@ class ViewTemplate {
2116
2112
  if (this.result) {
2117
2113
  throw FAST.error(1208 /* Message.cannotSetTemplatePolicyAfterCompilation */);
2118
2114
  }
2119
-
2120
2115
  if (this.policy) {
2121
2116
  throw FAST.error(1207 /* Message.onlySetTemplatePolicyOnce */);
2122
2117
  }
2123
-
2124
2118
  this.policy = policy;
2125
2119
  return this;
2126
2120
  }
@@ -2193,7 +2187,6 @@ const html = (strings, ...values) => {
2193
2187
  }
2194
2188
  throw FAST.error(1206 /* Message.directCallToHTMLTagNotAllowed */);
2195
2189
  };
2196
-
2197
2190
  html.partial = html => {
2198
2191
  return new InlineTemplateDirective(html);
2199
2192
  };
@@ -3052,7 +3045,6 @@ class ElementController extends PropertyChangeNotifier {
3052
3045
  if (definition === void 0) {
3053
3046
  throw FAST.error(1401 /* Message.missingElementDefinition */);
3054
3047
  }
3055
-
3056
3048
  return element.$fastController = new elementControllerStrategy(element, definition);
3057
3049
  }
3058
3050
  /**
@@ -3388,8 +3380,7 @@ __decorateClass$r([attr({
3388
3380
  })], ARIAGlobalStatesAndProperties.prototype, "ariaRoledescription", 2);
3389
3381
 
3390
3382
  const getDirection = rootNode => {
3391
- var _a;
3392
- return ((_a = rootNode.closest("[dir]")) == null ? void 0 : _a.dir) === "rtl" ? Direction.rtl : Direction.ltr;
3383
+ return rootNode.closest("[dir]")?.dir === "rtl" ? Direction.rtl : Direction.ltr;
3393
3384
  };
3394
3385
 
3395
3386
  function staticallyCompose(item) {
@@ -3405,10 +3396,7 @@ function staticallyCompose(item) {
3405
3396
  return item;
3406
3397
  }
3407
3398
 
3408
- const whitespaceFilter = value => {
3409
- var _a;
3410
- return value.nodeType !== Node.TEXT_NODE || !!((_a = value.nodeValue) == null ? void 0 : _a.trim().length);
3411
- };
3399
+ const whitespaceFilter = value => value.nodeType !== Node.TEXT_NODE || !!value.nodeValue?.trim().length;
3412
3400
 
3413
3401
  const hidden = `:host([hidden]){display:none}`;
3414
3402
  function display(displayValue) {
@@ -3416,10 +3404,23 @@ function display(displayValue) {
3416
3404
  }
3417
3405
 
3418
3406
  class MatchMediaBehavior {
3407
+ /**
3408
+ *
3409
+ * @param query - The media query to operate from.
3410
+ */
3419
3411
  constructor(query) {
3412
+ /**
3413
+ * The behavior needs to operate on element instances but elements might share a behavior instance.
3414
+ * To ensure proper attachment / detachment per instance, we construct a listener for
3415
+ * each bind invocation and cache the listeners by element reference.
3416
+ */
3420
3417
  this.listenerCache = /* @__PURE__ */new WeakMap();
3421
3418
  this.query = query;
3422
3419
  }
3420
+ /**
3421
+ * Binds the behavior to the element.
3422
+ * @param controller - The host controller orchestrating this behavior.
3423
+ */
3423
3424
  connectedCallback(controller) {
3424
3425
  const {
3425
3426
  query
@@ -3432,6 +3433,10 @@ class MatchMediaBehavior {
3432
3433
  listener.bind(query)();
3433
3434
  query.addEventListener("change", listener);
3434
3435
  }
3436
+ /**
3437
+ * Unbinds the behavior from the element.
3438
+ * @param controller - The host controller orchestrating this behavior.
3439
+ */
3435
3440
  disconnectedCallback(controller) {
3436
3441
  const listener = this.listenerCache.get(controller);
3437
3442
  if (listener) {
@@ -3440,15 +3445,54 @@ class MatchMediaBehavior {
3440
3445
  }
3441
3446
  }
3442
3447
  class MatchMediaStyleSheetBehavior extends MatchMediaBehavior {
3448
+ /**
3449
+ * Constructs a {@link MatchMediaStyleSheetBehavior} instance.
3450
+ * @param query - The media query to operate from.
3451
+ * @param styles - The styles to coordinate with the query.
3452
+ */
3443
3453
  constructor(query, styles) {
3444
3454
  super(query);
3445
3455
  this.styles = styles;
3446
3456
  }
3457
+ /**
3458
+ * Defines a function to construct {@link MatchMediaStyleSheetBehavior | MatchMediaStyleSheetBehaviors} for
3459
+ * a provided query.
3460
+ * @param query - The media query to operate from.
3461
+ *
3462
+ * @public
3463
+ * @example
3464
+ *
3465
+ * ```ts
3466
+ * import { css } from "@microsoft/fast-element";
3467
+ * import { MatchMediaStyleSheetBehavior } from "@fluentui/web-components";
3468
+ *
3469
+ * const landscapeBehavior = MatchMediaStyleSheetBehavior.with(
3470
+ * window.matchMedia("(orientation: landscape)")
3471
+ * );
3472
+ *
3473
+ * const styles = css`
3474
+ * :host {
3475
+ * width: 200px;
3476
+ * height: 400px;
3477
+ * }
3478
+ * `
3479
+ * .withBehaviors(landscapeBehavior(css`
3480
+ * :host {
3481
+ * width: 400px;
3482
+ * height: 200px;
3483
+ * }
3484
+ * `))
3485
+ * ```
3486
+ */
3447
3487
  static with(query) {
3448
3488
  return styles => {
3449
3489
  return new MatchMediaStyleSheetBehavior(query, styles);
3450
3490
  };
3451
3491
  }
3492
+ /**
3493
+ * Constructs a match-media listener for a provided element.
3494
+ * @param source - the element for which to attach or detach styles.
3495
+ */
3452
3496
  constructListener(controller) {
3453
3497
  let attached = false;
3454
3498
  const styles = this.styles;
@@ -3465,6 +3509,11 @@ class MatchMediaStyleSheetBehavior extends MatchMediaBehavior {
3465
3509
  }
3466
3510
  };
3467
3511
  }
3512
+ /**
3513
+ * Unbinds the behavior from the element.
3514
+ * @param controller - The host controller orchestrating this behavior.
3515
+ * @internal
3516
+ */
3468
3517
  removedCallback(controller) {
3469
3518
  controller.removeStyles(this.styles);
3470
3519
  }
@@ -3486,7 +3535,8 @@ function applyMixins(derivedCtor, ...baseCtors) {
3486
3535
  baseCtors.forEach(baseCtor => {
3487
3536
  Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
3488
3537
  if (name !== "constructor") {
3489
- Object.defineProperty(derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype, name));
3538
+ Object.defineProperty(derivedCtor.prototype, name, /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */
3539
+ Object.getOwnPropertyDescriptor(baseCtor.prototype, name));
3490
3540
  }
3491
3541
  });
3492
3542
  const baseAttributes = AttributeConfiguration.locate(baseCtor);
@@ -3510,6 +3560,9 @@ class AccordionItem extends FASTElement {
3510
3560
  this.disabled = false;
3511
3561
  this.id = uniqueId("accordion-");
3512
3562
  this.block = false;
3563
+ /**
3564
+ * @internal
3565
+ */
3513
3566
  this.clickHandler = e => {
3514
3567
  if (this.disabled) {
3515
3568
  return;
@@ -3657,16 +3710,22 @@ class Accordion extends FASTElement {
3657
3710
  return;
3658
3711
  }
3659
3712
  if (next !== AccordionExpandMode.single) {
3660
- expandedItem == null ? void 0 : expandedItem.expandbutton.removeAttribute("aria-disabled");
3713
+ expandedItem?.expandbutton.removeAttribute("aria-disabled");
3661
3714
  } else {
3662
3715
  this.setSingleExpandMode(expandedItem);
3663
3716
  }
3664
3717
  }
3718
+ /**
3719
+ * @internal
3720
+ */
3665
3721
  slottedAccordionItemsChanged(oldValue, newValue) {
3666
3722
  if (this.$fastController.isConnected) {
3667
3723
  this.setItems();
3668
3724
  }
3669
3725
  }
3726
+ /**
3727
+ * @internal
3728
+ */
3670
3729
  handleChange(source, propertyName) {
3671
3730
  if (propertyName === "disabled") {
3672
3731
  this.setItems();
@@ -3677,11 +3736,10 @@ class Accordion extends FASTElement {
3677
3736
  }
3678
3737
  }
3679
3738
  findExpandedItem() {
3680
- var _a;
3681
3739
  if (this.accordionItems.length === 0) {
3682
3740
  return null;
3683
3741
  }
3684
- return (_a = this.accordionItems.find(item => item instanceof AccordionItem && item.expanded)) != null ? _a : this.accordionItems[0];
3742
+ return this.accordionItems.find(item => item instanceof AccordionItem && item.expanded) ?? this.accordionItems[0];
3685
3743
  }
3686
3744
  setSingleExpandMode(expandedItem) {
3687
3745
  if (this.accordionItems.length === 0) {
@@ -3808,6 +3866,8 @@ const colorNeutralForegroundInvertedLinkSelected = "var(--colorNeutralForeground
3808
3866
  const colorNeutralForegroundInvertedDisabled = "var(--colorNeutralForegroundInvertedDisabled)";
3809
3867
  const colorBrandForeground1 = "var(--colorBrandForeground1)";
3810
3868
  const colorBrandForeground2 = "var(--colorBrandForeground2)";
3869
+ const colorBrandForeground2Hover = "var(--colorBrandForeground2Hover)";
3870
+ const colorBrandForeground2Pressed = "var(--colorBrandForeground2Pressed)";
3811
3871
  const colorNeutralForeground1Static = "var(--colorNeutralForeground1Static)";
3812
3872
  const colorBrandForegroundInverted = "var(--colorBrandForegroundInverted)";
3813
3873
  const colorBrandForegroundInvertedHover = "var(--colorBrandForegroundInvertedHover)";
@@ -3837,8 +3897,10 @@ const colorNeutralBackground5Hover = "var(--colorNeutralBackground5Hover)";
3837
3897
  const colorNeutralBackground5Pressed = "var(--colorNeutralBackground5Pressed)";
3838
3898
  const colorNeutralBackground5Selected = "var(--colorNeutralBackground5Selected)";
3839
3899
  const colorNeutralBackground6 = "var(--colorNeutralBackground6)";
3840
- const colorNeutralBackgroundStatic = "var(--colorNeutralBackgroundStatic)";
3841
3900
  const colorNeutralBackgroundInverted = "var(--colorNeutralBackgroundInverted)";
3901
+ const colorNeutralBackgroundStatic = "var(--colorNeutralBackgroundStatic)";
3902
+ const colorNeutralBackgroundAlpha = "var(--colorNeutralBackgroundAlpha)";
3903
+ const colorNeutralBackgroundAlpha2 = "var(--colorNeutralBackgroundAlpha2)";
3842
3904
  const colorSubtleBackground = "var(--colorSubtleBackground)";
3843
3905
  const colorSubtleBackgroundHover = "var(--colorSubtleBackgroundHover)";
3844
3906
  const colorSubtleBackgroundPressed = "var(--colorSubtleBackgroundPressed)";
@@ -3871,10 +3933,19 @@ const colorCompoundBrandBackgroundHover = "var(--colorCompoundBrandBackgroundHov
3871
3933
  const colorCompoundBrandBackgroundPressed = "var(--colorCompoundBrandBackgroundPressed)";
3872
3934
  const colorBrandBackgroundStatic = "var(--colorBrandBackgroundStatic)";
3873
3935
  const colorBrandBackground2 = "var(--colorBrandBackground2)";
3936
+ const colorBrandBackground2Hover = "var(--colorBrandBackground2Hover)";
3937
+ const colorBrandBackground2Pressed = "var(--colorBrandBackground2Pressed)";
3938
+ const colorBrandBackground3Static = "var(--colorBrandBackground3Static)";
3939
+ const colorBrandBackground4Static = "var(--colorBrandBackground4Static)";
3874
3940
  const colorBrandBackgroundInverted = "var(--colorBrandBackgroundInverted)";
3875
3941
  const colorBrandBackgroundInvertedHover = "var(--colorBrandBackgroundInvertedHover)";
3876
3942
  const colorBrandBackgroundInvertedPressed = "var(--colorBrandBackgroundInvertedPressed)";
3877
3943
  const colorBrandBackgroundInvertedSelected = "var(--colorBrandBackgroundInvertedSelected)";
3944
+ const colorNeutralCardBackground = "var(--colorNeutralCardBackground)";
3945
+ const colorNeutralCardBackgroundHover = "var(--colorNeutralCardBackgroundHover)";
3946
+ const colorNeutralCardBackgroundPressed = "var(--colorNeutralCardBackgroundPressed)";
3947
+ const colorNeutralCardBackgroundSelected = "var(--colorNeutralCardBackgroundSelected)";
3948
+ const colorNeutralCardBackgroundDisabled = "var(--colorNeutralCardBackgroundDisabled)";
3878
3949
  const colorNeutralStrokeAccessible = "var(--colorNeutralStrokeAccessible)";
3879
3950
  const colorNeutralStrokeAccessibleHover = "var(--colorNeutralStrokeAccessibleHover)";
3880
3951
  const colorNeutralStrokeAccessiblePressed = "var(--colorNeutralStrokeAccessiblePressed)";
@@ -3885,6 +3956,7 @@ const colorNeutralStroke1Pressed = "var(--colorNeutralStroke1Pressed)";
3885
3956
  const colorNeutralStroke1Selected = "var(--colorNeutralStroke1Selected)";
3886
3957
  const colorNeutralStroke2 = "var(--colorNeutralStroke2)";
3887
3958
  const colorNeutralStroke3 = "var(--colorNeutralStroke3)";
3959
+ const colorNeutralStrokeSubtle = "var(--colorNeutralStrokeSubtle)";
3888
3960
  const colorNeutralStrokeOnBrand = "var(--colorNeutralStrokeOnBrand)";
3889
3961
  const colorNeutralStrokeOnBrand2 = "var(--colorNeutralStrokeOnBrand2)";
3890
3962
  const colorNeutralStrokeOnBrand2Hover = "var(--colorNeutralStrokeOnBrand2Hover)";
@@ -3892,6 +3964,9 @@ const colorNeutralStrokeOnBrand2Pressed = "var(--colorNeutralStrokeOnBrand2Press
3892
3964
  const colorNeutralStrokeOnBrand2Selected = "var(--colorNeutralStrokeOnBrand2Selected)";
3893
3965
  const colorBrandStroke1 = "var(--colorBrandStroke1)";
3894
3966
  const colorBrandStroke2 = "var(--colorBrandStroke2)";
3967
+ const colorBrandStroke2Hover = "var(--colorBrandStroke2Hover)";
3968
+ const colorBrandStroke2Pressed = "var(--colorBrandStroke2Pressed)";
3969
+ const colorBrandStroke2Contrast = "var(--colorBrandStroke2Contrast)";
3895
3970
  const colorCompoundBrandStroke = "var(--colorCompoundBrandStroke)";
3896
3971
  const colorCompoundBrandStrokeHover = "var(--colorCompoundBrandStrokeHover)";
3897
3972
  const colorCompoundBrandStrokePressed = "var(--colorCompoundBrandStrokePressed)";
@@ -3900,6 +3975,8 @@ const colorNeutralStrokeInvertedDisabled = "var(--colorNeutralStrokeInvertedDisa
3900
3975
  const colorTransparentStroke = "var(--colorTransparentStroke)";
3901
3976
  const colorTransparentStrokeInteractive = "var(--colorTransparentStrokeInteractive)";
3902
3977
  const colorTransparentStrokeDisabled = "var(--colorTransparentStrokeDisabled)";
3978
+ const colorNeutralStrokeAlpha = "var(--colorNeutralStrokeAlpha)";
3979
+ const colorNeutralStrokeAlpha2 = "var(--colorNeutralStrokeAlpha2)";
3903
3980
  const colorStrokeFocus1 = "var(--colorStrokeFocus1)";
3904
3981
  const colorStrokeFocus2 = "var(--colorStrokeFocus2)";
3905
3982
  const colorNeutralShadowAmbient = "var(--colorNeutralShadowAmbient)";
@@ -4060,6 +4137,38 @@ const colorPaletteSteelForeground2 = "var(--colorPaletteSteelForeground2)";
4060
4137
  const colorPaletteTealBackground2 = "var(--colorPaletteTealBackground2)";
4061
4138
  const colorPaletteTealBorderActive = "var(--colorPaletteTealBorderActive)";
4062
4139
  const colorPaletteTealForeground2 = "var(--colorPaletteTealForeground2)";
4140
+ const colorStatusSuccessBackground1 = "var(--colorStatusSuccessBackground1)";
4141
+ const colorStatusSuccessBackground2 = "var(--colorStatusSuccessBackground2)";
4142
+ const colorStatusSuccessBackground3 = "var(--colorStatusSuccessBackground3)";
4143
+ const colorStatusSuccessForeground1 = "var(--colorStatusSuccessForeground1)";
4144
+ const colorStatusSuccessForeground2 = "var(--colorStatusSuccessForeground2)";
4145
+ const colorStatusSuccessForeground3 = "var(--colorStatusSuccessForeground3)";
4146
+ const colorStatusSuccessForegroundInverted = "var(--colorStatusSuccessForegroundInverted)";
4147
+ const colorStatusSuccessBorderActive = "var(--colorStatusSuccessBorderActive)";
4148
+ const colorStatusSuccessBorder1 = "var(--colorStatusSuccessBorder1)";
4149
+ const colorStatusSuccessBorder2 = "var(--colorStatusSuccessBorder2)";
4150
+ const colorStatusWarningBackground1 = "var(--colorStatusWarningBackground1)";
4151
+ const colorStatusWarningBackground2 = "var(--colorStatusWarningBackground2)";
4152
+ const colorStatusWarningBackground3 = "var(--colorStatusWarningBackground3)";
4153
+ const colorStatusWarningForeground1 = "var(--colorStatusWarningForeground1)";
4154
+ const colorStatusWarningForeground2 = "var(--colorStatusWarningForeground2)";
4155
+ const colorStatusWarningForeground3 = "var(--colorStatusWarningForeground3)";
4156
+ const colorStatusWarningForegroundInverted = "var(--colorStatusWarningForegroundInverted)";
4157
+ const colorStatusWarningBorderActive = "var(--colorStatusWarningBorderActive)";
4158
+ const colorStatusWarningBorder1 = "var(--colorStatusWarningBorder1)";
4159
+ const colorStatusWarningBorder2 = "var(--colorStatusWarningBorder2)";
4160
+ const colorStatusDangerBackground1 = "var(--colorStatusDangerBackground1)";
4161
+ const colorStatusDangerBackground2 = "var(--colorStatusDangerBackground2)";
4162
+ const colorStatusDangerBackground3 = "var(--colorStatusDangerBackground3)";
4163
+ const colorStatusDangerBackground3Hover = "var(--colorStatusDangerBackground3Hover)";
4164
+ const colorStatusDangerBackground3Pressed = "var(--colorStatusDangerBackground3Pressed)";
4165
+ const colorStatusDangerForeground1 = "var(--colorStatusDangerForeground1)";
4166
+ const colorStatusDangerForeground2 = "var(--colorStatusDangerForeground2)";
4167
+ const colorStatusDangerForeground3 = "var(--colorStatusDangerForeground3)";
4168
+ const colorStatusDangerForegroundInverted = "var(--colorStatusDangerForegroundInverted)";
4169
+ const colorStatusDangerBorderActive = "var(--colorStatusDangerBorderActive)";
4170
+ const colorStatusDangerBorder1 = "var(--colorStatusDangerBorder1)";
4171
+ const colorStatusDangerBorder2 = "var(--colorStatusDangerBorder2)";
4063
4172
  const borderRadiusNone = "var(--borderRadiusNone)";
4064
4173
  const borderRadiusSmall = "var(--borderRadiusSmall)";
4065
4174
  const borderRadiusMedium = "var(--borderRadiusMedium)";
@@ -4135,6 +4244,7 @@ const durationUltraFast = "var(--durationUltraFast)";
4135
4244
  const durationFaster = "var(--durationFaster)";
4136
4245
  const durationFast = "var(--durationFast)";
4137
4246
  const durationNormal = "var(--durationNormal)";
4247
+ const durationGentle = "var(--durationGentle)";
4138
4248
  const durationSlow = "var(--durationSlow)";
4139
4249
  const durationSlower = "var(--durationSlower)";
4140
4250
  const durationUltraSlow = "var(--durationUltraSlow)";
@@ -4195,6 +4305,8 @@ var tokens = /*#__PURE__*/Object.freeze({
4195
4305
  colorNeutralForegroundInvertedDisabled: colorNeutralForegroundInvertedDisabled,
4196
4306
  colorBrandForeground1: colorBrandForeground1,
4197
4307
  colorBrandForeground2: colorBrandForeground2,
4308
+ colorBrandForeground2Hover: colorBrandForeground2Hover,
4309
+ colorBrandForeground2Pressed: colorBrandForeground2Pressed,
4198
4310
  colorNeutralForeground1Static: colorNeutralForeground1Static,
4199
4311
  colorBrandForegroundInverted: colorBrandForegroundInverted,
4200
4312
  colorBrandForegroundInvertedHover: colorBrandForegroundInvertedHover,
@@ -4224,8 +4336,10 @@ var tokens = /*#__PURE__*/Object.freeze({
4224
4336
  colorNeutralBackground5Pressed: colorNeutralBackground5Pressed,
4225
4337
  colorNeutralBackground5Selected: colorNeutralBackground5Selected,
4226
4338
  colorNeutralBackground6: colorNeutralBackground6,
4227
- colorNeutralBackgroundStatic: colorNeutralBackgroundStatic,
4228
4339
  colorNeutralBackgroundInverted: colorNeutralBackgroundInverted,
4340
+ colorNeutralBackgroundStatic: colorNeutralBackgroundStatic,
4341
+ colorNeutralBackgroundAlpha: colorNeutralBackgroundAlpha,
4342
+ colorNeutralBackgroundAlpha2: colorNeutralBackgroundAlpha2,
4229
4343
  colorSubtleBackground: colorSubtleBackground,
4230
4344
  colorSubtleBackgroundHover: colorSubtleBackgroundHover,
4231
4345
  colorSubtleBackgroundPressed: colorSubtleBackgroundPressed,
@@ -4258,10 +4372,19 @@ var tokens = /*#__PURE__*/Object.freeze({
4258
4372
  colorCompoundBrandBackgroundPressed: colorCompoundBrandBackgroundPressed,
4259
4373
  colorBrandBackgroundStatic: colorBrandBackgroundStatic,
4260
4374
  colorBrandBackground2: colorBrandBackground2,
4375
+ colorBrandBackground2Hover: colorBrandBackground2Hover,
4376
+ colorBrandBackground2Pressed: colorBrandBackground2Pressed,
4377
+ colorBrandBackground3Static: colorBrandBackground3Static,
4378
+ colorBrandBackground4Static: colorBrandBackground4Static,
4261
4379
  colorBrandBackgroundInverted: colorBrandBackgroundInverted,
4262
4380
  colorBrandBackgroundInvertedHover: colorBrandBackgroundInvertedHover,
4263
4381
  colorBrandBackgroundInvertedPressed: colorBrandBackgroundInvertedPressed,
4264
4382
  colorBrandBackgroundInvertedSelected: colorBrandBackgroundInvertedSelected,
4383
+ colorNeutralCardBackground: colorNeutralCardBackground,
4384
+ colorNeutralCardBackgroundHover: colorNeutralCardBackgroundHover,
4385
+ colorNeutralCardBackgroundPressed: colorNeutralCardBackgroundPressed,
4386
+ colorNeutralCardBackgroundSelected: colorNeutralCardBackgroundSelected,
4387
+ colorNeutralCardBackgroundDisabled: colorNeutralCardBackgroundDisabled,
4265
4388
  colorNeutralStrokeAccessible: colorNeutralStrokeAccessible,
4266
4389
  colorNeutralStrokeAccessibleHover: colorNeutralStrokeAccessibleHover,
4267
4390
  colorNeutralStrokeAccessiblePressed: colorNeutralStrokeAccessiblePressed,
@@ -4272,6 +4395,7 @@ var tokens = /*#__PURE__*/Object.freeze({
4272
4395
  colorNeutralStroke1Selected: colorNeutralStroke1Selected,
4273
4396
  colorNeutralStroke2: colorNeutralStroke2,
4274
4397
  colorNeutralStroke3: colorNeutralStroke3,
4398
+ colorNeutralStrokeSubtle: colorNeutralStrokeSubtle,
4275
4399
  colorNeutralStrokeOnBrand: colorNeutralStrokeOnBrand,
4276
4400
  colorNeutralStrokeOnBrand2: colorNeutralStrokeOnBrand2,
4277
4401
  colorNeutralStrokeOnBrand2Hover: colorNeutralStrokeOnBrand2Hover,
@@ -4279,6 +4403,9 @@ var tokens = /*#__PURE__*/Object.freeze({
4279
4403
  colorNeutralStrokeOnBrand2Selected: colorNeutralStrokeOnBrand2Selected,
4280
4404
  colorBrandStroke1: colorBrandStroke1,
4281
4405
  colorBrandStroke2: colorBrandStroke2,
4406
+ colorBrandStroke2Hover: colorBrandStroke2Hover,
4407
+ colorBrandStroke2Pressed: colorBrandStroke2Pressed,
4408
+ colorBrandStroke2Contrast: colorBrandStroke2Contrast,
4282
4409
  colorCompoundBrandStroke: colorCompoundBrandStroke,
4283
4410
  colorCompoundBrandStrokeHover: colorCompoundBrandStrokeHover,
4284
4411
  colorCompoundBrandStrokePressed: colorCompoundBrandStrokePressed,
@@ -4287,6 +4414,8 @@ var tokens = /*#__PURE__*/Object.freeze({
4287
4414
  colorTransparentStroke: colorTransparentStroke,
4288
4415
  colorTransparentStrokeInteractive: colorTransparentStrokeInteractive,
4289
4416
  colorTransparentStrokeDisabled: colorTransparentStrokeDisabled,
4417
+ colorNeutralStrokeAlpha: colorNeutralStrokeAlpha,
4418
+ colorNeutralStrokeAlpha2: colorNeutralStrokeAlpha2,
4290
4419
  colorStrokeFocus1: colorStrokeFocus1,
4291
4420
  colorStrokeFocus2: colorStrokeFocus2,
4292
4421
  colorNeutralShadowAmbient: colorNeutralShadowAmbient,
@@ -4447,6 +4576,38 @@ var tokens = /*#__PURE__*/Object.freeze({
4447
4576
  colorPaletteTealBackground2: colorPaletteTealBackground2,
4448
4577
  colorPaletteTealBorderActive: colorPaletteTealBorderActive,
4449
4578
  colorPaletteTealForeground2: colorPaletteTealForeground2,
4579
+ colorStatusSuccessBackground1: colorStatusSuccessBackground1,
4580
+ colorStatusSuccessBackground2: colorStatusSuccessBackground2,
4581
+ colorStatusSuccessBackground3: colorStatusSuccessBackground3,
4582
+ colorStatusSuccessForeground1: colorStatusSuccessForeground1,
4583
+ colorStatusSuccessForeground2: colorStatusSuccessForeground2,
4584
+ colorStatusSuccessForeground3: colorStatusSuccessForeground3,
4585
+ colorStatusSuccessForegroundInverted: colorStatusSuccessForegroundInverted,
4586
+ colorStatusSuccessBorderActive: colorStatusSuccessBorderActive,
4587
+ colorStatusSuccessBorder1: colorStatusSuccessBorder1,
4588
+ colorStatusSuccessBorder2: colorStatusSuccessBorder2,
4589
+ colorStatusWarningBackground1: colorStatusWarningBackground1,
4590
+ colorStatusWarningBackground2: colorStatusWarningBackground2,
4591
+ colorStatusWarningBackground3: colorStatusWarningBackground3,
4592
+ colorStatusWarningForeground1: colorStatusWarningForeground1,
4593
+ colorStatusWarningForeground2: colorStatusWarningForeground2,
4594
+ colorStatusWarningForeground3: colorStatusWarningForeground3,
4595
+ colorStatusWarningForegroundInverted: colorStatusWarningForegroundInverted,
4596
+ colorStatusWarningBorderActive: colorStatusWarningBorderActive,
4597
+ colorStatusWarningBorder1: colorStatusWarningBorder1,
4598
+ colorStatusWarningBorder2: colorStatusWarningBorder2,
4599
+ colorStatusDangerBackground1: colorStatusDangerBackground1,
4600
+ colorStatusDangerBackground2: colorStatusDangerBackground2,
4601
+ colorStatusDangerBackground3: colorStatusDangerBackground3,
4602
+ colorStatusDangerBackground3Hover: colorStatusDangerBackground3Hover,
4603
+ colorStatusDangerBackground3Pressed: colorStatusDangerBackground3Pressed,
4604
+ colorStatusDangerForeground1: colorStatusDangerForeground1,
4605
+ colorStatusDangerForeground2: colorStatusDangerForeground2,
4606
+ colorStatusDangerForeground3: colorStatusDangerForeground3,
4607
+ colorStatusDangerForegroundInverted: colorStatusDangerForegroundInverted,
4608
+ colorStatusDangerBorderActive: colorStatusDangerBorderActive,
4609
+ colorStatusDangerBorder1: colorStatusDangerBorder1,
4610
+ colorStatusDangerBorder2: colorStatusDangerBorder2,
4450
4611
  borderRadiusNone: borderRadiusNone,
4451
4612
  borderRadiusSmall: borderRadiusSmall,
4452
4613
  borderRadiusMedium: borderRadiusMedium,
@@ -4522,6 +4683,7 @@ var tokens = /*#__PURE__*/Object.freeze({
4522
4683
  durationFaster: durationFaster,
4523
4684
  durationFast: durationFast,
4524
4685
  durationNormal: durationNormal,
4686
+ durationGentle: durationGentle,
4525
4687
  durationSlow: durationSlow,
4526
4688
  durationSlower: durationSlower,
4527
4689
  durationUltraSlow: durationUltraSlow,
@@ -4595,6 +4757,9 @@ class AnchorButton extends FASTElement {
4595
4757
  this.iconOnly = false;
4596
4758
  this.disabled = false;
4597
4759
  this.disabledFocusable = false;
4760
+ /**
4761
+ * Prevents disabledFocusable click events
4762
+ */
4598
4763
  this.handleDisabledFocusableClick = e => {
4599
4764
  if (e && this.disabled || this.disabledFocusable) {
4600
4765
  e.stopImmediatePropagation();
@@ -4701,7 +4866,8 @@ const template$q = anchorTemplate();
4701
4866
  const styles$p = css`
4702
4867
  ${display("inline-flex")}
4703
4868
 
4704
- :host{--icon-spacing:${spacingHorizontalSNudge};contain:layout style;vertical-align:middle}:host .control{display:inline-flex;align-items:center;box-sizing:border-box;justify-content:center;text-decoration-line:none;margin:0;min-height:32px;outline-style:none;background-color:${colorNeutralBackground1};color:${colorNeutralForeground1};border:${strokeWidthThin} solid ${colorNeutralStroke1};padding:0 ${spacingHorizontalM};min-width:96px;border-radius:${borderRadiusMedium};font-size:${fontSizeBase300};font-family:${fontFamilyBase};font-weight:${fontWeightSemibold};line-height:${lineHeightBase300};transition-duration:${durationFaster};transition-property:background,border,color;transition-timing-function:${curveEasyEase};cursor:pointer}.content{display:inherit;text-align:center}:host(:hover) .control{background-color:${colorNeutralBackground1Hover};color:${colorNeutralForeground1Hover};border-color:${colorNeutralStroke1Hover}}:host(:hover:active) .control{background-color:${colorNeutralBackground1Pressed};border-color:${colorNeutralStroke1Pressed};color:${colorNeutralForeground1Pressed};outline-style:none}:host .control:focus-visible{border-color:${colorTransparentStroke};outline:${strokeWidthThick}) solid ${colorTransparentStroke};box-shadow:${shadow4},0 0 0 2px ${colorStrokeFocus2}}@media screen and (prefers-reduced-motion:reduce){transition-duration:0.01ms}::slotted(svg){font-size:20px;height:20px;width:20px;fill:currentColor}[slot='start'],::slotted([slot='start']){margin-inline-end:var(--icon-spacing)}[slot='end'],::slotted([slot='end']){margin-inline-start:var(--icon-spacing)}:host([icon-only]) .control{min-width:32px;max-width:32px}:host([size='small']){--icon-spacing:${spacingHorizontalXS}}:host([size='small']) .control{min-height:24px;min-width:64px;padding:0 ${spacingHorizontalS};border-radius:${borderRadiusSmall};font-size:${fontSizeBase200};line-height:${lineHeightBase200};font-weight:${fontWeightRegular}}:host([size='small'][icon-only]) .control{min-width:24px;max-width:24px}:host([size='large']) .control{min-height:40px;border-radius:${borderRadiusLarge};padding:0 ${spacingHorizontalL};font-size:${fontSizeBase400};line-height:${lineHeightBase400}}:host([size='large'][icon-only]) .control{min-width:40px;max-width:40px}:host([size='large']) ::slotted(svg){font-size:24px;height:24px;width:24px}:host([shape='circular']) .control,:host([shape='circular']) .control:focus-visible{border-radius:${borderRadiusCircular}}:host([shape='square']) .control,:host([shape='square']) .control:focus-visible{border-radius:${borderRadiusNone}}:host([appearance='primary']) .control{background-color:${colorBrandBackground};color:${colorNeutralForegroundOnBrand};border-color:transparent}:host([appearance='primary']:hover) .control{background-color:${colorBrandBackgroundHover}}:host([appearance='primary']:hover) .control,:host([appearance='primary']:hover:active) .control{border-color:transparent;color:${colorNeutralForegroundOnBrand}}:host([appearance='primary']:hover:active) .control{background-color:${colorBrandBackgroundPressed}}:host([appearance='primary']) .control:focus-visible{border-color:${colorNeutralForegroundOnBrand};box-shadow:${shadow2},0 0 0 2px ${colorStrokeFocus2}}:host(is:([disabled][appearance='primary'],[disabled-focusabale][appearance="primary"])) .control,:host(is:([disabled][appearance='primary'],[disabled-focusabale][appearance="primary"]):hover) .control,:host(is:([disabled][appearance='primary'],[disabled-focusabale][appearance="primary"]):hover:active) .control{border-color:transparent}:host([appearance='outline']) .control{background-color:${colorTransparentBackground}}:host([appearance='outline']:hover) .control{background-color:${colorTransparentBackgroundHover}}:host([appearance='outline']:hover:active) .control{background-color:${colorTransparentBackgroundPressed}}:host(is:([disabled][appearance='outline'],[disabled-focusabale][appearance="outline"])) .control,:host(is:([disabled][appearance='outline'],[disabled-focusabale][appearance="outline"]):hover) .control,:host(is:([disabled][appearance='outline'],[disabled-focusabale][appearance="outline"]):hover:active) .control{background-color:${colorTransparentBackground}}:host([appearance='subtle']) .control{background-color:${colorSubtleBackground};color:${colorNeutralForeground2};border-color:transparent}:host([appearance='subtle']:hover) .control{background-color:${colorSubtleBackgroundHover};color:${colorNeutralForeground2Hover};border-color:transparent}:host([appearance='subtle']:hover:active) .control{background-color:${colorSubtleBackgroundPressed};color:${colorNeutralForeground2Pressed};border-color:transparent}:host(is:([disabled][appearance='subtle'],[disabled-focusabale][appearance="subtle"])) .control,:host(is:([disabled][appearance='subtle'],[disabled-focusabale][appearance="subtle"]):hover) .control,:host(is:([disabled][appearance='subtle'],[disabled-focusabale][appearance="subtle"]):hover:active) .control{background-color:${colorTransparentBackground};border-color:transparent}:host([appearance='subtle']:hover) ::slotted(svg){fill:${colorNeutralForeground2BrandHover}}:host([appearance='subtle']:hover:active) ::slotted(svg){fill:${colorNeutralForeground2BrandPressed}}:host([appearance='transparent']) .control{background-color:${colorTransparentBackground};color:${colorNeutralForeground2}}:host([appearance='transparent']:hover) .control{background-color:${colorTransparentBackgroundHover};color:${colorNeutralForeground2BrandHover}}:host([appearance='transparent']:hover:active) .control{background-color:${colorTransparentBackgroundPressed};color:${colorNeutralForeground2BrandPressed}}:host([appearance='transparent']) .control,:host([appearance='transparent']:hover) .control,:host([appearance='transparent']:hover:active) .control{border-color:transparent}:host(is:([disabled][appearance='transparent'],[disabled-focusabale][appearance="transparent"])) .control,:host(is:([disabled][appearance='transparent'],[disabled-focusabale][appearance="transparent"]):hover) .control,:host(is:([disabled][appearance='transparent'],[disabled-focusabale][appearance="transparent"]):hover:active) .control{border-color:transparent;background-color:${colorTransparentBackground}}:host(:is([disabled],[disabled-focusable],[appearance][disabled],[appearance][disabled-focusable])) .control,:host(:is([disabled],[disabled-focusable],[appearance][disabled],[appearance][disabled-focusable]):hover) .control,:host(:is([disabled],[disabled-focusable],[appearance][disabled],[appearance][disabled-focusable]):hover:active)
4869
+ :host{--icon-spacing:${spacingHorizontalSNudge};contain:layout style;vertical-align:middle}:host .control{display:inline-flex;align-items:center;box-sizing:border-box;justify-content:center;text-decoration-line:none;margin:0;min-height:32px;outline-style:none;background-color:${colorNeutralBackground1};color:${colorNeutralForeground1};border:${strokeWidthThin} solid ${colorNeutralStroke1};padding:0 ${spacingHorizontalM};min-width:96px;border-radius:${borderRadiusMedium};font-size:${fontSizeBase300};font-family:${fontFamilyBase};font-weight:${fontWeightSemibold};line-height:${lineHeightBase300};transition-duration:${durationFaster};transition-property:background,border,color;transition-timing-function:${curveEasyEase};cursor:pointer}.content{display:inherit;text-align:center}:host(:hover) .control{background-color:${colorNeutralBackground1Hover};color:${colorNeutralForeground1Hover};border-color:${colorNeutralStroke1Hover}}:host(:hover:active) .control{background-color:${colorNeutralBackground1Pressed};border-color:${colorNeutralStroke1Pressed};color:${colorNeutralForeground1Pressed};outline-style:none}:host .control:focus-visible{border-color:${colorTransparentStroke};outline:${strokeWidthThick}) solid ${colorTransparentStroke};box-shadow:${shadow4},0 0 0 2px ${colorStrokeFocus2}}@media screen and (prefers-reduced-motion:reduce){transition-duration:0.01ms}::slotted(svg){font-size:20px;height:20px;width:20px;fill:currentColor}[slot='start'],::slotted([slot='start']){margin-inline-end:var(--icon-spacing)}[slot='end'],::slotted([slot='end']){margin-inline-start:var(--icon-spacing)}:host([icon-only]) .control{min-width:32px;max-width:32px}:host([size='small']){--icon-spacing:${spacingHorizontalXS}}:host([size='small']) .control{min-height:24px;min-width:64px;padding:0 ${spacingHorizontalS};border-radius:${borderRadiusSmall};font-size:${fontSizeBase200};line-height:${lineHeightBase200};font-weight:${fontWeightRegular}}:host([size='small'][icon-only]) .control{min-width:24px;max-width:24px}:host([size='large']) .control{min-height:40px;border-radius:${borderRadiusLarge};padding:0 ${spacingHorizontalL};font-size:${fontSizeBase400};line-height:${lineHeightBase400}}:host([size='large'][icon-only]) .control{min-width:40px;max-width:40px}:host([size='large']) ::slotted(svg){font-size:24px;height:24px;width:24px}:host([shape='circular']) .control,:host([shape='circular']) .control:focus-visible{border-radius:${borderRadiusCircular}}:host([shape='square']) .control,:host([shape='square']) .control:focus-visible{border-radius:${borderRadiusNone}}:host([appearance='primary']) .control{background-color:${colorBrandBackground};color:${colorNeutralForegroundOnBrand};border-color:transparent}:host([appearance='primary']:hover) .control{background-color:${colorBrandBackgroundHover}}:host([appearance='primary']:hover) .control,:host([appearance='primary']:hover:active) .control{border-color:transparent;color:${colorNeutralForegroundOnBrand}}:host([appearance='primary']:hover:active) .control{background-color:${colorBrandBackgroundPressed}}:host([appearance='primary']) .control:focus-visible{border-color:${colorNeutralForegroundOnBrand};box-shadow:${shadow2},0 0 0 2px ${colorStrokeFocus2}}:host(:is([disabled][appearance='primary'],[disabled-focusabale][appearance='primary'])) .control,:host(:is([disabled][appearance='primary'],[disabled-focusabale][appearance='primary']):hover) .control,:host(:is([disabled][appearance='primary'],[disabled-focusabale][appearance='primary']):hover:active) .control{border-color:transparent}:host([appearance='outline']) .control{background-color:${colorTransparentBackground}}:host([appearance='outline']:hover) .control{background-color:${colorTransparentBackgroundHover}}:host([appearance='outline']:hover:active) .control{background-color:${colorTransparentBackgroundPressed}}:host(:is([disabled][appearance='outline'],[disabled-focusabale][appearance='outline'])) .control,:host(:is([disabled][appearance='outline'],[disabled-focusabale][appearance='outline']):hover) .control,:host(:is([disabled][appearance='outline'],[disabled-focusabale][appearance='outline']):hover:active) .control{background-color:${colorTransparentBackground}}:host([appearance='subtle']) .control{background-color:${colorSubtleBackground};color:${colorNeutralForeground2};border-color:transparent}:host([appearance='subtle']:hover) .control{background-color:${colorSubtleBackgroundHover};color:${colorNeutralForeground2Hover};border-color:transparent}:host([appearance='subtle']:hover:active) .control{background-color:${colorSubtleBackgroundPressed};color:${colorNeutralForeground2Pressed};border-color:transparent}:host(:is([disabled][appearance='subtle'],[disabled-focusabale][appearance='subtle'])) .control,:host(:is([disabled][appearance='subtle'],[disabled-focusabale][appearance='subtle']):hover) .control,:host(:is([disabled][appearance='subtle'],[disabled-focusabale][appearance='subtle']):hover:active) .control{background-color:${colorTransparentBackground};border-color:transparent}:host([appearance='subtle']:hover) ::slotted(svg){fill:${colorNeutralForeground2BrandHover}}:host([appearance='subtle']:hover:active) ::slotted(svg){fill:${colorNeutralForeground2BrandPressed}}:host([appearance='transparent']) .control{background-color:${colorTransparentBackground};color:${colorNeutralForeground2}}:host([appearance='transparent']:hover) .control{background-color:${colorTransparentBackgroundHover};color:${colorNeutralForeground2BrandHover}}:host([appearance='transparent']:hover:active) .control{background-color:${colorTransparentBackgroundPressed};color:${colorNeutralForeground2BrandPressed}}:host([appearance='transparent']) .control,:host([appearance='transparent']:hover) .control,:host([appearance='transparent']:hover:active) .control{border-color:transparent}:host(:is([disabled][appearance='transparent'],[disabled-focusabale][appearance='transparent'])) .control,:host(:is([disabled][appearance='transparent'],[disabled-focusabale][appearance='transparent']):hover) .control,:host(:is([disabled][appearance='transparent'],[disabled-focusabale][appearance='transparent']):hover:active)
4870
+ .control{border-color:transparent;background-color:${colorTransparentBackground}}:host(:is([disabled],[disabled-focusable],[appearance][disabled],[appearance][disabled-focusable])) .control,:host(:is([disabled],[disabled-focusable],[appearance][disabled],[appearance][disabled-focusable]):hover) .control,:host(:is([disabled],[disabled-focusable],[appearance][disabled],[appearance][disabled-focusable]):hover:active)
4705
4871
  .control{background-color:${colorNeutralBackgroundDisabled};border-color:${colorNeutralStrokeDisabled};color:${colorNeutralForegroundDisabled};cursor:not-allowed}`.withBehaviors(forcedColorsStylesheetBehavior(css`
4706
4872
  :host([appearance='transparent']:hover) .control{border-color:Highlight}`));
4707
4873
 
@@ -4749,10 +4915,10 @@ function getInitials(displayName, isRtl, options) {
4749
4915
  return "";
4750
4916
  }
4751
4917
  displayName = cleanupDisplayName(displayName);
4752
- if (UNSUPPORTED_TEXT_REGEX.test(displayName) || !(options == null ? void 0 : options.allowPhoneInitials) && PHONENUMBER_REGEX.test(displayName)) {
4918
+ if (UNSUPPORTED_TEXT_REGEX.test(displayName) || !options?.allowPhoneInitials && PHONENUMBER_REGEX.test(displayName)) {
4753
4919
  return "";
4754
4920
  }
4755
- return getInitialsLatin(displayName, isRtl, options == null ? void 0 : options.firstInitialOnly);
4921
+ return getInitialsLatin(displayName, isRtl, options?.firstInitialOnly);
4756
4922
  }
4757
4923
 
4758
4924
  const AvatarActive = {
@@ -4831,43 +4997,52 @@ var __decorateClass$n = (decorators, target, key, kind) => {
4831
4997
  if (kind && result) __defProp$n(target, key, result);
4832
4998
  return result;
4833
4999
  };
4834
- const _Avatar = class extends FASTElement {
5000
+ const _Avatar = class _Avatar extends FASTElement {
4835
5001
  constructor() {
4836
5002
  super(...arguments);
4837
5003
  this.color = "neutral";
4838
5004
  }
5005
+ /**
5006
+ * Sets the data-color attribute used for the visual presentation
5007
+ * @internal
5008
+ */
4839
5009
  generateColor() {
4840
- var _a, _b;
4841
5010
  if (!this.color) {
4842
5011
  return;
4843
5012
  }
4844
- return this.color === AvatarColor.colorful ? _Avatar.colors[getHashCode((_b = (_a = this.colorId) != null ? _a : this.name) != null ? _b : "") % _Avatar.colors.length] : this.color;
5013
+ return this.color === AvatarColor.colorful ? _Avatar.colors[getHashCode(this.colorId ?? this.name ?? "") % _Avatar.colors.length] : this.color;
4845
5014
  }
5015
+ /**
5016
+ * Generates and sets the initials for the template
5017
+ * @internal
5018
+ */
4846
5019
  generateInitials() {
4847
- var _a, _b;
4848
5020
  if (!this.name && !this.initials) {
4849
5021
  return;
4850
5022
  }
4851
- const size = (_a = this.size) != null ? _a : 32;
4852
- return (_b = this.initials) != null ? _b : getInitials(this.name, window.getComputedStyle(this).direction === "rtl", {
5023
+ const size = this.size ?? 32;
5024
+ return this.initials ?? getInitials(this.name, window.getComputedStyle(this).direction === "rtl", {
4853
5025
  firstInitialOnly: size <= 16
4854
5026
  });
4855
5027
  }
4856
5028
  };
4857
- let Avatar = _Avatar;
4858
- Avatar.colors = Object.values(AvatarNamedColor);
4859
- __decorateClass$n([attr], Avatar.prototype, "name", 2);
4860
- __decorateClass$n([attr], Avatar.prototype, "initials", 2);
5029
+ /**
5030
+ * An array of the available Avatar named colors
5031
+ */
5032
+ _Avatar.colors = Object.values(AvatarNamedColor);
5033
+ __decorateClass$n([attr], _Avatar.prototype, "name", 2);
5034
+ __decorateClass$n([attr], _Avatar.prototype, "initials", 2);
4861
5035
  __decorateClass$n([attr({
4862
5036
  converter: nullableNumberConverter
4863
- })], Avatar.prototype, "size", 2);
4864
- __decorateClass$n([attr], Avatar.prototype, "shape", 2);
4865
- __decorateClass$n([attr], Avatar.prototype, "active", 2);
4866
- __decorateClass$n([attr], Avatar.prototype, "appearance", 2);
4867
- __decorateClass$n([attr], Avatar.prototype, "color", 2);
5037
+ })], _Avatar.prototype, "size", 2);
5038
+ __decorateClass$n([attr], _Avatar.prototype, "shape", 2);
5039
+ __decorateClass$n([attr], _Avatar.prototype, "active", 2);
5040
+ __decorateClass$n([attr], _Avatar.prototype, "appearance", 2);
5041
+ __decorateClass$n([attr], _Avatar.prototype, "color", 2);
4868
5042
  __decorateClass$n([attr({
4869
5043
  attribute: "color-id"
4870
- })], Avatar.prototype, "colorId", 2);
5044
+ })], _Avatar.prototype, "colorId", 2);
5045
+ let Avatar = _Avatar;
4871
5046
  const getHashCode = str => {
4872
5047
  let hashCode = 0;
4873
5048
  for (let len = str.length - 1; len >= 0; len--) {
@@ -5339,28 +5514,62 @@ class Button extends FASTElement {
5339
5514
  constructor() {
5340
5515
  super();
5341
5516
  this.disabledFocusable = false;
5517
+ /**
5518
+ * The internal {@link https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals | `ElementInternals`} instance for the component.
5519
+ *
5520
+ * @internal
5521
+ */
5342
5522
  this.elementInternals = this.attachInternals();
5343
5523
  this.iconOnly = false;
5344
5524
  this.elementInternals.role = "button";
5345
5525
  }
5526
+ /**
5527
+ * Sets the element's internal disabled state when the element is focusable while disabled.
5528
+ *
5529
+ * @param previous - the previous disabledFocusable value
5530
+ * @param next - the current disabledFocusable value
5531
+ * @internal
5532
+ */
5346
5533
  disabledFocusableChanged(previous, next) {
5347
5534
  if (this.$fastController.isConnected) {
5348
5535
  this.elementInternals.ariaDisabled = `${!!next}`;
5349
5536
  }
5350
5537
  }
5538
+ /**
5539
+ * The associated form element.
5540
+ *
5541
+ * @public
5542
+ */
5351
5543
  get form() {
5352
5544
  return this.elementInternals.form;
5353
5545
  }
5546
+ /**
5547
+ * A reference to all associated label elements.
5548
+ *
5549
+ * @public
5550
+ */
5354
5551
  get labels() {
5355
5552
  return Object.freeze(Array.from(this.elementInternals.labels));
5356
5553
  }
5554
+ /**
5555
+ * Removes the form submission fallback control when the type changes.
5556
+ *
5557
+ * @param previous - the previous type value
5558
+ * @param next - the new type value
5559
+ * @internal
5560
+ */
5357
5561
  typeChanged(previous, next) {
5358
- var _a, _b, _c;
5359
5562
  if (next !== ButtonType.submit) {
5360
- (_a = this.formSubmissionFallbackControl) == null ? void 0 : _a.remove();
5361
- (_c = (_b = this.shadowRoot) == null ? void 0 : _b.querySelector('slot[name="internal"]')) == null ? void 0 : _c.remove();
5563
+ this.formSubmissionFallbackControl?.remove();
5564
+ this.shadowRoot?.querySelector('slot[name="internal"]')?.remove();
5362
5565
  }
5363
5566
  }
5567
+ /**
5568
+ * Handles the button click event.
5569
+ *
5570
+ * @param e - The event object
5571
+ * @internal
5572
+ */
5364
5573
  clickHandler(e) {
5365
5574
  if (e && this.disabledFocusable) {
5366
5575
  e.stopImmediatePropagation();
@@ -5373,20 +5582,27 @@ class Button extends FASTElement {
5373
5582
  super.connectedCallback();
5374
5583
  this.elementInternals.ariaDisabled = `${!!this.disabledFocusable}`;
5375
5584
  }
5585
+ /**
5586
+ * This fallback creates a new slot, then creates a submit button to mirror the custom element's
5587
+ * properties. The submit button is then appended to the slot and the form is submitted.
5588
+ *
5589
+ * @internal
5590
+ * @privateRemarks
5591
+ * This is a workaround until {@link https://github.com/WICG/webcomponents/issues/814 | WICG/webcomponents/issues/814} is resolved.
5592
+ */
5376
5593
  createAndInsertFormSubmissionFallbackControl() {
5377
- var _a, _b, _c, _d, _e, _f, _g, _h;
5378
- const internalSlot = (_a = this.formSubmissionFallbackControlSlot) != null ? _a : document.createElement("slot");
5594
+ const internalSlot = this.formSubmissionFallbackControlSlot ?? document.createElement("slot");
5379
5595
  internalSlot.setAttribute("name", "internal");
5380
- (_b = this.shadowRoot) == null ? void 0 : _b.appendChild(internalSlot);
5596
+ this.shadowRoot?.appendChild(internalSlot);
5381
5597
  this.formSubmissionFallbackControlSlot = internalSlot;
5382
- const fallbackControl = (_c = this.formSubmissionFallbackControl) != null ? _c : document.createElement("button");
5598
+ const fallbackControl = this.formSubmissionFallbackControl ?? document.createElement("button");
5383
5599
  fallbackControl.style.display = "none";
5384
5600
  fallbackControl.setAttribute("type", "submit");
5385
5601
  fallbackControl.setAttribute("slot", "internal");
5386
5602
  if (this.formNoValidate) {
5387
5603
  fallbackControl.toggleAttribute("formnovalidate", true);
5388
5604
  }
5389
- if ((_d = this.elementInternals.form) == null ? void 0 : _d.id) {
5605
+ if (this.elementInternals.form?.id) {
5390
5606
  fallbackControl.setAttribute("form", this.elementInternals.form.id);
5391
5607
  }
5392
5608
  if (this.name) {
@@ -5396,23 +5612,37 @@ class Button extends FASTElement {
5396
5612
  fallbackControl.setAttribute("value", this.value);
5397
5613
  }
5398
5614
  if (this.formAction) {
5399
- fallbackControl.setAttribute("formaction", (_e = this.formAction) != null ? _e : "");
5615
+ fallbackControl.setAttribute("formaction", this.formAction ?? "");
5400
5616
  }
5401
5617
  if (this.formEnctype) {
5402
- fallbackControl.setAttribute("formenctype", (_f = this.formEnctype) != null ? _f : "");
5618
+ fallbackControl.setAttribute("formenctype", this.formEnctype ?? "");
5403
5619
  }
5404
5620
  if (this.formMethod) {
5405
- fallbackControl.setAttribute("formmethod", (_g = this.formMethod) != null ? _g : "");
5621
+ fallbackControl.setAttribute("formmethod", this.formMethod ?? "");
5406
5622
  }
5407
5623
  if (this.formTarget) {
5408
- fallbackControl.setAttribute("formtarget", (_h = this.formTarget) != null ? _h : "");
5624
+ fallbackControl.setAttribute("formtarget", this.formTarget ?? "");
5409
5625
  }
5410
5626
  this.append(fallbackControl);
5411
5627
  this.formSubmissionFallbackControl = fallbackControl;
5412
5628
  }
5629
+ /**
5630
+ * Invoked when a connected component's form or fieldset has its disabled state changed.
5631
+ *
5632
+ * @param disabled - the disabled value of the form / fieldset
5633
+ *
5634
+ * @internal
5635
+ */
5413
5636
  formDisabledCallback(disabled) {
5414
5637
  this.disabled = disabled;
5415
5638
  }
5639
+ /**
5640
+ * Handles keypress events for the button.
5641
+ *
5642
+ * @param e - the keyboard event
5643
+ * @returns - the return value of the click handler
5644
+ * @public
5645
+ */
5416
5646
  keypressHandler(e) {
5417
5647
  if (e && this.disabledFocusable) {
5418
5648
  e.stopImmediatePropagation();
@@ -5424,6 +5654,11 @@ class Button extends FASTElement {
5424
5654
  }
5425
5655
  return true;
5426
5656
  }
5657
+ /**
5658
+ * Presses the button.
5659
+ *
5660
+ * @public
5661
+ */
5427
5662
  press() {
5428
5663
  switch (this.type) {
5429
5664
  case ButtonType.reset:
@@ -5438,12 +5673,20 @@ class Button extends FASTElement {
5438
5673
  }
5439
5674
  }
5440
5675
  }
5676
+ /**
5677
+ * Resets the associated form.
5678
+ *
5679
+ * @public
5680
+ */
5441
5681
  resetForm() {
5442
- var _a;
5443
- (_a = this.elementInternals.form) == null ? void 0 : _a.reset();
5682
+ this.elementInternals.form?.reset();
5444
5683
  }
5684
+ /**
5685
+ * Submits the associated form.
5686
+ *
5687
+ * @internal
5688
+ */
5445
5689
  submitForm() {
5446
- var _a;
5447
5690
  if (!this.elementInternals.form || this.disabled || this.type !== ButtonType.submit) {
5448
5691
  return;
5449
5692
  }
@@ -5452,7 +5695,7 @@ class Button extends FASTElement {
5452
5695
  return;
5453
5696
  }
5454
5697
  try {
5455
- this.elementInternals.setFormValue((_a = this.value) != null ? _a : "");
5698
+ this.elementInternals.setFormValue(this.value ?? "");
5456
5699
  this.elementInternals.form.requestSubmit(this);
5457
5700
  } catch (e) {
5458
5701
  this.createAndInsertFormSubmissionFallbackControl();
@@ -5461,6 +5704,12 @@ class Button extends FASTElement {
5461
5704
  }
5462
5705
  }
5463
5706
  }
5707
+ /**
5708
+ * The form-associated flag.
5709
+ * @see {@link https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements-face-example | Form-associated custom elements}
5710
+ *
5711
+ * @public
5712
+ */
5464
5713
  Button.formAssociated = true;
5465
5714
  __decorateClass$l([attr], Button.prototype, "appearance", 2);
5466
5715
  __decorateClass$l([attr({
@@ -5512,7 +5761,7 @@ const template$n = buttonTemplate$1();
5512
5761
  const styles$m = css`
5513
5762
  ${display("inline-flex")}
5514
5763
 
5515
- :host{--icon-spacing:${spacingHorizontalSNudge};contain:layout style;vertical-align:middle;align-items:center;box-sizing:border-box;justify-content:center;text-align:center;text-decoration-line:none;margin:0;min-height:32px;outline-style:none;background-color:${colorNeutralBackground1};color:${colorNeutralForeground1};border:${strokeWidthThin} solid ${colorNeutralStroke1};padding:0 ${spacingHorizontalM};min-width:96px;border-radius:${borderRadiusMedium};font-size:${fontSizeBase300};font-family:${fontFamilyBase};font-weight:${fontWeightSemibold};line-height:${lineHeightBase300};transition-duration:${durationFaster};transition-property:background,border,color;transition-timing-function:${curveEasyEase};cursor:pointer;user-select:none}.content{display:inherit}:host(:hover){background-color:${colorNeutralBackground1Hover};color:${colorNeutralForeground1Hover};border-color:${colorNeutralStroke1Hover}}:host(:hover:active){background-color:${colorNeutralBackground1Pressed};border-color:${colorNeutralStroke1Pressed};color:${colorNeutralForeground1Pressed};outline-style:none}:host(:focus-visible){border-color:${colorTransparentStroke};outline:${strokeWidthThick}) solid ${colorTransparentStroke};box-shadow:${shadow4},0 0 0 2px ${colorStrokeFocus2}}@media screen and (prefers-reduced-motion:reduce){transition-duration:0.01ms}::slotted(svg){font-size:20px;height:20px;width:20px;fill:currentColor}[slot='start'],::slotted([slot='start']){margin-inline-end:var(--icon-spacing)}[slot='end'],::slotted([slot='end']){margin-inline-start:var(--icon-spacing)}:host([icon-only]){min-width:32px;max-width:32px}:host([size='small']){--icon-spacing:${spacingHorizontalXS};min-height:24px;min-width:64px;padding:0 ${spacingHorizontalS};border-radius:${borderRadiusSmall};font-size:${fontSizeBase200};line-height:${lineHeightBase200};font-weight:${fontWeightRegular}}:host([size='small'][icon-only]){min-width:24px;max-width:24px}:host([size='large']){min-height:40px;border-radius:${borderRadiusLarge};padding:0 ${spacingHorizontalL};font-size:${fontSizeBase400};line-height:${lineHeightBase400}}:host([size='large'][icon-only]){min-width:40px;max-width:40px}:host([size='large']) ::slotted(svg){font-size:24px;height:24px;width:24px}:host([shape='circular']),:host([shape='circular']:focus-visible){border-radius:${borderRadiusCircular}}:host([shape='square']),:host([shape='square']:focus-visible){border-radius:${borderRadiusNone}}:host([appearance='primary']){background-color:${colorBrandBackground};color:${colorNeutralForegroundOnBrand};border-color:transparent}:host([appearance='primary']:hover){background-color:${colorBrandBackgroundHover}}:host([appearance='primary']:hover),:host([appearance='primary']:hover:active){border-color:transparent;color:${colorNeutralForegroundOnBrand}}:host([appearance='primary']:hover:active){background-color:${colorBrandBackgroundPressed}}:host([appearance='primary']:focus-visible){border-color:${colorNeutralForegroundOnBrand};box-shadow:${shadow2},0 0 0 2px ${colorStrokeFocus2}}:host(is:([disabled][appearance='primary'],[disabled-focusabale][appearance="primary"])),:host(is:([disabled][appearance='primary'],[disabled-focusabale][appearance="primary"]):hover),:host(is:([disabled][appearance='primary'],[disabled-focusabale][appearance="primary"]):hover:active){border-color:transparent}:host([appearance='outline']){background-color:${colorTransparentBackground}}:host([appearance='outline']:hover){background-color:${colorTransparentBackgroundHover}}:host([appearance='outline']:hover:active){background-color:${colorTransparentBackgroundPressed}}:host(is:([disabled][appearance='outline'],[disabled-focusabale][appearance="outline"])),:host(is:([disabled][appearance='outline'],[disabled-focusabale][appearance="outline"]):hover),:host(is:([disabled][appearance='outline'],[disabled-focusabale][appearance="outline"]):hover:active){background-color:${colorTransparentBackground}}:host([appearance='subtle']){background-color:${colorSubtleBackground};color:${colorNeutralForeground2};border-color:transparent}:host([appearance='subtle']:hover){background-color:${colorSubtleBackgroundHover};color:${colorNeutralForeground2Hover};border-color:transparent}:host([appearance='subtle']:hover:active){background-color:${colorSubtleBackgroundPressed};color:${colorNeutralForeground2Pressed};border-color:transparent}:host(is:([disabled][appearance='subtle'],[disabled-focusabale][appearance="subtle"])),:host(is:([disabled][appearance='subtle'],[disabled-focusabale][appearance="subtle"]):hover),:host(is:([disabled][appearance='subtle'],[disabled-focusabale][appearance="subtle"]):hover:active){background-color:${colorTransparentBackground};border-color:transparent}:host([appearance='subtle']:hover) ::slotted(svg){fill:${colorNeutralForeground2BrandHover}}:host([appearance='subtle']:hover:active) ::slotted(svg){fill:${colorNeutralForeground2BrandPressed}}:host([appearance='transparent']){background-color:${colorTransparentBackground};color:${colorNeutralForeground2}}:host([appearance='transparent']:hover){background-color:${colorTransparentBackgroundHover};color:${colorNeutralForeground2BrandHover}}:host([appearance='transparent']:hover:active){background-color:${colorTransparentBackgroundPressed};color:${colorNeutralForeground2BrandPressed}}:host([appearance='transparent']),:host([appearance='transparent']:hover),:host([appearance='transparent']:hover:active){border-color:transparent}:host(is:([disabled][appearance='transparent'],[disabled-focusabale][appearance="transparent"])),:host(is:([disabled][appearance='transparent'],[disabled-focusabale][appearance="transparent"]):hover),:host(is:([disabled][appearance='transparent'],[disabled-focusabale][appearance="transparent"]):hover:active){border-color:transparent;background-color:${colorTransparentBackground}}:host(:is([disabled],[disabled-focusable],[appearance][disabled],[appearance][disabled-focusable])),:host(:is([disabled],[disabled-focusable],[appearance][disabled],[appearance][disabled-focusable]):hover),:host(:is([disabled],[disabled-focusable],[appearance][disabled],[appearance][disabled-focusable]):hover:active){background-color:${colorNeutralBackgroundDisabled};border-color:${colorNeutralStrokeDisabled};color:${colorNeutralForegroundDisabled};cursor:not-allowed}`.withBehaviors(forcedColorsStylesheetBehavior(css`
5764
+ :host{--icon-spacing:${spacingHorizontalSNudge};contain:layout style;vertical-align:middle;align-items:center;box-sizing:border-box;justify-content:center;text-align:center;text-decoration-line:none;margin:0;min-height:32px;outline-style:none;background-color:${colorNeutralBackground1};color:${colorNeutralForeground1};border:${strokeWidthThin} solid ${colorNeutralStroke1};padding:0 ${spacingHorizontalM};min-width:96px;border-radius:${borderRadiusMedium};font-size:${fontSizeBase300};font-family:${fontFamilyBase};font-weight:${fontWeightSemibold};line-height:${lineHeightBase300};transition-duration:${durationFaster};transition-property:background,border,color;transition-timing-function:${curveEasyEase};cursor:pointer;user-select:none}.content{display:inherit}:host(:hover){background-color:${colorNeutralBackground1Hover};color:${colorNeutralForeground1Hover};border-color:${colorNeutralStroke1Hover}}:host(:hover:active){background-color:${colorNeutralBackground1Pressed};border-color:${colorNeutralStroke1Pressed};color:${colorNeutralForeground1Pressed};outline-style:none}:host(:focus-visible){border-color:${colorTransparentStroke};outline:${strokeWidthThick}) solid ${colorTransparentStroke};box-shadow:${shadow4},0 0 0 2px ${colorStrokeFocus2}}@media screen and (prefers-reduced-motion:reduce){transition-duration:0.01ms}::slotted(svg){font-size:20px;height:20px;width:20px;fill:currentColor}[slot='start'],::slotted([slot='start']){margin-inline-end:var(--icon-spacing)}[slot='end'],::slotted([slot='end']){margin-inline-start:var(--icon-spacing)}:host([icon-only]){min-width:32px;max-width:32px}:host([size='small']){--icon-spacing:${spacingHorizontalXS};min-height:24px;min-width:64px;padding:0 ${spacingHorizontalS};border-radius:${borderRadiusSmall};font-size:${fontSizeBase200};line-height:${lineHeightBase200};font-weight:${fontWeightRegular}}:host([size='small'][icon-only]){min-width:24px;max-width:24px}:host([size='large']){min-height:40px;border-radius:${borderRadiusLarge};padding:0 ${spacingHorizontalL};font-size:${fontSizeBase400};line-height:${lineHeightBase400}}:host([size='large'][icon-only]){min-width:40px;max-width:40px}:host([size='large']) ::slotted(svg){font-size:24px;height:24px;width:24px}:host([shape='circular']),:host([shape='circular']:focus-visible){border-radius:${borderRadiusCircular}}:host([shape='square']),:host([shape='square']:focus-visible){border-radius:${borderRadiusNone}}:host([appearance='primary']){background-color:${colorBrandBackground};color:${colorNeutralForegroundOnBrand};border-color:transparent}:host([appearance='primary']:hover){background-color:${colorBrandBackgroundHover}}:host([appearance='primary']:hover),:host([appearance='primary']:hover:active){border-color:transparent;color:${colorNeutralForegroundOnBrand}}:host([appearance='primary']:hover:active){background-color:${colorBrandBackgroundPressed}}:host([appearance='primary']:focus-visible){border-color:${colorNeutralForegroundOnBrand};box-shadow:${shadow2},0 0 0 2px ${colorStrokeFocus2}}:host(:is([disabled][appearance='primary'],[disabled-focusabale][appearance='primary'])),:host(:is([disabled][appearance='primary'],[disabled-focusabale][appearance='primary']):hover),:host(:is([disabled][appearance='primary'],[disabled-focusabale][appearance='primary']):hover:active){border-color:transparent}:host([appearance='outline']){background-color:${colorTransparentBackground}}:host([appearance='outline']:hover){background-color:${colorTransparentBackgroundHover}}:host([appearance='outline']:hover:active){background-color:${colorTransparentBackgroundPressed}}:host(:is([disabled][appearance='outline'],[disabled-focusabale][appearance='outline'])),:host(:is([disabled][appearance='outline'],[disabled-focusabale][appearance='outline']):hover),:host(:is([disabled][appearance='outline'],[disabled-focusabale][appearance='outline']):hover:active){background-color:${colorTransparentBackground}}:host([appearance='subtle']){background-color:${colorSubtleBackground};color:${colorNeutralForeground2};border-color:transparent}:host([appearance='subtle']:hover){background-color:${colorSubtleBackgroundHover};color:${colorNeutralForeground2Hover};border-color:transparent}:host([appearance='subtle']:hover:active){background-color:${colorSubtleBackgroundPressed};color:${colorNeutralForeground2Pressed};border-color:transparent}:host(:is([disabled][appearance='subtle'],[disabled-focusabale][appearance='subtle'])),:host(:is([disabled][appearance='subtle'],[disabled-focusabale][appearance='subtle']):hover),:host(:is([disabled][appearance='subtle'],[disabled-focusabale][appearance='subtle']):hover:active){background-color:${colorTransparentBackground};border-color:transparent}:host([appearance='subtle']:hover) ::slotted(svg){fill:${colorNeutralForeground2BrandHover}}:host([appearance='subtle']:hover:active) ::slotted(svg){fill:${colorNeutralForeground2BrandPressed}}:host([appearance='transparent']){background-color:${colorTransparentBackground};color:${colorNeutralForeground2}}:host([appearance='transparent']:hover){background-color:${colorTransparentBackgroundHover};color:${colorNeutralForeground2BrandHover}}:host([appearance='transparent']:hover:active){background-color:${colorTransparentBackgroundPressed};color:${colorNeutralForeground2BrandPressed}}:host([appearance='transparent']),:host([appearance='transparent']:hover),:host([appearance='transparent']:hover:active){border-color:transparent}:host(:is([disabled][appearance='transparent'],[disabled-focusabale][appearance='transparent'])),:host(:is([disabled][appearance='transparent'],[disabled-focusabale][appearance='transparent']):hover),:host(:is([disabled][appearance='transparent'],[disabled-focusabale][appearance='transparent']):hover:active){border-color:transparent;background-color:${colorTransparentBackground}}:host(:is([disabled],[disabled-focusable],[appearance][disabled],[appearance][disabled-focusable])),:host(:is([disabled],[disabled-focusable],[appearance][disabled],[appearance][disabled-focusable]):hover),:host(:is([disabled],[disabled-focusable],[appearance][disabled],[appearance][disabled-focusable]):hover:active){background-color:${colorNeutralBackgroundDisabled};border-color:${colorNeutralStrokeDisabled};color:${colorNeutralForegroundDisabled};cursor:not-allowed}`.withBehaviors(forcedColorsStylesheetBehavior(css`
5516
5765
  :host([appearance='transparent']:hover){border-color:Highlight}`));
5517
5766
 
5518
5767
  const definition$n = Button.compose({
@@ -5529,9 +5778,32 @@ function FormAssociated(BaseCtor) {
5529
5778
  const C = class extends BaseCtor {
5530
5779
  constructor(...args) {
5531
5780
  super(...args);
5781
+ /**
5782
+ * Track whether the value has been changed from the initial value
5783
+ */
5532
5784
  this.dirtyValue = false;
5785
+ /**
5786
+ * The initial value of the form. This value sets the `value` property
5787
+ * only when the `value` property has not been explicitly set.
5788
+ *
5789
+ * @remarks
5790
+ * HTML Attribute: value
5791
+ */
5533
5792
  this.initialValue = "";
5793
+ /**
5794
+ * Sets the element's disabled state. A disabled element will not be included during form submission.
5795
+ *
5796
+ * @remarks
5797
+ * HTML Attribute: disabled
5798
+ */
5534
5799
  this.disabled = false;
5800
+ /**
5801
+ * These are events that are still fired by the proxy
5802
+ * element based on user / programmatic interaction.
5803
+ *
5804
+ * The proxy implementation should be transparent to
5805
+ * the app author, so block these events from emitting.
5806
+ */
5535
5807
  this.proxyEventsToBlock = ["change", "click"];
5536
5808
  this.proxyInitialized = false;
5537
5809
  this.required = false;
@@ -5540,21 +5812,51 @@ function FormAssociated(BaseCtor) {
5540
5812
  this.formResetCallback = this.formResetCallback.bind(this);
5541
5813
  }
5542
5814
  }
5815
+ /**
5816
+ * Must evaluate to true to enable elementInternals.
5817
+ * Feature detects API support and resolve respectively
5818
+ *
5819
+ * @internal
5820
+ */
5543
5821
  static get formAssociated() {
5544
5822
  return supportsElementInternals;
5545
5823
  }
5824
+ /**
5825
+ * Returns the validity state of the element
5826
+ *
5827
+ * @beta
5828
+ */
5546
5829
  get validity() {
5547
5830
  return this.elementInternals ? this.elementInternals.validity : this.proxy.validity;
5548
5831
  }
5832
+ /**
5833
+ * Retrieve a reference to the associated form.
5834
+ * Returns null if not associated to any form.
5835
+ *
5836
+ * @beta
5837
+ */
5549
5838
  get form() {
5550
5839
  return this.elementInternals ? this.elementInternals.form : this.proxy.form;
5551
5840
  }
5841
+ /**
5842
+ * Retrieve the localized validation message,
5843
+ * or custom validation message if set.
5844
+ *
5845
+ * @beta
5846
+ */
5552
5847
  get validationMessage() {
5553
5848
  return this.elementInternals ? this.elementInternals.validationMessage : this.proxy.validationMessage;
5554
5849
  }
5850
+ /**
5851
+ * Whether the element will be validated when the
5852
+ * form is submitted
5853
+ */
5555
5854
  get willValidate() {
5556
5855
  return this.elementInternals ? this.elementInternals.willValidate : this.proxy.willValidate;
5557
5856
  }
5857
+ /**
5858
+ * A reference to all associated label elements
5859
+ */
5558
5860
  get labels() {
5559
5861
  if (this.elementInternals) {
5560
5862
  return Object.freeze(Array.from(this.elementInternals.labels));
@@ -5567,6 +5869,16 @@ function FormAssociated(BaseCtor) {
5567
5869
  return emptyArray;
5568
5870
  }
5569
5871
  }
5872
+ /**
5873
+ * Invoked when the `value` property changes
5874
+ * @param previous - the previous value
5875
+ * @param next - the new value
5876
+ *
5877
+ * @remarks
5878
+ * If elements extending `FormAssociated` implement a `valueChanged` method
5879
+ * They must be sure to invoke `super.valueChanged(previous, next)` to ensure
5880
+ * proper functioning of `FormAssociated`
5881
+ */
5570
5882
  valueChanged(previous, next) {
5571
5883
  this.dirtyValue = true;
5572
5884
  if (this.proxy instanceof HTMLElement) {
@@ -5579,23 +5891,67 @@ function FormAssociated(BaseCtor) {
5579
5891
  currentValueChanged() {
5580
5892
  this.value = this.currentValue;
5581
5893
  }
5894
+ /**
5895
+ * Invoked when the `initialValue` property changes
5896
+ *
5897
+ * @param previous - the previous value
5898
+ * @param next - the new value
5899
+ *
5900
+ * @remarks
5901
+ * If elements extending `FormAssociated` implement a `initialValueChanged` method
5902
+ * They must be sure to invoke `super.initialValueChanged(previous, next)` to ensure
5903
+ * proper functioning of `FormAssociated`
5904
+ */
5582
5905
  initialValueChanged(previous, next) {
5583
5906
  if (!this.dirtyValue) {
5584
5907
  this.value = this.initialValue;
5585
5908
  this.dirtyValue = false;
5586
5909
  }
5587
5910
  }
5911
+ /**
5912
+ * Invoked when the `disabled` property changes
5913
+ *
5914
+ * @param previous - the previous value
5915
+ * @param next - the new value
5916
+ *
5917
+ * @remarks
5918
+ * If elements extending `FormAssociated` implement a `disabledChanged` method
5919
+ * They must be sure to invoke `super.disabledChanged(previous, next)` to ensure
5920
+ * proper functioning of `FormAssociated`
5921
+ */
5588
5922
  disabledChanged(previous, next) {
5589
5923
  if (this.proxy instanceof HTMLElement) {
5590
5924
  this.proxy.disabled = this.disabled;
5591
5925
  }
5592
5926
  Updates.enqueue(() => this.classList.toggle("disabled", this.disabled));
5593
5927
  }
5928
+ /**
5929
+ * Invoked when the `name` property changes
5930
+ *
5931
+ * @param previous - the previous value
5932
+ * @param next - the new value
5933
+ *
5934
+ * @remarks
5935
+ * If elements extending `FormAssociated` implement a `nameChanged` method
5936
+ * They must be sure to invoke `super.nameChanged(previous, next)` to ensure
5937
+ * proper functioning of `FormAssociated`
5938
+ */
5594
5939
  nameChanged(previous, next) {
5595
5940
  if (this.proxy instanceof HTMLElement) {
5596
5941
  this.proxy.name = this.name;
5597
5942
  }
5598
5943
  }
5944
+ /**
5945
+ * Invoked when the `required` property changes
5946
+ *
5947
+ * @param previous - the previous value
5948
+ * @param next - the new value
5949
+ *
5950
+ * @remarks
5951
+ * If elements extending `FormAssociated` implement a `requiredChanged` method
5952
+ * They must be sure to invoke `super.requiredChanged(previous, next)` to ensure
5953
+ * proper functioning of `FormAssociated`
5954
+ */
5599
5955
  requiredChanged(prev, next) {
5600
5956
  if (this.proxy instanceof HTMLElement) {
5601
5957
  this.proxy.required = this.required;
@@ -5603,6 +5959,10 @@ function FormAssociated(BaseCtor) {
5603
5959
  Updates.enqueue(() => this.classList.toggle("required", this.required));
5604
5960
  this.validate();
5605
5961
  }
5962
+ /**
5963
+ * The element internals object. Will only exist
5964
+ * in browsers supporting the attachInternals API
5965
+ */
5606
5966
  get elementInternals() {
5607
5967
  if (!supportsElementInternals) {
5608
5968
  return null;
@@ -5614,6 +5974,9 @@ function FormAssociated(BaseCtor) {
5614
5974
  }
5615
5975
  return internals;
5616
5976
  }
5977
+ /**
5978
+ * @internal
5979
+ */
5617
5980
  connectedCallback() {
5618
5981
  super.connectedCallback();
5619
5982
  this.addEventListener("keypress", this._keypressHandler);
@@ -5628,18 +5991,37 @@ function FormAssociated(BaseCtor) {
5628
5991
  }
5629
5992
  }
5630
5993
  }
5994
+ /**
5995
+ * @internal
5996
+ */
5631
5997
  disconnectedCallback() {
5632
5998
  this.proxyEventsToBlock.forEach(name => this.proxy.removeEventListener(name, this.stopPropagation));
5633
5999
  if (!this.elementInternals && this.form) {
5634
6000
  this.form.removeEventListener("reset", this.formResetCallback);
5635
6001
  }
5636
6002
  }
6003
+ /**
6004
+ * Return the current validity of the element.
6005
+ */
5637
6006
  checkValidity() {
5638
6007
  return this.elementInternals ? this.elementInternals.checkValidity() : this.proxy.checkValidity();
5639
6008
  }
6009
+ /**
6010
+ * Return the current validity of the element.
6011
+ * If false, fires an invalid event at the element.
6012
+ */
5640
6013
  reportValidity() {
5641
6014
  return this.elementInternals ? this.elementInternals.reportValidity() : this.proxy.reportValidity();
5642
6015
  }
6016
+ /**
6017
+ * Set the validity of the control. In cases when the elementInternals object is not
6018
+ * available (and the proxy element is used to report validity), this function will
6019
+ * do nothing unless a message is provided, at which point the setCustomValidity method
6020
+ * of the proxy element will be invoked with the provided message.
6021
+ * @param flags - Validity flags
6022
+ * @param message - Optional message to supply
6023
+ * @param anchor - Optional element used by UA to display an interactive validation UI
6024
+ */
5643
6025
  setValidity(flags, message, anchor) {
5644
6026
  if (this.elementInternals) {
5645
6027
  this.elementInternals.setValidity(flags, message, anchor);
@@ -5647,6 +6029,11 @@ function FormAssociated(BaseCtor) {
5647
6029
  this.proxy.setCustomValidity(message);
5648
6030
  }
5649
6031
  }
6032
+ /**
6033
+ * Invoked when a connected component's form or fieldset has its disabled
6034
+ * state changed.
6035
+ * @param disabled - the disabled value of the form / fieldset
6036
+ */
5650
6037
  formDisabledCallback(disabled) {
5651
6038
  this.disabled = disabled;
5652
6039
  }
@@ -5654,8 +6041,10 @@ function FormAssociated(BaseCtor) {
5654
6041
  this.value = this.initialValue;
5655
6042
  this.dirtyValue = false;
5656
6043
  }
6044
+ /**
6045
+ * Attach the proxy element to the DOM
6046
+ */
5657
6047
  attachProxy() {
5658
- var _a;
5659
6048
  if (!this.proxyInitialized) {
5660
6049
  this.proxyInitialized = true;
5661
6050
  this.proxy.style.display = "none";
@@ -5672,19 +6061,27 @@ function FormAssociated(BaseCtor) {
5672
6061
  this.proxySlot = document.createElement("slot");
5673
6062
  this.proxySlot.setAttribute("name", proxySlotName);
5674
6063
  }
5675
- (_a = this.shadowRoot) == null ? void 0 : _a.appendChild(this.proxySlot);
6064
+ this.shadowRoot?.appendChild(this.proxySlot);
5676
6065
  this.appendChild(this.proxy);
5677
6066
  }
6067
+ /**
6068
+ * Detach the proxy element from the DOM
6069
+ */
5678
6070
  detachProxy() {
5679
- var _a;
5680
6071
  this.removeChild(this.proxy);
5681
- (_a = this.shadowRoot) == null ? void 0 : _a.removeChild(this.proxySlot);
6072
+ this.shadowRoot?.removeChild(this.proxySlot);
5682
6073
  }
6074
+ /** {@inheritDoc (FormAssociated:interface).validate} */
5683
6075
  validate(anchor) {
5684
6076
  if (this.proxy instanceof HTMLElement) {
5685
6077
  this.setValidity(this.proxy.validity, this.proxy.validationMessage, anchor);
5686
6078
  }
5687
6079
  }
6080
+ /**
6081
+ * Associates the provided value (and optional state) with the parent form.
6082
+ * @param value - The value to set
6083
+ * @param state - The state object provided to during session restores and when autofilling.
6084
+ */
5688
6085
  setFormValue(value, state) {
5689
6086
  if (this.elementInternals) {
5690
6087
  this.elementInternals.setFormValue(value, state || value);
@@ -5695,11 +6092,15 @@ function FormAssociated(BaseCtor) {
5695
6092
  case keyEnter:
5696
6093
  if (this.form instanceof HTMLFormElement) {
5697
6094
  const defaultButton = this.form.querySelector("[type=submit]");
5698
- defaultButton == null ? void 0 : defaultButton.click();
6095
+ defaultButton?.click();
5699
6096
  }
5700
6097
  break;
5701
6098
  }
5702
6099
  }
6100
+ /**
6101
+ * Used to stop propagation of proxy element events
6102
+ * @param e - Event object
6103
+ */
5703
6104
  stopPropagation(e) {
5704
6105
  e.stopPropagation();
5705
6106
  }
@@ -5726,14 +6127,35 @@ function CheckableFormAssociated(BaseCtor) {
5726
6127
  class D extends C {
5727
6128
  constructor(...args) {
5728
6129
  super(args);
6130
+ /**
6131
+ * Tracks whether the "checked" property has been changed.
6132
+ * This is necessary to provide consistent behavior with
6133
+ * normal input checkboxes
6134
+ */
5729
6135
  this.dirtyChecked = false;
6136
+ /**
6137
+ * Provides the default checkedness of the input element
6138
+ * Passed down to proxy
6139
+ *
6140
+ * @public
6141
+ * @remarks
6142
+ * HTML Attribute: checked
6143
+ */
5730
6144
  this.checkedAttribute = false;
6145
+ /**
6146
+ * The checked state of the control.
6147
+ *
6148
+ * @public
6149
+ */
5731
6150
  this.checked = false;
5732
6151
  this.dirtyChecked = false;
5733
6152
  }
5734
6153
  checkedAttributeChanged() {
5735
6154
  this.defaultChecked = this.checkedAttribute;
5736
6155
  }
6156
+ /**
6157
+ * @internal
6158
+ */
5737
6159
  defaultCheckedChanged() {
5738
6160
  if (!this.dirtyChecked) {
5739
6161
  this.checked = this.defaultChecked;
@@ -5803,8 +6225,17 @@ var __decorateClass$k = (decorators, target, key, kind) => {
5803
6225
  class Checkbox extends FormAssociatedCheckbox {
5804
6226
  constructor() {
5805
6227
  super();
6228
+ /**
6229
+ * The element's value to be included in form submission when checked.
6230
+ * Default to "on" to reach parity with input[type="checkbox"]
6231
+ *
6232
+ * @internal
6233
+ */
5806
6234
  this.initialValue = "on";
5807
6235
  this.indeterminate = false;
6236
+ /**
6237
+ * @internal
6238
+ */
5808
6239
  this.keypressHandler = e => {
5809
6240
  if (this.disabled) {
5810
6241
  return;
@@ -5815,6 +6246,9 @@ class Checkbox extends FormAssociatedCheckbox {
5815
6246
  break;
5816
6247
  }
5817
6248
  };
6249
+ /**
6250
+ * @internal
6251
+ */
5818
6252
  this.clickHandler = e => {
5819
6253
  if (!this.disabled) {
5820
6254
  this.toggleChecked();
@@ -5931,9 +6365,14 @@ class CounterBadge extends FASTElement {
5931
6365
  overflowCountChanged() {
5932
6366
  this.setCount();
5933
6367
  }
6368
+ /**
6369
+ * @internal
6370
+ * Function to set the count
6371
+ * This is the default slotted content for the counter badge
6372
+ * If children are slotted, that will override the value returned
6373
+ */
5934
6374
  setCount() {
5935
- var _a;
5936
- const count = (_a = this.count) != null ? _a : 0;
6375
+ const count = this.count ?? 0;
5937
6376
  if ((count !== 0 || this.showZero) && !this.dot) {
5938
6377
  return count > this.overflowCount ? `${this.overflowCount}+` : `${count}`;
5939
6378
  }
@@ -6374,21 +6813,40 @@ var __decorateClass$i = (decorators, target, key, kind) => {
6374
6813
  if (kind && result) __defProp$i(target, key, result);
6375
6814
  return result;
6376
6815
  };
6377
- const _Dialog = class extends FASTElement {
6816
+ const _Dialog = class _Dialog extends FASTElement {
6378
6817
  constructor() {
6379
6818
  super(...arguments);
6819
+ /**
6820
+ * @private
6821
+ * Indicates whether focus is being trapped within the dialog
6822
+ */
6380
6823
  this.isTrappingFocus = false;
6381
6824
  this.titleAction = [];
6382
6825
  this.modalType = DialogModalType.modal;
6383
6826
  this.open = false;
6384
6827
  this.noTitleAction = false;
6828
+ /**
6829
+ * @private
6830
+ * Indicates whether focus should be trapped within the dialog
6831
+ */
6385
6832
  this.trapFocus = false;
6833
+ /**
6834
+ * @public
6835
+ * Method to emit an event when the dialog's open state changes
6836
+ * @param dismissed - Indicates whether the dialog was dismissed
6837
+ */
6386
6838
  this.onOpenChangeEvent = (dismissed = false) => {
6387
6839
  this.$emit("onOpenChange", {
6388
6840
  open: this.dialog.open,
6389
6841
  dismissed
6390
6842
  });
6391
6843
  };
6844
+ /**
6845
+ * @public
6846
+ * Handles keydown events on the dialog
6847
+ * @param e - The keydown event
6848
+ * @returns boolean | void
6849
+ */
6392
6850
  this.handleKeydown = e => {
6393
6851
  if (e.defaultPrevented) {
6394
6852
  return;
@@ -6404,6 +6862,11 @@ const _Dialog = class extends FASTElement {
6404
6862
  return true;
6405
6863
  }
6406
6864
  };
6865
+ /**
6866
+ * @private
6867
+ * Handles keydown events on the document
6868
+ * @param e - The keydown event
6869
+ */
6407
6870
  this.handleDocumentKeydown = e => {
6408
6871
  if (!e.defaultPrevented && this.dialog.open) {
6409
6872
  switch (e.key) {
@@ -6413,6 +6876,11 @@ const _Dialog = class extends FASTElement {
6413
6876
  }
6414
6877
  }
6415
6878
  };
6879
+ /**
6880
+ * @private
6881
+ * Handles tab keydown events
6882
+ * @param e - The keydown event
6883
+ */
6416
6884
  this.handleTabKeyDown = e => {
6417
6885
  if (!this.trapFocus || !this.dialog.open) {
6418
6886
  return;
@@ -6432,10 +6900,19 @@ const _Dialog = class extends FASTElement {
6432
6900
  }
6433
6901
  return;
6434
6902
  };
6903
+ /**
6904
+ * @private
6905
+ * Gets the bounds of the tab queue
6906
+ * @returns (HTMLElement | SVGElement)[]
6907
+ */
6435
6908
  this.getTabQueueBounds = () => {
6436
6909
  const bounds = [];
6437
6910
  return _Dialog.reduceTabbableItems(bounds, this);
6438
6911
  };
6912
+ /**
6913
+ * @private
6914
+ * Focuses the first element in the tab queue
6915
+ */
6439
6916
  this.focusFirstElement = () => {
6440
6917
  const bounds = this.getTabQueueBounds();
6441
6918
  if (bounds.length > 0) {
@@ -6446,18 +6923,39 @@ const _Dialog = class extends FASTElement {
6446
6923
  }
6447
6924
  }
6448
6925
  };
6926
+ /**
6927
+ * @private
6928
+ * Determines if focus should be forced
6929
+ * @param currentFocusElement - The currently focused element
6930
+ * @returns boolean
6931
+ */
6449
6932
  this.shouldForceFocus = currentFocusElement => {
6450
6933
  return this.isTrappingFocus && !this.contains(currentFocusElement);
6451
6934
  };
6935
+ /**
6936
+ * @private
6937
+ * Determines if focus should be trapped
6938
+ * @returns boolean
6939
+ */
6452
6940
  this.shouldTrapFocus = () => {
6453
6941
  return this.trapFocus && this.dialog.open;
6454
6942
  };
6943
+ /**
6944
+ * @private
6945
+ * Handles focus events on the document
6946
+ * @param e - The focus event
6947
+ */
6455
6948
  this.handleDocumentFocus = e => {
6456
6949
  if (!e.defaultPrevented && this.shouldForceFocus(e.target)) {
6457
6950
  this.focusFirstElement();
6458
6951
  e.preventDefault();
6459
6952
  }
6460
6953
  };
6954
+ /**
6955
+ * @private
6956
+ * Updates the state of focus trapping
6957
+ * @param shouldTrapFocusOverride - Optional override for whether focus should be trapped
6958
+ */
6461
6959
  this.updateTrapFocus = shouldTrapFocusOverride => {
6462
6960
  const shouldTrapFocus = shouldTrapFocusOverride === void 0 ? this.shouldTrapFocus() : shouldTrapFocusOverride;
6463
6961
  if (shouldTrapFocus && !this.isTrappingFocus) {
@@ -6474,6 +6972,10 @@ const _Dialog = class extends FASTElement {
6474
6972
  }
6475
6973
  };
6476
6974
  }
6975
+ /**
6976
+ * @public
6977
+ * Lifecycle method called when the element is connected to the DOM
6978
+ */
6477
6979
  connectedCallback() {
6478
6980
  super.connectedCallback();
6479
6981
  document.addEventListener("keydown", this.handleDocumentKeydown);
@@ -6482,11 +6984,19 @@ const _Dialog = class extends FASTElement {
6482
6984
  this.setComponent();
6483
6985
  });
6484
6986
  }
6987
+ /**
6988
+ * @public
6989
+ * Lifecycle method called when the element is disconnected from the DOM
6990
+ */
6485
6991
  disconnectedCallback() {
6486
6992
  super.disconnectedCallback();
6487
6993
  document.removeEventListener("keydown", this.handleDocumentKeydown);
6488
6994
  this.updateTrapFocus(false);
6489
6995
  }
6996
+ /**
6997
+ * @public
6998
+ * Method called when the 'open' attribute changes
6999
+ */
6490
7000
  openChanged(oldValue, newValue) {
6491
7001
  if (newValue !== oldValue) {
6492
7002
  if (newValue && !oldValue) {
@@ -6496,6 +7006,10 @@ const _Dialog = class extends FASTElement {
6496
7006
  }
6497
7007
  }
6498
7008
  }
7009
+ /**
7010
+ * @public
7011
+ * Method called when the 'modalType' attribute changes
7012
+ */
6499
7013
  modalTypeChanged(oldValue, newValue) {
6500
7014
  if (newValue !== oldValue) {
6501
7015
  if (newValue == DialogModalType.alert || newValue == DialogModalType.modal) {
@@ -6505,6 +7019,10 @@ const _Dialog = class extends FASTElement {
6505
7019
  }
6506
7020
  }
6507
7021
  }
7022
+ /**
7023
+ * @public
7024
+ * Method to set the component's state based on its attributes
7025
+ */
6508
7026
  setComponent() {
6509
7027
  if (this.modalType == DialogModalType.modal || this.modalType == DialogModalType.alert) {
6510
7028
  this.trapFocus = true;
@@ -6512,6 +7030,10 @@ const _Dialog = class extends FASTElement {
6512
7030
  this.trapFocus = false;
6513
7031
  }
6514
7032
  }
7033
+ /**
7034
+ * @public
7035
+ * Method to show the dialog
7036
+ */
6515
7037
  show() {
6516
7038
  Updates.enqueue(() => {
6517
7039
  if (this.modalType === DialogModalType.alert || this.modalType === DialogModalType.modal) {
@@ -6525,17 +7047,32 @@ const _Dialog = class extends FASTElement {
6525
7047
  this.onOpenChangeEvent();
6526
7048
  });
6527
7049
  }
7050
+ /**
7051
+ * @public
7052
+ * Method to hide the dialog
7053
+ * @param dismissed - Indicates whether the dialog was dismissed
7054
+ */
6528
7055
  hide(dismissed = false) {
6529
7056
  this.dialog.close();
6530
7057
  this.open = false;
6531
7058
  this.onOpenChangeEvent(dismissed);
6532
7059
  }
7060
+ /**
7061
+ * @public
7062
+ * Method to dismiss the dialog
7063
+ */
6533
7064
  dismiss() {
6534
7065
  if (this.modalType === DialogModalType.alert) {
6535
7066
  return;
6536
7067
  }
6537
7068
  this.hide(true);
6538
7069
  }
7070
+ /**
7071
+ * @public
7072
+ * Handles click events on the dialog
7073
+ * @param event - The click event
7074
+ * @returns boolean
7075
+ */
6539
7076
  handleClick(event) {
6540
7077
  event.preventDefault();
6541
7078
  if (this.dialog.open && this.modalType !== DialogModalType.alert && event.target === this.dialog) {
@@ -6543,6 +7080,13 @@ const _Dialog = class extends FASTElement {
6543
7080
  }
6544
7081
  return true;
6545
7082
  }
7083
+ /**
7084
+ * @private
7085
+ * Reduces the list of tabbable items
7086
+ * @param elements - The current list of elements
7087
+ * @param element - The element to consider adding to the list
7088
+ * @returns HTMLElement[]
7089
+ */
6546
7090
  static reduceTabbableItems(elements, element) {
6547
7091
  if (element.getAttribute("tabindex") === "-1") {
6548
7092
  return elements;
@@ -6553,37 +7097,47 @@ const _Dialog = class extends FASTElement {
6553
7097
  }
6554
7098
  return Array.from(element.children).reduce((elements2, currentElement) => _Dialog.reduceTabbableItems(elements2, currentElement), elements);
6555
7099
  }
7100
+ /**
7101
+ * @private
7102
+ * Determines if an element is a focusable FASTElement
7103
+ * @param element - The element to check
7104
+ * @returns boolean
7105
+ */
6556
7106
  static isFocusableFastElement(element) {
6557
- var _a, _b;
6558
- return !!((_b = (_a = element.$fastController) == null ? void 0 : _a.definition.shadowOptions) == null ? void 0 : _b.delegatesFocus);
7107
+ return !!element.$fastController?.definition.shadowOptions?.delegatesFocus;
6559
7108
  }
7109
+ /**
7110
+ * @private
7111
+ * Determines if an element has a tabbable shadow
7112
+ * @param element - The element to check
7113
+ * @returns boolean
7114
+ */
6560
7115
  static hasTabbableShadow(element) {
6561
- var _a, _b;
6562
- return Array.from((_b = (_a = element.shadowRoot) == null ? void 0 : _a.querySelectorAll("*")) != null ? _b : []).some(x => {
7116
+ return Array.from(element.shadowRoot?.querySelectorAll("*") ?? []).some(x => {
6563
7117
  return isTabbable(x);
6564
7118
  });
6565
7119
  }
6566
7120
  };
6567
- let Dialog = _Dialog;
6568
- __decorateClass$i([observable], Dialog.prototype, "dialog", 2);
6569
- __decorateClass$i([observable], Dialog.prototype, "titleAction", 2);
6570
- __decorateClass$i([observable], Dialog.prototype, "defaultTitleAction", 2);
7121
+ __decorateClass$i([observable], _Dialog.prototype, "dialog", 2);
7122
+ __decorateClass$i([observable], _Dialog.prototype, "titleAction", 2);
7123
+ __decorateClass$i([observable], _Dialog.prototype, "defaultTitleAction", 2);
6571
7124
  __decorateClass$i([attr({
6572
7125
  attribute: "aria-describedby"
6573
- })], Dialog.prototype, "ariaDescribedby", 2);
7126
+ })], _Dialog.prototype, "ariaDescribedby", 2);
6574
7127
  __decorateClass$i([attr({
6575
7128
  attribute: "aria-labelledby"
6576
- })], Dialog.prototype, "ariaLabelledby", 2);
7129
+ })], _Dialog.prototype, "ariaLabelledby", 2);
6577
7130
  __decorateClass$i([attr({
6578
7131
  attribute: "modal-type"
6579
- })], Dialog.prototype, "modalType", 2);
7132
+ })], _Dialog.prototype, "modalType", 2);
6580
7133
  __decorateClass$i([attr({
6581
7134
  mode: "boolean"
6582
- })], Dialog.prototype, "open", 2);
7135
+ })], _Dialog.prototype, "open", 2);
6583
7136
  __decorateClass$i([attr({
6584
7137
  mode: "boolean",
6585
7138
  attribute: "no-title-action"
6586
- })], Dialog.prototype, "noTitleAction", 2);
7139
+ })], _Dialog.prototype, "noTitleAction", 2);
7140
+ let Dialog = _Dialog;
6587
7141
 
6588
7142
  const dismissed16Regular = html.partial(`
6589
7143
  <svg
@@ -6616,7 +7170,13 @@ const definition$j = Dialog.compose({
6616
7170
  });
6617
7171
 
6618
7172
  const DividerRole = {
7173
+ /**
7174
+ * The divider semantically separates content
7175
+ */
6619
7176
  separator: "separator",
7177
+ /**
7178
+ * The divider has no semantic value and is for visual presentation only.
7179
+ */
6620
7180
  presentation: "presentation"
6621
7181
  };
6622
7182
  const DividerOrientation = Orientation;
@@ -7702,6 +8262,10 @@ class Menu extends FASTElement {
7702
8262
  this.open = false;
7703
8263
  this.slottedMenuList = [];
7704
8264
  this.slottedTriggers = [];
8265
+ /**
8266
+ * Toggles the open state of the menu.
8267
+ * @public
8268
+ */
7705
8269
  this.toggleMenu = () => {
7706
8270
  if (this.open) {
7707
8271
  this.closeMenu();
@@ -7709,13 +8273,21 @@ class Menu extends FASTElement {
7709
8273
  this.openMenu();
7710
8274
  }
7711
8275
  };
8276
+ /**
8277
+ * Closes the menu.
8278
+ * @public
8279
+ */
7712
8280
  this.closeMenu = () => {
7713
8281
  this.open = false;
7714
8282
  if (this.closeOnScroll) {
7715
8283
  document.removeEventListener("scroll", this.closeMenu);
7716
8284
  }
7717
8285
  };
7718
- this.openMenu = e => {
8286
+ /**
8287
+ * Opens the menu.
8288
+ * @public
8289
+ */
8290
+ this.openMenu = e => {
7719
8291
  this.open = true;
7720
8292
  if (e && this.openOnContext) {
7721
8293
  e.preventDefault();
@@ -7724,9 +8296,20 @@ class Menu extends FASTElement {
7724
8296
  document.addEventListener("scroll", this.closeMenu);
7725
8297
  }
7726
8298
  };
8299
+ /**
8300
+ * The task to set the positioning of the menu.
8301
+ * @protected
8302
+ */
7727
8303
  this.setPositioningTask = () => {
7728
8304
  this.setPositioning();
7729
8305
  };
8306
+ /**
8307
+ * Handles keyboard interaction for the trigger.
8308
+ * Toggles the menu when the Space or Enter key is pressed.
8309
+ * If the menu is open, focuses on the menu list.
8310
+ * @public
8311
+ * @param {KeyboardEvent} e - the keyboard event
8312
+ */
7730
8313
  this.handleTriggerKeydown = e => {
7731
8314
  if (e.defaultPrevented) {
7732
8315
  return;
@@ -7745,22 +8328,41 @@ class Menu extends FASTElement {
7745
8328
  return true;
7746
8329
  }
7747
8330
  };
8331
+ /**
8332
+ * Handles document click events to close the menu when a click occurs outside of the menu or the trigger.
8333
+ * @private
8334
+ * @param {Event} e - The event triggered on document click.
8335
+ */
7748
8336
  this.handleDocumentClick = e => {
7749
8337
  if (e && !e.composedPath().includes(this._menuList) && !e.composedPath().includes(this._trigger)) {
7750
8338
  this.closeMenu();
7751
8339
  }
7752
8340
  };
7753
8341
  }
8342
+ /**
8343
+ * Called when the element is connected to the DOM.
8344
+ * Sets up the component.
8345
+ * @public
8346
+ */
7754
8347
  connectedCallback() {
7755
8348
  super.connectedCallback();
7756
8349
  Updates.enqueue(() => this.setComponent());
7757
8350
  }
8351
+ /**
8352
+ * Called when the element is disconnected from the DOM.
8353
+ * Removes event listeners.
8354
+ * @public
8355
+ */
7758
8356
  disconnectedCallback() {
7759
- var _a;
7760
8357
  super.disconnectedCallback();
7761
- (_a = this.cleanup) == null ? void 0 : _a.call(this);
8358
+ this.cleanup?.();
7762
8359
  this.removeListeners();
7763
8360
  }
8361
+ /**
8362
+ * Sets the component.
8363
+ * Sets the trigger and menu list elements and adds event listeners.
8364
+ * @public
8365
+ */
7764
8366
  setComponent() {
7765
8367
  if (this.$fastController.isConnected && this.slottedMenuList.length && this.slottedTriggers.length) {
7766
8368
  this._trigger = this.slottedTriggers[0];
@@ -7770,6 +8372,10 @@ class Menu extends FASTElement {
7770
8372
  this.addListeners();
7771
8373
  }
7772
8374
  }
8375
+ /**
8376
+ * Focuses on the menu list.
8377
+ * @public
8378
+ */
7773
8379
  focusMenuList() {
7774
8380
  if (this.open && this._menuList) {
7775
8381
  Updates.enqueue(() => {
@@ -7777,6 +8383,10 @@ class Menu extends FASTElement {
7777
8383
  });
7778
8384
  }
7779
8385
  }
8386
+ /**
8387
+ * Focuses on the menu trigger.
8388
+ * @public
8389
+ */
7780
8390
  focusTrigger() {
7781
8391
  if (!this.open && this._trigger) {
7782
8392
  Updates.enqueue(() => {
@@ -7784,43 +8394,76 @@ class Menu extends FASTElement {
7784
8394
  });
7785
8395
  }
7786
8396
  }
8397
+ /**
8398
+ * Called whenever the open state changes.
8399
+ * Updates the 'aria-expanded' attribute and sets the positioning of the menu.
8400
+ * Sets menu list position
8401
+ * emits openChanged event
8402
+ * @public
8403
+ * @param {boolean} oldValue - The previous value of 'open'.
8404
+ * @param {boolean} newValue - The new value of 'open'.
8405
+ */
7787
8406
  openChanged(oldValue, newValue) {
7788
- var _a;
7789
8407
  if (this.$fastController.isConnected && this._trigger instanceof HTMLElement) {
7790
8408
  this._trigger.setAttribute("aria-expanded", `${this.open}`);
7791
8409
  if (this._menuList && this.open) {
7792
8410
  Updates.enqueue(this.setPositioningTask);
7793
8411
  }
7794
8412
  }
7795
- (_a = this.cleanup) == null ? void 0 : _a.call(this);
8413
+ this.cleanup?.();
7796
8414
  this.$emit("onOpenChange", {
7797
8415
  open: newValue
7798
8416
  });
7799
8417
  }
8418
+ /**
8419
+ * Called whenever the 'openOnHover' property changes.
8420
+ * Adds or removes a 'mouseover' event listener to the trigger based on the new value.
8421
+ * @public
8422
+ * @param {boolean} oldValue - The previous value of 'openOnHover'.
8423
+ * @param {boolean} newValue - The new value of 'openOnHover'.
8424
+ */
7800
8425
  openOnHoverChanged(oldValue, newValue) {
7801
- var _a, _b;
7802
8426
  if (newValue) {
7803
- (_a = this._trigger) == null ? void 0 : _a.addEventListener("mouseover", this.openMenu);
8427
+ this._trigger?.addEventListener("mouseover", this.openMenu);
7804
8428
  } else {
7805
- (_b = this._trigger) == null ? void 0 : _b.removeEventListener("mouseover", this.openMenu);
8429
+ this._trigger?.removeEventListener("mouseover", this.openMenu);
7806
8430
  }
7807
8431
  }
8432
+ /**
8433
+ * Called whenever the 'persistOnItemClick' property changes.
8434
+ * Adds or removes a 'click' event listener to the menu list based on the new value.
8435
+ * @public
8436
+ * @param {boolean} oldValue - The previous value of 'persistOnItemClick'.
8437
+ * @param {boolean} newValue - The new value of 'persistOnItemClick'.
8438
+ */
7808
8439
  persistOnItemClickChanged(oldValue, newValue) {
7809
- var _a, _b;
7810
8440
  if (!newValue) {
7811
- (_a = this._menuList) == null ? void 0 : _a.addEventListener("click", this.closeMenu);
8441
+ this._menuList?.addEventListener("click", this.closeMenu);
7812
8442
  } else {
7813
- (_b = this._menuList) == null ? void 0 : _b.removeEventListener("click", this.closeMenu);
8443
+ this._menuList?.removeEventListener("click", this.closeMenu);
7814
8444
  }
7815
8445
  }
8446
+ /**
8447
+ * Called whenever the 'openOnContext' property changes.
8448
+ * Adds or removes a 'contextmenu' event listener to the trigger based on the new value.
8449
+ * @public
8450
+ * @param {boolean} oldValue - The previous value of 'openOnContext'.
8451
+ * @param {boolean} newValue - The new value of 'openOnContext'.
8452
+ */
7816
8453
  openOnContextChanged(oldValue, newValue) {
7817
- var _a, _b;
7818
8454
  if (newValue) {
7819
- (_a = this._trigger) == null ? void 0 : _a.addEventListener("contextmenu", this.openMenu);
8455
+ this._trigger?.addEventListener("contextmenu", this.openMenu);
7820
8456
  } else {
7821
- (_b = this._trigger) == null ? void 0 : _b.removeEventListener("contextmenu", this.openMenu);
8457
+ this._trigger?.removeEventListener("contextmenu", this.openMenu);
7822
8458
  }
7823
8459
  }
8460
+ /**
8461
+ * Called whenever the 'closeOnScroll' property changes.
8462
+ * Adds or removes a 'closeOnScroll' event listener to the trigger based on the new value.
8463
+ * @public
8464
+ * @param {boolean} oldValue - The previous value of 'closeOnScroll'.
8465
+ * @param {boolean} newValue - The new value of 'closeOnScroll'.
8466
+ */
7824
8467
  closeOnScrollChanged(oldValue, newValue) {
7825
8468
  if (newValue) {
7826
8469
  document.addEventListener("scroll", this.closeMenu);
@@ -7828,10 +8471,13 @@ class Menu extends FASTElement {
7828
8471
  document.removeEventListener("scroll", this.closeMenu);
7829
8472
  }
7830
8473
  }
8474
+ /**
8475
+ * Sets the positioning of the menu.
8476
+ * @protected
8477
+ */
7831
8478
  setPositioning() {
7832
8479
  if (this.$fastController.isConnected && this._menuList && this.open && this._trigger) {
7833
8480
  this.cleanup = P(this, this.positioningContainer, async () => {
7834
- var _a, _b;
7835
8481
  const {
7836
8482
  middlewareData,
7837
8483
  x,
@@ -7844,19 +8490,18 @@ class Menu extends FASTElement {
7844
8490
  availableHeight,
7845
8491
  rects
7846
8492
  }) => {
7847
- var _a2;
7848
- ((_a2 = this.positioningContainer) == null ? void 0 : _a2.style) && Object.assign(this.positioningContainer.style, {
8493
+ this.positioningContainer?.style && Object.assign(this.positioningContainer.style, {
7849
8494
  maxHeight: `${availableHeight}px`,
7850
8495
  width: `${rects.reference.width}px`
7851
8496
  });
7852
8497
  }
7853
8498
  }), P$1()]
7854
8499
  });
7855
- if ((_a = middlewareData.hide) == null ? void 0 : _a.referenceHidden) {
8500
+ if (middlewareData.hide?.referenceHidden) {
7856
8501
  this.open = false;
7857
8502
  return;
7858
8503
  }
7859
- ((_b = this.positioningContainer) == null ? void 0 : _b.style) && Object.assign(this.positioningContainer.style, {
8504
+ this.positioningContainer?.style && Object.assign(this.positioningContainer.style, {
7860
8505
  position: "fixed",
7861
8506
  top: "0",
7862
8507
  left: "0",
@@ -7865,37 +8510,54 @@ class Menu extends FASTElement {
7865
8510
  });
7866
8511
  }
7867
8512
  }
8513
+ /**
8514
+ * Adds event listeners.
8515
+ * Adds click and keydown event listeners to the trigger and a click event listener to the document.
8516
+ * If 'openOnHover' is true, adds a 'mouseover' event listener to the trigger.
8517
+ * @public
8518
+ */
7868
8519
  addListeners() {
7869
- var _a, _b, _c, _d, _e;
7870
8520
  document.addEventListener("click", this.handleDocumentClick);
7871
- (_a = this._trigger) == null ? void 0 : _a.addEventListener("keydown", this.handleTriggerKeydown);
8521
+ this._trigger?.addEventListener("keydown", this.handleTriggerKeydown);
7872
8522
  if (!this.persistOnItemClick) {
7873
- (_b = this._menuList) == null ? void 0 : _b.addEventListener("click", this.closeMenu);
8523
+ this._menuList?.addEventListener("click", this.closeMenu);
7874
8524
  }
7875
8525
  if (this.openOnHover) {
7876
- (_c = this._trigger) == null ? void 0 : _c.addEventListener("mouseover", this.openMenu);
8526
+ this._trigger?.addEventListener("mouseover", this.openMenu);
7877
8527
  } else if (this.openOnContext) {
7878
- (_d = this._trigger) == null ? void 0 : _d.addEventListener("contextmenu", this.openMenu);
8528
+ this._trigger?.addEventListener("contextmenu", this.openMenu);
7879
8529
  } else {
7880
- (_e = this._trigger) == null ? void 0 : _e.addEventListener("click", this.toggleMenu);
8530
+ this._trigger?.addEventListener("click", this.toggleMenu);
7881
8531
  }
7882
8532
  }
8533
+ /**
8534
+ * Removes event listeners.
8535
+ * Removes click and keydown event listeners from the trigger and a click event listener from the document.
8536
+ * Also removes 'mouseover' event listeners from the trigger.
8537
+ * @private
8538
+ */
7883
8539
  removeListeners() {
7884
- var _a, _b, _c, _d, _e;
7885
8540
  document.removeEventListener("click", this.handleDocumentClick);
7886
- (_a = this._trigger) == null ? void 0 : _a.removeEventListener("keydown", this.handleTriggerKeydown);
8541
+ this._trigger?.removeEventListener("keydown", this.handleTriggerKeydown);
7887
8542
  if (!this.persistOnItemClick) {
7888
- (_b = this._menuList) == null ? void 0 : _b.removeEventListener("click", this.closeMenu);
8543
+ this._menuList?.removeEventListener("click", this.closeMenu);
7889
8544
  }
7890
8545
  if (this.openOnHover) {
7891
- (_c = this._trigger) == null ? void 0 : _c.removeEventListener("mouseover", this.openMenu);
8546
+ this._trigger?.removeEventListener("mouseover", this.openMenu);
7892
8547
  }
7893
8548
  if (this.openOnContext) {
7894
- (_d = this._trigger) == null ? void 0 : _d.removeEventListener("contextmenu", this.openMenu);
8549
+ this._trigger?.removeEventListener("contextmenu", this.openMenu);
7895
8550
  } else {
7896
- (_e = this._trigger) == null ? void 0 : _e.removeEventListener("click", this.toggleMenu);
8551
+ this._trigger?.removeEventListener("click", this.toggleMenu);
7897
8552
  }
7898
8553
  }
8554
+ /**
8555
+ * Handles keyboard interaction for the menu.
8556
+ * Closes the menu and focuses on the trigger when the Escape key is pressed.
8557
+ * Closes the menu when the Tab key is pressed.
8558
+ * @public
8559
+ * @param {KeyboardEvent} e - the keyboard event
8560
+ */
7899
8561
  handleMenuKeydown(e) {
7900
8562
  if (e.defaultPrevented) {
7901
8563
  return;
@@ -7970,7 +8632,8 @@ const MenuButtonShape = ButtonShape;
7970
8632
  const MenuButtonSize = ButtonSize;
7971
8633
 
7972
8634
  const template$e = buttonTemplate$1({
7973
- end: html.partial(`
8635
+ end: html.partial( /* html */
8636
+ `
7974
8637
  <svg slot="end" fill="currentColor" aria-hidden="true" width="1em" height="1em" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
7975
8638
  <path d="M15.85 7.65c.2.2.2.5 0 .7l-5.46 5.49a.55.55 0 0 1-.78 0L4.15 8.35a.5.5 0 1 1 .7-.7L10 12.8l5.15-5.16c.2-.2.5-.2.7 0Z" fill="currentColor"></path>
7976
8639
  </svg>
@@ -7984,8 +8647,17 @@ const definition$e = MenuButton.compose({
7984
8647
  });
7985
8648
 
7986
8649
  const MenuItemRole = {
8650
+ /**
8651
+ * The menu item has a "menuitem" role
8652
+ */
7987
8653
  menuitem: "menuitem",
8654
+ /**
8655
+ * The menu item has a "menuitemcheckbox" role
8656
+ */
7988
8657
  menuitemcheckbox: "menuitemcheckbox",
8658
+ /**
8659
+ * The menu item has a "menuitemradio" role
8660
+ */
7989
8661
  menuitemradio: "menuitemradio"
7990
8662
  };
7991
8663
  const roleForMenuItem = {
@@ -8008,6 +8680,9 @@ class MenuItem extends FASTElement {
8008
8680
  this.role = MenuItemRole.menuitem;
8009
8681
  this.checked = false;
8010
8682
  this.focusSubmenuOnLoad = false;
8683
+ /**
8684
+ * @internal
8685
+ */
8011
8686
  this.handleMenuItemKeyDown = e => {
8012
8687
  if (e.defaultPrevented) {
8013
8688
  return false;
@@ -8034,6 +8709,9 @@ class MenuItem extends FASTElement {
8034
8709
  }
8035
8710
  return true;
8036
8711
  };
8712
+ /**
8713
+ * @internal
8714
+ */
8037
8715
  this.handleMenuItemClick = e => {
8038
8716
  if (e.defaultPrevented || this.disabled) {
8039
8717
  return false;
@@ -8041,6 +8719,9 @@ class MenuItem extends FASTElement {
8041
8719
  this.invoke();
8042
8720
  return false;
8043
8721
  };
8722
+ /**
8723
+ * @internal
8724
+ */
8044
8725
  this.submenuLoaded = () => {
8045
8726
  if (!this.focusSubmenuOnLoad) {
8046
8727
  return;
@@ -8051,6 +8732,9 @@ class MenuItem extends FASTElement {
8051
8732
  this.setAttribute("tabindex", "-1");
8052
8733
  }
8053
8734
  };
8735
+ /**
8736
+ * @internal
8737
+ */
8054
8738
  this.handleMouseOver = e => {
8055
8739
  if (this.disabled || !this.hasSubmenu || this.expanded) {
8056
8740
  return false;
@@ -8058,6 +8742,9 @@ class MenuItem extends FASTElement {
8058
8742
  this.expanded = true;
8059
8743
  return false;
8060
8744
  };
8745
+ /**
8746
+ * @internal
8747
+ */
8061
8748
  this.handleMouseOut = e => {
8062
8749
  if (!this.expanded || this.contains(document.activeElement)) {
8063
8750
  return false;
@@ -8065,10 +8752,16 @@ class MenuItem extends FASTElement {
8065
8752
  this.expanded = false;
8066
8753
  return false;
8067
8754
  };
8755
+ /**
8756
+ * @internal
8757
+ */
8068
8758
  this.closeSubMenu = () => {
8069
8759
  this.expanded = false;
8070
8760
  this.focus();
8071
8761
  };
8762
+ /**
8763
+ * @internal
8764
+ */
8072
8765
  this.expandAndFocus = () => {
8073
8766
  if (!this.hasSubmenu) {
8074
8767
  return;
@@ -8076,6 +8769,9 @@ class MenuItem extends FASTElement {
8076
8769
  this.focusSubmenuOnLoad = true;
8077
8770
  this.expanded = true;
8078
8771
  };
8772
+ /**
8773
+ * @internal
8774
+ */
8079
8775
  this.invoke = () => {
8080
8776
  if (this.disabled) {
8081
8777
  return;
@@ -8114,23 +8810,37 @@ class MenuItem extends FASTElement {
8114
8810
  this.$emit("change");
8115
8811
  }
8116
8812
  }
8813
+ /**
8814
+ * @internal
8815
+ */
8117
8816
  get hasSubmenu() {
8118
8817
  return !!this.submenu;
8119
8818
  }
8819
+ /**
8820
+ * Sets the submenu and updates its position.
8821
+ *
8822
+ * @internal
8823
+ */
8120
8824
  slottedSubmenuChanged(prev, next) {
8121
8825
  if (next.length) {
8122
8826
  this.submenu = next[0];
8123
8827
  this.updateSubmenu();
8124
8828
  }
8125
8829
  }
8830
+ /**
8831
+ * @internal
8832
+ */
8126
8833
  disconnectedCallback() {
8127
- var _a;
8128
- (_a = this.cleanup) == null ? void 0 : _a.call(this);
8834
+ this.cleanup?.();
8129
8835
  super.disconnectedCallback();
8130
8836
  }
8837
+ /**
8838
+ * Calculate and apply submenu positioning.
8839
+ *
8840
+ * @public
8841
+ */
8131
8842
  updateSubmenu() {
8132
- var _a;
8133
- (_a = this.cleanup) == null ? void 0 : _a.call(this);
8843
+ this.cleanup?.();
8134
8844
  if (!this.submenu || !this.expanded) {
8135
8845
  return;
8136
8846
  }
@@ -8216,14 +8926,25 @@ var __decorateClass$c = (decorators, target, key, kind) => {
8216
8926
  if (kind && result) __defProp$c(target, key, result);
8217
8927
  return result;
8218
8928
  };
8219
- const _MenuList = class extends FASTElement {
8929
+ const _MenuList = class _MenuList extends FASTElement {
8220
8930
  constructor() {
8221
8931
  super(...arguments);
8222
8932
  this.expandedItem = null;
8933
+ /**
8934
+ * The index of the focusable element in the items array
8935
+ * defaults to -1
8936
+ */
8223
8937
  this.focusIndex = -1;
8938
+ /**
8939
+ * @internal
8940
+ */
8224
8941
  this.isNestedMenu = () => {
8225
8942
  return this.parentElement !== null && isHTMLElement(this.parentElement) && this.parentElement.getAttribute("role") === "menuitem";
8226
8943
  };
8944
+ /**
8945
+ * if focus is moving out of the menu, reset to a stable initial state
8946
+ * @internal
8947
+ */
8227
8948
  this.handleFocusOut = e => {
8228
8949
  if (!this.contains(e.relatedTarget) && this.menuItems !== void 0) {
8229
8950
  this.collapseExpandedItem();
@@ -8261,6 +8982,9 @@ const _MenuList = class extends FASTElement {
8261
8982
  changedItem.setAttribute("tabindex", "0");
8262
8983
  }
8263
8984
  };
8985
+ /**
8986
+ * handle change from child element
8987
+ */
8264
8988
  this.changeHandler = e => {
8265
8989
  if (this.menuItems === void 0) {
8266
8990
  return;
@@ -8294,9 +9018,15 @@ const _MenuList = class extends FASTElement {
8294
9018
  }
8295
9019
  }
8296
9020
  };
9021
+ /**
9022
+ * check if the item is a menu item
9023
+ */
8297
9024
  this.isMenuItemElement = el => {
8298
9025
  return el instanceof MenuItem || isHTMLElement(el) && el.getAttribute("role") in _MenuList.focusableElementRoles;
8299
9026
  };
9027
+ /**
9028
+ * check if the item is focusable
9029
+ */
8300
9030
  this.isFocusableElement = el => {
8301
9031
  return this.isMenuItemElement(el);
8302
9032
  };
@@ -8306,6 +9036,9 @@ const _MenuList = class extends FASTElement {
8306
9036
  this.setItems();
8307
9037
  }
8308
9038
  }
9039
+ /**
9040
+ * @internal
9041
+ */
8309
9042
  connectedCallback() {
8310
9043
  super.connectedCallback();
8311
9044
  Updates.enqueue(() => {
@@ -8313,21 +9046,37 @@ const _MenuList = class extends FASTElement {
8313
9046
  });
8314
9047
  this.addEventListener("change", this.changeHandler);
8315
9048
  }
9049
+ /**
9050
+ * @internal
9051
+ */
8316
9052
  disconnectedCallback() {
8317
9053
  super.disconnectedCallback();
8318
9054
  this.removeItemListeners();
8319
9055
  this.menuItems = void 0;
8320
9056
  this.removeEventListener("change", this.changeHandler);
8321
9057
  }
9058
+ /**
9059
+ * Focuses the first item in the menu.
9060
+ *
9061
+ * @public
9062
+ */
8322
9063
  focus() {
8323
9064
  this.setFocus(0, 1);
8324
9065
  }
9066
+ /**
9067
+ * Collapses any expanded menu items.
9068
+ *
9069
+ * @public
9070
+ */
8325
9071
  collapseExpandedItem() {
8326
9072
  if (this.expandedItem !== null) {
8327
9073
  this.expandedItem.expanded = false;
8328
9074
  this.expandedItem = null;
8329
9075
  }
8330
9076
  }
9077
+ /**
9078
+ * @internal
9079
+ */
8331
9080
  handleMenuKeyDown(e) {
8332
9081
  if (e.defaultPrevented || this.menuItems === void 0) {
8333
9082
  return;
@@ -8365,7 +9114,6 @@ const _MenuList = class extends FASTElement {
8365
9114
  return startSlot ? 1 : 0;
8366
9115
  }
8367
9116
  setItems() {
8368
- var _a;
8369
9117
  const children = Array.from(this.children);
8370
9118
  this.removeItemListeners(children);
8371
9119
  children.forEach(child => Observable.getNotifier(child).subscribe(this, "hidden"));
@@ -8380,9 +9128,9 @@ const _MenuList = class extends FASTElement {
8380
9128
  item.addEventListener("expanded-change", this.handleExpandedChanged);
8381
9129
  item.addEventListener("focus", this.handleItemFocus);
8382
9130
  });
8383
- const filteredMenuListItems = (_a = this.menuItems) == null ? void 0 : _a.filter(this.isMenuItemElement);
8384
- filteredMenuListItems == null ? void 0 : filteredMenuListItems.forEach((item, index) => {
8385
- const indent = filteredMenuListItems == null ? void 0 : filteredMenuListItems.reduce((accum, current) => {
9131
+ const filteredMenuListItems = this.menuItems?.filter(this.isMenuItemElement);
9132
+ filteredMenuListItems?.forEach((item, index) => {
9133
+ const indent = filteredMenuListItems?.reduce((accum, current) => {
8386
9134
  const elementValue = _MenuList.elementIndent(current);
8387
9135
  return Math.max(accum, elementValue);
8388
9136
  }, 0);
@@ -8415,9 +9163,9 @@ const _MenuList = class extends FASTElement {
8415
9163
  }
8416
9164
  }
8417
9165
  };
9166
+ _MenuList.focusableElementRoles = MenuItemRole;
9167
+ __decorateClass$c([observable], _MenuList.prototype, "items", 2);
8418
9168
  let MenuList = _MenuList;
8419
- MenuList.focusableElementRoles = MenuItemRole;
8420
- __decorateClass$c([observable], MenuList.prototype, "items", 2);
8421
9169
 
8422
9170
  function menuTemplate() {
8423
9171
  return html`<template slot="${x => x.slot ? x.slot : x.isNestedMenu() ? "submenu" : void 0}" role="menu" @keydown="${(x, c) => x.handleMenuKeyDown(c.event)}" @focusout="${(x, c) => x.handleFocusOut(c.event)}"><slot ${slotted("items")}></slot></template>`;
@@ -8461,6 +9209,9 @@ class BaseProgress extends FASTElement {
8461
9209
  this.updatePercentComplete();
8462
9210
  }
8463
9211
  }
9212
+ /**
9213
+ * @internal
9214
+ */
8464
9215
  connectedCallback() {
8465
9216
  super.connectedCallback();
8466
9217
  this.updatePercentComplete();
@@ -8567,26 +9318,36 @@ var __decorateClass$9 = (decorators, target, key, kind) => {
8567
9318
  class Radio extends FormAssociatedRadio {
8568
9319
  constructor() {
8569
9320
  super();
9321
+ /**
9322
+ * The element's value to be included in form submission when checked.
9323
+ * Default to "on" to reach parity with input[type="radio"]
9324
+ *
9325
+ * @internal
9326
+ */
8570
9327
  this.initialValue = "on";
8571
9328
  this.proxy.setAttribute("type", "radio");
8572
9329
  }
8573
9330
  get radioGroup() {
8574
9331
  return this.closest("[role=radiogroup]");
8575
9332
  }
9333
+ /**
9334
+ * @internal
9335
+ */
8576
9336
  defaultCheckedChanged() {
8577
- var _a;
8578
9337
  if (this.$fastController.isConnected && !this.dirtyChecked) {
8579
9338
  if (!this.isInsideRadioGroup()) {
8580
- this.checked = (_a = this.defaultChecked) != null ? _a : false;
9339
+ this.checked = this.defaultChecked ?? false;
8581
9340
  this.dirtyChecked = false;
8582
9341
  }
8583
9342
  }
8584
9343
  }
9344
+ /**
9345
+ * @internal
9346
+ */
8585
9347
  connectedCallback() {
8586
- var _a, _b;
8587
9348
  super.connectedCallback();
8588
9349
  this.validate();
8589
- if (((_a = this.parentElement) == null ? void 0 : _a.getAttribute("role")) !== "radiogroup" && this.getAttribute("tabindex") === null) {
9350
+ if (this.parentElement?.getAttribute("role") !== "radiogroup" && this.getAttribute("tabindex") === null) {
8590
9351
  if (!this.disabled) {
8591
9352
  this.setAttribute("tabindex", "0");
8592
9353
  }
@@ -8594,7 +9355,7 @@ class Radio extends FormAssociatedRadio {
8594
9355
  if (this.checkedAttribute) {
8595
9356
  if (!this.dirtyChecked) {
8596
9357
  if (!this.isInsideRadioGroup()) {
8597
- this.checked = (_b = this.defaultChecked) != null ? _b : false;
9358
+ this.checked = this.defaultChecked ?? false;
8598
9359
  this.dirtyChecked = false;
8599
9360
  }
8600
9361
  }
@@ -8603,11 +9364,14 @@ class Radio extends FormAssociatedRadio {
8603
9364
  isInsideRadioGroup() {
8604
9365
  return this.radioGroup !== null;
8605
9366
  }
9367
+ /**
9368
+ * Handles key presses on the radio.
9369
+ * @beta
9370
+ */
8606
9371
  keypressHandler(e) {
8607
- var _a;
8608
9372
  switch (e.key) {
8609
9373
  case keySpace:
8610
- if (!this.checked && !((_a = this.radioGroup) == null ? void 0 : _a.readOnly)) {
9374
+ if (!this.checked && !this.radioGroup?.readOnly) {
8611
9375
  this.checked = true;
8612
9376
  }
8613
9377
  return;
@@ -8625,10 +9389,7 @@ const styles$a = css`
8625
9389
  :host .control{border-color:InactiveBorder}:host([aria-checked='true']) .checked-indicator,:host([aria-checked='true']:active) .checked-indicator,:host([aria-checked='true']:hover) .checked-indicator{background-color:Highlight;border-color:ActiveBorder}`));
8626
9390
 
8627
9391
  function radioTemplate(options = {}) {
8628
- return html`<template role="radio" aria-checked="${x => x.checked}" aria-required="${x => x.required}" aria-disabled="${x => x.disabled}" @keypress="${(x, c) => x.keypressHandler(c.event)}"><div part="control" class="control"><slot name="checked-indicator">${staticallyCompose(options.checkedIndicator)}</slot></div><label part="label" class="${x => {
8629
- var _a;
8630
- return ["label", !((_a = x.defaultSlottedNodes) == null ? void 0 : _a.length) && "label__hidden"].filter(Boolean).join(" ");
8631
- }}"><slot ${slotted({
9392
+ return html`<template role="radio" aria-checked="${x => x.checked}" aria-required="${x => x.required}" aria-disabled="${x => x.disabled}" @keypress="${(x, c) => x.keypressHandler(c.event)}"><div part="control" class="control"><slot name="checked-indicator">${staticallyCompose(options.checkedIndicator)}</slot></div><label part="label" class="${x => ["label", !x.defaultSlottedNodes?.length && "label__hidden"].filter(Boolean).join(" ")}"><slot ${slotted({
8632
9393
  property: "defaultSlottedNodes",
8633
9394
  filter: whitespaceFilter
8634
9395
  })}></slot></label></template>`;
@@ -8687,13 +9448,14 @@ class RadioGroup extends FASTElement {
8687
9448
  radio.focus();
8688
9449
  };
8689
9450
  this.moveRightOffGroup = () => {
8690
- var _a;
8691
- (_a = this.nextElementSibling) == null ? void 0 : _a.focus();
9451
+ this.nextElementSibling?.focus();
8692
9452
  };
8693
9453
  this.moveLeftOffGroup = () => {
8694
- var _a;
8695
- (_a = this.previousElementSibling) == null ? void 0 : _a.focus();
9454
+ this.previousElementSibling?.focus();
8696
9455
  };
9456
+ /**
9457
+ * @internal
9458
+ */
8697
9459
  this.focusOutHandler = e => {
8698
9460
  const group = this.slottedRadioButtons;
8699
9461
  const radio = e.target;
@@ -8722,6 +9484,9 @@ class RadioGroup extends FASTElement {
8722
9484
  }
8723
9485
  return true;
8724
9486
  };
9487
+ /**
9488
+ * @internal
9489
+ */
8725
9490
  this.handleDisabledClick = e => {
8726
9491
  if (this.disabled) {
8727
9492
  e.preventDefault();
@@ -8729,6 +9494,9 @@ class RadioGroup extends FASTElement {
8729
9494
  }
8730
9495
  return true;
8731
9496
  };
9497
+ /**
9498
+ * @internal
9499
+ */
8732
9500
  this.clickHandler = e => {
8733
9501
  if (this.disabled) {
8734
9502
  return;
@@ -8806,6 +9574,12 @@ class RadioGroup extends FASTElement {
8806
9574
  }
8807
9575
  }
8808
9576
  };
9577
+ /**
9578
+ * keyboard handling per https://w3c.github.io/aria-practices/#for-radio-groups-not-contained-in-a-toolbar
9579
+ * navigation is different when there is an ancestor with role='toolbar'
9580
+ *
9581
+ * @internal
9582
+ */
8809
9583
  this.keydownHandler = e => {
8810
9584
  const key = e.key;
8811
9585
  if (key in ArrowKeys && (this.isInsideFoundationToolbar || this.disabled)) {
@@ -8873,13 +9647,14 @@ class RadioGroup extends FASTElement {
8873
9647
  return this.closest('[role="toolbar"]');
8874
9648
  }
8875
9649
  get isInsideToolbar() {
8876
- var _a;
8877
- return (_a = this.parentToolbar) != null ? _a : false;
9650
+ return this.parentToolbar ?? false;
8878
9651
  }
8879
9652
  get isInsideFoundationToolbar() {
8880
- var _a;
8881
- return !!((_a = this.parentToolbar) == null ? void 0 : _a.hasOwnProperty("$fastController"));
9653
+ return !!this.parentToolbar?.hasOwnProperty("$fastController");
8882
9654
  }
9655
+ /**
9656
+ * @internal
9657
+ */
8883
9658
  connectedCallback() {
8884
9659
  super.connectedCallback();
8885
9660
  this.direction = getDirection(this);
@@ -9059,6 +9834,7 @@ class Slider extends FormAssociatedSlider {
9059
9834
  this.trackWidth = 1;
9060
9835
  }
9061
9836
  };
9837
+ //Remove
9062
9838
  this.setupListeners = (remove = false) => {
9063
9839
  this.addEventListener("keydown", this.keypressHandler);
9064
9840
  this.addEventListener("mousedown", this.handleMouseDown);
@@ -9067,7 +9843,14 @@ class Slider extends FormAssociatedSlider {
9067
9843
  this.removeEventListener("mousedown", this.handleMouseDown);
9068
9844
  }
9069
9845
  };
9846
+ /**
9847
+ * @internal
9848
+ */
9070
9849
  this.initialValue = "";
9850
+ /**
9851
+ * Handle mouse moves during a thumb drag operation
9852
+ * If the event handler is null it removes the events
9853
+ */
9071
9854
  this.handleThumbMouseDown = event => {
9072
9855
  const windowFn = event !== null ? window.addEventListener : window.removeEventListener;
9073
9856
  windowFn("mouseup", this.handleWindowMouseUp);
@@ -9080,6 +9863,9 @@ class Slider extends FormAssociatedSlider {
9080
9863
  windowFn("touchend", this.handleWindowMouseUp);
9081
9864
  this.isDragging = event !== null;
9082
9865
  };
9866
+ /**
9867
+ * Handle mouse moves during a thumb drag operation
9868
+ */
9083
9869
  this.handleMouseMove = e => {
9084
9870
  if (this.readOnly || this.disabled || e.defaultPrevented) {
9085
9871
  return;
@@ -9088,6 +9874,9 @@ class Slider extends FormAssociatedSlider {
9088
9874
  const eventValue = this.orientation === Orientation.horizontal ? sourceEvent.pageX - document.documentElement.scrollLeft - this.trackLeft : sourceEvent.pageY - document.documentElement.scrollTop;
9089
9875
  this.value = `${this.calculateNewValue(eventValue)}`;
9090
9876
  };
9877
+ /**
9878
+ * Handle a window mouse up during a drag operation
9879
+ */
9091
9880
  this.handleWindowMouseUp = event => {
9092
9881
  this.stopDragging();
9093
9882
  };
@@ -9096,6 +9885,10 @@ class Slider extends FormAssociatedSlider {
9096
9885
  this.handleMouseDown(null);
9097
9886
  this.handleThumbMouseDown(null);
9098
9887
  };
9888
+ /**
9889
+ *
9890
+ * @param e - MouseEvent or null. If there is no event handler it will remove the events
9891
+ */
9099
9892
  this.handleMouseDown = e => {
9100
9893
  if (e === null || !this.disabled && !this.readOnly) {
9101
9894
  const windowFn = e !== null ? window.addEventListener : window.removeEventListener;
@@ -9120,6 +9913,10 @@ class Slider extends FormAssociatedSlider {
9120
9913
  break;
9121
9914
  }
9122
9915
  }
9916
+ /**
9917
+ * Handles changes to step styling based on the step value
9918
+ * NOTE: This function is not a changed callback, stepStyles is not observable
9919
+ */
9123
9920
  handleStepStyles() {
9124
9921
  if (this.step) {
9125
9922
  const totalSteps = 100 / Math.floor((this.max - this.min) / this.step);
@@ -9133,17 +9930,26 @@ class Slider extends FormAssociatedSlider {
9133
9930
  this.$fastController.removeStyles(this.stepStyles);
9134
9931
  }
9135
9932
  }
9933
+ // Map to proxy element
9136
9934
  readOnlyChanged() {
9137
9935
  if (this.proxy instanceof HTMLInputElement) {
9138
9936
  this.proxy.readOnly = this.readOnly;
9139
9937
  }
9140
9938
  }
9939
+ /**
9940
+ * The value property, typed as a number.
9941
+ *
9942
+ * @public
9943
+ */
9141
9944
  get valueAsNumber() {
9142
9945
  return parseFloat(super.value);
9143
9946
  }
9144
9947
  set valueAsNumber(next) {
9145
9948
  this.value = next.toString();
9146
9949
  }
9950
+ /**
9951
+ * @internal
9952
+ */
9147
9953
  valueChanged(previous, next) {
9148
9954
  if (this.$fastController.isConnected) {
9149
9955
  const nextAsNumber = parseFloat(next);
@@ -9157,12 +9963,14 @@ class Slider extends FormAssociatedSlider {
9157
9963
  this.$emit("change");
9158
9964
  }
9159
9965
  }
9966
+ // Map to proxy element.
9160
9967
  minChanged() {
9161
9968
  if (this.proxy instanceof HTMLInputElement) {
9162
9969
  this.proxy.min = `${this.min}`;
9163
9970
  }
9164
9971
  this.validate();
9165
9972
  }
9973
+ // Map to proxy element.
9166
9974
  maxChanged() {
9167
9975
  if (this.proxy instanceof HTMLInputElement) {
9168
9976
  this.proxy.max = `${this.max}`;
@@ -9181,6 +9989,9 @@ class Slider extends FormAssociatedSlider {
9181
9989
  this.setThumbPositionForOrientation(this.direction);
9182
9990
  }
9183
9991
  }
9992
+ /**
9993
+ * @internal
9994
+ */
9184
9995
  connectedCallback() {
9185
9996
  super.connectedCallback();
9186
9997
  this.proxy.setAttribute("type", "range");
@@ -9195,6 +10006,9 @@ class Slider extends FormAssociatedSlider {
9195
10006
  Observable.getNotifier(this).subscribe(this, "step");
9196
10007
  this.handleStepStyles();
9197
10008
  }
10009
+ /**
10010
+ * @internal
10011
+ */
9198
10012
  disconnectedCallback() {
9199
10013
  super.disconnectedCallback();
9200
10014
  this.setupListeners(true);
@@ -9202,21 +10016,41 @@ class Slider extends FormAssociatedSlider {
9202
10016
  Observable.getNotifier(this).unsubscribe(this, "min");
9203
10017
  Observable.getNotifier(this).unsubscribe(this, "step");
9204
10018
  }
10019
+ /**
10020
+ * Increment the value by the step
10021
+ *
10022
+ * @public
10023
+ */
9205
10024
  increment() {
9206
10025
  const newVal = this.direction !== Direction.rtl && this.orientation !== Orientation.vertical ? Number(this.value) + Number(this.stepValue) : Number(this.value) + Number(this.stepValue);
9207
10026
  const incrementedVal = this.convertToConstrainedValue(newVal);
9208
10027
  const incrementedValString = incrementedVal < Number(this.max) ? `${incrementedVal}` : `${this.max}`;
9209
10028
  this.value = incrementedValString;
9210
10029
  }
10030
+ /**
10031
+ * Decrement the value by the step
10032
+ *
10033
+ * @public
10034
+ */
9211
10035
  decrement() {
9212
10036
  const newVal = this.direction !== Direction.rtl && this.orientation !== Orientation.vertical ? Number(this.value) - Number(this.stepValue) : Number(this.value) - Number(this.stepValue);
9213
10037
  const decrementedVal = this.convertToConstrainedValue(newVal);
9214
10038
  const decrementedValString = decrementedVal > Number(this.min) ? `${decrementedVal}` : `${this.min}`;
9215
10039
  this.value = decrementedValString;
9216
10040
  }
10041
+ /**
10042
+ * Gets the actual step value for the slider
10043
+ *
10044
+ */
9217
10045
  get stepValue() {
9218
10046
  return this.step === void 0 ? 1 : this.step;
9219
10047
  }
10048
+ /**
10049
+ * Places the thumb based on the current value
10050
+ *
10051
+ * @public
10052
+ * @param direction - writing mode
10053
+ */
9220
10054
  setThumbPositionForOrientation(direction) {
9221
10055
  const newPct = convertPixelToPercent(Number(this.value), Number(this.min), Number(this.max), direction);
9222
10056
  const percentage = (1 - newPct) * 100;
@@ -9226,6 +10060,10 @@ class Slider extends FormAssociatedSlider {
9226
10060
  this.position = this.isDragging ? `top: ${percentage}%; transition: none;` : `top: ${percentage}%; transition: all 0.2s ease;`;
9227
10061
  }
9228
10062
  }
10063
+ /**
10064
+ * Update the step multiplier used to ensure rounding errors from steps that
10065
+ * are not whole numbers
10066
+ */
9229
10067
  updateStepMultiplier() {
9230
10068
  const stepString = this.stepValue + "";
9231
10069
  const decimalPlacesOfStep = !!(this.stepValue % 1) ? stepString.length - stepString.indexOf(".") - 1 : 0;
@@ -9246,6 +10084,14 @@ class Slider extends FormAssociatedSlider {
9246
10084
  }
9247
10085
  }
9248
10086
  }
10087
+ /**
10088
+ * Calculate the new value based on the given raw pixel value.
10089
+ *
10090
+ * @param rawValue - the value to be converted to a constrained value
10091
+ * @returns the constrained value
10092
+ *
10093
+ * @internal
10094
+ */
9249
10095
  calculateNewValue(rawValue) {
9250
10096
  this.setupTrackConstraints();
9251
10097
  const newPosition = convertPixelToPercent(rawValue, this.orientation === Orientation.horizontal ? this.trackMinWidth : this.trackMinHeight, this.orientation === Orientation.horizontal ? this.trackWidth : this.trackHeight, this.direction);
@@ -9316,7 +10162,18 @@ var __decorateClass$6 = (decorators, target, key, kind) => {
9316
10162
  if (kind && result) __defProp$6(target, key, result);
9317
10163
  return result;
9318
10164
  };
9319
- class Spinner extends BaseProgress {}
10165
+ class Spinner extends FASTElement {
10166
+ constructor() {
10167
+ super();
10168
+ /**
10169
+ * The internal {@link https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals | `ElementInternals`} instance for the component.
10170
+ *
10171
+ * @internal
10172
+ */
10173
+ this.elementInternals = this.attachInternals();
10174
+ this.elementInternals.role = "progressbar";
10175
+ }
10176
+ }
9320
10177
  __decorateClass$6([attr], Spinner.prototype, "size", 2);
9321
10178
  __decorateClass$6([attr], Spinner.prototype, "appearance", 2);
9322
10179
 
@@ -9334,35 +10191,12 @@ const SpinnerSize = {
9334
10191
  huge: "huge"
9335
10192
  };
9336
10193
 
9337
- const progressSegments = 44;
9338
- function progressRingTemplate(options = {}) {
9339
- return html`<template role="progressbar" aria-valuenow="${x => x.value}" aria-valuemin="${x => x.min}" aria-valuemax="${x => x.max}">${when(x => typeof x.value === "number", html`<svg class="progress" part="progress" viewBox="0 0 16 16" slot="determinate"><circle class="background" part="background" cx="8px" cy="8px" r="7px"></circle><circle class="determinate" part="determinate" style="stroke-dasharray: ${x => progressSegments * x.percentComplete / 100}px ${progressSegments}px" cx="8px" cy="8px" r="7px"></circle></svg>`, html`<slot name="indeterminate">${staticallyCompose(options.indeterminateIndicator)}</slot>`)}</template>`;
9340
- }
9341
- const template$7 = progressRingTemplate({
9342
- indeterminateIndicator: `
9343
- <svg class="progress" part="progress" viewBox="0 0 16 16">
9344
- <circle
9345
- class="background"
9346
- part="background"
9347
- cx="8px"
9348
- cy="8px"
9349
- r="7px"
9350
- ></circle>
9351
- <circle
9352
- class="indeterminate-indicator-1"
9353
- part="indeterminate-indicator-1"
9354
- cx="8px"
9355
- cy="8px"
9356
- r="7px"
9357
- ></circle>
9358
- </svg>
9359
- `
9360
- });
10194
+ 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>`;
9361
10195
 
9362
10196
  const styles$7 = css`
9363
10197
  ${display("flex")}
9364
10198
 
9365
- :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)}.determinate{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}:host([appearance='inverted']) .determinite{stroke:${colorNeutralStrokeOnBrand2}}.indeterminate-indicator-1{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']) .indeterminate-indicator-1{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)}}`;
10199
+ :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)}}`;
9366
10200
 
9367
10201
  const definition$7 = Spinner.compose({
9368
10202
  name: `${FluentDesignSystem.prefix}-spinner`,
@@ -9389,7 +10223,16 @@ var __decorateClass$5 = (decorators, target, key, kind) => {
9389
10223
  class Switch extends FormAssociatedSwitch {
9390
10224
  constructor() {
9391
10225
  super();
10226
+ /**
10227
+ * The element's value to be included in form submission when checked.
10228
+ * Default to "on" to reach parity with input[type="checkbox"]
10229
+ *
10230
+ * @internal
10231
+ */
9392
10232
  this.initialValue = "on";
10233
+ /**
10234
+ * @internal
10235
+ */
9393
10236
  this.keypressHandler = e => {
9394
10237
  if (this.readOnly) {
9395
10238
  return;
@@ -9401,6 +10244,9 @@ class Switch extends FormAssociatedSwitch {
9401
10244
  break;
9402
10245
  }
9403
10246
  };
10247
+ /**
10248
+ * @internal
10249
+ */
9404
10250
  this.clickHandler = e => {
9405
10251
  if (!this.disabled && !this.readOnly) {
9406
10252
  this.checked = !this.checked;
@@ -9408,6 +10254,7 @@ class Switch extends FormAssociatedSwitch {
9408
10254
  };
9409
10255
  this.proxy.setAttribute("type", "checkbox");
9410
10256
  }
10257
+ // Map to proxy element
9411
10258
  readOnlyChanged() {
9412
10259
  if (this.proxy instanceof HTMLInputElement) {
9413
10260
  this.proxy.readOnly = this.readOnly;
@@ -9588,17 +10435,26 @@ class BaseTabs extends FASTElement {
9588
10435
  }
9589
10436
  };
9590
10437
  }
10438
+ /**
10439
+ * @internal
10440
+ */
9591
10441
  orientationChanged() {
9592
10442
  if (this.$fastController.isConnected) {
9593
10443
  this.setTabs();
9594
10444
  }
9595
10445
  }
10446
+ /**
10447
+ * @internal
10448
+ */
9596
10449
  activeidChanged(oldValue, newValue) {
9597
10450
  if (this.$fastController.isConnected && this.tabs.length <= this.tabpanels.length) {
9598
10451
  this.prevActiveTabIndex = this.tabs.findIndex(item => item.id === oldValue);
9599
10452
  this.setTabs();
9600
10453
  }
9601
10454
  }
10455
+ /**
10456
+ * @internal
10457
+ */
9602
10458
  tabsChanged() {
9603
10459
  if (this.$fastController.isConnected && this.tabs.length <= this.tabpanels.length) {
9604
10460
  this.tabIds = this.getTabIds();
@@ -9606,6 +10462,9 @@ class BaseTabs extends FASTElement {
9606
10462
  this.setTabs();
9607
10463
  }
9608
10464
  }
10465
+ /**
10466
+ * @internal
10467
+ */
9609
10468
  tabpanelsChanged() {
9610
10469
  if (this.$fastController.isConnected && this.tabpanels.length <= this.tabs.length) {
9611
10470
  this.tabIds = this.getTabIds();
@@ -9621,6 +10480,11 @@ class BaseTabs extends FASTElement {
9621
10480
  return 0;
9622
10481
  }
9623
10482
  }
10483
+ /**
10484
+ * Function that is invoked whenever the selected tab or the tab collection changes.
10485
+ *
10486
+ * @public
10487
+ */
9624
10488
  setTabs() {
9625
10489
  const gridHorizontalProperty = "gridColumn";
9626
10490
  const gridVerticalProperty = "gridRow";
@@ -9660,14 +10524,12 @@ class BaseTabs extends FASTElement {
9660
10524
  }
9661
10525
  getTabIds() {
9662
10526
  return this.tabs.map(tab => {
9663
- var _a;
9664
- return (_a = tab.getAttribute("id")) != null ? _a : `tab-${uniqueId()}`;
10527
+ return tab.getAttribute("id") ?? `tab-${uniqueId()}`;
9665
10528
  });
9666
10529
  }
9667
10530
  getTabPanelIds() {
9668
10531
  return this.tabpanels.map(tabPanel => {
9669
- var _a;
9670
- return (_a = tabPanel.getAttribute("id")) != null ? _a : `panel-${uniqueId()}`;
10532
+ return tabPanel.getAttribute("id") ?? `panel-${uniqueId()}`;
9671
10533
  });
9672
10534
  }
9673
10535
  setComponent() {
@@ -9680,6 +10542,12 @@ class BaseTabs extends FASTElement {
9680
10542
  isHorizontal() {
9681
10543
  return this.orientation === TabsOrientation.horizontal;
9682
10544
  }
10545
+ /**
10546
+ * The adjust method for FASTTabs
10547
+ * @public
10548
+ * @remarks
10549
+ * This method allows the active index to be adjusted by numerical increments
10550
+ */
9683
10551
  adjust(adjustment) {
9684
10552
  const focusableTabs = this.tabs.filter(t => this.isFocusableElement(t));
9685
10553
  const currentActiveTabIndex = focusableTabs.indexOf(this.activetab);
@@ -9736,6 +10604,9 @@ class BaseTabs extends FASTElement {
9736
10604
  focusTab() {
9737
10605
  this.tabs[this.activeTabIndex].focus();
9738
10606
  }
10607
+ /**
10608
+ * @internal
10609
+ */
9739
10610
  connectedCallback() {
9740
10611
  super.connectedCallback();
9741
10612
  this.tabIds = this.getTabIds();
@@ -9750,41 +10621,80 @@ __decorateClass$3([observable], BaseTabs.prototype, "tabpanels", 2);
9750
10621
  class Tabs extends BaseTabs {
9751
10622
  constructor() {
9752
10623
  super(...arguments);
10624
+ /**
10625
+ * activeTabData
10626
+ * The positional coordinates and size dimensions of the active tab. Used for calculating the offset and scale of the tab active indicator.
10627
+ */
9753
10628
  this.activeTabData = {
9754
10629
  x: 0,
9755
10630
  y: 0,
9756
10631
  height: 0,
9757
10632
  width: 0
9758
10633
  };
10634
+ /**
10635
+ * previousActiveTabData
10636
+ * The positional coordinates and size dimensions of the active tab. Used for calculating the offset and scale of the tab active indicator.
10637
+ */
9759
10638
  this.previousActiveTabData = {
9760
10639
  x: 0,
9761
10640
  y: 0,
9762
10641
  height: 0,
9763
10642
  width: 0
9764
10643
  };
10644
+ /**
10645
+ * activeTabOffset
10646
+ * Used to position the active indicator for animations of the active indicator on active tab changes.
10647
+ */
9765
10648
  this.activeTabOffset = 0;
10649
+ /**
10650
+ * activeTabScale
10651
+ * Used to scale the tab active indicator up or down as animations of the active indicator occur.
10652
+ */
9766
10653
  this.activeTabScale = 1;
9767
10654
  this.appearance = TabsAppearance.transparent;
9768
10655
  }
10656
+ /**
10657
+ * calculateAnimationProperties
10658
+ *
10659
+ * Recalculates the active tab offset and scale.
10660
+ * These values will be applied to css variables that control the tab active indicator position animations
10661
+ */
9769
10662
  calculateAnimationProperties(tab) {
9770
10663
  this.activeTabOffset = this.getTabPosition(tab);
9771
10664
  this.activeTabScale = this.getTabScale(tab);
9772
10665
  }
10666
+ /**
10667
+ * getSelectedTabPosition - gets the x or y coordinates of the tab
10668
+ */
9773
10669
  getTabPosition(tab) {
9774
10670
  if (this.orientation === TabsOrientation.horizontal) {
9775
10671
  return this.previousActiveTabData.x - (tab.getBoundingClientRect().x - this.getBoundingClientRect().x);
9776
10672
  } else return this.previousActiveTabData.y - (tab.getBoundingClientRect().y - this.getBoundingClientRect().y);
9777
10673
  }
10674
+ /**
10675
+ * getSelectedTabScale - gets the scale of the tab
10676
+ */
9778
10677
  getTabScale(tab) {
9779
10678
  if (this.orientation === TabsOrientation.horizontal) {
9780
10679
  return this.previousActiveTabData.width / tab.getBoundingClientRect().width;
9781
10680
  } else return this.previousActiveTabData.height / tab.getBoundingClientRect().height;
9782
10681
  }
10682
+ /**
10683
+ * applyUpdatedCSSValues
10684
+ *
10685
+ * calculates and applies updated values to CSS variables
10686
+ * @param tab
10687
+ */
9783
10688
  applyUpdatedCSSValues(tab) {
9784
10689
  this.calculateAnimationProperties(tab);
9785
10690
  this.setTabScaleCSSVar();
9786
10691
  this.setTabOffsetCSSVar();
9787
10692
  }
10693
+ /**
10694
+ * animationLoop
10695
+ * runs through all the operations required for setting the tab active indicator to its starting location, ending location, and applying the animated css class to the tab.
10696
+ * @param tab
10697
+ */
9788
10698
  animationLoop(tab) {
9789
10699
  tab.setAttribute("data-animate", "false");
9790
10700
  this.applyUpdatedCSSValues(tab);
@@ -9792,12 +10702,15 @@ class Tabs extends BaseTabs {
9792
10702
  this.applyUpdatedCSSValues(tab);
9793
10703
  tab.setAttribute("data-animate", "true");
9794
10704
  }
10705
+ /**
10706
+ * setTabData
10707
+ * sets the data from the active tab onto the class. used for making all the animation calculations for the active tab indicator.
10708
+ */
9795
10709
  setTabData() {
9796
- var _a, _b, _c, _d;
9797
10710
  if (this.tabs && this.tabs.length > 0) {
9798
10711
  const tabs = this.tabs;
9799
10712
  const activeTab = this.activetab || tabs[0];
9800
- const activeRect = activeTab == null ? void 0 : activeTab.getBoundingClientRect();
10713
+ const activeRect = activeTab?.getBoundingClientRect();
9801
10714
  const parentRect = this.getBoundingClientRect();
9802
10715
  this.activeTabData = {
9803
10716
  x: activeRect.x - parentRect.x,
@@ -9805,7 +10718,7 @@ class Tabs extends BaseTabs {
9805
10718
  height: activeRect.height,
9806
10719
  width: activeRect.width
9807
10720
  };
9808
- if (((_a = this.previousActiveTabData) == null ? void 0 : _a.x) !== ((_b = this.activeTabData) == null ? void 0 : _b.x) && ((_c = this.previousActiveTabData) == null ? void 0 : _c.y) !== ((_d = this.activeTabData) == null ? void 0 : _d.y)) {
10721
+ if (this.previousActiveTabData?.x !== this.activeTabData?.x && this.previousActiveTabData?.y !== this.activeTabData?.y) {
9809
10722
  this.previousActiveTabData = this.activeTabData;
9810
10723
  }
9811
10724
  }
@@ -9952,10 +10865,25 @@ const TextInputAppearance = {
9952
10865
  filledDarker: "filled-darker"
9953
10866
  };
9954
10867
  const TextInputType = {
10868
+ /**
10869
+ * An email TextInput
10870
+ */
9955
10871
  email: "email",
10872
+ /**
10873
+ * A password TextInput
10874
+ */
9956
10875
  password: "password",
10876
+ /**
10877
+ * A telephone TextInput
10878
+ */
9957
10879
  tel: "tel",
10880
+ /**
10881
+ * A text TextInput
10882
+ */
9958
10883
  text: "text",
10884
+ /**
10885
+ * A URL TextInput
10886
+ */
9959
10887
  url: "url"
9960
10888
  };
9961
10889
 
@@ -10037,6 +10965,9 @@ class TextInput extends FormAssociatedTextField {
10037
10965
  this.proxy.spellcheck = this.spellcheck;
10038
10966
  }
10039
10967
  }
10968
+ /**
10969
+ * @internal
10970
+ */
10040
10971
  connectedCallback() {
10041
10972
  super.connectedCallback();
10042
10973
  this.proxy.setAttribute("type", this.type);
@@ -10047,16 +10978,35 @@ class TextInput extends FormAssociatedTextField {
10047
10978
  });
10048
10979
  }
10049
10980
  }
10981
+ /**
10982
+ * Selects all the text in the text field
10983
+ *
10984
+ * @public
10985
+ */
10050
10986
  select() {
10051
10987
  this.control.select();
10052
10988
  this.$emit("select");
10053
10989
  }
10990
+ /**
10991
+ * Handles the internal control's `input` event
10992
+ * @internal
10993
+ */
10054
10994
  handleTextInput() {
10055
10995
  this.value = this.control.value;
10056
10996
  }
10997
+ /**
10998
+ * Change event handler for inner control.
10999
+ * @remarks
11000
+ * "Change" events are not `composable` so they will not
11001
+ * permeate the shadow DOM boundary. This fn effectively proxies
11002
+ * the change event, emitting a `change` event whenever the internal
11003
+ * control emits a `change` event
11004
+ * @internal
11005
+ */
10057
11006
  handleChange() {
10058
11007
  this.$emit("change");
10059
11008
  }
11009
+ /** {@inheritDoc (FormAssociated:interface).validate} */
10060
11010
  validate() {
10061
11011
  super.validate(this.control);
10062
11012
  }
@@ -10121,12 +11071,29 @@ var __decorateClass = (decorators, target, key, kind) => {
10121
11071
  return result;
10122
11072
  };
10123
11073
  class ToggleButton extends Button {
11074
+ /**
11075
+ * Updates the pressed state when the `pressed` property changes.
11076
+ *
11077
+ * @internal
11078
+ */
10124
11079
  pressedChanged() {
10125
11080
  this.setPressedState();
10126
11081
  }
11082
+ /**
11083
+ * Updates the pressed state when the `mixed` property changes.
11084
+ *
11085
+ * @param previous - the previous mixed state
11086
+ * @param next - the current mixed state
11087
+ * @internal
11088
+ */
10127
11089
  mixedChanged() {
10128
11090
  this.setPressedState();
10129
11091
  }
11092
+ /**
11093
+ * Toggles the pressed state of the button.
11094
+ *
11095
+ * @override
11096
+ */
10130
11097
  press() {
10131
11098
  this.pressed = !this.pressed;
10132
11099
  }
@@ -10134,6 +11101,11 @@ class ToggleButton extends Button {
10134
11101
  super.connectedCallback();
10135
11102
  this.setPressedState();
10136
11103
  }
11104
+ /**
11105
+ * Sets the `aria-pressed` attribute based on the `pressed` and `mixed` properties.
11106
+ *
11107
+ * @internal
11108
+ */
10137
11109
  setPressedState() {
10138
11110
  if (this.$fastController.isConnected) {
10139
11111
  const ariaPressed = `${this.mixed ? "mixed" : !!this.pressed}`;
@@ -10179,4 +11151,4 @@ const setThemeFor = (element, theme) => {
10179
11151
  }
10180
11152
  };
10181
11153
 
10182
- export { Accordion, AccordionExpandMode, AccordionItem, AccordionItemExpandIconPosition, AccordionItemSize, AnchorButton, AnchorButtonAppearance, definition$q as AnchorButtonDefinition, AnchorButtonShape, AnchorButtonSize, template$q as AnchorButtonTemplate, AnchorTarget, Avatar, AvatarActive, AvatarAppearance, AvatarColor, definition$p as AvatarDefinition, AvatarNamedColor, AvatarShape, AvatarSize, styles$o as AvatarStyles, template$p as AvatarTemplate, Badge, BadgeAppearance, BadgeColor, definition$o as BadgeDefinition, BadgeShape, BadgeSize, styles$n as BadgeStyles, template$o as BadgeTemplate, Button, ButtonAppearance, definition$n as ButtonDefinition, ButtonShape, ButtonSize, styles$m as ButtonStyles, template$n as ButtonTemplate, ButtonType, Checkbox, definition$m as CheckboxDefinition, CheckboxLabelPosition, CheckboxShape, CheckboxSize, styles$l as CheckboxStyles, template$m as CheckboxTemplate, CompoundButton, CompoundButtonAppearance, definition$l as CompoundButtonDefinition, CompoundButtonShape, CompoundButtonSize, styles$k as CompoundButtonStyles, template$l as CompoundButtonTemplate, CounterBadge, CounterBadgeAppearance, CounterBadgeColor, definition$k as CounterBadgeDefinition, CounterBadgeShape, CounterBadgeSize, styles$j as CounterBadgeStyles, template$k as CounterBadgeTemplate, Dialog, definition$j as DialogDefinition, DialogModalType, styles$i as DialogStyles, template$j as DialogTemplate, Divider, DividerAlignContent, DividerAppearance, definition$i as DividerDefinition, DividerOrientation, DividerRole, styles$h as DividerStyles, template$i as DividerTemplate, FluentDesignSystem, Image, definition$h as ImageDefinition, ImageFit, ImageShape, styles$g as ImageStyles, template$h as ImageTemplate, Label, definition$g as LabelDefinition, LabelSize, styles$f as LabelStyles, template$g as LabelTemplate, LabelWeight, Menu, MenuButton, MenuButtonAppearance, definition$e as MenuButtonDefinition, MenuButtonShape, MenuButtonSize, styles$m as MenuButtonStyles, template$e as MenuButtonTemplate, definition$f as MenuDefinition, MenuItem, definition$d as MenuItemDefinition, MenuItemRole, styles$d as MenuItemStyles, template$d as MenuItemTemplate, MenuList, definition$c as MenuListDefinition, styles$c as MenuListStyles, template$c as MenuListTemplate, styles$e as MenuStyles, template$f as MenuTemplate, ProgressBar, definition$b as ProgressBarDefinition, ProgressBarShape, styles$b as ProgressBarStyles, template$b as ProgressBarTemplate, ProgressBarThickness, ProgressBarValidationState, Radio, definition$a as RadioDefinition, RadioGroup, definition$9 as RadioGroupDefinition, RadioGroupOrientation, styles$9 as RadioGroupStyles, template$9 as RadioGroupTemplate, styles$a as RadioStyles, template$a as RadioTemplate, Slider, definition$8 as SliderDefinition, SliderMode, SliderOrientation, SliderSize, styles$8 as SliderStyles, template$8 as SliderTemplate, Spinner, SpinnerAppearance, definition$7 as SpinnerDefinition, SpinnerSize, styles$7 as SpinnerStyles, template$7 as SpinnerTemplate, Switch, definition$6 as SwitchDefinition, SwitchLabelPosition, styles$6 as SwitchStyles, template$6 as SwitchTemplate, Tab, definition$5 as TabDefinition, TabPanel, definition$4 as TabPanelDefinition, styles$4 as TabPanelStyles, template$4 as TabPanelTemplate, styles$5 as TabStyles, template$5 as TabTemplate, Tabs, TabsAppearance, definition$3 as TabsDefinition, TabsOrientation, TabsSize, styles$3 as TabsStyles, template$3 as TabsTemplate, Text, TextAlign, definition$2 as TextDefinition, TextFont, TextInput, TextInputAppearance, TextInputControlSize, definition$1 as TextInputDefinition, styles$1 as TextInputStyles, template$1 as TextInputTemplate, TextInputType, TextSize, styles$2 as TextStyles, template$2 as TextTemplate, TextWeight, ToggleButton, ToggleButtonAppearance, definition as ToggleButtonDefinition, ToggleButtonShape, ToggleButtonSize, styles as ToggleButtonStyles, template as ToggleButtonTemplate, definition$s as accordionDefinition, definition$r as accordionItemDefinition, styles$q as accordionItemStyles, template$r as accordionItemTemplate, styles$r as accordionStyles, template$s as accordionTemplate, borderRadiusCircular, borderRadiusLarge, borderRadiusMedium, borderRadiusNone, borderRadiusSmall, borderRadiusXLarge, colorBackgroundOverlay, colorBrandBackground, colorBrandBackground2, colorBrandBackgroundHover, colorBrandBackgroundInverted, colorBrandBackgroundInvertedHover, colorBrandBackgroundInvertedPressed, colorBrandBackgroundInvertedSelected, colorBrandBackgroundPressed, colorBrandBackgroundSelected, colorBrandBackgroundStatic, colorBrandForeground1, colorBrandForeground2, colorBrandForegroundInverted, colorBrandForegroundInvertedHover, colorBrandForegroundInvertedPressed, colorBrandForegroundLink, colorBrandForegroundLinkHover, colorBrandForegroundLinkPressed, colorBrandForegroundLinkSelected, colorBrandForegroundOnLight, colorBrandForegroundOnLightHover, colorBrandForegroundOnLightPressed, colorBrandForegroundOnLightSelected, colorBrandShadowAmbient, colorBrandShadowKey, colorBrandStroke1, colorBrandStroke2, colorCompoundBrandBackground, colorCompoundBrandBackgroundHover, colorCompoundBrandBackgroundPressed, colorCompoundBrandForeground1, colorCompoundBrandForeground1Hover, colorCompoundBrandForeground1Pressed, colorCompoundBrandStroke, colorCompoundBrandStrokeHover, colorCompoundBrandStrokePressed, colorNeutralBackground1, colorNeutralBackground1Hover, colorNeutralBackground1Pressed, colorNeutralBackground1Selected, colorNeutralBackground2, colorNeutralBackground2Hover, colorNeutralBackground2Pressed, colorNeutralBackground2Selected, colorNeutralBackground3, colorNeutralBackground3Hover, colorNeutralBackground3Pressed, colorNeutralBackground3Selected, colorNeutralBackground4, colorNeutralBackground4Hover, colorNeutralBackground4Pressed, colorNeutralBackground4Selected, colorNeutralBackground5, colorNeutralBackground5Hover, colorNeutralBackground5Pressed, colorNeutralBackground5Selected, colorNeutralBackground6, colorNeutralBackgroundDisabled, colorNeutralBackgroundInverted, colorNeutralBackgroundInvertedDisabled, colorNeutralBackgroundStatic, colorNeutralForeground1, colorNeutralForeground1Hover, colorNeutralForeground1Pressed, colorNeutralForeground1Selected, colorNeutralForeground1Static, colorNeutralForeground2, colorNeutralForeground2BrandHover, colorNeutralForeground2BrandPressed, colorNeutralForeground2BrandSelected, colorNeutralForeground2Hover, colorNeutralForeground2Link, colorNeutralForeground2LinkHover, colorNeutralForeground2LinkPressed, colorNeutralForeground2LinkSelected, colorNeutralForeground2Pressed, colorNeutralForeground2Selected, colorNeutralForeground3, colorNeutralForeground3BrandHover, colorNeutralForeground3BrandPressed, colorNeutralForeground3BrandSelected, colorNeutralForeground3Hover, colorNeutralForeground3Pressed, colorNeutralForeground3Selected, colorNeutralForeground4, colorNeutralForegroundDisabled, colorNeutralForegroundInverted, colorNeutralForegroundInverted2, colorNeutralForegroundInvertedDisabled, colorNeutralForegroundInvertedHover, colorNeutralForegroundInvertedLink, colorNeutralForegroundInvertedLinkHover, colorNeutralForegroundInvertedLinkPressed, colorNeutralForegroundInvertedLinkSelected, colorNeutralForegroundInvertedPressed, colorNeutralForegroundInvertedSelected, colorNeutralForegroundOnBrand, colorNeutralForegroundStaticInverted, colorNeutralShadowAmbient, colorNeutralShadowAmbientDarker, colorNeutralShadowAmbientLighter, colorNeutralShadowKey, colorNeutralShadowKeyDarker, colorNeutralShadowKeyLighter, colorNeutralStencil1, colorNeutralStencil1Alpha, colorNeutralStencil2, colorNeutralStencil2Alpha, colorNeutralStroke1, colorNeutralStroke1Hover, colorNeutralStroke1Pressed, colorNeutralStroke1Selected, colorNeutralStroke2, colorNeutralStroke3, colorNeutralStrokeAccessible, colorNeutralStrokeAccessibleHover, colorNeutralStrokeAccessiblePressed, colorNeutralStrokeAccessibleSelected, colorNeutralStrokeDisabled, colorNeutralStrokeInvertedDisabled, colorNeutralStrokeOnBrand, colorNeutralStrokeOnBrand2, colorNeutralStrokeOnBrand2Hover, colorNeutralStrokeOnBrand2Pressed, colorNeutralStrokeOnBrand2Selected, colorPaletteAnchorBackground2, colorPaletteAnchorBorderActive, colorPaletteAnchorForeground2, colorPaletteBeigeBackground2, colorPaletteBeigeBorderActive, colorPaletteBeigeForeground2, colorPaletteBerryBackground1, colorPaletteBerryBackground2, colorPaletteBerryBackground3, colorPaletteBerryBorder1, colorPaletteBerryBorder2, colorPaletteBerryBorderActive, colorPaletteBerryForeground1, colorPaletteBerryForeground2, colorPaletteBerryForeground3, colorPaletteBlueBackground2, colorPaletteBlueBorderActive, colorPaletteBlueForeground2, colorPaletteBrassBackground2, colorPaletteBrassBorderActive, colorPaletteBrassForeground2, colorPaletteBrownBackground2, colorPaletteBrownBorderActive, colorPaletteBrownForeground2, colorPaletteCornflowerBackground2, colorPaletteCornflowerBorderActive, colorPaletteCornflowerForeground2, colorPaletteCranberryBackground2, colorPaletteCranberryBorderActive, colorPaletteCranberryForeground2, colorPaletteDarkGreenBackground2, colorPaletteDarkGreenBorderActive, colorPaletteDarkGreenForeground2, colorPaletteDarkOrangeBackground1, colorPaletteDarkOrangeBackground2, colorPaletteDarkOrangeBackground3, colorPaletteDarkOrangeBorder1, colorPaletteDarkOrangeBorder2, colorPaletteDarkOrangeBorderActive, colorPaletteDarkOrangeForeground1, colorPaletteDarkOrangeForeground2, colorPaletteDarkOrangeForeground3, colorPaletteDarkRedBackground2, colorPaletteDarkRedBorderActive, colorPaletteDarkRedForeground2, colorPaletteForestBackground2, colorPaletteForestBorderActive, colorPaletteForestForeground2, colorPaletteGoldBackground2, colorPaletteGoldBorderActive, colorPaletteGoldForeground2, colorPaletteGrapeBackground2, colorPaletteGrapeBorderActive, colorPaletteGrapeForeground2, colorPaletteGreenBackground1, colorPaletteGreenBackground2, colorPaletteGreenBackground3, colorPaletteGreenBorder1, colorPaletteGreenBorder2, colorPaletteGreenBorderActive, colorPaletteGreenForeground1, colorPaletteGreenForeground2, colorPaletteGreenForeground3, colorPaletteGreenForegroundInverted, colorPaletteLavenderBackground2, colorPaletteLavenderBorderActive, colorPaletteLavenderForeground2, colorPaletteLightGreenBackground1, colorPaletteLightGreenBackground2, colorPaletteLightGreenBackground3, colorPaletteLightGreenBorder1, colorPaletteLightGreenBorder2, colorPaletteLightGreenBorderActive, colorPaletteLightGreenForeground1, colorPaletteLightGreenForeground2, colorPaletteLightGreenForeground3, colorPaletteLightTealBackground2, colorPaletteLightTealBorderActive, colorPaletteLightTealForeground2, colorPaletteLilacBackground2, colorPaletteLilacBorderActive, colorPaletteLilacForeground2, colorPaletteMagentaBackground2, colorPaletteMagentaBorderActive, colorPaletteMagentaForeground2, colorPaletteMarigoldBackground1, colorPaletteMarigoldBackground2, colorPaletteMarigoldBackground3, colorPaletteMarigoldBorder1, colorPaletteMarigoldBorder2, colorPaletteMarigoldBorderActive, colorPaletteMarigoldForeground1, colorPaletteMarigoldForeground2, colorPaletteMarigoldForeground3, colorPaletteMinkBackground2, colorPaletteMinkBorderActive, colorPaletteMinkForeground2, colorPaletteNavyBackground2, colorPaletteNavyBorderActive, colorPaletteNavyForeground2, colorPalettePeachBackground2, colorPalettePeachBorderActive, colorPalettePeachForeground2, colorPalettePinkBackground2, colorPalettePinkBorderActive, colorPalettePinkForeground2, colorPalettePlatinumBackground2, colorPalettePlatinumBorderActive, colorPalettePlatinumForeground2, colorPalettePlumBackground2, colorPalettePlumBorderActive, colorPalettePlumForeground2, colorPalettePumpkinBackground2, colorPalettePumpkinBorderActive, colorPalettePumpkinForeground2, colorPalettePurpleBackground2, colorPalettePurpleBorderActive, colorPalettePurpleForeground2, colorPaletteRedBackground1, colorPaletteRedBackground2, colorPaletteRedBackground3, colorPaletteRedBorder1, colorPaletteRedBorder2, colorPaletteRedBorderActive, colorPaletteRedForeground1, colorPaletteRedForeground2, colorPaletteRedForeground3, colorPaletteRedForegroundInverted, colorPaletteRoyalBlueBackground2, colorPaletteRoyalBlueBorderActive, colorPaletteRoyalBlueForeground2, colorPaletteSeafoamBackground2, colorPaletteSeafoamBorderActive, colorPaletteSeafoamForeground2, colorPaletteSteelBackground2, colorPaletteSteelBorderActive, colorPaletteSteelForeground2, colorPaletteTealBackground2, colorPaletteTealBorderActive, colorPaletteTealForeground2, colorPaletteYellowBackground1, colorPaletteYellowBackground2, colorPaletteYellowBackground3, colorPaletteYellowBorder1, colorPaletteYellowBorder2, colorPaletteYellowBorderActive, colorPaletteYellowForeground1, colorPaletteYellowForeground2, colorPaletteYellowForeground3, colorPaletteYellowForegroundInverted, colorScrollbarOverlay, colorStrokeFocus1, colorStrokeFocus2, colorSubtleBackground, colorSubtleBackgroundHover, colorSubtleBackgroundInverted, colorSubtleBackgroundInvertedHover, colorSubtleBackgroundInvertedPressed, colorSubtleBackgroundInvertedSelected, colorSubtleBackgroundLightAlphaHover, colorSubtleBackgroundLightAlphaPressed, colorSubtleBackgroundLightAlphaSelected, colorSubtleBackgroundPressed, colorSubtleBackgroundSelected, colorTransparentBackground, colorTransparentBackgroundHover, colorTransparentBackgroundPressed, colorTransparentBackgroundSelected, colorTransparentStroke, colorTransparentStrokeDisabled, colorTransparentStrokeInteractive, curveAccelerateMax, curveAccelerateMid, curveAccelerateMin, curveDecelerateMax, curveDecelerateMid, curveDecelerateMin, curveEasyEase, curveEasyEaseMax, curveLinear, darkModeStylesheetBehavior, display, durationFast, durationFaster, durationNormal, durationSlow, durationSlower, durationUltraFast, durationUltraSlow, fontFamilyBase, fontFamilyMonospace, fontFamilyNumeric, fontSizeBase100, fontSizeBase200, fontSizeBase300, fontSizeBase400, fontSizeBase500, fontSizeBase600, fontSizeHero1000, fontSizeHero700, fontSizeHero800, fontSizeHero900, fontWeightBold, fontWeightMedium, fontWeightRegular, fontWeightSemibold, forcedColorsStylesheetBehavior, getDirection, lightModeStylesheetBehavior, lineHeightBase100, lineHeightBase200, lineHeightBase300, lineHeightBase400, lineHeightBase500, lineHeightBase600, lineHeightHero1000, lineHeightHero700, lineHeightHero800, lineHeightHero900, roleForMenuItem, setTheme, setThemeFor, shadow16, shadow16Brand, shadow2, shadow28, shadow28Brand, shadow2Brand, shadow4, shadow4Brand, shadow64, shadow64Brand, shadow8, shadow8Brand, spacingHorizontalL, spacingHorizontalM, spacingHorizontalMNudge, spacingHorizontalNone, spacingHorizontalS, spacingHorizontalSNudge, spacingHorizontalXL, spacingHorizontalXS, spacingHorizontalXXL, spacingHorizontalXXS, spacingHorizontalXXXL, spacingVerticalL, spacingVerticalM, spacingVerticalMNudge, spacingVerticalNone, spacingVerticalS, spacingVerticalSNudge, spacingVerticalXL, spacingVerticalXS, spacingVerticalXXL, spacingVerticalXXS, spacingVerticalXXXL, strokeWidthThick, strokeWidthThicker, strokeWidthThickest, strokeWidthThin };
11154
+ export { Accordion, AccordionExpandMode, AccordionItem, AccordionItemExpandIconPosition, AccordionItemSize, AnchorButton, AnchorButtonAppearance, definition$q as AnchorButtonDefinition, AnchorButtonShape, AnchorButtonSize, template$q as AnchorButtonTemplate, AnchorTarget, Avatar, AvatarActive, AvatarAppearance, AvatarColor, definition$p as AvatarDefinition, AvatarNamedColor, AvatarShape, AvatarSize, styles$o as AvatarStyles, template$p as AvatarTemplate, Badge, BadgeAppearance, BadgeColor, definition$o as BadgeDefinition, BadgeShape, BadgeSize, styles$n as BadgeStyles, template$o as BadgeTemplate, Button, ButtonAppearance, definition$n as ButtonDefinition, ButtonShape, ButtonSize, styles$m as ButtonStyles, template$n as ButtonTemplate, ButtonType, Checkbox, definition$m as CheckboxDefinition, CheckboxLabelPosition, CheckboxShape, CheckboxSize, styles$l as CheckboxStyles, template$m as CheckboxTemplate, CompoundButton, CompoundButtonAppearance, definition$l as CompoundButtonDefinition, CompoundButtonShape, CompoundButtonSize, styles$k as CompoundButtonStyles, template$l as CompoundButtonTemplate, CounterBadge, CounterBadgeAppearance, CounterBadgeColor, definition$k as CounterBadgeDefinition, CounterBadgeShape, CounterBadgeSize, styles$j as CounterBadgeStyles, template$k as CounterBadgeTemplate, Dialog, definition$j as DialogDefinition, DialogModalType, styles$i as DialogStyles, template$j as DialogTemplate, Divider, DividerAlignContent, DividerAppearance, definition$i as DividerDefinition, DividerOrientation, DividerRole, styles$h as DividerStyles, template$i as DividerTemplate, FluentDesignSystem, Image, definition$h as ImageDefinition, ImageFit, ImageShape, styles$g as ImageStyles, template$h as ImageTemplate, Label, definition$g as LabelDefinition, LabelSize, styles$f as LabelStyles, template$g as LabelTemplate, LabelWeight, Menu, MenuButton, MenuButtonAppearance, definition$e as MenuButtonDefinition, MenuButtonShape, MenuButtonSize, styles$m as MenuButtonStyles, template$e as MenuButtonTemplate, definition$f as MenuDefinition, MenuItem, definition$d as MenuItemDefinition, MenuItemRole, styles$d as MenuItemStyles, template$d as MenuItemTemplate, MenuList, definition$c as MenuListDefinition, styles$c as MenuListStyles, template$c as MenuListTemplate, styles$e as MenuStyles, template$f as MenuTemplate, ProgressBar, definition$b as ProgressBarDefinition, ProgressBarShape, styles$b as ProgressBarStyles, template$b as ProgressBarTemplate, ProgressBarThickness, ProgressBarValidationState, Radio, definition$a as RadioDefinition, RadioGroup, definition$9 as RadioGroupDefinition, RadioGroupOrientation, styles$9 as RadioGroupStyles, template$9 as RadioGroupTemplate, styles$a as RadioStyles, template$a as RadioTemplate, Slider, definition$8 as SliderDefinition, SliderMode, SliderOrientation, SliderSize, styles$8 as SliderStyles, template$8 as SliderTemplate, Spinner, SpinnerAppearance, definition$7 as SpinnerDefinition, SpinnerSize, styles$7 as SpinnerStyles, template$7 as SpinnerTemplate, Switch, definition$6 as SwitchDefinition, SwitchLabelPosition, styles$6 as SwitchStyles, template$6 as SwitchTemplate, Tab, definition$5 as TabDefinition, TabPanel, definition$4 as TabPanelDefinition, styles$4 as TabPanelStyles, template$4 as TabPanelTemplate, styles$5 as TabStyles, template$5 as TabTemplate, Tabs, TabsAppearance, definition$3 as TabsDefinition, TabsOrientation, TabsSize, styles$3 as TabsStyles, template$3 as TabsTemplate, Text, TextAlign, definition$2 as TextDefinition, TextFont, TextInput, TextInputAppearance, TextInputControlSize, definition$1 as TextInputDefinition, styles$1 as TextInputStyles, template$1 as TextInputTemplate, TextInputType, TextSize, styles$2 as TextStyles, template$2 as TextTemplate, TextWeight, ToggleButton, ToggleButtonAppearance, definition as ToggleButtonDefinition, ToggleButtonShape, ToggleButtonSize, styles as ToggleButtonStyles, template as ToggleButtonTemplate, definition$s as accordionDefinition, definition$r as accordionItemDefinition, styles$q as accordionItemStyles, template$r as accordionItemTemplate, styles$r as accordionStyles, template$s as accordionTemplate, borderRadiusCircular, borderRadiusLarge, borderRadiusMedium, borderRadiusNone, borderRadiusSmall, borderRadiusXLarge, colorBackgroundOverlay, colorBrandBackground, colorBrandBackground2, colorBrandBackground2Hover, colorBrandBackground2Pressed, colorBrandBackground3Static, colorBrandBackground4Static, colorBrandBackgroundHover, colorBrandBackgroundInverted, colorBrandBackgroundInvertedHover, colorBrandBackgroundInvertedPressed, colorBrandBackgroundInvertedSelected, colorBrandBackgroundPressed, colorBrandBackgroundSelected, colorBrandBackgroundStatic, colorBrandForeground1, colorBrandForeground2, colorBrandForeground2Hover, colorBrandForeground2Pressed, colorBrandForegroundInverted, colorBrandForegroundInvertedHover, colorBrandForegroundInvertedPressed, colorBrandForegroundLink, colorBrandForegroundLinkHover, colorBrandForegroundLinkPressed, colorBrandForegroundLinkSelected, colorBrandForegroundOnLight, colorBrandForegroundOnLightHover, colorBrandForegroundOnLightPressed, colorBrandForegroundOnLightSelected, colorBrandShadowAmbient, colorBrandShadowKey, colorBrandStroke1, colorBrandStroke2, colorBrandStroke2Contrast, colorBrandStroke2Hover, colorBrandStroke2Pressed, colorCompoundBrandBackground, colorCompoundBrandBackgroundHover, colorCompoundBrandBackgroundPressed, colorCompoundBrandForeground1, colorCompoundBrandForeground1Hover, colorCompoundBrandForeground1Pressed, colorCompoundBrandStroke, colorCompoundBrandStrokeHover, colorCompoundBrandStrokePressed, colorNeutralBackground1, colorNeutralBackground1Hover, colorNeutralBackground1Pressed, colorNeutralBackground1Selected, colorNeutralBackground2, colorNeutralBackground2Hover, colorNeutralBackground2Pressed, colorNeutralBackground2Selected, colorNeutralBackground3, colorNeutralBackground3Hover, colorNeutralBackground3Pressed, colorNeutralBackground3Selected, colorNeutralBackground4, colorNeutralBackground4Hover, colorNeutralBackground4Pressed, colorNeutralBackground4Selected, colorNeutralBackground5, colorNeutralBackground5Hover, colorNeutralBackground5Pressed, colorNeutralBackground5Selected, colorNeutralBackground6, colorNeutralBackgroundAlpha, colorNeutralBackgroundAlpha2, colorNeutralBackgroundDisabled, colorNeutralBackgroundInverted, colorNeutralBackgroundInvertedDisabled, colorNeutralBackgroundStatic, colorNeutralCardBackground, colorNeutralCardBackgroundDisabled, colorNeutralCardBackgroundHover, colorNeutralCardBackgroundPressed, colorNeutralCardBackgroundSelected, colorNeutralForeground1, colorNeutralForeground1Hover, colorNeutralForeground1Pressed, colorNeutralForeground1Selected, colorNeutralForeground1Static, colorNeutralForeground2, colorNeutralForeground2BrandHover, colorNeutralForeground2BrandPressed, colorNeutralForeground2BrandSelected, colorNeutralForeground2Hover, colorNeutralForeground2Link, colorNeutralForeground2LinkHover, colorNeutralForeground2LinkPressed, colorNeutralForeground2LinkSelected, colorNeutralForeground2Pressed, colorNeutralForeground2Selected, colorNeutralForeground3, colorNeutralForeground3BrandHover, colorNeutralForeground3BrandPressed, colorNeutralForeground3BrandSelected, colorNeutralForeground3Hover, colorNeutralForeground3Pressed, colorNeutralForeground3Selected, colorNeutralForeground4, colorNeutralForegroundDisabled, colorNeutralForegroundInverted, colorNeutralForegroundInverted2, colorNeutralForegroundInvertedDisabled, colorNeutralForegroundInvertedHover, colorNeutralForegroundInvertedLink, colorNeutralForegroundInvertedLinkHover, colorNeutralForegroundInvertedLinkPressed, colorNeutralForegroundInvertedLinkSelected, colorNeutralForegroundInvertedPressed, colorNeutralForegroundInvertedSelected, colorNeutralForegroundOnBrand, colorNeutralForegroundStaticInverted, colorNeutralShadowAmbient, colorNeutralShadowAmbientDarker, colorNeutralShadowAmbientLighter, colorNeutralShadowKey, colorNeutralShadowKeyDarker, colorNeutralShadowKeyLighter, colorNeutralStencil1, colorNeutralStencil1Alpha, colorNeutralStencil2, colorNeutralStencil2Alpha, colorNeutralStroke1, colorNeutralStroke1Hover, colorNeutralStroke1Pressed, colorNeutralStroke1Selected, colorNeutralStroke2, colorNeutralStroke3, colorNeutralStrokeAccessible, colorNeutralStrokeAccessibleHover, colorNeutralStrokeAccessiblePressed, colorNeutralStrokeAccessibleSelected, colorNeutralStrokeAlpha, colorNeutralStrokeAlpha2, colorNeutralStrokeDisabled, colorNeutralStrokeInvertedDisabled, colorNeutralStrokeOnBrand, colorNeutralStrokeOnBrand2, colorNeutralStrokeOnBrand2Hover, colorNeutralStrokeOnBrand2Pressed, colorNeutralStrokeOnBrand2Selected, colorNeutralStrokeSubtle, colorPaletteAnchorBackground2, colorPaletteAnchorBorderActive, colorPaletteAnchorForeground2, colorPaletteBeigeBackground2, colorPaletteBeigeBorderActive, colorPaletteBeigeForeground2, colorPaletteBerryBackground1, colorPaletteBerryBackground2, colorPaletteBerryBackground3, colorPaletteBerryBorder1, colorPaletteBerryBorder2, colorPaletteBerryBorderActive, colorPaletteBerryForeground1, colorPaletteBerryForeground2, colorPaletteBerryForeground3, colorPaletteBlueBackground2, colorPaletteBlueBorderActive, colorPaletteBlueForeground2, colorPaletteBrassBackground2, colorPaletteBrassBorderActive, colorPaletteBrassForeground2, colorPaletteBrownBackground2, colorPaletteBrownBorderActive, colorPaletteBrownForeground2, colorPaletteCornflowerBackground2, colorPaletteCornflowerBorderActive, colorPaletteCornflowerForeground2, colorPaletteCranberryBackground2, colorPaletteCranberryBorderActive, colorPaletteCranberryForeground2, colorPaletteDarkGreenBackground2, colorPaletteDarkGreenBorderActive, colorPaletteDarkGreenForeground2, colorPaletteDarkOrangeBackground1, colorPaletteDarkOrangeBackground2, colorPaletteDarkOrangeBackground3, colorPaletteDarkOrangeBorder1, colorPaletteDarkOrangeBorder2, colorPaletteDarkOrangeBorderActive, colorPaletteDarkOrangeForeground1, colorPaletteDarkOrangeForeground2, colorPaletteDarkOrangeForeground3, colorPaletteDarkRedBackground2, colorPaletteDarkRedBorderActive, colorPaletteDarkRedForeground2, colorPaletteForestBackground2, colorPaletteForestBorderActive, colorPaletteForestForeground2, colorPaletteGoldBackground2, colorPaletteGoldBorderActive, colorPaletteGoldForeground2, colorPaletteGrapeBackground2, colorPaletteGrapeBorderActive, colorPaletteGrapeForeground2, colorPaletteGreenBackground1, colorPaletteGreenBackground2, colorPaletteGreenBackground3, colorPaletteGreenBorder1, colorPaletteGreenBorder2, colorPaletteGreenBorderActive, colorPaletteGreenForeground1, colorPaletteGreenForeground2, colorPaletteGreenForeground3, colorPaletteGreenForegroundInverted, colorPaletteLavenderBackground2, colorPaletteLavenderBorderActive, colorPaletteLavenderForeground2, colorPaletteLightGreenBackground1, colorPaletteLightGreenBackground2, colorPaletteLightGreenBackground3, colorPaletteLightGreenBorder1, colorPaletteLightGreenBorder2, colorPaletteLightGreenBorderActive, colorPaletteLightGreenForeground1, colorPaletteLightGreenForeground2, colorPaletteLightGreenForeground3, colorPaletteLightTealBackground2, colorPaletteLightTealBorderActive, colorPaletteLightTealForeground2, colorPaletteLilacBackground2, colorPaletteLilacBorderActive, colorPaletteLilacForeground2, colorPaletteMagentaBackground2, colorPaletteMagentaBorderActive, colorPaletteMagentaForeground2, colorPaletteMarigoldBackground1, colorPaletteMarigoldBackground2, colorPaletteMarigoldBackground3, colorPaletteMarigoldBorder1, colorPaletteMarigoldBorder2, colorPaletteMarigoldBorderActive, colorPaletteMarigoldForeground1, colorPaletteMarigoldForeground2, colorPaletteMarigoldForeground3, colorPaletteMinkBackground2, colorPaletteMinkBorderActive, colorPaletteMinkForeground2, colorPaletteNavyBackground2, colorPaletteNavyBorderActive, colorPaletteNavyForeground2, colorPalettePeachBackground2, colorPalettePeachBorderActive, colorPalettePeachForeground2, colorPalettePinkBackground2, colorPalettePinkBorderActive, colorPalettePinkForeground2, colorPalettePlatinumBackground2, colorPalettePlatinumBorderActive, colorPalettePlatinumForeground2, colorPalettePlumBackground2, colorPalettePlumBorderActive, colorPalettePlumForeground2, colorPalettePumpkinBackground2, colorPalettePumpkinBorderActive, colorPalettePumpkinForeground2, colorPalettePurpleBackground2, colorPalettePurpleBorderActive, colorPalettePurpleForeground2, colorPaletteRedBackground1, colorPaletteRedBackground2, colorPaletteRedBackground3, colorPaletteRedBorder1, colorPaletteRedBorder2, colorPaletteRedBorderActive, colorPaletteRedForeground1, colorPaletteRedForeground2, colorPaletteRedForeground3, colorPaletteRedForegroundInverted, colorPaletteRoyalBlueBackground2, colorPaletteRoyalBlueBorderActive, colorPaletteRoyalBlueForeground2, colorPaletteSeafoamBackground2, colorPaletteSeafoamBorderActive, colorPaletteSeafoamForeground2, colorPaletteSteelBackground2, colorPaletteSteelBorderActive, colorPaletteSteelForeground2, colorPaletteTealBackground2, colorPaletteTealBorderActive, colorPaletteTealForeground2, colorPaletteYellowBackground1, colorPaletteYellowBackground2, colorPaletteYellowBackground3, colorPaletteYellowBorder1, colorPaletteYellowBorder2, colorPaletteYellowBorderActive, colorPaletteYellowForeground1, colorPaletteYellowForeground2, colorPaletteYellowForeground3, colorPaletteYellowForegroundInverted, colorScrollbarOverlay, colorStatusDangerBackground1, colorStatusDangerBackground2, colorStatusDangerBackground3, colorStatusDangerBackground3Hover, colorStatusDangerBackground3Pressed, colorStatusDangerBorder1, colorStatusDangerBorder2, colorStatusDangerBorderActive, colorStatusDangerForeground1, colorStatusDangerForeground2, colorStatusDangerForeground3, colorStatusDangerForegroundInverted, colorStatusSuccessBackground1, colorStatusSuccessBackground2, colorStatusSuccessBackground3, colorStatusSuccessBorder1, colorStatusSuccessBorder2, colorStatusSuccessBorderActive, colorStatusSuccessForeground1, colorStatusSuccessForeground2, colorStatusSuccessForeground3, colorStatusSuccessForegroundInverted, colorStatusWarningBackground1, colorStatusWarningBackground2, colorStatusWarningBackground3, colorStatusWarningBorder1, colorStatusWarningBorder2, colorStatusWarningBorderActive, colorStatusWarningForeground1, colorStatusWarningForeground2, colorStatusWarningForeground3, colorStatusWarningForegroundInverted, colorStrokeFocus1, colorStrokeFocus2, colorSubtleBackground, colorSubtleBackgroundHover, colorSubtleBackgroundInverted, colorSubtleBackgroundInvertedHover, colorSubtleBackgroundInvertedPressed, colorSubtleBackgroundInvertedSelected, colorSubtleBackgroundLightAlphaHover, colorSubtleBackgroundLightAlphaPressed, colorSubtleBackgroundLightAlphaSelected, colorSubtleBackgroundPressed, colorSubtleBackgroundSelected, colorTransparentBackground, colorTransparentBackgroundHover, colorTransparentBackgroundPressed, colorTransparentBackgroundSelected, colorTransparentStroke, colorTransparentStrokeDisabled, colorTransparentStrokeInteractive, curveAccelerateMax, curveAccelerateMid, curveAccelerateMin, curveDecelerateMax, curveDecelerateMid, curveDecelerateMin, curveEasyEase, curveEasyEaseMax, curveLinear, darkModeStylesheetBehavior, display, durationFast, durationFaster, durationGentle, durationNormal, durationSlow, durationSlower, durationUltraFast, durationUltraSlow, fontFamilyBase, fontFamilyMonospace, fontFamilyNumeric, fontSizeBase100, fontSizeBase200, fontSizeBase300, fontSizeBase400, fontSizeBase500, fontSizeBase600, fontSizeHero1000, fontSizeHero700, fontSizeHero800, fontSizeHero900, fontWeightBold, fontWeightMedium, fontWeightRegular, fontWeightSemibold, forcedColorsStylesheetBehavior, getDirection, lightModeStylesheetBehavior, lineHeightBase100, lineHeightBase200, lineHeightBase300, lineHeightBase400, lineHeightBase500, lineHeightBase600, lineHeightHero1000, lineHeightHero700, lineHeightHero800, lineHeightHero900, roleForMenuItem, setTheme, setThemeFor, shadow16, shadow16Brand, shadow2, shadow28, shadow28Brand, shadow2Brand, shadow4, shadow4Brand, shadow64, shadow64Brand, shadow8, shadow8Brand, spacingHorizontalL, spacingHorizontalM, spacingHorizontalMNudge, spacingHorizontalNone, spacingHorizontalS, spacingHorizontalSNudge, spacingHorizontalXL, spacingHorizontalXS, spacingHorizontalXXL, spacingHorizontalXXS, spacingHorizontalXXXL, spacingVerticalL, spacingVerticalM, spacingVerticalMNudge, spacingVerticalNone, spacingVerticalS, spacingVerticalSNudge, spacingVerticalXL, spacingVerticalXS, spacingVerticalXXL, spacingVerticalXXS, spacingVerticalXXXL, strokeWidthThick, strokeWidthThicker, strokeWidthThickest, strokeWidthThin };