@fluentui/web-components 3.0.0-beta.5 → 3.0.0-beta.6

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 (39) hide show
  1. package/CHANGELOG.md +11 -2
  2. package/dist/dts/dialog/define.d.ts +1 -0
  3. package/dist/dts/dialog/dialog.d.ts +192 -0
  4. package/dist/dts/dialog/dialog.definition.d.ts +9 -0
  5. package/dist/dts/dialog/dialog.options.d.ts +11 -0
  6. package/dist/dts/dialog/dialog.styles.d.ts +4 -0
  7. package/dist/dts/dialog/dialog.template.d.ts +7 -0
  8. package/dist/dts/dialog/index.d.ts +4 -0
  9. package/dist/dts/index.d.ts +1 -0
  10. package/dist/esm/dialog/define.js +4 -0
  11. package/dist/esm/dialog/define.js.map +1 -0
  12. package/dist/esm/dialog/dialog.definition.js +17 -0
  13. package/dist/esm/dialog/dialog.definition.js.map +1 -0
  14. package/dist/esm/dialog/dialog.js +370 -0
  15. package/dist/esm/dialog/dialog.js.map +1 -0
  16. package/dist/esm/dialog/dialog.options.js +10 -0
  17. package/dist/esm/dialog/dialog.options.js.map +1 -0
  18. package/dist/esm/dialog/dialog.styles.js +102 -0
  19. package/dist/esm/dialog/dialog.styles.js.map +1 -0
  20. package/dist/esm/dialog/dialog.template.js +61 -0
  21. package/dist/esm/dialog/dialog.template.js.map +1 -0
  22. package/dist/esm/dialog/index.js +5 -0
  23. package/dist/esm/dialog/index.js.map +1 -0
  24. package/dist/esm/index.js +1 -0
  25. package/dist/esm/index.js.map +1 -1
  26. package/dist/fluent-web-components.api.json +813 -0
  27. package/dist/storybook/{677.939f187f.iframe.bundle.js → 350.e4be85c2.iframe.bundle.js} +3 -3
  28. package/dist/storybook/{677.939f187f.iframe.bundle.js.LICENSE.txt → 350.e4be85c2.iframe.bundle.js.LICENSE.txt} +5 -0
  29. package/dist/storybook/{677.939f187f.iframe.bundle.js.map → 350.e4be85c2.iframe.bundle.js.map} +1 -1
  30. package/dist/storybook/iframe.html +1 -1
  31. package/dist/storybook/main.c651bad5.iframe.bundle.js +2 -0
  32. package/dist/storybook/project.json +1 -1
  33. package/dist/web-components.d.ts +222 -0
  34. package/dist/web-components.js +1973 -1592
  35. package/dist/web-components.min.js +103 -95
  36. package/docs/api-report.md +33 -0
  37. package/package.json +6 -1
  38. package/dist/storybook/main.49f4b1e6.iframe.bundle.js +0 -2
  39. /package/dist/storybook/{main.49f4b1e6.iframe.bundle.js.LICENSE.txt → main.c651bad5.iframe.bundle.js.LICENSE.txt} +0 -0
@@ -3832,7 +3832,7 @@ function accordionTemplate() {
3832
3832
 
3833
3833
  class Accordion extends FASTAccordion {}
3834
3834
 
3835
- const template$r = accordionTemplate();
3835
+ const template$s = accordionTemplate();
3836
3836
 
3837
3837
  /**
3838
3838
  * Determines the current localization direction of an element.
@@ -4022,7 +4022,7 @@ const whitespaceFilter = value => {
4022
4022
  return value.nodeType !== Node.TEXT_NODE || !!((_a = value.nodeValue) === null || _a === void 0 ? void 0 : _a.trim().length);
4023
4023
  };
4024
4024
 
4025
- const styles$q = css`
4025
+ const styles$r = css`
4026
4026
  ${display("flex")}
4027
4027
 
4028
4028
  :host{flex-direction:column;width:100%;contain:content}`;
@@ -4033,10 +4033,10 @@ const FluentDesignSystem = Object.freeze({
4033
4033
  registry: customElements
4034
4034
  });
4035
4035
 
4036
- const definition$r = Accordion.compose({
4036
+ const definition$s = Accordion.compose({
4037
4037
  name: `${FluentDesignSystem.prefix}-accordion`,
4038
- template: template$r,
4039
- styles: styles$q
4038
+ template: template$s,
4039
+ styles: styles$r
4040
4040
  });
4041
4041
 
4042
4042
  /**
@@ -4047,12 +4047,12 @@ function accordionItemTemplate(options = {}) {
4047
4047
  return html`<div class="heading" part="heading" role="heading" aria-level="${x => x.headinglevel}"><button class="button" part="button" ${ref("expandbutton")} ?disabled="${x => x.disabled ? "true" : void 0}" aria-expanded="${x => x.expanded}" aria-controls="${x => x.id}-panel" id="${x => x.id}" @click="${(x, c) => x.clickHandler(c.event)}"><span class="heading-content" part="heading-content"><slot name="heading"></slot></span></button>${startSlotTemplate(options)} ${endSlotTemplate(options)}<span class="icon" part="icon" aria-hidden="true"><slot name="expanded-icon">${staticallyCompose(options.expandedIcon)}</slot><slot name="collapsed-icon">${staticallyCompose(options.collapsedIcon)}</slot><span></div><div class="region" part="region" id="${x => x.id}-panel" role="region" aria-labelledby="${x => x.id}"><slot></slot></div>`;
4048
4048
  }
4049
4049
 
4050
- var __defProp$j = Object.defineProperty;
4051
- var __getOwnPropDesc$j = Object.getOwnPropertyDescriptor;
4052
- var __decorateClass$j = (decorators, target, key, kind) => {
4053
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$j(target, key) : target;
4050
+ var __defProp$k = Object.defineProperty;
4051
+ var __getOwnPropDesc$k = Object.getOwnPropertyDescriptor;
4052
+ var __decorateClass$k = (decorators, target, key, kind) => {
4053
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$k(target, key) : target;
4054
4054
  for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
4055
- if (kind && result) __defProp$j(target, key, result);
4055
+ if (kind && result) __defProp$k(target, key, result);
4056
4056
  return result;
4057
4057
  };
4058
4058
  class AccordionItem extends FASTAccordionItem {
@@ -4061,11 +4061,11 @@ class AccordionItem extends FASTAccordionItem {
4061
4061
  this.block = false;
4062
4062
  }
4063
4063
  }
4064
- __decorateClass$j([attr], AccordionItem.prototype, "size", 2);
4065
- __decorateClass$j([attr({
4064
+ __decorateClass$k([attr], AccordionItem.prototype, "size", 2);
4065
+ __decorateClass$k([attr({
4066
4066
  mode: "boolean"
4067
4067
  })], AccordionItem.prototype, "block", 2);
4068
- __decorateClass$j([attr({
4068
+ __decorateClass$k([attr({
4069
4069
  attribute: "expand-icon-position"
4070
4070
  })], AccordionItem.prototype, "expandIconPosition", 2);
4071
4071
 
@@ -5854,7 +5854,7 @@ var tokens = /*#__PURE__*/Object.freeze({
5854
5854
  shadow64Brand: shadow64Brand
5855
5855
  });
5856
5856
 
5857
- const styles$p = css`
5857
+ const styles$q = css`
5858
5858
  ${display("block")}
5859
5859
 
5860
5860
  :host{max-width:fit-content;contain:content}.heading{height:44px;display:grid;position:relative;vertical-align:middle;padding-inline:${spacingHorizontalM} ${spacingHorizontalMNudge};border-radius:${borderRadiusMedium};font-family:${fontFamilyBase};font-size:${fontSizeBase300};font-weight:${fontWeightRegular};line-height:${lineHeightBase300};grid-template-columns:auto auto 1fr auto}.heading-content{height:100%;display:flex;align-items:center}.button{box-sizing:border-box;appearance:none;border:none;outline:none;text-align:start;cursor:pointer;font-family:inherit;height:44px;color:${colorNeutralForeground1};background:${colorTransparentBackground};line-height:${lineHeightBase300};height:auto;padding:0;font-size:inherit;grid-column:auto / span 2;grid-row:1}.button::before{content:'';position:absolute;inset:0px;cursor:pointer;border-radius:${borderRadiusSmall}}.icon{display:flex;align-items:center;justify-content:center;pointer-events:none;position:relative;height:100%;padding-right:${spacingHorizontalS};grid-column:1 / span 1;grid-row:1}.region{margin:0 ${spacingHorizontalM}}::slotted([slot='start']),::slotted([slot='end']){justify-content:center;align-items:center;padding-right:${spacingHorizontalS};grid-column:2 / span 1;grid-row:1 / span 1}button:focus-visible::after{content:'';position:absolute;inset:0px;cursor:pointer;border-radius:${borderRadiusSmall};outline:none;border:2px solid ${colorStrokeFocus1};box-shadow:inset 0 0 0 1px ${colorStrokeFocus2}}:host([disabled]) .button{color:${colorNeutralForegroundDisabled}}:host([disabled]) svg{filter:invert(89%) sepia(0%) saturate(569%) hue-rotate(155deg) brightness(88%) contrast(87%)}:host([expanded]) .region{display:block}:host([expanded]) .default-collapsed-icon,:host([expanded]) ::slotted([slot='collapsed-icon']),:host(:not([expanded])) .default-expanded-icon,:host(:not([expanded])) ::slotted([slot='expanded-icon']),:host([expanded]) ::slotted([slot='end']),::slotted([slot='start']),.region{display:none}:host([expanded]) ::slotted([slot='start']),:host([expanded]) ::slotted([slot='expanded-icon']),:host(:not([expanded])) ::slotted([slot='collapsed-icon']),::slotted([slot='end']){display:flex}.heading{font-size:${fontSizeBase300};line-height:${lineHeightBase300}}:host([size='small']) .heading{font-size:${fontSizeBase200};line-height:${lineHeightBase200}}:host([size='large']) .heading{font-size:${fontSizeBase400};line-height:${lineHeightBase400}}:host([size='extra-large']) .heading{font-size:${fontSizeBase500};line-height:${lineHeightBase500}}:host([expand-icon-position='end']) :slotted(span[slot='start']),:host([expand-icon-position='end']) ::slotted(span[slot='end']){grid-column:1 / span 1;grid-row:1}:host([expand-icon-position='end']) ::slotted(span[slot='start']),:host([expand-icon-position='end']) ::slotted(span[slot='end']){grid-column:1 / span 1;grid-row:1}:host([expand-icon-position='end']) .icon{grid-column:4 / span 1;grid-row:1;display:flex;padding-left:10px;padding-right:0}:host([expand-icon-position='end']) .button{grid-column:2 / span 3;grid-row:1}:host([block]){max-width:100%}:host([expand-icon-position='end']) .heading{grid-template-columns:auto auto 28px}:host([expand-icon-position='end']) .icon{grid-column:5 / span 1}:host([block][expand-icon-position='end']) .heading{grid-template-columns:auto 1fr}:host([block][expand-icon-position='end']) .icon{grid-column:5 / span 1}`;
@@ -5885,15 +5885,15 @@ const chevronDown20Filled = html.partial(`<svg
5885
5885
  fill="currentColor"
5886
5886
  />
5887
5887
  </svg>`);
5888
- const template$q = accordionItemTemplate({
5888
+ const template$r = accordionItemTemplate({
5889
5889
  collapsedIcon: chevronRight20Filled,
5890
5890
  expandedIcon: chevronDown20Filled
5891
5891
  });
5892
5892
 
5893
- const definition$q = AccordionItem.compose({
5893
+ const definition$r = AccordionItem.compose({
5894
5894
  name: `${FluentDesignSystem.prefix}-accordion-item`,
5895
- template: template$q,
5896
- styles: styles$p
5895
+ template: template$r,
5896
+ styles: styles$q
5897
5897
  });
5898
5898
 
5899
5899
  /**
@@ -5938,12 +5938,12 @@ function anchorTemplate(options = {}) {
5938
5938
  return html`<a class="control" part="control" download="${x => x.download}" href="${x => x.href}" hreflang="${x => x.hreflang}" ping="${x => x.ping}" referrerpolicy="${x => x.referrerpolicy}" rel="${x => x.rel}" target="${x => x.target}" type="${x => x.type}" aria-atomic="${x => x.ariaAtomic}" aria-busy="${x => x.ariaBusy}" aria-controls="${x => x.ariaControls}" aria-current="${x => x.ariaCurrent}" aria-describedby="${x => x.ariaDescribedby}" aria-details="${x => x.ariaDetails}" aria-disabled="${x => x.ariaDisabled}" aria-errormessage="${x => x.ariaErrormessage}" aria-expanded="${x => x.ariaExpanded}" aria-flowto="${x => x.ariaFlowto}" aria-haspopup="${x => x.ariaHaspopup}" aria-hidden="${x => x.ariaHidden}" aria-invalid="${x => x.ariaInvalid}" aria-keyshortcuts="${x => x.ariaKeyshortcuts}" aria-label="${x => x.ariaLabel}" aria-labelledby="${x => x.ariaLabelledby}" aria-live="${x => x.ariaLive}" aria-owns="${x => x.ariaOwns}" aria-relevant="${x => x.ariaRelevant}" aria-roledescription="${x => x.ariaRoledescription}" ${ref("control")}>${startSlotTemplate(options)}<span class="content" part="content"><slot ${slotted("defaultSlottedContent")}></slot></span>${endSlotTemplate(options)}</a>`;
5939
5939
  }
5940
5940
 
5941
- var __defProp$i = Object.defineProperty;
5942
- var __getOwnPropDesc$i = Object.getOwnPropertyDescriptor;
5943
- var __decorateClass$i = (decorators, target, key, kind) => {
5944
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$i(target, key) : target;
5941
+ var __defProp$j = Object.defineProperty;
5942
+ var __getOwnPropDesc$j = Object.getOwnPropertyDescriptor;
5943
+ var __decorateClass$j = (decorators, target, key, kind) => {
5944
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$j(target, key) : target;
5945
5945
  for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
5946
- if (kind && result) __defProp$i(target, key, result);
5946
+ if (kind && result) __defProp$j(target, key, result);
5947
5947
  return result;
5948
5948
  };
5949
5949
  class AnchorButton extends FASTAnchor {
@@ -5987,17 +5987,17 @@ class AnchorButton extends FASTAnchor {
5987
5987
  this.removeEventListener("click", this.handleDisabledFocusableClick);
5988
5988
  }
5989
5989
  }
5990
- __decorateClass$i([attr], AnchorButton.prototype, "appearance", 2);
5991
- __decorateClass$i([attr], AnchorButton.prototype, "shape", 2);
5992
- __decorateClass$i([attr], AnchorButton.prototype, "size", 2);
5993
- __decorateClass$i([attr({
5990
+ __decorateClass$j([attr], AnchorButton.prototype, "appearance", 2);
5991
+ __decorateClass$j([attr], AnchorButton.prototype, "shape", 2);
5992
+ __decorateClass$j([attr], AnchorButton.prototype, "size", 2);
5993
+ __decorateClass$j([attr({
5994
5994
  attribute: "icon-only",
5995
5995
  mode: "boolean"
5996
5996
  })], AnchorButton.prototype, "iconOnly", 2);
5997
- __decorateClass$i([attr({
5997
+ __decorateClass$j([attr({
5998
5998
  mode: "boolean"
5999
5999
  })], AnchorButton.prototype, "disabled", 2);
6000
- __decorateClass$i([attr({
6000
+ __decorateClass$j([attr({
6001
6001
  attribute: "disabled-focusable",
6002
6002
  mode: "boolean"
6003
6003
  })], AnchorButton.prototype, "disabledFocusable", 2);
@@ -6024,24 +6024,24 @@ const AnchorButtonAppearance = ButtonAppearance;
6024
6024
  const AnchorButtonShape = ButtonShape;
6025
6025
  const AnchorButtonSize = ButtonSize;
6026
6026
 
6027
- const template$p = anchorTemplate();
6027
+ const template$q = anchorTemplate();
6028
6028
 
6029
- const styles$o = css`
6029
+ const styles$p = css`
6030
6030
  ${display("inline-flex")}
6031
6031
 
6032
6032
  :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}: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)
6033
6033
  .control{background-color:${colorNeutralBackgroundDisabled};border-color:${colorNeutralStrokeDisabled};color:${colorNeutralForegroundDisabled};cursor:not-allowed}`.withBehaviors(forcedColorsStylesheetBehavior(css`
6034
6034
  :host([appearance='transparent']:hover) .control{border-color:Highlight}`));
6035
6035
 
6036
- const styles$n = css`
6037
- ${styles$o}
6036
+ const styles$o = css`
6037
+ ${styles$p}
6038
6038
 
6039
6039
  .content{text-align:center}`;
6040
6040
 
6041
- const definition$p = AnchorButton.compose({
6041
+ const definition$q = AnchorButton.compose({
6042
6042
  name: `${FluentDesignSystem.prefix}-anchor-button`,
6043
- template: template$p,
6044
- styles: styles$n,
6043
+ template: template$q,
6044
+ styles: styles$o,
6045
6045
  shadowOptions: {
6046
6046
  delegatesFocus: true
6047
6047
  }
@@ -6156,12 +6156,12 @@ const AvatarSize = {
6156
6156
  _128: 128
6157
6157
  };
6158
6158
 
6159
- var __defProp$h = Object.defineProperty;
6160
- var __getOwnPropDesc$h = Object.getOwnPropertyDescriptor;
6161
- var __decorateClass$h = (decorators, target, key, kind) => {
6162
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$h(target, key) : target;
6159
+ var __defProp$i = Object.defineProperty;
6160
+ var __getOwnPropDesc$i = Object.getOwnPropertyDescriptor;
6161
+ var __decorateClass$i = (decorators, target, key, kind) => {
6162
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$i(target, key) : target;
6163
6163
  for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
6164
- if (kind && result) __defProp$h(target, key, result);
6164
+ if (kind && result) __defProp$i(target, key, result);
6165
6165
  return result;
6166
6166
  };
6167
6167
  const _Avatar = class extends FASTElement {
@@ -6189,16 +6189,16 @@ const _Avatar = class extends FASTElement {
6189
6189
  };
6190
6190
  let Avatar = _Avatar;
6191
6191
  Avatar.colors = Object.values(AvatarNamedColor);
6192
- __decorateClass$h([attr], Avatar.prototype, "name", 2);
6193
- __decorateClass$h([attr], Avatar.prototype, "initials", 2);
6194
- __decorateClass$h([attr({
6192
+ __decorateClass$i([attr], Avatar.prototype, "name", 2);
6193
+ __decorateClass$i([attr], Avatar.prototype, "initials", 2);
6194
+ __decorateClass$i([attr({
6195
6195
  converter: nullableNumberConverter
6196
6196
  })], Avatar.prototype, "size", 2);
6197
- __decorateClass$h([attr], Avatar.prototype, "shape", 2);
6198
- __decorateClass$h([attr], Avatar.prototype, "active", 2);
6199
- __decorateClass$h([attr], Avatar.prototype, "appearance", 2);
6200
- __decorateClass$h([attr], Avatar.prototype, "color", 2);
6201
- __decorateClass$h([attr({
6197
+ __decorateClass$i([attr], Avatar.prototype, "shape", 2);
6198
+ __decorateClass$i([attr], Avatar.prototype, "active", 2);
6199
+ __decorateClass$i([attr], Avatar.prototype, "appearance", 2);
6200
+ __decorateClass$i([attr], Avatar.prototype, "color", 2);
6201
+ __decorateClass$i([attr({
6202
6202
  attribute: "color-id"
6203
6203
  })], Avatar.prototype, "colorId", 2);
6204
6204
  const getHashCode = str => {
@@ -6215,7 +6215,7 @@ const defaultIconTemplate = html`<svg width="1em" height="1em" viewBox="0 0 20 2
6215
6215
  function avatarTemplate() {
6216
6216
  return html`<template role="img" data-color=${x => x.generateColor()}><slot>${x => x.name || x.initials ? x.generateInitials() : defaultIconTemplate}</slot><slot name="badge"></slot></template>`;
6217
6217
  }
6218
- const template$o = avatarTemplate();
6218
+ const template$p = avatarTemplate();
6219
6219
 
6220
6220
  const animations = {
6221
6221
  fastOutSlowInMax: curveDecelerateMax,
@@ -6228,13 +6228,13 @@ const animations = {
6228
6228
  normalEase: curveEasyEase,
6229
6229
  nullEasing: curveLinear
6230
6230
  };
6231
- const styles$m = css`
6231
+ const styles$n = css`
6232
6232
  ${display("inline-flex")} :host{position:relative;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;font-family:${fontFamilyBase};font-weight:${fontWeightSemibold};font-size:${fontSizeBase300};border-radius:${borderRadiusCircular};color:${colorNeutralForeground3};background-color:${colorNeutralBackground6};contain:layout style}.default-icon,::slotted(svg){width:20px;height:20px;font-size:20px}::slotted(img){box-sizing:border-box;width:100%;height:100%;border-radius:${borderRadiusCircular}}::slotted([slot='badge']){position:absolute;bottom:0;right:0;box-shadow:0 0 0 ${strokeWidthThin} ${colorNeutralBackground1}}:host([size='64']) ::slotted([slot='badge']),:host([size='72']) ::slotted([slot='badge']),:host([size='96']) ::slotted([slot='badge']),:host([size='120']) ::slotted([slot='badge']),:host([size='128']) ::slotted([slot='badge']){box-shadow:0 0 0 ${strokeWidthThick} ${colorNeutralBackground1}}:host([size='16']),:host([size='20']),:host([size='24']){font-size:${fontSizeBase100};font-weight:${fontWeightRegular}}:host([size='16']){width:16px;height:16px}:host([size='20']){width:20px;height:20px}:host([size='24']){width:24px;height:24px}:host([size='16']) .default-icon,:host([size='16']) ::slotted(svg){width:12px;height:12px;font-size:12px}:host([size='20']) .default-icon,:host([size='24']) .default-icon,:host([size='20']) ::slotted(svg),:host([size='24']) ::slotted(svg){width:16px;height:16px;font-size:16px}:host([size='28']){width:28px;height:28px;font-size:${fontSizeBase200}}:host([size='36']){width:36px;height:36px}:host([size='40']){width:40px;height:40px}:host([size='48']),:host([size='56']){font-size:${fontSizeBase400}}:host([size='48']){width:48px;height:48px}:host([size='48']) .default-icon,:host([size='48']) ::slotted(svg){width:24px;height:24px;font-size:24px}:host([size='56']){width:56px;height:56px}:host([size='56']) .default-icon,:host([size='56']) ::slotted(svg){width:28px;height:28px;font-size:28px}:host([size='64']),:host([size='72']),:host([size='96']){font-size:${fontSizeBase500}}:host([size='64']) .default-icon,:host([size='72']) .default-icon,:host([size='64']) ::slotted(svg),:host([size='72']) ::slotted(svg){width:32px;height:32px;font-size:32px}:host([size='64']){width:64px;height:64px}:host([size='72']){width:72px;height:72px}:host([size='96']){width:96px;height:96px}:host([size='96']) .default-icon,:host([size='120']) .default-icon,:host([size='128']) .default-icon,:host([size='96']) ::slotted(svg),:host([size='120']) ::slotted(svg),:host([size='128']) ::slotted(svg){width:48px;height:48px;font-size:48px}:host([size='120']),:host([size='128']){font-size:${fontSizeBase600}}:host([size='120']){width:120px;height:120px}:host([size='128']){width:128px;height:128px}:host([shape='square']){border-radius:${borderRadiusMedium}}:host([shape='square'][size='20']),:host([shape='square'][size='24']){border-radius:${borderRadiusSmall}}:host([shape='square'][size='56']),:host([shape='square'][size='64']),:host([shape='square'][size='72']){border-radius:${borderRadiusLarge}}:host([shape='square'][size='96']),:host([shape='square'][size='120']),:host([shape='square'][size='128']){border-radius:${borderRadiusXLarge}}:host([data-color='brand']){color:${colorNeutralForegroundStaticInverted};background-color:${colorBrandBackgroundStatic}}:host([data-color='dark-red']){color:${colorPaletteDarkRedForeground2};background-color:${colorPaletteDarkRedBackground2}}:host([data-color='cranberry']){color:${colorPaletteCranberryForeground2};background-color:${colorPaletteCranberryBackground2}}:host([data-color='red']){color:${colorPaletteRedForeground2};background-color:${colorPaletteRedBackground2}}:host([data-color='pumpkin']){color:${colorPalettePumpkinForeground2};background-color:${colorPalettePumpkinBackground2}}:host([data-color='peach']){color:${colorPalettePeachForeground2};background-color:${colorPalettePeachBackground2}}:host([data-color='marigold']){color:${colorPaletteMarigoldForeground2};background-color:${colorPaletteMarigoldBackground2}}:host([data-color='gold']){color:${colorPaletteGoldForeground2};background-color:${colorPaletteGoldBackground2}}:host([data-color='brass']){color:${colorPaletteBrassForeground2};background-color:${colorPaletteBrassBackground2}}:host([data-color='brown']){color:${colorPaletteBrownForeground2};background-color:${colorPaletteBrownBackground2}}:host([data-color='forest']){color:${colorPaletteForestForeground2};background-color:${colorPaletteForestBackground2}}:host([data-color='seafoam']){color:${colorPaletteSeafoamForeground2};background-color:${colorPaletteSeafoamBackground2}}:host([data-color='dark-green']){color:${colorPaletteDarkGreenForeground2};background-color:${colorPaletteDarkGreenBackground2}}:host([data-color='light-teal']){color:${colorPaletteLightTealForeground2};background-color:${colorPaletteLightTealBackground2}}:host([data-color='teal']){color:${colorPaletteTealForeground2};background-color:${colorPaletteTealBackground2}}:host([data-color='steel']){color:${colorPaletteSteelForeground2};background-color:${colorPaletteSteelBackground2}}:host([data-color='blue']){color:${colorPaletteBlueForeground2};background-color:${colorPaletteBlueBackground2}}:host([data-color='royal-blue']){color:${colorPaletteRoyalBlueForeground2};background-color:${colorPaletteRoyalBlueBackground2}}:host([data-color='cornflower']){color:${colorPaletteCornflowerForeground2};background-color:${colorPaletteCornflowerBackground2}}:host([data-color='navy']){color:${colorPaletteNavyForeground2};background-color:${colorPaletteNavyBackground2}}:host([data-color='lavender']){color:${colorPaletteLavenderForeground2};background-color:${colorPaletteLavenderBackground2}}:host([data-color='purple']){color:${colorPalettePurpleForeground2};background-color:${colorPalettePurpleBackground2}}:host([data-color='grape']){color:${colorPaletteGrapeForeground2};background-color:${colorPaletteGrapeBackground2}}:host([data-color='lilac']){color:${colorPaletteLilacForeground2};background-color:${colorPaletteLilacBackground2}}:host([data-color='pink']){color:${colorPalettePinkForeground2};background-color:${colorPalettePinkBackground2}}:host([data-color='magenta']){color:${colorPaletteMagentaForeground2};background-color:${colorPaletteMagentaBackground2}}:host([data-color='plum']){color:${colorPalettePlumForeground2};background-color:${colorPalettePlumBackground2}}:host([data-color='beige']){color:${colorPaletteBeigeForeground2};background-color:${colorPaletteBeigeBackground2}}:host([data-color='mink']){color:${colorPaletteMinkForeground2};background-color:${colorPaletteMinkBackground2}}:host([data-color='platinum']){color:${colorPalettePlatinumForeground2};background-color:${colorPalettePlatinumBackground2}}:host([data-color='anchor']){color:${colorPaletteAnchorForeground2};background-color:${colorPaletteAnchorBackground2}}:host([active]){transform:perspective(1px);transition-property:transform,opacity;transition-duration:${durationUltraSlow},${durationFaster};transition-delay:${animations.fastEase},${animations.nullEasing}}:host([active])::before{content:'';position:absolute;top:0;left:0;bottom:0;right:0;border-radius:inherit;transition-property:margin,opacity;transition-duration:${durationUltraSlow},${durationSlower};transition-delay:${animations.fastEase},${animations.nullEasing}}:host([active])::before{box-shadow:${shadow8};border-style:solid;border-color:${colorBrandBackgroundStatic}}:host([active][appearance='shadow'])::before{border-style:none;border-color:none}:host([active]:not([appearance='shadow']))::before{margin:calc(-2 * ${strokeWidthThick});border-width:${strokeWidthThick}}:host([size='56'][active]:not([appearance='shadow']))::before,:host([size='64'][active]:not([appearance='shadow']))::before{margin:calc(-2 * ${strokeWidthThicker});border-width:${strokeWidthThicker}}:host([size='72'][active]:not([appearance='shadow']))::before,:host([size='96'][active]:not([appearance='shadow']))::before,:host([size='120'][active]:not([appearance='shadow']))::before,:host([size='128'][active]:not([appearance='shadow']))::before{margin:calc(-2 * ${strokeWidthThickest});border-width:${strokeWidthThickest}}:host([size='20'][active][appearance])::before,:host([size='24'][active][appearance])::before,:host([size='28'][active][appearance])::before{box-shadow:${shadow4}}:host([size='56'][active][appearance])::before,:host([size='64'][active][appearance])::before{box-shadow:${shadow16}}:host([size='72'][active][appearance])::before,:host([size='96'][active][appearance])::before,:host([size='120'][active][appearance])::before,:host([size='128'][active][appearance])::before{box-shadow:${shadow28}}:host([active][appearance='ring'])::before{box-shadow:none}:host([active='inactive']){opacity:0.8;transform:scale(0.875);transition-property:transform,opacity;transition-duration:${durationUltraSlow},${durationFaster};transition-delay:${animations.fastOutSlowInMin},${animations.nullEasing}}:host([active='inactive'])::before{margin:0;opacity:0;transition-property:margin,opacity;transition-duration:${durationUltraSlow},${durationSlower};transition-delay:${animations.fastOutSlowInMin},${animations.nullEasing}}@media screen and (prefers-reduced-motion:reduce){:host([active]){transition-duration:0.01ms}:host([active])::before{transition-duration:0.01ms;transition-delay:0.01ms}}`;
6233
6233
 
6234
- const definition$o = Avatar.compose({
6234
+ const definition$p = Avatar.compose({
6235
6235
  name: `${FluentDesignSystem.prefix}-avatar`,
6236
- template: template$o,
6237
- styles: styles$m
6236
+ template: template$p,
6237
+ styles: styles$n
6238
6238
  });
6239
6239
 
6240
6240
  function applyMixins(derivedCtor, ...baseCtors) {
@@ -6280,12 +6280,12 @@ const BadgeSize = {
6280
6280
  extraLarge: "extra-large"
6281
6281
  };
6282
6282
 
6283
- var __defProp$g = Object.defineProperty;
6284
- var __getOwnPropDesc$g = Object.getOwnPropertyDescriptor;
6285
- var __decorateClass$g = (decorators, target, key, kind) => {
6286
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$g(target, key) : target;
6283
+ var __defProp$h = Object.defineProperty;
6284
+ var __getOwnPropDesc$h = Object.getOwnPropertyDescriptor;
6285
+ var __decorateClass$h = (decorators, target, key, kind) => {
6286
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$h(target, key) : target;
6287
6287
  for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
6288
- if (kind && result) __defProp$g(target, key, result);
6288
+ if (kind && result) __defProp$h(target, key, result);
6289
6289
  return result;
6290
6290
  };
6291
6291
  class Badge extends FASTElement {
@@ -6295,16 +6295,16 @@ class Badge extends FASTElement {
6295
6295
  this.color = BadgeColor.brand;
6296
6296
  }
6297
6297
  }
6298
- __decorateClass$g([attr], Badge.prototype, "appearance", 2);
6299
- __decorateClass$g([attr], Badge.prototype, "color", 2);
6300
- __decorateClass$g([attr], Badge.prototype, "shape", 2);
6301
- __decorateClass$g([attr], Badge.prototype, "size", 2);
6298
+ __decorateClass$h([attr], Badge.prototype, "appearance", 2);
6299
+ __decorateClass$h([attr], Badge.prototype, "color", 2);
6300
+ __decorateClass$h([attr], Badge.prototype, "shape", 2);
6301
+ __decorateClass$h([attr], Badge.prototype, "size", 2);
6302
6302
  applyMixins(Badge, StartEnd);
6303
6303
 
6304
6304
  function badgeTemplate(options = {}) {
6305
6305
  return html` ${startSlotTemplate(options)}<slot>${staticallyCompose(options.defaultContent)}</slot>${endSlotTemplate(options)} `;
6306
6306
  }
6307
- const template$n = badgeTemplate();
6307
+ const template$o = badgeTemplate();
6308
6308
 
6309
6309
  const textPadding = spacingHorizontalXXS;
6310
6310
  const badgeBaseStyles = css.partial`
@@ -6555,7 +6555,7 @@ const badgeTintStyles = css.partial`
6555
6555
  }
6556
6556
  `;
6557
6557
 
6558
- const styles$l = css`
6558
+ const styles$m = css`
6559
6559
  :host([shape='square']){border-radius:${borderRadiusNone}}:host([shape='rounded']){border-radius:${borderRadiusMedium}}:host([shape='rounded'][size='tiny']),:host([shape='rounded'][size='extra-small']),:host([shape='rounded'][size='small']){border-radius:${borderRadiusSmall}}${badgeSizeStyles}
6560
6560
  ${badgeFilledStyles}
6561
6561
  ${badgeGhostStyles}
@@ -6564,10 +6564,10 @@ const styles$l = css`
6564
6564
  ${badgeBaseStyles}
6565
6565
  `;
6566
6566
 
6567
- const definition$n = Badge.compose({
6567
+ const definition$o = Badge.compose({
6568
6568
  name: `${FluentDesignSystem.prefix}-badge`,
6569
- template: template$n,
6570
- styles: styles$l
6569
+ template: template$o,
6570
+ styles: styles$m
6571
6571
  });
6572
6572
 
6573
6573
  const proxySlotName = "form-associated-proxy";
@@ -7178,12 +7178,12 @@ function buttonTemplate$1(options = {}) {
7178
7178
  return html`<button class="control" part="control" ?autofocus="${x => x.autofocus}" ?disabled="${x => x.disabled}" form="${x => x.formId}" formaction="${x => x.formaction}" formenctype="${x => x.formenctype}" formmethod="${x => x.formmethod}" ?formnovalidate="${x => x.formnovalidate}" formtarget="${x => x.formtarget}" name="${x => x.name}" type="${x => x.type}" value="${x => x.value}" aria-atomic="${x => x.ariaAtomic}" aria-busy="${x => x.ariaBusy}" aria-controls="${x => x.ariaControls}" aria-current="${x => x.ariaCurrent}" aria-describedby="${x => x.ariaDescribedby}" aria-details="${x => x.ariaDetails}" aria-disabled="${x => x.ariaDisabled}" aria-errormessage="${x => x.ariaErrormessage}" aria-expanded="${x => x.ariaExpanded}" aria-flowto="${x => x.ariaFlowto}" aria-haspopup="${x => x.ariaHaspopup}" aria-hidden="${x => x.ariaHidden}" aria-invalid="${x => x.ariaInvalid}" aria-keyshortcuts="${x => x.ariaKeyshortcuts}" aria-label="${x => x.ariaLabel}" aria-labelledby="${x => x.ariaLabelledby}" aria-live="${x => x.ariaLive}" aria-owns="${x => x.ariaOwns}" aria-pressed="${x => x.ariaPressed}" aria-relevant="${x => x.ariaRelevant}" aria-roledescription="${x => x.ariaRoledescription}" ${ref("control")}>${startSlotTemplate(options)}<span class="content" part="content"><slot ${slotted("defaultSlottedContent")}></slot></span>${endSlotTemplate(options)}</button>`;
7179
7179
  }
7180
7180
 
7181
- var __defProp$f = Object.defineProperty;
7182
- var __getOwnPropDesc$f = Object.getOwnPropertyDescriptor;
7183
- var __decorateClass$f = (decorators, target, key, kind) => {
7184
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$f(target, key) : target;
7181
+ var __defProp$g = Object.defineProperty;
7182
+ var __getOwnPropDesc$g = Object.getOwnPropertyDescriptor;
7183
+ var __decorateClass$g = (decorators, target, key, kind) => {
7184
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$g(target, key) : target;
7185
7185
  for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
7186
- if (kind && result) __defProp$f(target, key, result);
7186
+ if (kind && result) __defProp$g(target, key, result);
7187
7187
  return result;
7188
7188
  };
7189
7189
  class Button extends FASTButton {
@@ -7217,24 +7217,24 @@ class Button extends FASTButton {
7217
7217
  this.removeEventListener("click", this.handleDisabledFocusableClick);
7218
7218
  }
7219
7219
  }
7220
- __decorateClass$f([attr], Button.prototype, "appearance", 2);
7221
- __decorateClass$f([attr], Button.prototype, "shape", 2);
7222
- __decorateClass$f([attr], Button.prototype, "size", 2);
7223
- __decorateClass$f([attr({
7220
+ __decorateClass$g([attr], Button.prototype, "appearance", 2);
7221
+ __decorateClass$g([attr], Button.prototype, "shape", 2);
7222
+ __decorateClass$g([attr], Button.prototype, "size", 2);
7223
+ __decorateClass$g([attr({
7224
7224
  attribute: "icon-only",
7225
7225
  mode: "boolean"
7226
7226
  })], Button.prototype, "iconOnly", 2);
7227
- __decorateClass$f([attr({
7227
+ __decorateClass$g([attr({
7228
7228
  attribute: "disabled-focusable",
7229
7229
  mode: "boolean"
7230
7230
  })], Button.prototype, "disabledFocusable", 2);
7231
7231
 
7232
- const template$m = buttonTemplate$1();
7232
+ const template$n = buttonTemplate$1();
7233
7233
 
7234
- const definition$m = Button.compose({
7234
+ const definition$n = Button.compose({
7235
7235
  name: `${FluentDesignSystem.prefix}-button`,
7236
- template: template$m,
7237
- styles: styles$o,
7236
+ template: template$n,
7237
+ styles: styles$p,
7238
7238
  shadowOptions: {
7239
7239
  delegatesFocus: true
7240
7240
  }
@@ -7321,18 +7321,18 @@ class FASTCheckbox extends FormAssociatedCheckbox {
7321
7321
  __decorate([observable], FASTCheckbox.prototype, "defaultSlottedNodes", void 0);
7322
7322
  __decorate([observable], FASTCheckbox.prototype, "indeterminate", void 0);
7323
7323
 
7324
- var __defProp$e = Object.defineProperty;
7325
- var __getOwnPropDesc$e = Object.getOwnPropertyDescriptor;
7326
- var __decorateClass$e = (decorators, target, key, kind) => {
7327
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$e(target, key) : target;
7324
+ var __defProp$f = Object.defineProperty;
7325
+ var __getOwnPropDesc$f = Object.getOwnPropertyDescriptor;
7326
+ var __decorateClass$f = (decorators, target, key, kind) => {
7327
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$f(target, key) : target;
7328
7328
  for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
7329
- if (kind && result) __defProp$e(target, key, result);
7329
+ if (kind && result) __defProp$f(target, key, result);
7330
7330
  return result;
7331
7331
  };
7332
7332
  class Checkbox extends FASTCheckbox {}
7333
- __decorateClass$e([attr], Checkbox.prototype, "shape", 2);
7334
- __decorateClass$e([attr], Checkbox.prototype, "size", 2);
7335
- __decorateClass$e([attr({
7333
+ __decorateClass$f([attr], Checkbox.prototype, "shape", 2);
7334
+ __decorateClass$f([attr], Checkbox.prototype, "size", 2);
7335
+ __decorateClass$f([attr({
7336
7336
  attribute: "label-position"
7337
7337
  })], Checkbox.prototype, "labelPosition", 2);
7338
7338
 
@@ -7365,19 +7365,19 @@ const checkedIndicator = html.partial(`
7365
7365
  const indeterminateIndicator = html.partial(`
7366
7366
  <div class="indeterminate-indicator"></div>
7367
7367
  `);
7368
- const template$l = checkboxTemplate({
7368
+ const template$m = checkboxTemplate({
7369
7369
  checkedIndicator,
7370
7370
  indeterminateIndicator
7371
7371
  });
7372
7372
 
7373
- const styles$k = css`
7373
+ const styles$l = css`
7374
7374
  ${display("inline-flex")}
7375
7375
  :host{align-items:center;outline:none;user-select:none;vertical-align:middle;cursor:pointer;font-family:${fontFamilyBase};font-size:${fontSizeBase300};line-height:${lineHeightBase300};color:${colorNeutralForeground3};position:relative}:host(:focus-visible)::after{content:'';position:absolute;inset:0px;cursor:pointer;border-radius:${borderRadiusMedium};outline:none;border:2px solid ${colorStrokeFocus1};box-shadow:inset 0 0 0 1px ${colorStrokeFocus2}}.control{position:relative;box-sizing:border-box;display:flex;flex-shrink:0;align-items:center;justify-content:center;overflow:hidden;margin:${spacingVerticalS} ${spacingHorizontalS};fill:currentcolor;height:16px;width:16px;border:${strokeWidthThin} solid ${colorNeutralStrokeAccessible};border-radius:${borderRadiusSmall};outline:none}.label{align-self:center;cursor:inherit;padding-inline:${spacingHorizontalS};padding-bottom:${spacingVerticalS};padding-top:${spacingVerticalS}}.label__hidden{display:none;visibility:hidden}.checked-indicator{display:flex;align-items:center;justify-content:center;color:${colorNeutralForegroundInverted};font-size:12px;margin:auto;opacity:0}.indeterminate-indicator{position:absolute;width:8px;height:8px;border-radius:${borderRadiusSmall};background-color:${colorCompoundBrandForeground1};opacity:0}:host(:hover){color:${colorNeutralForeground2}}:host(:hover) .control{border-color:${colorNeutralStrokeAccessibleHover}}:host(:hover) .indeterminate-indicator{background-color:${colorCompoundBrandForeground1Hover}}:host(:active) .control{border-color:${colorNeutralStrokeAccessiblePressed}}:host(:active) .indeterminate-indicator{background-color:${colorCompoundBrandForeground1Pressed}}:host([aria-checked='true']),:host([aria-checked='mixed']),:host(:active){color:${colorNeutralForeground1}}:host([aria-checked='true']) .control{background-color:${colorCompoundBrandBackground}}:host([aria-checked='true']:hover) .control{border-color:${colorCompoundBrandStrokeHover};background-color:${colorCompoundBrandBackgroundHover}}:host([aria-checked='true']:active) .control{background-color:${colorCompoundBrandBackgroundPressed}}:host([aria-checked='mixed']:hover) .control{border-color:${colorCompoundBrandStrokeHover}}:host([aria-checked='true']) .checked-indicator,:host([aria-checked='mixed']) .indeterminate-indicator{opacity:1}:host([aria-checked='true']) .control,:host([aria-checked='mixed']) .control{border-color:${colorCompoundBrandStroke}}:host([aria-checked='mixed']:active) .control,:host([aria-checked='true']:active) .control{border-color:${colorCompoundBrandStrokePressed}}:host([label-position='before']){flex-direction:row-reverse}:host([label-position='before']) .label{padding-inline:${spacingHorizontalS} ${spacingHorizontalXS};padding-top:${spacingVerticalS};padding-bottom:${spacingVerticalS}}:host([size='large']) .control{width:20px;height:20px}:host([size='large']) .checked-indicator{font-size:16px;height:20px}:host([aria-checked='mixed'][size='large']) .indeterminate-indicator{height:10px;width:10px}:host([shape='circular']) .control,:host([shape='circular']) .indeterminate-indicator{border-radius:${borderRadiusCircular}}:host([disabled]) .control,:host([aria-checked='mixed'][disabled]) .control,:host([aria-checked='true'][disabled]) .control{background-color:${colorTransparentBackgroundHover};border-color:${colorNeutralStrokeDisabled}}:host([aria-checked='true'][disabled]) .checked-indicator,:host([disabled]) ::slotted([slot='start']),:host([disabled]) .label,:host([aria-checked='mixed'][disabled]) .label,:host([aria-checked='true'][disabled]) .label{color:${colorNeutralForegroundDisabled}}:host([disabled]) .indeterminate-indicator{background-color:${colorNeutralForegroundDisabled}}`;
7376
7376
 
7377
- const definition$l = Checkbox.compose({
7377
+ const definition$m = Checkbox.compose({
7378
7378
  name: `${FluentDesignSystem.prefix}-checkbox`,
7379
- template: template$l,
7380
- styles: styles$k
7379
+ template: template$m,
7380
+ styles: styles$l
7381
7381
  });
7382
7382
 
7383
7383
  class CompoundButton extends Button {}
@@ -7389,31 +7389,31 @@ const CompoundButtonSize = ButtonSize;
7389
7389
  function buttonTemplate(options = {}) {
7390
7390
  return html`<button class="control" part="control" ?autofocus="${x => x.autofocus}" ?disabled="${x => x.disabled}" form="${x => x.formId}" formaction="${x => x.formaction}" formenctype="${x => x.formenctype}" formmethod="${x => x.formmethod}" ?formnovalidate="${x => x.formnovalidate}" formtarget="${x => x.formtarget}" name="${x => x.name}" type="${x => x.type}" value="${x => x.value}" aria-atomic="${x => x.ariaAtomic}" aria-busy="${x => x.ariaBusy}" aria-controls="${x => x.ariaControls}" aria-current="${x => x.ariaCurrent}" aria-describedby="${x => x.ariaDescribedby}" aria-details="${x => x.ariaDetails}" aria-disabled="${x => x.ariaDisabled}" aria-errormessage="${x => x.ariaErrormessage}" aria-expanded="${x => x.ariaExpanded}" aria-flowto="${x => x.ariaFlowto}" aria-haspopup="${x => x.ariaHaspopup}" aria-hidden="${x => x.ariaHidden}" aria-invalid="${x => x.ariaInvalid}" aria-keyshortcuts="${x => x.ariaKeyshortcuts}" aria-label="${x => x.ariaLabel}" aria-labelledby="${x => x.ariaLabelledby}" aria-live="${x => x.ariaLive}" aria-owns="${x => x.ariaOwns}" aria-pressed="${x => x.ariaPressed}" aria-relevant="${x => x.ariaRelevant}" aria-roledescription="${x => x.ariaRoledescription}" ${ref("control")}>${startSlotTemplate(options)}<span class="content" part="content"><slot ${slotted("defaultSlottedContent")}></slot><slot name="description"></slot></span>${endSlotTemplate(options)}</button>`;
7391
7391
  }
7392
- const template$k = buttonTemplate();
7392
+ const template$l = buttonTemplate();
7393
7393
 
7394
- const styles$j = css`
7395
- ${styles$o}
7394
+ const styles$k = css`
7395
+ ${styles$p}
7396
7396
 
7397
7397
  :host .control,:host(:is([size])) .control{gap:12px;height:auto;padding-top:14px;padding-inline:12px;padding-bottom:16px;font-size:${fontSizeBase300};line-height:${lineHeightBase300}}.content{display:flex;flex-direction:column;text-align:start}::slotted([slot='description']){color:${colorNeutralForeground2};line-height:100%;font-size:${fontSizeBase200};font-weight:${fontWeightRegular}}::slotted(svg),:host([size='large']) ::slotted(svg){font-size:40px;height:40px;width:40px}:host(:hover) ::slotted([slot='description']){color:${colorNeutralForeground2Hover}}:host(:active) ::slotted([slot='description']){color:${colorNeutralForeground2Pressed}}:host(:is([appearance='primary'],[appearance='primary']:hover,[appearance='primary']:active))
7398
7398
  ::slotted([slot='description']){color:${colorNeutralForegroundOnBrand}}:host(:is([appearance='subtle'],[appearance='subtle']:hover,[appearance='subtle']:active))
7399
7399
  ::slotted([slot='description']),:host([appearance='transparent']) ::slotted([slot='description']){color:${colorNeutralForeground2}}:host([appearance='transparent']:hover) ::slotted([slot='description']){color:${colorNeutralForeground2BrandHover}}:host([appearance='transparent']:active) ::slotted([slot='description']){color:${colorNeutralForeground2BrandPressed}}:host(:is([disabled],[disabled][appearance],[disabled-focusable],[disabled-focusable][appearance]))
7400
7400
  ::slotted([slot='description']){color:${colorNeutralForegroundDisabled}}:host([size='small']) .control{padding:8px;padding-bottom:10px}:host([icon-only]) .control{min-width:52px;max-width:52px;padding:${spacingHorizontalSNudge}}:host([icon-only][size='small']) .control{min-width:48px;max-width:48px;padding:${spacingHorizontalXS}}:host([icon-only][size='large']) .control{min-width:56px;max-width:56px;padding:${spacingHorizontalS}}:host([size='large']) .control{padding-top:18px;padding-inline:16px;padding-bottom:20px;font-size:${fontSizeBase400};line-height:${lineHeightBase400}}:host([size='large']) ::slotted([slot='description']){font-size:${fontSizeBase300}}`;
7401
7401
 
7402
- const definition$k = CompoundButton.compose({
7402
+ const definition$l = CompoundButton.compose({
7403
7403
  name: `${FluentDesignSystem.prefix}-compound-button`,
7404
- template: template$k,
7405
- styles: styles$j,
7404
+ template: template$l,
7405
+ styles: styles$k,
7406
7406
  shadowOptions: {
7407
7407
  delegatesFocus: true
7408
7408
  }
7409
7409
  });
7410
7410
 
7411
- var __defProp$d = Object.defineProperty;
7412
- var __getOwnPropDesc$d = Object.getOwnPropertyDescriptor;
7413
- var __decorateClass$d = (decorators, target, key, kind) => {
7414
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$d(target, key) : target;
7411
+ var __defProp$e = Object.defineProperty;
7412
+ var __getOwnPropDesc$e = Object.getOwnPropertyDescriptor;
7413
+ var __decorateClass$e = (decorators, target, key, kind) => {
7414
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$e(target, key) : target;
7415
7415
  for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
7416
- if (kind && result) __defProp$d(target, key, result);
7416
+ if (kind && result) __defProp$e(target, key, result);
7417
7417
  return result;
7418
7418
  };
7419
7419
  class CounterBadge extends FASTElement {
@@ -7439,22 +7439,22 @@ class CounterBadge extends FASTElement {
7439
7439
  return;
7440
7440
  }
7441
7441
  }
7442
- __decorateClass$d([attr], CounterBadge.prototype, "appearance", 2);
7443
- __decorateClass$d([attr], CounterBadge.prototype, "color", 2);
7444
- __decorateClass$d([attr], CounterBadge.prototype, "shape", 2);
7445
- __decorateClass$d([attr], CounterBadge.prototype, "size", 2);
7446
- __decorateClass$d([attr({
7442
+ __decorateClass$e([attr], CounterBadge.prototype, "appearance", 2);
7443
+ __decorateClass$e([attr], CounterBadge.prototype, "color", 2);
7444
+ __decorateClass$e([attr], CounterBadge.prototype, "shape", 2);
7445
+ __decorateClass$e([attr], CounterBadge.prototype, "size", 2);
7446
+ __decorateClass$e([attr({
7447
7447
  converter: nullableNumberConverter
7448
7448
  })], CounterBadge.prototype, "count", 2);
7449
- __decorateClass$d([attr({
7449
+ __decorateClass$e([attr({
7450
7450
  attribute: "overflow-count",
7451
7451
  converter: nullableNumberConverter
7452
7452
  })], CounterBadge.prototype, "overflowCount", 2);
7453
- __decorateClass$d([attr({
7453
+ __decorateClass$e([attr({
7454
7454
  attribute: "show-zero",
7455
7455
  mode: "boolean"
7456
7456
  })], CounterBadge.prototype, "showZero", 2);
7457
- __decorateClass$d([attr({
7457
+ __decorateClass$e([attr({
7458
7458
  mode: "boolean"
7459
7459
  })], CounterBadge.prototype, "dot", 2);
7460
7460
  applyMixins(CounterBadge, StartEnd);
@@ -7491,9 +7491,9 @@ function composeTemplate(options = {}) {
7491
7491
  defaultContent: html`${x => x.setCount()}`
7492
7492
  });
7493
7493
  }
7494
- const template$j = composeTemplate();
7494
+ const template$k = composeTemplate();
7495
7495
 
7496
- const styles$i = css`
7496
+ const styles$j = css`
7497
7497
  :host([shape='rounded']){border-radius:${borderRadiusMedium}}:host([shape='rounded'][size='tiny']),:host([shape='rounded'][size='extra-small']),:host([shape='rounded'][size='small']){border-radius:${borderRadiusSmall}}${badgeSizeStyles}
7498
7498
  ${badgeFilledStyles}
7499
7499
  ${badgeGhostStyles}
@@ -7501,197 +7501,381 @@ const styles$i = css`
7501
7501
 
7502
7502
  :host([dot]),:host([dot][appearance][size]){min-width:auto;width:6px;height:6px;padding:0}`;
7503
7503
 
7504
- const definition$j = CounterBadge.compose({
7504
+ const definition$k = CounterBadge.compose({
7505
7505
  name: `${FluentDesignSystem.prefix}-counter-badge`,
7506
- template: template$j,
7507
- styles: styles$i
7506
+ template: template$k,
7507
+ styles: styles$j
7508
7508
  });
7509
7509
 
7510
- /**
7511
- * Divider roles
7512
- * @public
7513
- */
7514
- const DividerRole = {
7515
- /**
7516
- * The divider semantically separates content
7517
- */
7518
- separator: "separator",
7519
- /**
7520
- * The divider has no semantic value and is for visual presentation only.
7521
- */
7522
- presentation: "presentation"
7510
+ /*!
7511
+ * tabbable 5.2.0
7512
+ * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
7513
+ */
7514
+ var candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable="false"])', 'details>summary:first-of-type', 'details'];
7515
+ var candidateSelector = /* #__PURE__ */candidateSelectors.join(',');
7516
+ var matches = typeof Element === 'undefined' ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
7517
+ var isContentEditable = function isContentEditable(node) {
7518
+ return node.contentEditable === 'true';
7523
7519
  };
7524
- /**
7525
- * Divider orientation
7526
- * @public
7527
- */
7528
- const DividerOrientation = Orientation;
7529
-
7530
- /**
7531
- * The template for the {@link @microsoft/fast-foundation#FASTDivider} component.
7532
- * @public
7533
- */
7534
- function dividerTemplate() {
7535
- return html`<template role="${x => x.role}" aria-orientation="${x => x.role !== DividerRole.presentation ? x.orientation : void 0}"><slot></slot></template>`;
7536
- }
7537
-
7538
- /**
7539
- * A Divider Custom HTML Element.
7540
- * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#separator | ARIA separator } or {@link https://www.w3.org/TR/wai-aria-1.1/#presentation | ARIA presentation}.
7541
- *
7542
- * @public
7543
- */
7544
- class FASTDivider extends FASTElement {
7545
- constructor() {
7546
- super(...arguments);
7547
- /**
7548
- * The role of the element.
7549
- *
7550
- * @public
7551
- * @remarks
7552
- * HTML Attribute: role
7553
- */
7554
- this.role = DividerRole.separator;
7555
- /**
7556
- * The orientation of the divider.
7557
- *
7558
- * @public
7559
- * @remarks
7560
- * HTML Attribute: orientation
7561
- */
7562
- this.orientation = DividerOrientation.horizontal;
7520
+ var getTabindex = function getTabindex(node) {
7521
+ var tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);
7522
+ if (!isNaN(tabindexAttr)) {
7523
+ return tabindexAttr;
7524
+ } // Browsers do not return `tabIndex` correctly for contentEditable nodes;
7525
+ // so if they don't have a tabindex attribute specifically set, assume it's 0.
7526
+
7527
+ if (isContentEditable(node)) {
7528
+ return 0;
7529
+ } // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default
7530
+ // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,
7531
+ // yet they are still part of the regular tab order; in FF, they get a default
7532
+ // `tabIndex` of 0; since Chrome still puts those elements in the regular tab
7533
+ // order, consider their tab index to be 0.
7534
+
7535
+ if ((node.nodeName === 'AUDIO' || node.nodeName === 'VIDEO' || node.nodeName === 'DETAILS') && node.getAttribute('tabindex') === null) {
7536
+ return 0;
7537
+ }
7538
+ return node.tabIndex;
7539
+ };
7540
+ var isInput = function isInput(node) {
7541
+ return node.tagName === 'INPUT';
7542
+ };
7543
+ var isHiddenInput = function isHiddenInput(node) {
7544
+ return isInput(node) && node.type === 'hidden';
7545
+ };
7546
+ var isDetailsWithSummary = function isDetailsWithSummary(node) {
7547
+ var r = node.tagName === 'DETAILS' && Array.prototype.slice.apply(node.children).some(function (child) {
7548
+ return child.tagName === 'SUMMARY';
7549
+ });
7550
+ return r;
7551
+ };
7552
+ var getCheckedRadio = function getCheckedRadio(nodes, form) {
7553
+ for (var i = 0; i < nodes.length; i++) {
7554
+ if (nodes[i].checked && nodes[i].form === form) {
7555
+ return nodes[i];
7556
+ }
7563
7557
  }
7564
- }
7565
- __decorate([attr], FASTDivider.prototype, "role", void 0);
7566
- __decorate([attr], FASTDivider.prototype, "orientation", void 0);
7567
-
7568
- var __defProp$c = Object.defineProperty;
7569
- var __getOwnPropDesc$c = Object.getOwnPropertyDescriptor;
7570
- var __decorateClass$c = (decorators, target, key, kind) => {
7571
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$c(target, key) : target;
7572
- for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
7573
- if (kind && result) __defProp$c(target, key, result);
7574
- return result;
7575
7558
  };
7576
- class Divider extends FASTDivider {}
7577
- __decorateClass$c([attr({
7578
- attribute: "align-content"
7579
- })], Divider.prototype, "alignContent", 2);
7580
- __decorateClass$c([attr], Divider.prototype, "appearance", 2);
7581
- __decorateClass$c([attr({
7582
- mode: "boolean"
7583
- })], Divider.prototype, "inset", 2);
7584
-
7585
- const DividerAlignContent = {
7586
- center: "center",
7587
- start: "start",
7588
- end: "end"
7559
+ var isTabbableRadio = function isTabbableRadio(node) {
7560
+ if (!node.name) {
7561
+ return true;
7562
+ }
7563
+ var radioScope = node.form || node.ownerDocument;
7564
+ var queryRadios = function queryRadios(name) {
7565
+ return radioScope.querySelectorAll('input[type="radio"][name="' + name + '"]');
7566
+ };
7567
+ var radioSet;
7568
+ if (typeof window !== 'undefined' && typeof window.CSS !== 'undefined' && typeof window.CSS.escape === 'function') {
7569
+ radioSet = queryRadios(window.CSS.escape(node.name));
7570
+ } else {
7571
+ try {
7572
+ radioSet = queryRadios(node.name);
7573
+ } catch (err) {
7574
+ // eslint-disable-next-line no-console
7575
+ console.error('Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s', err.message);
7576
+ return false;
7577
+ }
7578
+ }
7579
+ var checked = getCheckedRadio(radioSet, node.form);
7580
+ return !checked || checked === node;
7589
7581
  };
7590
- const DividerAppearance = {
7591
- strong: "strong",
7592
- brand: "brand",
7593
- subtle: "subtle",
7594
- default: "default"
7582
+ var isRadio = function isRadio(node) {
7583
+ return isInput(node) && node.type === 'radio';
7584
+ };
7585
+ var isNonTabbableRadio = function isNonTabbableRadio(node) {
7586
+ return isRadio(node) && !isTabbableRadio(node);
7587
+ };
7588
+ var isHidden = function isHidden(node, displayCheck) {
7589
+ if (getComputedStyle(node).visibility === 'hidden') {
7590
+ return true;
7591
+ }
7592
+ var isDirectSummary = matches.call(node, 'details>summary:first-of-type');
7593
+ var nodeUnderDetails = isDirectSummary ? node.parentElement : node;
7594
+ if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {
7595
+ return true;
7596
+ }
7597
+ if (!displayCheck || displayCheck === 'full') {
7598
+ while (node) {
7599
+ if (getComputedStyle(node).display === 'none') {
7600
+ return true;
7601
+ }
7602
+ node = node.parentElement;
7603
+ }
7604
+ } else if (displayCheck === 'non-zero-area') {
7605
+ var _node$getBoundingClie = node.getBoundingClientRect(),
7606
+ width = _node$getBoundingClie.width,
7607
+ height = _node$getBoundingClie.height;
7608
+ return width === 0 && height === 0;
7609
+ }
7610
+ return false;
7611
+ };
7612
+ var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {
7613
+ if (node.disabled || isHiddenInput(node) || isHidden(node, options.displayCheck) || /* For a details element with a summary, the summary element gets the focused */
7614
+ isDetailsWithSummary(node)) {
7615
+ return false;
7616
+ }
7617
+ return true;
7618
+ };
7619
+ var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {
7620
+ if (!isNodeMatchingSelectorFocusable(options, node) || isNonTabbableRadio(node) || getTabindex(node) < 0) {
7621
+ return false;
7622
+ }
7623
+ return true;
7624
+ };
7625
+ var isTabbable = function isTabbable(node, options) {
7626
+ options = options || {};
7627
+ if (!node) {
7628
+ throw new Error('No node provided');
7629
+ }
7630
+ if (matches.call(node, candidateSelector) === false) {
7631
+ return false;
7632
+ }
7633
+ return isNodeMatchingSelectorTabbable(options, node);
7595
7634
  };
7596
7635
 
7597
- const template$i = dividerTemplate();
7598
-
7599
- const styles$h = css`
7600
- ${display("flex")}
7601
-
7602
- :host{contain:content}:host::after,:host::before{align-self:center;background:${colorNeutralStroke2};box-sizing:border-box;content:'';display:flex;flex-grow:1;height:${strokeWidthThin}}:host([inset]){padding:0 12px}:host ::slotted(*){color:${colorNeutralForeground2};font-family:${fontFamilyBase};font-size:${fontSizeBase200};font-weight:${fontWeightRegular};margin:0;padding:0 12px}:host([align-content='start'])::before,:host([align-content='end'])::after{flex-basis:12px;flex-grow:0;flex-shrink:0}:host([orientation='vertical']){height:100%;min-height:84px}:host([orientation='vertical']):empty{min-height:20px}:host([orientation='vertical']){flex-direction:column;align-items:center}:host([orientation='vertical'][inset])::before{margin-top:12px}:host([orientation='vertical'][inset])::after{margin-bottom:12px}:host([orientation='vertical']):empty::before,:host([orientation='vertical']):empty::after{height:10px;min-height:10px;flex-grow:0}:host([orientation='vertical'])::before,:host([orientation='vertical'])::after{width:${strokeWidthThin};min-height:20px;height:100%}:host([orientation='vertical']) ::slotted(*){display:flex;flex-direction:column;padding:12px 0;line-height:20px}:host([orientation='vertical'][align-content='start'])::before{min-height:8px}:host([orientation='vertical'][align-content='end'])::after{min-height:8px}:host([appearance='strong'])::before,:host([appearance='strong'])::after{background:${colorNeutralStroke1}}:host([appearance='strong']) ::slotted(*){color:${colorNeutralForeground1}}:host([appearance='brand'])::before,:host([appearance='brand'])::after{background:${colorBrandStroke1}}:host([appearance='brand']) ::slotted(*){color:${colorBrandForeground1}}:host([appearance='subtle'])::before,:host([appearance='subtle'])::after{background:${colorNeutralStroke3}}:host([appearance='subtle']) ::slotted(*){color:${colorNeutralForeground3}}`.withBehaviors(forcedColorsStylesheetBehavior(css`
7603
- :host([appearance='strong'])::before,:host([appearance='strong'])::after,:host([appearance='brand'])::before,:host([appearance='brand'])::after,:host([appearance='subtle'])::before,:host([appearance='subtle'])::after,:host::after,:host::before{background:WindowText;color:WindowText}`));
7636
+ const DialogModalType = {
7637
+ modal: "modal",
7638
+ nonModal: "non-modal",
7639
+ alert: "alert"
7640
+ };
7604
7641
 
7605
- const definition$i = Divider.compose({
7606
- name: `${FluentDesignSystem.prefix}-divider`,
7607
- template: template$i,
7608
- styles: styles$h
7609
- });
7610
-
7611
- var __defProp$b = Object.defineProperty;
7612
- var __getOwnPropDesc$b = Object.getOwnPropertyDescriptor;
7613
- var __decorateClass$b = (decorators, target, key, kind) => {
7614
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$b(target, key) : target;
7615
- for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
7616
- if (kind && result) __defProp$b(target, key, result);
7617
- return result;
7618
- };
7619
- class Image extends FASTElement {}
7620
- __decorateClass$b([attr({
7621
- mode: "boolean"
7622
- })], Image.prototype, "block", 2);
7623
- __decorateClass$b([attr({
7624
- mode: "boolean"
7625
- })], Image.prototype, "bordered", 2);
7626
- __decorateClass$b([attr({
7627
- mode: "boolean"
7628
- })], Image.prototype, "shadow", 2);
7629
- __decorateClass$b([attr], Image.prototype, "fit", 2);
7630
- __decorateClass$b([attr], Image.prototype, "shape", 2);
7631
-
7632
- const ImageFit = {
7633
- none: "none",
7634
- center: "center",
7635
- contain: "contain",
7636
- cover: "cover",
7637
- default: "default"
7638
- };
7639
- const ImageShape = {
7640
- circular: "circular",
7641
- rounded: "rounded",
7642
- square: "square"
7643
- };
7644
-
7645
- const template$h = html`<slot></slot>`;
7646
-
7647
- const styles$g = css`
7648
- :host{contain:content}:host ::slotted(img){box-sizing:border-box;min-height:8px;min-width:8px;display:inline-block}:host([block]) ::slotted(img){width:100%;height:auto}:host([bordered]) ::slotted(img){border:${strokeWidthThin} solid ${colorNeutralStroke2}}:host([fit='none']) ::slotted(img){object-fit:none;object-position:top left;height:100%;width:100%}:host([fit='center']) ::slotted(img){object-fit:none;object-position:center;height:100%;width:100%}:host([fit='contain']) ::slotted(img){object-fit:contain;object-position:center;height:100%;width:100%}:host([fit='cover']) ::slotted(img){object-fit:cover;object-position:center;height:100%;width:100%}:host([shadow]) ::slotted(img){box-shadow:${shadow4}}:host([shape='circular']) ::slotted(img){border-radius:${borderRadiusCircular}}:host([shape='rounded']) ::slotted(img){border-radius:${borderRadiusMedium}}`;
7649
-
7650
- const definition$h = Image.compose({
7651
- name: `${FluentDesignSystem.prefix}-image`,
7652
- template: template$h,
7653
- styles: styles$g
7654
- });
7655
-
7656
- var __defProp$a = Object.defineProperty;
7657
- var __getOwnPropDesc$a = Object.getOwnPropertyDescriptor;
7658
- var __decorateClass$a = (decorators, target, key, kind) => {
7659
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$a(target, key) : target;
7642
+ var __defProp$d = Object.defineProperty;
7643
+ var __getOwnPropDesc$d = Object.getOwnPropertyDescriptor;
7644
+ var __decorateClass$d = (decorators, target, key, kind) => {
7645
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$d(target, key) : target;
7660
7646
  for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
7661
- if (kind && result) __defProp$a(target, key, result);
7647
+ if (kind && result) __defProp$d(target, key, result);
7662
7648
  return result;
7663
7649
  };
7664
- class Label extends FASTElement {
7650
+ const _Dialog = class extends FASTElement {
7665
7651
  constructor() {
7666
7652
  super(...arguments);
7667
- this.disabled = false;
7668
- this.required = false;
7653
+ this.isTrappingFocus = false;
7654
+ this.titleAction = [];
7655
+ this.modalType = DialogModalType.modal;
7656
+ this.open = false;
7657
+ this.noTitleAction = false;
7658
+ this.trapFocus = false;
7659
+ this.onOpenChangeEvent = (dismissed = false) => {
7660
+ this.$emit("onOpenChange", {
7661
+ open: this.dialog.open,
7662
+ dismissed
7663
+ });
7664
+ };
7665
+ this.handleKeydown = e => {
7666
+ if (e.defaultPrevented) {
7667
+ return;
7668
+ }
7669
+ switch (e.key) {
7670
+ case keyEscape:
7671
+ if (this.modalType !== DialogModalType.alert) {
7672
+ this.hide(true);
7673
+ this.$emit("dismiss");
7674
+ }
7675
+ break;
7676
+ default:
7677
+ return true;
7678
+ }
7679
+ };
7680
+ this.handleDocumentKeydown = e => {
7681
+ if (!e.defaultPrevented && this.dialog.open) {
7682
+ switch (e.key) {
7683
+ case keyTab:
7684
+ this.handleTabKeyDown(e);
7685
+ break;
7686
+ }
7687
+ }
7688
+ };
7689
+ this.handleTabKeyDown = e => {
7690
+ if (!this.trapFocus || !this.dialog.open) {
7691
+ return;
7692
+ }
7693
+ const bounds = this.getTabQueueBounds();
7694
+ if (bounds.length === 1) {
7695
+ bounds[0].focus();
7696
+ e.preventDefault();
7697
+ return;
7698
+ }
7699
+ if (e.shiftKey && e.target === bounds[0]) {
7700
+ bounds[bounds.length - 1].focus();
7701
+ e.preventDefault();
7702
+ } else if (!e.shiftKey && e.target === bounds[bounds.length - 1]) {
7703
+ bounds[0].focus();
7704
+ e.preventDefault();
7705
+ }
7706
+ return;
7707
+ };
7708
+ this.getTabQueueBounds = () => {
7709
+ const bounds = [];
7710
+ return _Dialog.reduceTabbableItems(bounds, this);
7711
+ };
7712
+ this.focusFirstElement = () => {
7713
+ const bounds = this.getTabQueueBounds();
7714
+ if (bounds.length > 0) {
7715
+ bounds[0].focus();
7716
+ } else {
7717
+ if (this.dialog instanceof HTMLElement) {
7718
+ this.dialog.focus();
7719
+ }
7720
+ }
7721
+ };
7722
+ this.shouldForceFocus = currentFocusElement => {
7723
+ return this.isTrappingFocus && !this.contains(currentFocusElement);
7724
+ };
7725
+ this.shouldTrapFocus = () => {
7726
+ return this.trapFocus && this.dialog.open;
7727
+ };
7728
+ this.handleDocumentFocus = e => {
7729
+ if (!e.defaultPrevented && this.shouldForceFocus(e.target)) {
7730
+ this.focusFirstElement();
7731
+ e.preventDefault();
7732
+ }
7733
+ };
7734
+ this.updateTrapFocus = shouldTrapFocusOverride => {
7735
+ const shouldTrapFocus = shouldTrapFocusOverride === void 0 ? this.shouldTrapFocus() : shouldTrapFocusOverride;
7736
+ if (shouldTrapFocus && !this.isTrappingFocus) {
7737
+ this.isTrappingFocus = true;
7738
+ document.addEventListener("focusin", this.handleDocumentFocus);
7739
+ Updates.enqueue(() => {
7740
+ if (this.shouldForceFocus(document.activeElement)) {
7741
+ this.focusFirstElement();
7742
+ }
7743
+ });
7744
+ } else if (!shouldTrapFocus && this.isTrappingFocus) {
7745
+ this.isTrappingFocus = false;
7746
+ document.removeEventListener("focusin", this.handleDocumentFocus);
7747
+ }
7748
+ };
7669
7749
  }
7670
- }
7671
- __decorateClass$a([attr], Label.prototype, "size", 2);
7672
- __decorateClass$a([attr], Label.prototype, "weight", 2);
7673
- __decorateClass$a([attr({
7674
- mode: "boolean"
7675
- })], Label.prototype, "disabled", 2);
7676
- __decorateClass$a([attr({
7750
+ connectedCallback() {
7751
+ super.connectedCallback();
7752
+ document.addEventListener("keydown", this.handleDocumentKeydown);
7753
+ Updates.enqueue(() => {
7754
+ this.updateTrapFocus();
7755
+ this.setComponent();
7756
+ });
7757
+ }
7758
+ disconnectedCallback() {
7759
+ super.disconnectedCallback();
7760
+ document.removeEventListener("keydown", this.handleDocumentKeydown);
7761
+ this.updateTrapFocus(false);
7762
+ }
7763
+ openChanged(oldValue, newValue) {
7764
+ if (newValue !== oldValue) {
7765
+ if (newValue && !oldValue) {
7766
+ this.show();
7767
+ } else if (!newValue && oldValue) {
7768
+ this.hide();
7769
+ }
7770
+ }
7771
+ }
7772
+ modalTypeChanged(oldValue, newValue) {
7773
+ if (newValue !== oldValue) {
7774
+ if (newValue == DialogModalType.alert || newValue == DialogModalType.modal) {
7775
+ this.trapFocus = true;
7776
+ } else {
7777
+ this.trapFocus = false;
7778
+ }
7779
+ }
7780
+ }
7781
+ setComponent() {
7782
+ if (this.modalType == DialogModalType.modal || this.modalType == DialogModalType.alert) {
7783
+ this.trapFocus = true;
7784
+ } else {
7785
+ this.trapFocus = false;
7786
+ }
7787
+ }
7788
+ show() {
7789
+ Updates.enqueue(() => {
7790
+ if (this.modalType === DialogModalType.alert || this.modalType === DialogModalType.modal) {
7791
+ this.dialog.showModal();
7792
+ this.open = true;
7793
+ this.updateTrapFocus(true);
7794
+ } else if (this.modalType === DialogModalType.nonModal) {
7795
+ this.dialog.show();
7796
+ this.open = true;
7797
+ }
7798
+ this.onOpenChangeEvent();
7799
+ });
7800
+ }
7801
+ hide(dismissed = false) {
7802
+ this.dialog.close();
7803
+ this.open = false;
7804
+ this.onOpenChangeEvent(dismissed);
7805
+ }
7806
+ dismiss() {
7807
+ if (this.modalType === DialogModalType.alert) {
7808
+ return;
7809
+ }
7810
+ this.hide(true);
7811
+ }
7812
+ handleClick(event) {
7813
+ event.preventDefault();
7814
+ if (this.dialog.open && this.modalType !== DialogModalType.alert && event.target === this.dialog) {
7815
+ this.dismiss();
7816
+ }
7817
+ return true;
7818
+ }
7819
+ static reduceTabbableItems(elements, element) {
7820
+ if (element.getAttribute("tabindex") === "-1") {
7821
+ return elements;
7822
+ }
7823
+ if (isTabbable(element) || _Dialog.isFocusableFastElement(element) && _Dialog.hasTabbableShadow(element)) {
7824
+ elements.push(element);
7825
+ return elements;
7826
+ }
7827
+ return Array.from(element.children).reduce((elements2, currentElement) => _Dialog.reduceTabbableItems(elements2, currentElement), elements);
7828
+ }
7829
+ static isFocusableFastElement(element) {
7830
+ var _a, _b;
7831
+ return !!((_b = (_a = element.$fastController) == null ? void 0 : _a.definition.shadowOptions) == null ? void 0 : _b.delegatesFocus);
7832
+ }
7833
+ static hasTabbableShadow(element) {
7834
+ var _a, _b;
7835
+ return Array.from((_b = (_a = element.shadowRoot) == null ? void 0 : _a.querySelectorAll("*")) != null ? _b : []).some(x => {
7836
+ return isTabbable(x);
7837
+ });
7838
+ }
7839
+ };
7840
+ let Dialog = _Dialog;
7841
+ __decorateClass$d([observable], Dialog.prototype, "dialog", 2);
7842
+ __decorateClass$d([observable], Dialog.prototype, "titleAction", 2);
7843
+ __decorateClass$d([observable], Dialog.prototype, "defaultTitleAction", 2);
7844
+ __decorateClass$d([attr({
7845
+ attribute: "aria-describedby"
7846
+ })], Dialog.prototype, "ariaDescribedby", 2);
7847
+ __decorateClass$d([attr({
7848
+ attribute: "aria-labelledby"
7849
+ })], Dialog.prototype, "ariaLabelledby", 2);
7850
+ __decorateClass$d([attr({
7851
+ attribute: "modal-type"
7852
+ })], Dialog.prototype, "modalType", 2);
7853
+ __decorateClass$d([attr({
7677
7854
  mode: "boolean"
7678
- })], Label.prototype, "required", 2);
7679
-
7680
- const styles$f = css`
7681
- ${display("flex")}
7682
-
7683
- :host{font-family:${fontFamilyBase};font-size:${fontSizeBase300};line-height:${lineHeightBase300};font-weight:${fontWeightRegular};color:${colorNeutralForeground1}}.asterisk{color:${colorPaletteRedForeground1};margin-left:${spacingHorizontalXS}}:host([size='small']){font-size:${fontSizeBase200};line-height:${lineHeightBase200}}:host([size='large']){font-size:${fontSizeBase400};line-height:${lineHeightBase400};font-weight:${fontWeightSemibold}}:host([weight='semibold']){font-weight:${fontWeightSemibold}}:host([disabled]),:host([disabled]) .asterisk{color:${colorNeutralForegroundDisabled}}`;
7684
-
7685
- function labelTemplate() {
7686
- return html`<slot></slot><span part="asterisk" class="asterisk" ?hidden="${x => !x.required}">*</span>`;
7687
- }
7688
- const template$g = labelTemplate();
7855
+ })], Dialog.prototype, "open", 2);
7856
+ __decorateClass$d([attr({
7857
+ mode: "boolean",
7858
+ attribute: "no-title-action"
7859
+ })], Dialog.prototype, "noTitleAction", 2);
7689
7860
 
7690
- const definition$g = Label.compose({
7691
- name: `${FluentDesignSystem.prefix}-label`,
7692
- template: template$g,
7693
- styles: styles$f
7694
- });
7861
+ const dismissed16Regular = html.partial(`
7862
+ <svg
7863
+ fill="currentColor"
7864
+ aria-hidden="true"
7865
+ width="20"
7866
+ height="20"
7867
+ viewBox="0 0 20 20"
7868
+ xmlns="http://www.w3.org/2000/svg"
7869
+ >
7870
+ <path
7871
+ d="m4.09 4.22.06-.07a.5.5 0 0 1 .63-.06l.07.06L10 9.29l5.15-5.14a.5.5 0 0 1 .63-.06l.07.06c.18.17.2.44.06.63l-.06.07L10.71 10l5.14 5.15c.18.17.2.44.06.63l-.06.07a.5.5 0 0 1-.63.06l-.07-.06L10 10.71l-5.15 5.14a.5.5 0 0 1-.63.06l-.07-.06a.5.5 0 0 1-.06-.63l.06-.07L9.29 10 4.15 4.85a.5.5 0 0 1-.06-.63l.06-.07-.06.07Z"
7872
+ fill="currentColor"
7873
+ ></path>
7874
+ </svg>`);
7875
+ const template$j = html`<template ?open="${x => x.open}"><dialog role="${x => x.modalType === DialogModalType.alert ? "alertdialog" : "dialog"}" modal-type="${x => x.modalType}" class="dialog" part="dialog" aria-modal="${x => x.modalType === DialogModalType.modal || x.modalType === DialogModalType.alert ? "true" : void 0}" aria-describedby="${x => x.ariaDescribedby}" aria-labelledby="${x => x.ariaLabelledby}" aria-label="${x => x.ariaLabel}" @keydown="${(x, c) => x.handleKeydown(c.event)}" @click="${(x, c) => x.handleClick(c.event)}" ${ref("dialog")}><div class="root" part="root"><div class="title" part="title"><slot name="title"></slot><slot ${slotted({
7876
+ property: "titleAction",
7877
+ filter: elements()
7878
+ })} name="title-action"></slot>${when(x => x.modalType === DialogModalType.nonModal && x.titleAction.length === 0 && !x.noTitleAction, html`<fluent-button tabindex="0" part="title-action" class="title-action" appearance="transparent" icon-only @click=${x => x.dismiss()} ${ref("defaultTitleAction")}>${dismissed16Regular}</fluent-button>`)}</div><div class="content" part="content"><slot></slot></div><div class="actions" part="actions"><slot name="action"></slot></div></div></dialog></template>`;
7695
7879
 
7696
7880
  function t(t) {
7697
7881
  return t.split("-")[1];
@@ -8608,752 +8792,491 @@ const z = (t, n, o) => {
8608
8792
  });
8609
8793
  };
8610
8794
 
8611
- var __defProp$9 = Object.defineProperty;
8612
- var __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor;
8613
- var __decorateClass$9 = (decorators, target, key, kind) => {
8614
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$9(target, key) : target;
8615
- for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8616
- if (kind && result) __defProp$9(target, key, result);
8617
- return result;
8795
+ /**
8796
+ * Divider roles
8797
+ * @public
8798
+ */
8799
+ const DividerRole = {
8800
+ /**
8801
+ * The divider semantically separates content
8802
+ */
8803
+ separator: "separator",
8804
+ /**
8805
+ * The divider has no semantic value and is for visual presentation only.
8806
+ */
8807
+ presentation: "presentation"
8618
8808
  };
8619
- class Menu extends FASTElement {
8809
+ /**
8810
+ * Divider orientation
8811
+ * @public
8812
+ */
8813
+ const DividerOrientation = Orientation;
8814
+
8815
+ /**
8816
+ * The template for the {@link @microsoft/fast-foundation#FASTDivider} component.
8817
+ * @public
8818
+ */
8819
+ function dividerTemplate() {
8820
+ return html`<template role="${x => x.role}" aria-orientation="${x => x.role !== DividerRole.presentation ? x.orientation : void 0}"><slot></slot></template>`;
8821
+ }
8822
+
8823
+ /**
8824
+ * A Divider Custom HTML Element.
8825
+ * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#separator | ARIA separator } or {@link https://www.w3.org/TR/wai-aria-1.1/#presentation | ARIA presentation}.
8826
+ *
8827
+ * @public
8828
+ */
8829
+ class FASTDivider extends FASTElement {
8620
8830
  constructor() {
8621
8831
  super(...arguments);
8622
- this.openOnHover = false;
8623
- this.openOnContext = false;
8624
- this.closeOnScroll = false;
8625
- this.persistOnItemClick = false;
8626
- this.open = false;
8627
- this.slottedMenuList = [];
8628
- this.slottedTriggers = [];
8629
- this.toggleMenu = () => {
8630
- if (this.open) {
8631
- this.closeMenu();
8632
- } else {
8633
- this.openMenu();
8634
- }
8635
- };
8636
- this.closeMenu = () => {
8637
- this.open = false;
8638
- if (this.closeOnScroll) {
8639
- document.removeEventListener("scroll", this.closeMenu);
8640
- }
8641
- };
8642
- this.openMenu = e => {
8643
- this.open = true;
8644
- if (e && this.openOnContext) {
8645
- e.preventDefault();
8646
- }
8647
- if (this.closeOnScroll) {
8648
- document.addEventListener("scroll", this.closeMenu);
8649
- }
8650
- };
8651
- this.setPositioningTask = () => {
8652
- this.setPositioning();
8653
- };
8654
- this.handleTriggerKeydown = e => {
8655
- if (e.defaultPrevented) {
8656
- return;
8657
- }
8658
- const key = e.key;
8659
- switch (key) {
8660
- case keySpace:
8832
+ /**
8833
+ * The role of the element.
8834
+ *
8835
+ * @public
8836
+ * @remarks
8837
+ * HTML Attribute: role
8838
+ */
8839
+ this.role = DividerRole.separator;
8840
+ /**
8841
+ * The orientation of the divider.
8842
+ *
8843
+ * @public
8844
+ * @remarks
8845
+ * HTML Attribute: orientation
8846
+ */
8847
+ this.orientation = DividerOrientation.horizontal;
8848
+ }
8849
+ }
8850
+ __decorate([attr], FASTDivider.prototype, "role", void 0);
8851
+ __decorate([attr], FASTDivider.prototype, "orientation", void 0);
8852
+
8853
+ /**
8854
+ * Menu items roles.
8855
+ * @public
8856
+ */
8857
+ const MenuItemRole = {
8858
+ /**
8859
+ * The menu item has a "menuitem" role
8860
+ */
8861
+ menuitem: "menuitem",
8862
+ /**
8863
+ * The menu item has a "menuitemcheckbox" role
8864
+ */
8865
+ menuitemcheckbox: "menuitemcheckbox",
8866
+ /**
8867
+ * The menu item has a "menuitemradio" role
8868
+ */
8869
+ menuitemradio: "menuitemradio"
8870
+ };
8871
+ /**
8872
+ * @internal
8873
+ */
8874
+ ({
8875
+ [MenuItemRole.menuitem]: "menuitem",
8876
+ [MenuItemRole.menuitemcheckbox]: "menuitemcheckbox",
8877
+ [MenuItemRole.menuitemradio]: "menuitemradio"
8878
+ });
8879
+
8880
+ /**
8881
+ * Generates a template for the {@link @microsoft/fast-foundation#(FASTMenuItem:class)} component using
8882
+ * the provided prefix.
8883
+ *
8884
+ * @public
8885
+ */
8886
+ function menuItemTemplate(options = {}) {
8887
+ return html`<template aria-haspopup="${x => x.hasSubmenu ? "menu" : void 0}" aria-checked="${x => x.role !== MenuItemRole.menuitem ? x.checked : void 0}" aria-disabled="${x => x.disabled}" aria-expanded="${x => x.expanded}" @keydown="${(x, c) => x.handleMenuItemKeyDown(c.event)}" @click="${(x, c) => x.handleMenuItemClick(c.event)}" @mouseover="${(x, c) => x.handleMouseOver(c.event)}" @mouseout="${(x, c) => x.handleMouseOut(c.event)}">${when(x => x.role === MenuItemRole.menuitemcheckbox, html`<div part="input-container" class="input-container"><span part="checkbox" class="checkbox"><slot name="checkbox-indicator">${staticallyCompose(options.checkboxIndicator)}</slot></span></div>`)} ${when(x => x.role === MenuItemRole.menuitemradio, html`<div part="input-container" class="input-container"><span part="radio" class="radio"><slot name="radio-indicator">${staticallyCompose(options.radioIndicator)}</slot></span></div>`)}</div>${startSlotTemplate(options)}<span class="content" part="content"><slot></slot></span>${endSlotTemplate(options)} ${when(x => x.hasSubmenu, html`<div part="expand-collapse-glyph-container" class="expand-collapse-glyph-container"><span part="expand-collapse" class="expand-collapse"><slot name="expand-collapse-indicator">${staticallyCompose(options.expandCollapseGlyph)}</slot></span></div>`)}<span ?hidden="${x => !x.expanded}" class="submenu-container" part="submenu-container" ${ref("submenuContainer")}><slot name="submenu" ${slotted({
8888
+ property: "slottedSubmenu",
8889
+ filter: elements("[role='menu']")
8890
+ })}></slot></span></template>`;
8891
+ }
8892
+
8893
+ /**
8894
+ * A Switch Custom HTML Element.
8895
+ * Implements {@link https://www.w3.org/TR/wai-aria-1.1/#menuitem | ARIA menuitem }, {@link https://www.w3.org/TR/wai-aria-1.1/#menuitemcheckbox | ARIA menuitemcheckbox}, or {@link https://www.w3.org/TR/wai-aria-1.1/#menuitemradio | ARIA menuitemradio }.
8896
+ *
8897
+ * @slot checked-indicator - The checked indicator
8898
+ * @slot radio-indicator - The radio indicator
8899
+ * @slot start - Content which can be provided before the menu item content
8900
+ * @slot end - Content which can be provided after the menu item content
8901
+ * @slot - The default slot for menu item content
8902
+ * @slot expand-collapse-indicator - The expand/collapse indicator
8903
+ * @slot submenu - Used to nest menu's within menu items
8904
+ * @csspart input-container - The element representing the visual checked or radio indicator
8905
+ * @csspart checkbox - The element wrapping the `menuitemcheckbox` indicator
8906
+ * @csspart radio - The element wrapping the `menuitemradio` indicator
8907
+ * @csspart content - The element wrapping the menu item content
8908
+ * @csspart expand-collapse-glyph-container - The element wrapping the expand collapse element
8909
+ * @csspart expand-collapse - The expand/collapse element
8910
+ * @csspart submenu-region - The container for the submenu, used for positioning
8911
+ * @fires expanded-change - Fires a custom 'expanded-change' event when the expanded state changes
8912
+ * @fires change - Fires a custom 'change' event when a non-submenu item with a role of `menuitemcheckbox`, `menuitemradio`, or `menuitem` is invoked
8913
+ *
8914
+ * @public
8915
+ */
8916
+ class FASTMenuItem extends FASTElement {
8917
+ constructor() {
8918
+ super(...arguments);
8919
+ /**
8920
+ * The role of the element.
8921
+ *
8922
+ * @public
8923
+ * @remarks
8924
+ * HTML Attribute: role
8925
+ */
8926
+ this.role = MenuItemRole.menuitem;
8927
+ /**
8928
+ * The checked value of the element.
8929
+ *
8930
+ * @public
8931
+ * @remarks
8932
+ * HTML Attribute: checked
8933
+ */
8934
+ this.checked = false;
8935
+ this.focusSubmenuOnLoad = false;
8936
+ /**
8937
+ * @internal
8938
+ */
8939
+ this.handleMenuItemKeyDown = e => {
8940
+ if (e.defaultPrevented) {
8941
+ return false;
8942
+ }
8943
+ switch (e.key) {
8661
8944
  case keyEnter:
8662
- e.preventDefault();
8663
- this.toggleMenu();
8664
- if (this.open) {
8665
- this.focusMenuList();
8945
+ case keySpace:
8946
+ this.invoke();
8947
+ return false;
8948
+ case keyArrowRight:
8949
+ //open/focus on submenu
8950
+ this.expanded && this.submenu ? this.submenu.focus() : this.expandAndFocus();
8951
+ return false;
8952
+ case keyEscape:
8953
+ // close submenu
8954
+ if (this.expanded) {
8955
+ this.closeSubMenu();
8956
+ return false;
8666
8957
  }
8667
8958
  break;
8668
- default:
8669
- return true;
8959
+ case keyArrowLeft:
8960
+ //close submenu
8961
+ if (this.expanded) {
8962
+ this.closeSubMenu();
8963
+ return false;
8964
+ }
8670
8965
  }
8966
+ return true;
8671
8967
  };
8672
- this.handleDocumentClick = e => {
8673
- if (e && !e.composedPath().includes(this._menuList) && !e.composedPath().includes(this._trigger)) {
8674
- this.closeMenu();
8968
+ /**
8969
+ * @internal
8970
+ */
8971
+ this.handleMenuItemClick = e => {
8972
+ if (e.defaultPrevented || this.disabled) {
8973
+ return false;
8974
+ }
8975
+ this.invoke();
8976
+ return false;
8977
+ };
8978
+ /**
8979
+ * @internal
8980
+ */
8981
+ this.submenuLoaded = () => {
8982
+ if (!this.focusSubmenuOnLoad) {
8983
+ return;
8984
+ }
8985
+ this.focusSubmenuOnLoad = false;
8986
+ if (this.submenu) {
8987
+ this.submenu.focus();
8988
+ this.setAttribute("tabindex", "-1");
8989
+ }
8990
+ };
8991
+ /**
8992
+ * @internal
8993
+ */
8994
+ this.handleMouseOver = e => {
8995
+ if (this.disabled || !this.hasSubmenu || this.expanded) {
8996
+ return false;
8997
+ }
8998
+ this.expanded = true;
8999
+ return false;
9000
+ };
9001
+ /**
9002
+ * @internal
9003
+ */
9004
+ this.handleMouseOut = e => {
9005
+ if (!this.expanded || this.contains(document.activeElement)) {
9006
+ return false;
9007
+ }
9008
+ this.expanded = false;
9009
+ return false;
9010
+ };
9011
+ /**
9012
+ * @internal
9013
+ */
9014
+ this.closeSubMenu = () => {
9015
+ // close submenu
9016
+ this.expanded = false;
9017
+ this.focus();
9018
+ };
9019
+ /**
9020
+ * @internal
9021
+ */
9022
+ this.expandAndFocus = () => {
9023
+ if (!this.hasSubmenu) {
9024
+ return;
9025
+ }
9026
+ this.focusSubmenuOnLoad = true;
9027
+ this.expanded = true;
9028
+ };
9029
+ /**
9030
+ * @internal
9031
+ */
9032
+ this.invoke = () => {
9033
+ if (this.disabled) {
9034
+ return;
9035
+ }
9036
+ switch (this.role) {
9037
+ case MenuItemRole.menuitemcheckbox:
9038
+ this.checked = !this.checked;
9039
+ break;
9040
+ case MenuItemRole.menuitem:
9041
+ if (this.hasSubmenu) {
9042
+ this.expandAndFocus();
9043
+ break;
9044
+ }
9045
+ this.$emit("change");
9046
+ break;
9047
+ case MenuItemRole.menuitemradio:
9048
+ if (!this.checked) {
9049
+ this.checked = true;
9050
+ }
9051
+ break;
8675
9052
  }
8676
9053
  };
8677
9054
  }
8678
- connectedCallback() {
8679
- super.connectedCallback();
8680
- Updates.enqueue(() => this.setComponent());
8681
- }
8682
- disconnectedCallback() {
8683
- var _a;
8684
- super.disconnectedCallback();
8685
- (_a = this.cleanup) == null ? void 0 : _a.call(this);
8686
- this.removeListeners();
8687
- }
8688
- setComponent() {
8689
- if (this.$fastController.isConnected && this.slottedMenuList.length && this.slottedTriggers.length) {
8690
- this._trigger = this.slottedTriggers[0];
8691
- this._menuList = this.slottedMenuList[0];
8692
- this._trigger.setAttribute("aria-haspopup", "true");
8693
- this._trigger.setAttribute("aria-expanded", `${this.open}`);
8694
- this.addListeners();
8695
- }
8696
- }
8697
- focusMenuList() {
8698
- if (this.open && this._menuList) {
8699
- Updates.enqueue(() => {
8700
- this._menuList.focus();
9055
+ expandedChanged(prev, next) {
9056
+ if (this.$fastController.isConnected) {
9057
+ if (next && this.submenu) {
9058
+ this.updateSubmenu();
9059
+ }
9060
+ this.$emit("expanded-change", this, {
9061
+ bubbles: false
8701
9062
  });
8702
9063
  }
8703
9064
  }
8704
- focusTrigger() {
8705
- if (!this.open && this._trigger) {
8706
- Updates.enqueue(() => {
8707
- this._trigger.focus();
8708
- });
8709
- }
8710
- }
8711
- openChanged(oldValue, newValue) {
8712
- var _a;
8713
- if (this.$fastController.isConnected && this._trigger instanceof HTMLElement) {
8714
- this._trigger.setAttribute("aria-expanded", `${this.open}`);
8715
- if (this._menuList && this.open) {
8716
- Updates.enqueue(this.setPositioningTask);
8717
- }
9065
+ checkedChanged(oldValue, newValue) {
9066
+ if (this.$fastController.isConnected) {
9067
+ this.$emit("change");
8718
9068
  }
8719
- (_a = this.cleanup) == null ? void 0 : _a.call(this);
8720
- this.$emit("onOpenChange", {
8721
- open: newValue
8722
- });
8723
9069
  }
8724
- openOnHoverChanged(oldValue, newValue) {
8725
- var _a, _b;
8726
- if (newValue) {
8727
- (_a = this._trigger) == null ? void 0 : _a.addEventListener("mouseover", this.openMenu);
8728
- } else {
8729
- (_b = this._trigger) == null ? void 0 : _b.removeEventListener("mouseover", this.openMenu);
8730
- }
9070
+ /**
9071
+ * @internal
9072
+ */
9073
+ get hasSubmenu() {
9074
+ return !!this.submenu;
8731
9075
  }
8732
- persistOnItemClickChanged(oldValue, newValue) {
8733
- var _a, _b;
8734
- if (!newValue) {
8735
- (_a = this._menuList) == null ? void 0 : _a.addEventListener("click", this.closeMenu);
8736
- } else {
8737
- (_b = this._menuList) == null ? void 0 : _b.removeEventListener("click", this.closeMenu);
9076
+ /**
9077
+ * Sets the submenu and updates its position.
9078
+ *
9079
+ * @internal
9080
+ */
9081
+ slottedSubmenuChanged(prev, next) {
9082
+ if (next.length) {
9083
+ this.submenu = next[0];
9084
+ this.updateSubmenu();
8738
9085
  }
8739
9086
  }
8740
- openOnContextChanged(oldValue, newValue) {
8741
- var _a, _b;
8742
- if (newValue) {
8743
- (_a = this._trigger) == null ? void 0 : _a.addEventListener("contextmenu", this.openMenu);
8744
- } else {
8745
- (_b = this._trigger) == null ? void 0 : _b.removeEventListener("contextmenu", this.openMenu);
8746
- }
9087
+ /**
9088
+ * @internal
9089
+ */
9090
+ disconnectedCallback() {
9091
+ var _a;
9092
+ (_a = this.cleanup) === null || _a === void 0 ? void 0 : _a.call(this);
9093
+ super.disconnectedCallback();
8747
9094
  }
8748
- closeOnScrollChanged(oldValue, newValue) {
8749
- if (newValue) {
8750
- document.addEventListener("scroll", this.closeMenu);
8751
- } else {
8752
- document.removeEventListener("scroll", this.closeMenu);
9095
+ /**
9096
+ * Calculate and apply submenu positioning.
9097
+ *
9098
+ * @public
9099
+ */
9100
+ updateSubmenu() {
9101
+ var _a;
9102
+ (_a = this.cleanup) === null || _a === void 0 ? void 0 : _a.call(this);
9103
+ if (!this.submenu || !this.expanded) {
9104
+ return;
8753
9105
  }
8754
- }
8755
- setPositioning() {
8756
- if (this.$fastController.isConnected && this._menuList && this.open && this._trigger) {
8757
- this.cleanup = P(this, this.positioningContainer, async () => {
8758
- var _a, _b;
9106
+ Updates.enqueue(() => {
9107
+ this.cleanup = P(this, this.submenuContainer, () => __awaiter(this, void 0, void 0, function* () {
9108
+ const fallbackPlacements = ["left-start", "right-start"];
8759
9109
  const {
8760
- middlewareData,
8761
9110
  x,
8762
9111
  y
8763
- } = await z(this._trigger, this.positioningContainer, {
8764
- placement: "bottom",
8765
- strategy: "fixed",
8766
- middleware: [b$1(), k({
9112
+ } = yield z(this, this.submenuContainer, {
9113
+ middleware: [E$1(), k({
8767
9114
  apply: ({
8768
- availableHeight,
9115
+ availableWidth,
8769
9116
  rects
8770
9117
  }) => {
8771
- var _a2;
8772
- ((_a2 = this.positioningContainer) == null ? void 0 : _a2.style) && Object.assign(this.positioningContainer.style, {
8773
- maxHeight: `${availableHeight}px`,
8774
- width: `${rects.reference.width}px`
8775
- });
9118
+ if (availableWidth < rects.floating.width) {
9119
+ fallbackPlacements.push("bottom-end", "top-end");
9120
+ }
8776
9121
  }
8777
- }), P$1()]
9122
+ }), b$1({
9123
+ fallbackPlacements
9124
+ })],
9125
+ placement: "right-start",
9126
+ strategy: "fixed"
8778
9127
  });
8779
- if ((_a = middlewareData.hide) == null ? void 0 : _a.referenceHidden) {
8780
- this.open = false;
8781
- return;
8782
- }
8783
- ((_b = this.positioningContainer) == null ? void 0 : _b.style) && Object.assign(this.positioningContainer.style, {
9128
+ Object.assign(this.submenuContainer.style, {
9129
+ left: `${x}px`,
8784
9130
  position: "fixed",
8785
- top: "0",
8786
- left: "0",
8787
- transform: `translate(${x}px, ${y}px)`
9131
+ top: `${y}px`
8788
9132
  });
8789
- });
8790
- }
8791
- }
8792
- addListeners() {
8793
- var _a, _b, _c, _d, _e;
8794
- document.addEventListener("click", this.handleDocumentClick);
8795
- (_a = this._trigger) == null ? void 0 : _a.addEventListener("keydown", this.handleTriggerKeydown);
8796
- if (!this.persistOnItemClick) {
8797
- (_b = this._menuList) == null ? void 0 : _b.addEventListener("click", this.closeMenu);
8798
- }
8799
- if (this.openOnHover) {
8800
- (_c = this._trigger) == null ? void 0 : _c.addEventListener("mouseover", this.openMenu);
8801
- } else if (this.openOnContext) {
8802
- (_d = this._trigger) == null ? void 0 : _d.addEventListener("contextmenu", this.openMenu);
8803
- } else {
8804
- (_e = this._trigger) == null ? void 0 : _e.addEventListener("click", this.toggleMenu);
8805
- }
8806
- }
8807
- removeListeners() {
8808
- var _a, _b, _c, _d, _e;
8809
- document.removeEventListener("click", this.handleDocumentClick);
8810
- (_a = this._trigger) == null ? void 0 : _a.removeEventListener("keydown", this.handleTriggerKeydown);
8811
- if (!this.persistOnItemClick) {
8812
- (_b = this._menuList) == null ? void 0 : _b.removeEventListener("click", this.closeMenu);
8813
- }
8814
- if (this.openOnHover) {
8815
- (_c = this._trigger) == null ? void 0 : _c.removeEventListener("mouseover", this.openMenu);
8816
- }
8817
- if (this.openOnContext) {
8818
- (_d = this._trigger) == null ? void 0 : _d.removeEventListener("contextmenu", this.openMenu);
8819
- } else {
8820
- (_e = this._trigger) == null ? void 0 : _e.removeEventListener("click", this.toggleMenu);
8821
- }
8822
- }
8823
- handleMenuKeydown(e) {
8824
- if (e.defaultPrevented) {
8825
- return;
8826
- }
8827
- const key = e.key;
8828
- switch (key) {
8829
- case keyEscape:
8830
- e.preventDefault();
8831
- if (this.open) {
8832
- this.closeMenu();
8833
- this.focusTrigger();
8834
- }
8835
- break;
8836
- case keyTab:
8837
- if (this.open) {
8838
- this.closeMenu();
8839
- }
8840
- if (e.shiftKey) {
8841
- this.focusTrigger();
8842
- }
8843
- default:
8844
- return true;
8845
- }
9133
+ this.submenuLoaded();
9134
+ }));
9135
+ });
8846
9136
  }
8847
9137
  }
8848
- __decorateClass$9([observable, attr({
8849
- attribute: "open-on-hover",
8850
- mode: "boolean"
8851
- })], Menu.prototype, "openOnHover", 2);
8852
- __decorateClass$9([observable, attr({
8853
- attribute: "open-on-context",
9138
+ __decorate([attr({
8854
9139
  mode: "boolean"
8855
- })], Menu.prototype, "openOnContext", 2);
8856
- __decorateClass$9([observable, attr({
8857
- attribute: "close-on-scroll",
9140
+ })], FASTMenuItem.prototype, "disabled", void 0);
9141
+ __decorate([attr({
8858
9142
  mode: "boolean"
8859
- })], Menu.prototype, "closeOnScroll", 2);
8860
- __decorateClass$9([observable, attr({
8861
- attribute: "persist-on-item-click",
9143
+ })], FASTMenuItem.prototype, "expanded", void 0);
9144
+ __decorate([attr], FASTMenuItem.prototype, "role", void 0);
9145
+ __decorate([attr({
8862
9146
  mode: "boolean"
8863
- })], Menu.prototype, "persistOnItemClick", 2);
8864
- __decorateClass$9([observable, attr({
9147
+ })], FASTMenuItem.prototype, "checked", void 0);
9148
+ __decorate([attr({
8865
9149
  mode: "boolean"
8866
- })], Menu.prototype, "open", 2);
8867
- __decorateClass$9([observable], Menu.prototype, "slottedMenuList", 2);
8868
- __decorateClass$9([observable], Menu.prototype, "slottedTriggers", 2);
9150
+ })], FASTMenuItem.prototype, "hidden", void 0);
9151
+ __decorate([observable], FASTMenuItem.prototype, "slottedSubmenu", void 0);
9152
+ __decorate([observable], FASTMenuItem.prototype, "submenu", void 0);
9153
+ applyMixins$1(FASTMenuItem, StartEnd);
8869
9154
 
9155
+ /**
9156
+ * The template for the {@link @microsoft/fast-foundation#FASTMenu} component.
9157
+ * @public
9158
+ */
8870
9159
  function menuTemplate$1() {
8871
- return html`<template ?open-on-hover="${x => x.openOnHover}" ?open-on-context="${x => x.openOnContext}" ?close-on-scroll="${x => x.closeOnScroll}" ?persist-on-item-click="${x => x.persistOnItemClick}" @keydown="${(x, c) => x.handleMenuKeydown(c.event)}"><slot name="trigger" ${slotted({
8872
- property: "slottedTriggers",
8873
- filter: elements()
8874
- })}></slot><span ${ref("positioningContainer")} part="positioning-container" class="positioning-container" ?hidden="${x => !x.open}"><slot ${slotted({
8875
- property: "slottedMenuList",
8876
- filter: elements()
8877
- })}></slot></span></template>`;
9160
+ 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>`;
8878
9161
  }
8879
- const template$f = menuTemplate$1();
8880
-
8881
- const styles$e = css`
8882
- :host{position:relative;z-index:var(--z-index-menu,1)}.positioning-container{position:fixed;top:0;left:0;transform:translate(0,0)}`;
8883
-
8884
- const definition$f = Menu.compose({
8885
- name: `${FluentDesignSystem.prefix}-menu`,
8886
- template: template$f,
8887
- styles: styles$e
8888
- });
8889
-
8890
- class MenuButton extends Button {}
8891
-
8892
- const MenuButtonAppearance = ButtonAppearance;
8893
- const MenuButtonShape = ButtonShape;
8894
- const MenuButtonSize = ButtonSize;
8895
-
8896
- const template$e = buttonTemplate$1({
8897
- end: html.partial(`<svg slot="end" fill="currentColor" aria-hidden="true" width="1em" height="1em" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><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></svg>`)
8898
- });
8899
-
8900
- const definition$e = MenuButton.compose({
8901
- name: `${FluentDesignSystem.prefix}-menu-button`,
8902
- template: template$e,
8903
- styles: styles$o,
8904
- shadowOptions: {
8905
- delegatesFocus: true
8906
- }
8907
- });
8908
9162
 
8909
9163
  /**
8910
- * Menu items roles.
9164
+ * A Menu Custom HTML Element.
9165
+ * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#menu | ARIA menu }.
9166
+ *
9167
+ * @slot - The default slot for the menu items
9168
+ *
8911
9169
  * @public
8912
9170
  */
8913
- const MenuItemRole = {
8914
- /**
8915
- * The menu item has a "menuitem" role
8916
- */
8917
- menuitem: "menuitem",
8918
- /**
8919
- * The menu item has a "menuitemcheckbox" role
8920
- */
8921
- menuitemcheckbox: "menuitemcheckbox",
8922
- /**
8923
- * The menu item has a "menuitemradio" role
8924
- */
8925
- menuitemradio: "menuitemradio"
8926
- };
8927
- /**
8928
- * @internal
8929
- */
8930
- ({
8931
- [MenuItemRole.menuitem]: "menuitem",
8932
- [MenuItemRole.menuitemcheckbox]: "menuitemcheckbox",
8933
- [MenuItemRole.menuitemradio]: "menuitemradio"
8934
- });
8935
-
8936
- /**
8937
- * Generates a template for the {@link @microsoft/fast-foundation#(FASTMenuItem:class)} component using
8938
- * the provided prefix.
8939
- *
8940
- * @public
8941
- */
8942
- function menuItemTemplate(options = {}) {
8943
- return html`<template aria-haspopup="${x => x.hasSubmenu ? "menu" : void 0}" aria-checked="${x => x.role !== MenuItemRole.menuitem ? x.checked : void 0}" aria-disabled="${x => x.disabled}" aria-expanded="${x => x.expanded}" @keydown="${(x, c) => x.handleMenuItemKeyDown(c.event)}" @click="${(x, c) => x.handleMenuItemClick(c.event)}" @mouseover="${(x, c) => x.handleMouseOver(c.event)}" @mouseout="${(x, c) => x.handleMouseOut(c.event)}">${when(x => x.role === MenuItemRole.menuitemcheckbox, html`<div part="input-container" class="input-container"><span part="checkbox" class="checkbox"><slot name="checkbox-indicator">${staticallyCompose(options.checkboxIndicator)}</slot></span></div>`)} ${when(x => x.role === MenuItemRole.menuitemradio, html`<div part="input-container" class="input-container"><span part="radio" class="radio"><slot name="radio-indicator">${staticallyCompose(options.radioIndicator)}</slot></span></div>`)}</div>${startSlotTemplate(options)}<span class="content" part="content"><slot></slot></span>${endSlotTemplate(options)} ${when(x => x.hasSubmenu, html`<div part="expand-collapse-glyph-container" class="expand-collapse-glyph-container"><span part="expand-collapse" class="expand-collapse"><slot name="expand-collapse-indicator">${staticallyCompose(options.expandCollapseGlyph)}</slot></span></div>`)}<span ?hidden="${x => !x.expanded}" class="submenu-container" part="submenu-container" ${ref("submenuContainer")}><slot name="submenu" ${slotted({
8944
- property: "slottedSubmenu",
8945
- filter: elements("[role='menu']")
8946
- })}></slot></span></template>`;
8947
- }
8948
-
8949
- /**
8950
- * A Switch Custom HTML Element.
8951
- * Implements {@link https://www.w3.org/TR/wai-aria-1.1/#menuitem | ARIA menuitem }, {@link https://www.w3.org/TR/wai-aria-1.1/#menuitemcheckbox | ARIA menuitemcheckbox}, or {@link https://www.w3.org/TR/wai-aria-1.1/#menuitemradio | ARIA menuitemradio }.
8952
- *
8953
- * @slot checked-indicator - The checked indicator
8954
- * @slot radio-indicator - The radio indicator
8955
- * @slot start - Content which can be provided before the menu item content
8956
- * @slot end - Content which can be provided after the menu item content
8957
- * @slot - The default slot for menu item content
8958
- * @slot expand-collapse-indicator - The expand/collapse indicator
8959
- * @slot submenu - Used to nest menu's within menu items
8960
- * @csspart input-container - The element representing the visual checked or radio indicator
8961
- * @csspart checkbox - The element wrapping the `menuitemcheckbox` indicator
8962
- * @csspart radio - The element wrapping the `menuitemradio` indicator
8963
- * @csspart content - The element wrapping the menu item content
8964
- * @csspart expand-collapse-glyph-container - The element wrapping the expand collapse element
8965
- * @csspart expand-collapse - The expand/collapse element
8966
- * @csspart submenu-region - The container for the submenu, used for positioning
8967
- * @fires expanded-change - Fires a custom 'expanded-change' event when the expanded state changes
8968
- * @fires change - Fires a custom 'change' event when a non-submenu item with a role of `menuitemcheckbox`, `menuitemradio`, or `menuitem` is invoked
8969
- *
8970
- * @public
8971
- */
8972
- class FASTMenuItem extends FASTElement {
9171
+ class FASTMenu extends FASTElement {
8973
9172
  constructor() {
8974
9173
  super(...arguments);
9174
+ this.expandedItem = null;
8975
9175
  /**
8976
- * The role of the element.
8977
- *
8978
- * @public
8979
- * @remarks
8980
- * HTML Attribute: role
8981
- */
8982
- this.role = MenuItemRole.menuitem;
8983
- /**
8984
- * The checked value of the element.
8985
- *
8986
- * @public
8987
- * @remarks
8988
- * HTML Attribute: checked
9176
+ * The index of the focusable element in the items array
9177
+ * defaults to -1
8989
9178
  */
8990
- this.checked = false;
8991
- this.focusSubmenuOnLoad = false;
9179
+ this.focusIndex = -1;
8992
9180
  /**
8993
9181
  * @internal
8994
9182
  */
8995
- this.handleMenuItemKeyDown = e => {
8996
- if (e.defaultPrevented) {
8997
- return false;
8998
- }
8999
- switch (e.key) {
9000
- case keyEnter:
9001
- case keySpace:
9002
- this.invoke();
9003
- return false;
9004
- case keyArrowRight:
9005
- //open/focus on submenu
9006
- this.expanded && this.submenu ? this.submenu.focus() : this.expandAndFocus();
9007
- return false;
9008
- case keyEscape:
9009
- // close submenu
9010
- if (this.expanded) {
9011
- this.closeSubMenu();
9012
- return false;
9013
- }
9014
- break;
9015
- case keyArrowLeft:
9016
- //close submenu
9017
- if (this.expanded) {
9018
- this.closeSubMenu();
9019
- return false;
9020
- }
9021
- }
9022
- return true;
9183
+ this.isNestedMenu = () => {
9184
+ return this.parentElement !== null && isHTMLElement(this.parentElement) && this.parentElement.getAttribute("role") === "menuitem";
9023
9185
  };
9024
9186
  /**
9187
+ * if focus is moving out of the menu, reset to a stable initial state
9025
9188
  * @internal
9026
9189
  */
9027
- this.handleMenuItemClick = e => {
9028
- if (e.defaultPrevented || this.disabled) {
9029
- return false;
9190
+ this.handleFocusOut = e => {
9191
+ if (!this.contains(e.relatedTarget) && this.menuItems !== undefined) {
9192
+ this.collapseExpandedItem();
9193
+ // find our first focusable element
9194
+ const focusIndex = this.menuItems.findIndex(this.isFocusableElement);
9195
+ // set the current focus index's tabindex to -1
9196
+ this.menuItems[this.focusIndex].setAttribute("tabindex", "-1");
9197
+ // set the first focusable element tabindex to 0
9198
+ this.menuItems[focusIndex].setAttribute("tabindex", "0");
9199
+ // set the focus index
9200
+ this.focusIndex = focusIndex;
9030
9201
  }
9031
- this.invoke();
9032
- return false;
9033
9202
  };
9034
- /**
9035
- * @internal
9036
- */
9037
- this.submenuLoaded = () => {
9038
- if (!this.focusSubmenuOnLoad) {
9039
- return;
9040
- }
9041
- this.focusSubmenuOnLoad = false;
9042
- if (this.submenu) {
9043
- this.submenu.focus();
9044
- this.setAttribute("tabindex", "-1");
9203
+ this.handleItemFocus = e => {
9204
+ const targetItem = e.target;
9205
+ if (this.menuItems !== undefined && targetItem !== this.menuItems[this.focusIndex]) {
9206
+ this.menuItems[this.focusIndex].setAttribute("tabindex", "-1");
9207
+ this.focusIndex = this.menuItems.indexOf(targetItem);
9208
+ targetItem.setAttribute("tabindex", "0");
9045
9209
  }
9046
9210
  };
9047
- /**
9048
- * @internal
9049
- */
9050
- this.handleMouseOver = e => {
9051
- if (this.disabled || !this.hasSubmenu || this.expanded) {
9052
- return false;
9211
+ this.handleExpandedChanged = e => {
9212
+ if (e.defaultPrevented || e.target === null || this.menuItems === undefined || this.menuItems.indexOf(e.target) < 0) {
9213
+ return;
9053
9214
  }
9054
- this.expanded = true;
9055
- return false;
9056
- };
9057
- /**
9058
- * @internal
9059
- */
9060
- this.handleMouseOut = e => {
9061
- if (!this.expanded || this.contains(document.activeElement)) {
9062
- return false;
9215
+ e.preventDefault();
9216
+ const changedItem = e.target;
9217
+ // closing an expanded item without opening another
9218
+ if (this.expandedItem !== null && changedItem === this.expandedItem && changedItem.expanded === false) {
9219
+ this.expandedItem = null;
9220
+ return;
9221
+ }
9222
+ if (changedItem.expanded) {
9223
+ if (this.expandedItem !== null && this.expandedItem !== changedItem) {
9224
+ this.expandedItem.expanded = false;
9225
+ }
9226
+ this.menuItems[this.focusIndex].setAttribute("tabindex", "-1");
9227
+ this.expandedItem = changedItem;
9228
+ this.focusIndex = this.menuItems.indexOf(changedItem);
9229
+ changedItem.setAttribute("tabindex", "0");
9063
9230
  }
9064
- this.expanded = false;
9065
- return false;
9066
- };
9067
- /**
9068
- * @internal
9069
- */
9070
- this.closeSubMenu = () => {
9071
- // close submenu
9072
- this.expanded = false;
9073
- this.focus();
9074
9231
  };
9075
9232
  /**
9076
- * @internal
9233
+ * handle change from child element
9077
9234
  */
9078
- this.expandAndFocus = () => {
9079
- if (!this.hasSubmenu) {
9235
+ this.changeHandler = e => {
9236
+ if (this.menuItems === undefined) {
9080
9237
  return;
9081
9238
  }
9082
- this.focusSubmenuOnLoad = true;
9083
- this.expanded = true;
9084
- };
9085
- /**
9086
- * @internal
9087
- */
9088
- this.invoke = () => {
9089
- if (this.disabled) {
9239
+ const changedMenuItem = e.target;
9240
+ const changeItemIndex = this.menuItems.indexOf(changedMenuItem);
9241
+ if (changeItemIndex === -1) {
9090
9242
  return;
9091
9243
  }
9092
- switch (this.role) {
9093
- case MenuItemRole.menuitemcheckbox:
9094
- this.checked = !this.checked;
9095
- break;
9096
- case MenuItemRole.menuitem:
9097
- if (this.hasSubmenu) {
9098
- this.expandAndFocus();
9244
+ if (changedMenuItem.role === "menuitemradio" && changedMenuItem.checked === true) {
9245
+ for (let i = changeItemIndex - 1; i >= 0; --i) {
9246
+ const item = this.menuItems[i];
9247
+ const role = item.getAttribute("role");
9248
+ if (role === MenuItemRole.menuitemradio) {
9249
+ item.checked = false;
9250
+ }
9251
+ if (role === "separator") {
9099
9252
  break;
9100
9253
  }
9101
- this.$emit("change");
9102
- break;
9103
- case MenuItemRole.menuitemradio:
9104
- if (!this.checked) {
9105
- this.checked = true;
9254
+ }
9255
+ const maxIndex = this.menuItems.length - 1;
9256
+ for (let i = changeItemIndex + 1; i <= maxIndex; ++i) {
9257
+ const item = this.menuItems[i];
9258
+ const role = item.getAttribute("role");
9259
+ if (role === MenuItemRole.menuitemradio) {
9260
+ item.checked = false;
9106
9261
  }
9107
- break;
9262
+ if (role === "separator") {
9263
+ break;
9264
+ }
9265
+ }
9108
9266
  }
9109
9267
  };
9110
- }
9111
- expandedChanged(prev, next) {
9112
- if (this.$fastController.isConnected) {
9113
- if (next && this.submenu) {
9114
- this.updateSubmenu();
9115
- }
9116
- this.$emit("expanded-change", this, {
9117
- bubbles: false
9118
- });
9119
- }
9120
- }
9121
- checkedChanged(oldValue, newValue) {
9122
- if (this.$fastController.isConnected) {
9123
- this.$emit("change");
9124
- }
9125
- }
9126
- /**
9127
- * @internal
9128
- */
9129
- get hasSubmenu() {
9130
- return !!this.submenu;
9131
- }
9132
- /**
9133
- * Sets the submenu and updates its position.
9134
- *
9135
- * @internal
9136
- */
9137
- slottedSubmenuChanged(prev, next) {
9138
- if (next.length) {
9139
- this.submenu = next[0];
9140
- this.updateSubmenu();
9141
- }
9142
- }
9143
- /**
9144
- * @internal
9145
- */
9146
- disconnectedCallback() {
9147
- var _a;
9148
- (_a = this.cleanup) === null || _a === void 0 ? void 0 : _a.call(this);
9149
- super.disconnectedCallback();
9150
- }
9151
- /**
9152
- * Calculate and apply submenu positioning.
9153
- *
9154
- * @public
9155
- */
9156
- updateSubmenu() {
9157
- var _a;
9158
- (_a = this.cleanup) === null || _a === void 0 ? void 0 : _a.call(this);
9159
- if (!this.submenu || !this.expanded) {
9160
- return;
9161
- }
9162
- Updates.enqueue(() => {
9163
- this.cleanup = P(this, this.submenuContainer, () => __awaiter(this, void 0, void 0, function* () {
9164
- const fallbackPlacements = ["left-start", "right-start"];
9165
- const {
9166
- x,
9167
- y
9168
- } = yield z(this, this.submenuContainer, {
9169
- middleware: [E$1(), k({
9170
- apply: ({
9171
- availableWidth,
9172
- rects
9173
- }) => {
9174
- if (availableWidth < rects.floating.width) {
9175
- fallbackPlacements.push("bottom-end", "top-end");
9176
- }
9177
- }
9178
- }), b$1({
9179
- fallbackPlacements
9180
- })],
9181
- placement: "right-start",
9182
- strategy: "fixed"
9183
- });
9184
- Object.assign(this.submenuContainer.style, {
9185
- left: `${x}px`,
9186
- position: "fixed",
9187
- top: `${y}px`
9188
- });
9189
- this.submenuLoaded();
9190
- }));
9191
- });
9192
- }
9193
- }
9194
- __decorate([attr({
9195
- mode: "boolean"
9196
- })], FASTMenuItem.prototype, "disabled", void 0);
9197
- __decorate([attr({
9198
- mode: "boolean"
9199
- })], FASTMenuItem.prototype, "expanded", void 0);
9200
- __decorate([attr], FASTMenuItem.prototype, "role", void 0);
9201
- __decorate([attr({
9202
- mode: "boolean"
9203
- })], FASTMenuItem.prototype, "checked", void 0);
9204
- __decorate([attr({
9205
- mode: "boolean"
9206
- })], FASTMenuItem.prototype, "hidden", void 0);
9207
- __decorate([observable], FASTMenuItem.prototype, "slottedSubmenu", void 0);
9208
- __decorate([observable], FASTMenuItem.prototype, "submenu", void 0);
9209
- applyMixins$1(FASTMenuItem, StartEnd);
9210
-
9211
- class MenuItem extends FASTMenuItem {}
9212
-
9213
- const Checkmark16Filled = html.partial(`<svg fill="currentColor" class="___12fm75w f1w7gpdv fez10in fg4l7m0" aria-hidden="true" width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.05 3.49c.28.3.27.77-.04 1.06l-7.93 7.47A.85.85 0 014.9 12L2.22 9.28a.75.75 0 111.06-1.06l2.24 2.27 7.47-7.04a.75.75 0 011.06.04z" fill="currentColor"></path></svg>`);
9214
- const chevronRight16Filled = html.partial(`<svg fill="currentColor" class="___12fm75w f1w7gpdv fez10in fg4l7m0" aria-hidden="true" width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5.74 3.2a.75.75 0 00-.04 1.06L9.23 8 5.7 11.74a.75.75 0 101.1 1.02l4-4.25a.75.75 0 000-1.02l-4-4.25a.75.75 0 00-1.06-.04z" fill="currentColor"></path></svg>`);
9215
- const template$d = menuItemTemplate({
9216
- checkboxIndicator: Checkmark16Filled,
9217
- expandCollapseGlyph: chevronRight16Filled,
9218
- radioIndicator: Checkmark16Filled
9219
- });
9220
-
9221
- const styles$d = css`
9222
- ${display("grid")}
9223
-
9224
- :host{grid-template-columns:20px 20px auto 20px;align-items:center;grid-gap:4px;height:32px;background:${colorNeutralBackground1};font:${fontWeightRegular} ${fontSizeBase300} / ${lineHeightBase300} ${fontFamilyBase};border-radius:${borderRadiusMedium};color:${colorNeutralForeground2};padding:0 10px;cursor:pointer;overflow:visible;contain:layout}:host(:hover){background:${colorNeutralBackground1Hover}}.content{white-space:nowrap;flex-grow:1;grid-column:auto / span 2;padding:0 2px}.checkbox,.radio{display:none}.input-container,.expand-collapse-glyph-container,::slotted([slot='start']),::slotted([slot='end']),:host([checked]) .checkbox,:host([checked]) .radio{display:inline-flex;justify-content:center;align-items:center;color:${colorNeutralForeground2}}.expand-collapse-glyph-container,::slotted([slot='start']),::slotted([slot='end']){height:32px;font-size:${fontSizeBase500};width:fit-content}.input-container{width:20px}::slotted([slot='end']){color:${colorNeutralForeground3};font:${fontWeightRegular} ${fontSizeBase200} / ${lineHeightBase200} ${fontFamilyBase};white-space:nowrap;grid-column:4 / span 1;justify-self:flex-end}.expand-collapse-glyph-container{grid-column:4 / span 1;justify-self:flex-end}:host(:hover) .input-container,:host(:hover) .expand-collapse-glyph-container,:host(:hover) .content{color:${colorNeutralForeground2Hover}}:host([icon]:hover) ::slotted([slot='start']){color:${colorCompoundBrandForeground1Hover}}:host(:active){background-color:${colorNeutralBackground1Selected}}:host(:active) .input-container,:host(:active) .expand-collapse-glyph-container,:host(:active) .content{color:${colorNeutralForeground2Pressed}}:host(:active) ::slotted([slot='start']){color:${colorCompoundBrandForeground1Pressed}}:host([disabled]){background-color:${colorNeutralBackgroundDisabled}}:host([disabled]) .content,:host([disabled]) .expand-collapse-glyph-container,:host([disabled]) ::slotted([slot='end']),:host([disabled]) ::slotted([slot='start']){color:${colorNeutralForegroundDisabled}}:host([data-indent]){display:grid}:host([data-indent='1']) .content{grid-column:2 / span 1}:host([data-indent='1'][role='menuitemcheckbox']){display:grid}:host([data-indent='2'][aria-haspopup='menu']) ::slotted([slot='end']){grid-column:4 / span 1}:host([data-indent='2'][aria-haspopup='menu']) .expand-collapse-glyph-container{grid-column:5 / span 1}:host([data-indent='1']) .content{grid-column:2 / span 1}:host([data-indent='1'][role='menuitemcheckbox']) .content,:host([data-indent='1'][role='menuitemradio']) .content{grid-column:auto / span 1}:host([icon]) ::slotted([slot='end']),:host([data-indent='1']) ::slotted([slot='end']){grid-column:4 / span 1;justify-self:flex-end}:host([data-indent='2']){display:grid;grid-template-columns:20px 20px auto auto}:host([data-indent='2']) .content{grid-column:3 / span 1}:host([data-indent='2']) .input-container{grid-column:1 / span 1}:host([data-indent='2']) ::slotted([slot='start']){grid-column:2 / span 1}:host([aria-haspopup='menu']){grid-template-columns:20px auto auto 20px}:host([data-indent='2'][aria-haspopup='menu']){grid-template-columns:20px 20px auto auto 20px}:host([aria-haspopup='menu']) ::slotted([slot='end']){grid-column:3 / span 1;justify-self:flex-end}:host([data-indent='2'][aria-haspopup='menu']) ::slotted([slot='end']){grid-column:4 / span 1;justify-self:flex-end}`;
9225
-
9226
- const definition$d = MenuItem.compose({
9227
- name: `${FluentDesignSystem.prefix}-menu-item`,
9228
- template: template$d,
9229
- styles: styles$d
9230
- });
9231
-
9232
- /**
9233
- * The template for the {@link @microsoft/fast-foundation#FASTMenu} component.
9234
- * @public
9235
- */
9236
- function menuTemplate() {
9237
- 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>`;
9238
- }
9239
-
9240
- /**
9241
- * A Menu Custom HTML Element.
9242
- * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#menu | ARIA menu }.
9243
- *
9244
- * @slot - The default slot for the menu items
9245
- *
9246
- * @public
9247
- */
9248
- class FASTMenu extends FASTElement {
9249
- constructor() {
9250
- super(...arguments);
9251
- this.expandedItem = null;
9252
- /**
9253
- * The index of the focusable element in the items array
9254
- * defaults to -1
9255
- */
9256
- this.focusIndex = -1;
9257
- /**
9258
- * @internal
9259
- */
9260
- this.isNestedMenu = () => {
9261
- return this.parentElement !== null && isHTMLElement(this.parentElement) && this.parentElement.getAttribute("role") === "menuitem";
9262
- };
9263
- /**
9264
- * if focus is moving out of the menu, reset to a stable initial state
9265
- * @internal
9266
- */
9267
- this.handleFocusOut = e => {
9268
- if (!this.contains(e.relatedTarget) && this.menuItems !== undefined) {
9269
- this.collapseExpandedItem();
9270
- // find our first focusable element
9271
- const focusIndex = this.menuItems.findIndex(this.isFocusableElement);
9272
- // set the current focus index's tabindex to -1
9273
- this.menuItems[this.focusIndex].setAttribute("tabindex", "-1");
9274
- // set the first focusable element tabindex to 0
9275
- this.menuItems[focusIndex].setAttribute("tabindex", "0");
9276
- // set the focus index
9277
- this.focusIndex = focusIndex;
9278
- }
9279
- };
9280
- this.handleItemFocus = e => {
9281
- const targetItem = e.target;
9282
- if (this.menuItems !== undefined && targetItem !== this.menuItems[this.focusIndex]) {
9283
- this.menuItems[this.focusIndex].setAttribute("tabindex", "-1");
9284
- this.focusIndex = this.menuItems.indexOf(targetItem);
9285
- targetItem.setAttribute("tabindex", "0");
9286
- }
9287
- };
9288
- this.handleExpandedChanged = e => {
9289
- if (e.defaultPrevented || e.target === null || this.menuItems === undefined || this.menuItems.indexOf(e.target) < 0) {
9290
- return;
9291
- }
9292
- e.preventDefault();
9293
- const changedItem = e.target;
9294
- // closing an expanded item without opening another
9295
- if (this.expandedItem !== null && changedItem === this.expandedItem && changedItem.expanded === false) {
9296
- this.expandedItem = null;
9297
- return;
9298
- }
9299
- if (changedItem.expanded) {
9300
- if (this.expandedItem !== null && this.expandedItem !== changedItem) {
9301
- this.expandedItem.expanded = false;
9302
- }
9303
- this.menuItems[this.focusIndex].setAttribute("tabindex", "-1");
9304
- this.expandedItem = changedItem;
9305
- this.focusIndex = this.menuItems.indexOf(changedItem);
9306
- changedItem.setAttribute("tabindex", "0");
9307
- }
9308
- };
9309
- /**
9310
- * handle change from child element
9311
- */
9312
- this.changeHandler = e => {
9313
- if (this.menuItems === undefined) {
9314
- return;
9315
- }
9316
- const changedMenuItem = e.target;
9317
- const changeItemIndex = this.menuItems.indexOf(changedMenuItem);
9318
- if (changeItemIndex === -1) {
9319
- return;
9320
- }
9321
- if (changedMenuItem.role === "menuitemradio" && changedMenuItem.checked === true) {
9322
- for (let i = changeItemIndex - 1; i >= 0; --i) {
9323
- const item = this.menuItems[i];
9324
- const role = item.getAttribute("role");
9325
- if (role === MenuItemRole.menuitemradio) {
9326
- item.checked = false;
9327
- }
9328
- if (role === "separator") {
9329
- break;
9330
- }
9331
- }
9332
- const maxIndex = this.menuItems.length - 1;
9333
- for (let i = changeItemIndex + 1; i <= maxIndex; ++i) {
9334
- const item = this.menuItems[i];
9335
- const role = item.getAttribute("role");
9336
- if (role === MenuItemRole.menuitemradio) {
9337
- item.checked = false;
9338
- }
9339
- if (role === "separator") {
9340
- break;
9341
- }
9342
- }
9343
- }
9344
- };
9345
- /**
9346
- * check if the item is a menu item
9347
- */
9348
- this.isMenuItemElement = el => {
9349
- return el instanceof FASTMenuItem || isHTMLElement(el) && el.getAttribute("role") in FASTMenu.focusableElementRoles;
9350
- };
9351
- /**
9352
- * check if the item is focusable
9353
- */
9354
- this.isFocusableElement = el => {
9355
- return this.isMenuItemElement(el);
9356
- };
9268
+ /**
9269
+ * check if the item is a menu item
9270
+ */
9271
+ this.isMenuItemElement = el => {
9272
+ return el instanceof FASTMenuItem || isHTMLElement(el) && el.getAttribute("role") in FASTMenu.focusableElementRoles;
9273
+ };
9274
+ /**
9275
+ * check if the item is focusable
9276
+ */
9277
+ this.isFocusableElement = el => {
9278
+ return this.isMenuItemElement(el);
9279
+ };
9357
9280
  }
9358
9281
  itemsChanged(oldValue, newValue) {
9359
9282
  // only update children after the component is connected and
@@ -9487,43 +9410,212 @@ class FASTMenu extends FASTElement {
9487
9410
  FASTMenu.focusableElementRoles = MenuItemRole;
9488
9411
  __decorate([observable], FASTMenu.prototype, "items", void 0);
9489
9412
 
9490
- class MenuList extends FASTMenu {
9491
- setItems() {
9492
- var _a;
9493
- super.setItems();
9494
- const filteredMenuListItems = (_a = this.menuItems) == null ? void 0 : _a.filter(this.isMenuItemElement);
9495
- filteredMenuListItems == null ? void 0 : filteredMenuListItems.forEach((item, index) => {
9496
- const indent = filteredMenuListItems == null ? void 0 : filteredMenuListItems.reduce((accum, current) => {
9497
- const elementValue = MenuList.elementIndent(current);
9498
- return Math.max(accum, elementValue);
9499
- }, 0);
9500
- if (item instanceof MenuItem) {
9501
- item.setAttribute("data-indent", `${indent}`);
9502
- }
9503
- });
9504
- }
9505
- static elementIndent(el) {
9506
- const role = el.getAttribute("role");
9507
- const startSlot = el.querySelector("[slot=start]");
9508
- if (role && role !== MenuItemRole.menuitem) {
9509
- return startSlot ? 2 : 1;
9510
- }
9511
- return startSlot ? 1 : 0;
9413
+ class _TextField extends FASTElement {}
9414
+ /**
9415
+ * A form-associated base class for the {@link @microsoft/fast-foundation#(TextField:class)} component.
9416
+ *
9417
+ * @beta
9418
+ */
9419
+ class FormAssociatedTextField extends FormAssociated(_TextField) {
9420
+ constructor() {
9421
+ super(...arguments);
9422
+ this.proxy = document.createElement("input");
9512
9423
  }
9513
9424
  }
9514
9425
 
9515
- const template$c = menuTemplate();
9516
-
9517
- const styles$c = css`
9518
- ${display("flex")}
9519
-
9520
- :host{flex-direction:column;height:fit-content;max-width:300px;min-width:160px;width:auto;background-color:${colorNeutralBackground1};border:1px solid ${colorTransparentStroke};border-radius:${borderRadiusMedium};box-shadow:${shadow16};padding:4px;row-gap:2px}`;
9426
+ /**
9427
+ * Text field sub-types
9428
+ * @public
9429
+ */
9430
+ const TextFieldType = {
9431
+ /**
9432
+ * An email TextField
9433
+ */
9434
+ email: "email",
9435
+ /**
9436
+ * A password TextField
9437
+ */
9438
+ password: "password",
9439
+ /**
9440
+ * A telephone TextField
9441
+ */
9442
+ tel: "tel",
9443
+ /**
9444
+ * A text TextField
9445
+ */
9446
+ text: "text",
9447
+ /**
9448
+ * A URL TextField
9449
+ */
9450
+ url: "url"
9451
+ };
9521
9452
 
9522
- const definition$c = MenuList.compose({
9523
- name: `${FluentDesignSystem.prefix}-menu-list`,
9524
- template: template$c,
9525
- styles: styles$c
9526
- });
9453
+ /**
9454
+ * A Text Field Custom HTML Element.
9455
+ * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/text | <input type="text" /> element }.
9456
+ *
9457
+ * @slot start - Content which can be provided before the number field input
9458
+ * @slot end - Content which can be provided after the number field input
9459
+ * @slot - The default slot for the label
9460
+ * @csspart label - The label
9461
+ * @csspart root - The element wrapping the control, including start and end slots
9462
+ * @csspart control - The text field element
9463
+ * @fires change - Fires a custom 'change' event when the value has changed
9464
+ *
9465
+ * @public
9466
+ */
9467
+ class FASTTextField extends FormAssociatedTextField {
9468
+ constructor() {
9469
+ super(...arguments);
9470
+ /**
9471
+ * Allows setting a type or mode of text.
9472
+ * @public
9473
+ * @remarks
9474
+ * HTML Attribute: type
9475
+ */
9476
+ this.type = TextFieldType.text;
9477
+ }
9478
+ readOnlyChanged() {
9479
+ if (this.proxy instanceof HTMLInputElement) {
9480
+ this.proxy.readOnly = this.readOnly;
9481
+ this.validate();
9482
+ }
9483
+ }
9484
+ autofocusChanged() {
9485
+ if (this.proxy instanceof HTMLInputElement) {
9486
+ this.proxy.autofocus = this.autofocus;
9487
+ this.validate();
9488
+ }
9489
+ }
9490
+ placeholderChanged() {
9491
+ if (this.proxy instanceof HTMLInputElement) {
9492
+ this.proxy.placeholder = this.placeholder;
9493
+ }
9494
+ }
9495
+ typeChanged() {
9496
+ if (this.proxy instanceof HTMLInputElement) {
9497
+ this.proxy.type = this.type;
9498
+ this.validate();
9499
+ }
9500
+ }
9501
+ listChanged() {
9502
+ if (this.proxy instanceof HTMLInputElement) {
9503
+ this.proxy.setAttribute("list", this.list);
9504
+ this.validate();
9505
+ }
9506
+ }
9507
+ maxlengthChanged() {
9508
+ if (this.proxy instanceof HTMLInputElement) {
9509
+ this.proxy.maxLength = this.maxlength;
9510
+ this.validate();
9511
+ }
9512
+ }
9513
+ minlengthChanged() {
9514
+ if (this.proxy instanceof HTMLInputElement) {
9515
+ this.proxy.minLength = this.minlength;
9516
+ this.validate();
9517
+ }
9518
+ }
9519
+ patternChanged() {
9520
+ if (this.proxy instanceof HTMLInputElement) {
9521
+ this.proxy.pattern = this.pattern;
9522
+ this.validate();
9523
+ }
9524
+ }
9525
+ sizeChanged() {
9526
+ if (this.proxy instanceof HTMLInputElement) {
9527
+ this.proxy.size = this.size;
9528
+ }
9529
+ }
9530
+ spellcheckChanged() {
9531
+ if (this.proxy instanceof HTMLInputElement) {
9532
+ this.proxy.spellcheck = this.spellcheck;
9533
+ }
9534
+ }
9535
+ /**
9536
+ * @internal
9537
+ */
9538
+ connectedCallback() {
9539
+ super.connectedCallback();
9540
+ this.proxy.setAttribute("type", this.type);
9541
+ this.validate();
9542
+ if (this.autofocus) {
9543
+ Updates.enqueue(() => {
9544
+ this.focus();
9545
+ });
9546
+ }
9547
+ }
9548
+ /**
9549
+ * Selects all the text in the text field
9550
+ *
9551
+ * @public
9552
+ */
9553
+ select() {
9554
+ this.control.select();
9555
+ /**
9556
+ * The select event does not permeate the shadow DOM boundary.
9557
+ * This fn effectively proxies the select event,
9558
+ * emitting a `select` event whenever the internal
9559
+ * control emits a `select` event
9560
+ */
9561
+ this.$emit("select");
9562
+ }
9563
+ /**
9564
+ * Handles the internal control's `input` event
9565
+ * @internal
9566
+ */
9567
+ handleTextInput() {
9568
+ this.value = this.control.value;
9569
+ }
9570
+ /**
9571
+ * Change event handler for inner control.
9572
+ * @remarks
9573
+ * "Change" events are not `composable` so they will not
9574
+ * permeate the shadow DOM boundary. This fn effectively proxies
9575
+ * the change event, emitting a `change` event whenever the internal
9576
+ * control emits a `change` event
9577
+ * @internal
9578
+ */
9579
+ handleChange() {
9580
+ this.$emit("change");
9581
+ }
9582
+ /** {@inheritDoc (FormAssociated:interface).validate} */
9583
+ validate() {
9584
+ super.validate(this.control);
9585
+ }
9586
+ }
9587
+ __decorate([attr({
9588
+ attribute: "readonly",
9589
+ mode: "boolean"
9590
+ })], FASTTextField.prototype, "readOnly", void 0);
9591
+ __decorate([attr({
9592
+ mode: "boolean"
9593
+ })], FASTTextField.prototype, "autofocus", void 0);
9594
+ __decorate([attr], FASTTextField.prototype, "placeholder", void 0);
9595
+ __decorate([attr], FASTTextField.prototype, "type", void 0);
9596
+ __decorate([attr], FASTTextField.prototype, "list", void 0);
9597
+ __decorate([attr({
9598
+ converter: nullableNumberConverter
9599
+ })], FASTTextField.prototype, "maxlength", void 0);
9600
+ __decorate([attr({
9601
+ converter: nullableNumberConverter
9602
+ })], FASTTextField.prototype, "minlength", void 0);
9603
+ __decorate([attr], FASTTextField.prototype, "pattern", void 0);
9604
+ __decorate([attr({
9605
+ converter: nullableNumberConverter
9606
+ })], FASTTextField.prototype, "size", void 0);
9607
+ __decorate([attr({
9608
+ mode: "boolean"
9609
+ })], FASTTextField.prototype, "spellcheck", void 0);
9610
+ __decorate([observable], FASTTextField.prototype, "defaultSlottedNodes", void 0);
9611
+ /**
9612
+ * Includes ARIA states and properties relating to the ARIA textbox role
9613
+ *
9614
+ * @public
9615
+ */
9616
+ class DelegatesARIATextbox {}
9617
+ applyMixins$1(DelegatesARIATextbox, ARIAGlobalStatesAndProperties);
9618
+ applyMixins$1(FASTTextField, StartEnd, DelegatesARIATextbox);
9527
9619
 
9528
9620
  /**
9529
9621
  * A base class for progress components.
@@ -9577,6 +9669,29 @@ __decorate([attr({
9577
9669
  })], FASTBaseProgress.prototype, "max", void 0);
9578
9670
  __decorate([observable], FASTBaseProgress.prototype, "percentComplete", void 0);
9579
9671
 
9672
+ /**
9673
+ * An circular Progress HTML Element.
9674
+ * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#progressbar | ARIA progressbar }.
9675
+ *
9676
+ * @slot indeterminate - The slot for a custom indeterminate indicator
9677
+ * @slot determinate - The slot for a custom determinate indicator
9678
+ * @csspart progress - Represents the progress element
9679
+ * @csspart determinate - The determinate indicator
9680
+ * @csspart background - The background
9681
+ *
9682
+ * @public
9683
+ */
9684
+ class FASTProgressRing extends FASTBaseProgress {}
9685
+
9686
+ const progressSegments = 44;
9687
+ /**
9688
+ * The template for the {@link @microsoft/fast-foundation#FASTProgressRing} component.
9689
+ * @public
9690
+ */
9691
+ function progressRingTemplate(options = {}) {
9692
+ 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>`;
9693
+ }
9694
+
9580
9695
  /**
9581
9696
  * An Progress HTML Element.
9582
9697
  * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#progressbar | ARIA progressbar }.
@@ -9598,66 +9713,22 @@ function progressTemplate(options = {}) {
9598
9713
  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`<div class="progress" part="progress" slot="determinate"><div class="determinate" part="determinate" style="width: ${x => x.percentComplete}%"></div></div>`, html`<div class="progress" part="progress" slot="indeterminate"><slot name="indeterminate">${staticallyCompose(options.indeterminateIndicator1)} ${staticallyCompose(options.indeterminateIndicator2)}</slot></div>`)}</template>`;
9599
9714
  }
9600
9715
 
9601
- var __defProp$8 = Object.defineProperty;
9602
- var __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor;
9603
- var __decorateClass$8 = (decorators, target, key, kind) => {
9604
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$8(target, key) : target;
9605
- for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
9606
- if (kind && result) __defProp$8(target, key, result);
9607
- return result;
9608
- };
9609
- class ProgressBar extends FASTProgress {
9610
- constructor() {
9611
- super(...arguments);
9612
- this.validationState = null;
9613
- }
9614
- }
9615
- __decorateClass$8([attr], ProgressBar.prototype, "thickness", 2);
9616
- __decorateClass$8([attr], ProgressBar.prototype, "shape", 2);
9617
- __decorateClass$8([attr({
9618
- attribute: "validation-state"
9619
- })], ProgressBar.prototype, "validationState", 2);
9620
-
9621
- const ProgressBarThickness = {
9622
- medium: "medium",
9623
- large: "large"
9624
- };
9625
- const ProgressBarShape = {
9626
- rounded: "rounded",
9627
- square: "square"
9628
- };
9629
- const ProgressBarValidationState = {
9630
- success: "success",
9631
- warning: "warning",
9632
- error: "error"
9633
- };
9634
-
9635
- const styles$b = css`
9636
- ${display("flex")}
9637
-
9638
- :host{align-items:center;height:2px;overflow-x:hidden;border-radius:${borderRadiusMedium};contain:content}:host([thickness='large']),:host([thickness='large']) .progress,:host([thickness='large']) .determinate{height:4px}:host([shape='square']),:host([shape='square']) .progress,:host([shape='square']) .determinate{border-radius:0}:host([validation-state='error']) .determinate{background-color:${colorPaletteRedBackground3}}:host([validation-state='error']) .indeterminate-indicator-1,:host([validation-state='error']) .indeterminate-indicator-2{background:linear-gradient(
9639
- to right,${colorPaletteRedBackground2} 0%,${colorPaletteRedBackground3} 50%,${colorPaletteRedBackground2}
9640
- )}:host([validation-state='warning']) .determinate{background-color:${colorPaletteDarkOrangeBackground3}}:host([validation-state='warning']) .indeterminate-indicator-1,:host([validation-state='warning']) .indeterminate-indicator-2{background:linear-gradient(
9641
- to right,${colorPaletteDarkOrangeBackground2} 0%,${colorPaletteDarkOrangeBackground3} 50%,${colorPaletteDarkOrangeBackground2}
9642
- )}:host([validation-state='success']) .determinate{background-color:${colorPaletteGreenBackground3}}:host([validation-state='success']) .indeterminate-indicator-1,:host([validation-state='success']) .indeterminate-indicator-2{background:linear-gradient(
9643
- to right,${colorPaletteGreenBackground2} 0%,${colorPaletteGreenBackground3} 50%,${colorPaletteGreenBackground2}
9644
- )}.progress{background-color:${colorNeutralBackground6};border-radius:${borderRadiusMedium};width:100%;height:2px;display:flex;align-items:center;position:relative}.determinate{background-color:${colorCompoundBrandBackground};border-radius:${borderRadiusMedium};height:2px;transition:all 0.2s ease-in-out;display:flex}.indeterminate-indicator-1{position:absolute;opacity:0;height:100%;background:linear-gradient(
9645
- to right,${colorBrandBackground2} 0%,${colorCompoundBrandBackground} 50%,${colorBrandBackground2}
9646
- );border-radius:${borderRadiusMedium};animation-timing-function:cubic-bezier(0.4,0,0.6,1);width:40%;animation:indeterminate-1 3s infinite}.indeterminate-indicator-2{position:absolute;opacity:0;height:100%;background:linear-gradient(
9647
- to right,${colorBrandBackground2} 0%,${colorCompoundBrandBackground} 50%,${colorBrandBackground2}
9648
- );border-radius:${borderRadiusMedium};animation-timing-function:cubic-bezier(0.4,0,0.6,1);width:60%;animation:indeterminate-2 3s infinite}@keyframes indeterminate-1{0%{opacity:1;transform:translateX(-100%)}70%{opacity:1;transform:translateX(300%)}70.01%{opacity:0}100%{opacity:0;transform:translateX(300%)}}@keyframes indeterminate-2{0%{opacity:0;transform:translateX(-150%)}29.99%{opacity:0}30%{opacity:1;transform:translateX(-150%)}100%{transform:translateX(166.66%);opacity:1}}`.withBehaviors(forcedColorsStylesheetBehavior(css`
9649
- .progress{background-color:HighlightText}.determinate,:host([validation-state='success']) .determinate,:host([validation-state='warning']) .determinate,:host([validation-state='error']) .determinate,:host([validation-state='success']) ..indeterminate-indicator-1,:host([validation-state='success']) ..indeterminate-indicator-2,:host([validation-state='warning']) .indeterminate-indicator-1,:host([validation-state='warning']) .indeterminate-indicator-2,:host([validation-state='error']) .indeterminate-indicator-1,:host([validation-state='error']) .indeterminate-indicator-2{background-color:Highlight}`));
9650
-
9651
- const template$b = progressTemplate({
9652
- indeterminateIndicator1: `<span class="indeterminate-indicator-1" part="indeterminate-indicator-1></span>`,
9653
- indeterminateIndicator2: `<span class="indeterminate-indicator-2" part="indeterminate-indicator-2"></span>`
9654
- });
9716
+ /**
9717
+ * Radio Group orientation
9718
+ * @public
9719
+ */
9720
+ const RadioGroupOrientation = Orientation;
9655
9721
 
9656
- const definition$b = ProgressBar.compose({
9657
- name: `${FluentDesignSystem.prefix}-progress-bar`,
9658
- template: template$b,
9659
- styles: styles$b
9660
- });
9722
+ /**
9723
+ * The template for the {@link @microsoft/fast-foundation#FASTRadioGroup} component.
9724
+ * @public
9725
+ */
9726
+ function radioGroupTemplate() {
9727
+ return html`<template role="radiogroup" tabindex="${x => x.disabled ? -1 : void 0}" aria-disabled="${x => x.disabled}" aria-readonly="${x => x.readOnly}" aria-orientation="${x => x.orientation}" @click="${(x, c) => x.clickHandler(c.event)}" @mousedown="${(x, c) => x.handleDisabledClick(c.event)}" @keydown="${(x, c) => x.keydownHandler(c.event)}" @focusout="${(x, c) => x.focusOutHandler(c.event)}"><slot name="label"></slot><div class="positioning-region ${x => x.orientation === RadioGroupOrientation.horizontal ? "horizontal" : "vertical"}" part="positioning-region"><slot ${slotted({
9728
+ property: "slottedRadioButtons",
9729
+ filter: elements("[role=radio]")
9730
+ })}></slot></div></template>`;
9731
+ }
9661
9732
 
9662
9733
  /**
9663
9734
  * The template for the {@link @microsoft/fast-foundation#(FASTRadio:class)} component.
@@ -9774,41 +9845,6 @@ class FASTRadio extends FormAssociatedRadio {
9774
9845
  __decorate([observable], FASTRadio.prototype, "name", void 0);
9775
9846
  __decorate([observable], FASTRadio.prototype, "defaultSlottedNodes", void 0);
9776
9847
 
9777
- class Radio extends FASTRadio {}
9778
-
9779
- const styles$a = css`
9780
- ${display("inline-grid")}
9781
-
9782
- :host{grid-auto-flow:column;grid-template-columns:max-content;gap:${spacingHorizontalXS};align-items:center;height:32px;cursor:pointer;outline:none;position:relative;user-select:none;color:blue;color:var(--state-color,${colorNeutralForeground3});padding-inline-end:${spacingHorizontalS};--control-border-color:${colorNeutralStrokeAccessible};--checked-indicator-background-color:${colorCompoundBrandForeground1};--state-color:${colorNeutralForeground3}}:host([disabled]){--control-border-color:${colorNeutralForegroundDisabled};--checked-indicator-background-color:${colorNeutralForegroundDisabled};--state-color:${colorNeutralForegroundDisabled}}.label{cursor:pointer;font-family:${fontFamilyBase};font-size:${fontSizeBase300};font-weight:${fontWeightRegular};line-height:${lineHeightBase300}}.label__hidden{display:none}.control{box-sizing:border-box;align-items:center;border:1px solid var(--control-border-color,${colorNeutralStrokeAccessible});border-radius:${borderRadiusCircular};display:flex;height:16px;justify-content:center;margin:${spacingVerticalS} ${spacingHorizontalS};position:relative;width:16px;justify-self:center}.checked-indicator{border-radius:${borderRadiusCircular};height:10px;opacity:0;width:10px}:host([aria-checked='false']:hover) .control{color:${colorNeutralForeground2}}:host(:focus-visible){border-radius:${borderRadiusSmall};box-shadow:0 0 0 3px ${colorStrokeFocus2};outline:1px solid ${colorStrokeFocus1}}:host(:hover) .control{border-color:${colorNeutralStrokeAccessibleHover}}:host(:active) .control{border-color:${colorNeutralStrokeAccessiblePressed}}:host([aria-checked='true']) .checked-indicator{opacity:1}:host([aria-checked='true']) .control{border-color:var(--control-border-color,${colorNeutralStrokeAccessible})}:host([aria-checked='true']) .checked-indicator{background-color:var(--checked-indicator-background-color,${colorCompoundBrandForeground1})}:host([aria-checked='true']:hover) .control{border-color:${colorCompoundBrandStrokeHover}}:host([aria-checked='true']:hover) .checked-indicator{background-color:${colorCompoundBrandStrokeHover}}:host([aria-checked='true']:active) .control{border-color:${colorCompoundBrandStrokePressed}}:host([aria-checked='true']:active) .checked-indicator{background:${colorCompoundBrandForeground1Pressed}}:host([disabled]){color:${colorNeutralForegroundDisabled};pointer-events:none}:host([disabled]) .control{pointer-events:none;border-color:${colorNeutralForegroundDisabled}}:host([disabled]) .checked-indicator{background:${colorNeutralForegroundDisabled}}`.withBehaviors(forcedColorsStylesheetBehavior(css`
9783
- :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}`));
9784
-
9785
- const template$a = radioTemplate({
9786
- checkedIndicator: html`<div part="checked-indicator" class="checked-indicator"></div>`
9787
- });
9788
-
9789
- const definition$a = Radio.compose({
9790
- name: `${FluentDesignSystem.prefix}-radio`,
9791
- template: template$a,
9792
- styles: styles$a
9793
- });
9794
-
9795
- /**
9796
- * Radio Group orientation
9797
- * @public
9798
- */
9799
- const RadioGroupOrientation = Orientation;
9800
-
9801
- /**
9802
- * The template for the {@link @microsoft/fast-foundation#FASTRadioGroup} component.
9803
- * @public
9804
- */
9805
- function radioGroupTemplate() {
9806
- return html`<template role="radiogroup" tabindex="${x => x.disabled ? -1 : void 0}" aria-disabled="${x => x.disabled}" aria-readonly="${x => x.readOnly}" aria-orientation="${x => x.orientation}" @click="${(x, c) => x.clickHandler(c.event)}" @mousedown="${(x, c) => x.handleDisabledClick(c.event)}" @keydown="${(x, c) => x.keydownHandler(c.event)}" @focusout="${(x, c) => x.focusOutHandler(c.event)}"><slot name="label"></slot><div class="positioning-region ${x => x.orientation === RadioGroupOrientation.horizontal ? "horizontal" : "vertical"}" part="positioning-region"><slot ${slotted({
9807
- property: "slottedRadioButtons",
9808
- filter: elements("[role=radio]")
9809
- })}></slot></div></template>`;
9810
- }
9811
-
9812
9848
  /**
9813
9849
  * An Radio Group Custom HTML Element.
9814
9850
  * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#radiogroup | ARIA radiogroup }.
@@ -10143,36 +10179,18 @@ __decorate([attr], FASTRadioGroup.prototype, "orientation", void 0);
10143
10179
  __decorate([observable], FASTRadioGroup.prototype, "childItems", void 0);
10144
10180
  __decorate([observable], FASTRadioGroup.prototype, "slottedRadioButtons", void 0);
10145
10181
 
10146
- var __defProp$7 = Object.defineProperty;
10147
- var __getOwnPropDesc$7 = Object.getOwnPropertyDescriptor;
10148
- var __decorateClass$7 = (decorators, target, key, kind) => {
10149
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$7(target, key) : target;
10150
- for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
10151
- if (kind && result) __defProp$7(target, key, result);
10152
- return result;
10182
+ /**
10183
+ * The orientation of a {@link @microsoft/fast-foundation#(FASTSlider:class)}.
10184
+ * @public
10185
+ */
10186
+ const SliderOrientation = Orientation;
10187
+ /**
10188
+ * The selection modes of a {@link @microsoft/fast-foundation#(FASTSlider:class)}.
10189
+ * @public
10190
+ */
10191
+ const SliderMode = {
10192
+ singleValue: "single-value"
10153
10193
  };
10154
- class RadioGroup extends FASTRadioGroup {
10155
- constructor() {
10156
- super(...arguments);
10157
- this.stacked = false;
10158
- }
10159
- }
10160
- __decorateClass$7([attr({
10161
- mode: "boolean"
10162
- })], RadioGroup.prototype, "stacked", 2);
10163
-
10164
- const styles$9 = css`
10165
- ${display("flex")}
10166
-
10167
- :host{align-items:flex-start;flex-direction:column;row-gap:${spacingVerticalS}}:host([disabled]) ::slotted([role='radio']){--control-border-color:${colorNeutralForegroundDisabled};--checked-indicator-background-color:${colorNeutralForegroundDisabled};--state-color:${colorNeutralForegroundDisabled}}::slotted([slot='label']){color:${colorNeutralForeground1};padding:${spacingVerticalS} ${spacingHorizontalS} ${spacingVerticalS} ${spacingHorizontalXS};font:${fontWeightRegular} ${fontSizeBase300} / ${lineHeightBase300} ${fontFamilyBase};cursor:default}.positioning-region{display:flex;flex-wrap:wrap}:host([orientation='vertical']) .positioning-region{flex-direction:column;justify-content:flex-start}:host([orientation='horizontal']) .positioning-region{flex-direction:row}:host([orientation='horizontal']) ::slotted([role='radio']){padding-inline-end:${spacingHorizontalS}}:host([orientation='horizontal'][stacked]) ::slotted([role='radio']){display:flex;flex-direction:column;padding-inline:${spacingHorizontalS};height:auto;align-items:center;justify-content:center}:host([disabled]) ::slotted([role='radio']){pointer-events:none}`;
10168
-
10169
- const template$9 = radioGroupTemplate();
10170
-
10171
- const definition$9 = RadioGroup.compose({
10172
- name: `${FluentDesignSystem.prefix}-radio-group`,
10173
- template: template$9,
10174
- styles: styles$9
10175
- });
10176
10194
 
10177
10195
  /**
10178
10196
  * Converts a pixel coordinate on the track to a percent of the track's range
@@ -10198,19 +10216,6 @@ class FormAssociatedSlider extends FormAssociated(_Slider) {
10198
10216
  }
10199
10217
  }
10200
10218
 
10201
- /**
10202
- * The orientation of a {@link @microsoft/fast-foundation#(FASTSlider:class)}.
10203
- * @public
10204
- */
10205
- const SliderOrientation = Orientation;
10206
- /**
10207
- * The selection modes of a {@link @microsoft/fast-foundation#(FASTSlider:class)}.
10208
- * @public
10209
- */
10210
- const SliderMode = {
10211
- singleValue: "single-value"
10212
- };
10213
-
10214
10219
  /**
10215
10220
  * A Slider Custom HTML Element.
10216
10221
  * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#slider | ARIA slider }.
@@ -10619,190 +10624,41 @@ function sliderTemplate(options = {}) {
10619
10624
  return html`<template role="slider" tabindex="${x => x.disabled ? null : 0}" aria-valuetext="${x => x.valueTextFormatter(x.value)}" aria-valuenow="${x => x.value}" aria-valuemin="${x => x.min}" aria-valuemax="${x => x.max}" aria-disabled="${x => x.disabled ? true : void 0}" aria-readonly="${x => x.readOnly ? true : void 0}" aria-orientation="${x => x.orientation}" class="${x => x.orientation}"><div part="positioning-region" class="positioning-region"><div ${ref("track")} part="track-container" class="track"><slot name="track"></slot><div part="track-start" class="track-start" style="${x => x.position}"><slot name="track-start"></slot></div></div><slot></slot><div ${ref("thumb")} part="thumb-container" class="thumb-container" style="${x => x.position}"><slot name="thumb">${staticallyCompose(options.thumb)}</slot></div></div></template>`;
10620
10625
  }
10621
10626
 
10622
- var __defProp$6 = Object.defineProperty;
10623
- var __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor;
10624
- var __decorateClass$6 = (decorators, target, key, kind) => {
10625
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$6(target, key) : target;
10626
- for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
10627
- if (kind && result) __defProp$6(target, key, result);
10628
- return result;
10629
- };
10630
- class Slider extends FASTSlider {
10631
- handleChange(source, propertyName) {
10632
- switch (propertyName) {
10633
- case "min":
10634
- case "max":
10635
- case "step":
10636
- this.handleStepStyles();
10637
- break;
10638
- }
10639
- }
10640
- connectedCallback() {
10641
- super.connectedCallback();
10642
- Observable.getNotifier(this).subscribe(this, "max");
10643
- Observable.getNotifier(this).subscribe(this, "min");
10644
- Observable.getNotifier(this).subscribe(this, "step");
10645
- this.handleStepStyles();
10646
- }
10647
- disconnectedCallback() {
10648
- super.disconnectedCallback();
10649
- Observable.getNotifier(this).unsubscribe(this, "max");
10650
- Observable.getNotifier(this).unsubscribe(this, "min");
10651
- Observable.getNotifier(this).unsubscribe(this, "step");
10652
- }
10653
- handleStepStyles() {
10654
- if (this.step) {
10655
- const totalSteps = 100 / Math.floor((this.max - this.min) / this.step);
10656
- if (this.stepStyles !== void 0) {
10657
- this.$fastController.removeStyles(this.stepStyles);
10658
- }
10659
- this.stepStyles = css`
10660
- :host{--step-rate:${totalSteps}%;color:blue}`;
10661
- this.$fastController.addStyles(this.stepStyles);
10662
- } else if (this.stepStyles !== void 0) {
10663
- this.$fastController.removeStyles(this.stepStyles);
10664
- }
10665
- }
10627
+ /**
10628
+ * The template for the {@link @microsoft/fast-foundation#(FASTSwitch:class)} component.
10629
+ * @public
10630
+ */
10631
+ function switchTemplate(options = {}) {
10632
+ return html`<template role="switch" aria-checked="${x => x.checked}" aria-disabled="${x => x.disabled}" aria-readonly="${x => x.readOnly}" tabindex="${x => x.disabled ? null : 0}" @keypress="${(x, c) => x.keypressHandler(c.event)}" @click="${(x, c) => x.clickHandler(c.event)}"><label part="label" class="${x => x.defaultSlottedNodes && x.defaultSlottedNodes.length ? "label" : "label label__hidden"}"><slot ${slotted("defaultSlottedNodes")}></slot></label><div part="switch" class="switch"><slot name="switch">${staticallyCompose(options.switch)}</slot></div></template>`;
10666
10633
  }
10667
- __decorateClass$6([attr], Slider.prototype, "size", 2);
10668
-
10669
- const SliderSize = {
10670
- small: "small",
10671
- medium: "medium"
10672
- };
10673
-
10674
- const styles$8 = css`
10675
- ${display("inline-grid")} :host{--thumb-size:18px;--thumb-padding:3px;--thumb-translate:calc(var(--thumb-size) * -0.5 + var(--track-width) / 2);--track-overhang:-2px;--track-width:4px;--fast-slider-height:calc(var(--thumb-size) * 10);--slider-direction:90deg;align-items:center;box-sizing:border-box;outline:none;cursor:pointer;user-select:none;border-radius:${borderRadiusSmall};touch-action:pan-y;min-width:calc(var(--thumb-size) * 1px);width:100%}:host([size='small']){--thumb-size:14px;--track-width:2px;--thumb-padding:3px}:host([orientation='vertical']){--slider-direction:0deg;height:160px;min-height:var(--thumb-size);touch-action:pan-x;padding:8px 0;width:auto;min-width:auto}:host([disabled]:hover){cursor:initial}:host(:focus-visible){box-shadow:0 0 0 2pt ${colorStrokeFocus2};outline:1px solid ${colorStrokeFocus1}}.thumb-cursor:focus{outline:0}.thumb-container{position:absolute;height:var(--thumb-size);width:var(--thumb-size);transition:all 0.2s ease}.thumb-container{transform:translateX(calc(var(--thumb-size) * 0.5)) translateY(calc(var(--thumb-translate) * -1.5))}:host([size='small']) .thumb-container{transform:translateX(calc(var(--thumb-size) * 0.5)) translateY(calc(var(--thumb-translate) * -1.35))}:host([orientation='vertical']) .thumb-container{transform:translateX(calc(var(--thumb-translate) * -1.5)) translateY(calc(var(--thumb-size) * -0.5))}:host([orientation='vertical'][size='small']) .thumb-container{transform:translateX(calc(var(--thumb-translate) * -1.35)) translateY(calc(var(--thumb-size) * -0.5))}.thumb-cursor{height:var(--thumb-size);width:var(--thumb-size);background-color:${colorBrandBackground};border-radius:${borderRadiusCircular};box-shadow:inset 0 0 0 var(--thumb-padding) ${colorNeutralBackground1},0 0 0 1px ${colorNeutralStroke1}}.thumb-cursor:hover{background-color:${colorCompoundBrandBackgroundHover}}.thumb-cursor:active{background-color:${colorCompoundBrandBackgroundPressed}}:host([disabled]) .thumb-cursor{background-color:${colorNeutralForegroundDisabled};box-shadow:inset 0 0 0 var(--thumb-padding) ${colorNeutralBackground1},0 0 0 1px ${colorNeutralStrokeDisabled}}.positioning-region{position:relative;display:grid}:host([orientation='horizontal']) .positioning-region{margin:0 8px;grid-template-rows:var(--thumb-size) var(--thumb-size)}:host([orientation='vertical']) .positioning-region{margin:8px 0;height:100%;grid-template-columns:var(--thumb-size) var(--thumb-size)}.track{align-self:start;position:absolute;background-color:${colorNeutralStrokeAccessible};border-radius:${borderRadiusMedium};overflow:hidden}:host([step]) .track::after{content:'';position:absolute;border-radius:${borderRadiusMedium};width:100%;inset:0 2px;background-image:repeating-linear-gradient(
10676
- var(--slider-direction),#0000 0%,#0000 calc(var(--step-rate) - 1px),${colorNeutralBackground1} calc(var(--step-rate) - 1px),${colorNeutralBackground1} var(--step-rate)
10677
- )}:host([orientation='vertical'][step]) .track::after{inset:-2px 0}:host([disabled]) .track{background-color:${colorNeutralBackgroundDisabled}}:host([orientation='horizontal']) .track{right:var(--track-overhang);left:var(--track-overhang);align-self:start;height:var(--track-width);grid-row:2 / auto}:host([orientation='vertical']) .track{top:var(--track-overhang);bottom:var(--track-overhang);width:var(--track-width);height:100%;grid-column:2 / auto}.track-start{background-color:${colorCompoundBrandBackground};position:absolute;height:100%;left:0;border-radius:${borderRadiusMedium}}:host([disabled]) .track-start{background-color:${colorNeutralForegroundDisabled}}:host(:hover) .track-start{background-color:${colorCompoundBrandBackgroundHover}}:host([disabled]:hover) .track-start{background-color:${colorNeutralForegroundDisabled}}.track-start:active{background-color:${colorCompoundBrandBackgroundPressed}}:host([orientation='vertical']) .track-start{height:auto;width:100%;bottom:0}`.withBehaviors(forcedColorsStylesheetBehavior(css`
10678
- .track:hover,.track:active,.track{background:WindowText}.thumb-cursor:hover,.thumb-cursor:active,.thumb-cursor{background:ButtonText}:host(:hover) .track-start,.track-start:active,.track-start{background:Highlight}`));
10679
-
10680
- const template$8 = sliderTemplate({
10681
- thumb: `<div class="thumb-cursor" tabindex="0"></div>`
10682
- });
10683
-
10684
- const definition$8 = Slider.compose({
10685
- name: `${FluentDesignSystem.prefix}-slider`,
10686
- template: template$8,
10687
- styles: styles$8
10688
- });
10689
10634
 
10635
+ class _Switch extends FASTElement {}
10690
10636
  /**
10691
- * An circular Progress HTML Element.
10692
- * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#progressbar | ARIA progressbar }.
10693
- *
10694
- * @slot indeterminate - The slot for a custom indeterminate indicator
10695
- * @slot determinate - The slot for a custom determinate indicator
10696
- * @csspart progress - Represents the progress element
10697
- * @csspart determinate - The determinate indicator
10698
- * @csspart background - The background
10637
+ * A form-associated base class for the {@link @microsoft/fast-foundation#(FASTSwitch:class)} component.
10699
10638
  *
10700
- * @public
10639
+ * @beta
10701
10640
  */
10702
- class FASTProgressRing extends FASTBaseProgress {}
10641
+ class FormAssociatedSwitch extends CheckableFormAssociated(_Switch) {
10642
+ constructor() {
10643
+ super(...arguments);
10644
+ this.proxy = document.createElement("input");
10645
+ }
10646
+ }
10703
10647
 
10704
- const progressSegments = 44;
10705
10648
  /**
10706
- * The template for the {@link @microsoft/fast-foundation#FASTProgressRing} component.
10707
- * @public
10708
- */
10709
- function progressRingTemplate(options = {}) {
10710
- 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>`;
10711
- }
10712
-
10713
- var __defProp$5 = Object.defineProperty;
10714
- var __getOwnPropDesc$5 = Object.getOwnPropertyDescriptor;
10715
- var __decorateClass$5 = (decorators, target, key, kind) => {
10716
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$5(target, key) : target;
10717
- for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
10718
- if (kind && result) __defProp$5(target, key, result);
10719
- return result;
10720
- };
10721
- class Spinner extends FASTProgressRing {}
10722
- __decorateClass$5([attr], Spinner.prototype, "size", 2);
10723
- __decorateClass$5([attr], Spinner.prototype, "appearance", 2);
10724
-
10725
- const SpinnerAppearance = {
10726
- primary: "primary",
10727
- inverted: "inverted"
10728
- };
10729
- const SpinnerSize = {
10730
- tiny: "tiny",
10731
- extraSmall: "extra-small",
10732
- small: "small",
10733
- medium: "medium",
10734
- large: "large",
10735
- extraLarge: "extra-large",
10736
- huge: "huge"
10737
- };
10738
-
10739
- const template$7 = progressRingTemplate({
10740
- indeterminateIndicator: `
10741
- <svg class="progress" part="progress" viewBox="0 0 16 16">
10742
- <circle
10743
- class="background"
10744
- part="background"
10745
- cx="8px"
10746
- cy="8px"
10747
- r="7px"
10748
- ></circle>
10749
- <circle
10750
- class="indeterminate-indicator-1"
10751
- part="indeterminate-indicator-1"
10752
- cx="8px"
10753
- cy="8px"
10754
- r="7px"
10755
- ></circle>
10756
- </svg>
10757
- `
10758
- });
10759
-
10760
- const styles$7 = css`
10761
- ${display("flex")}
10762
-
10763
- :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)}}`;
10764
-
10765
- const definition$7 = Spinner.compose({
10766
- name: `${FluentDesignSystem.prefix}-spinner`,
10767
- template: template$7,
10768
- styles: styles$7
10769
- });
10770
-
10771
- /**
10772
- * The template for the {@link @microsoft/fast-foundation#(FASTSwitch:class)} component.
10773
- * @public
10774
- */
10775
- function switchTemplate(options = {}) {
10776
- return html`<template role="switch" aria-checked="${x => x.checked}" aria-disabled="${x => x.disabled}" aria-readonly="${x => x.readOnly}" tabindex="${x => x.disabled ? null : 0}" @keypress="${(x, c) => x.keypressHandler(c.event)}" @click="${(x, c) => x.clickHandler(c.event)}"><label part="label" class="${x => x.defaultSlottedNodes && x.defaultSlottedNodes.length ? "label" : "label label__hidden"}"><slot ${slotted("defaultSlottedNodes")}></slot></label><div part="switch" class="switch"><slot name="switch">${staticallyCompose(options.switch)}</slot></div></template>`;
10777
- }
10778
-
10779
- class _Switch extends FASTElement {}
10780
- /**
10781
- * A form-associated base class for the {@link @microsoft/fast-foundation#(FASTSwitch:class)} component.
10782
- *
10783
- * @beta
10784
- */
10785
- class FormAssociatedSwitch extends CheckableFormAssociated(_Switch) {
10786
- constructor() {
10787
- super(...arguments);
10788
- this.proxy = document.createElement("input");
10789
- }
10790
- }
10791
-
10792
- /**
10793
- * A Switch Custom HTML Element.
10794
- * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#switch | ARIA switch }.
10795
- *
10796
- * @slot - The deafult slot for the label
10797
- * @slot checked-message - The message when in a checked state
10798
- * @slot unchecked-message - The message when in an unchecked state
10799
- * @csspart label - The label
10800
- * @csspart switch - The element representing the switch, which wraps the indicator
10801
- * @csspart status-message - The wrapper for the status messages
10802
- * @csspart checked-message - The checked message
10803
- * @csspart unchecked-message - The unchecked message
10804
- * @fires change - Emits a custom change event when the checked state changes
10805
- *
10649
+ * A Switch Custom HTML Element.
10650
+ * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#switch | ARIA switch }.
10651
+ *
10652
+ * @slot - The deafult slot for the label
10653
+ * @slot checked-message - The message when in a checked state
10654
+ * @slot unchecked-message - The message when in an unchecked state
10655
+ * @csspart label - The label
10656
+ * @csspart switch - The element representing the switch, which wraps the indicator
10657
+ * @csspart status-message - The wrapper for the status messages
10658
+ * @csspart checked-message - The checked message
10659
+ * @csspart unchecked-message - The unchecked message
10660
+ * @fires change - Emits a custom change event when the checked state changes
10661
+ *
10806
10662
  * @public
10807
10663
  */
10808
10664
  class FASTSwitch extends FormAssociatedSwitch {
@@ -10851,40 +10707,37 @@ __decorate([attr({
10851
10707
  })], FASTSwitch.prototype, "readOnly", void 0);
10852
10708
  __decorate([observable], FASTSwitch.prototype, "defaultSlottedNodes", void 0);
10853
10709
 
10854
- var __defProp$4 = Object.defineProperty;
10855
- var __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor;
10856
- var __decorateClass$4 = (decorators, target, key, kind) => {
10857
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target;
10858
- for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
10859
- if (kind && result) __defProp$4(target, key, result);
10860
- return result;
10861
- };
10862
- class Switch extends FASTSwitch {}
10863
- __decorateClass$4([attr({
10864
- attribute: "label-position"
10865
- })], Switch.prototype, "labelPosition", 2);
10866
-
10867
- const SwitchLabelPosition = {
10868
- above: "above",
10869
- after: "after",
10870
- before: "before"
10871
- };
10872
-
10873
- const template$6 = switchTemplate({
10874
- switch: `<span class="checked-indicator" part="checked-indicator"></span>`
10875
- });
10876
-
10877
- const styles$6 = css`
10878
- ${display("inline-flex")}
10710
+ /**
10711
+ * The template for the {@link @microsoft/fast-foundation#FASTTabPanel} component.
10712
+ * @public
10713
+ */
10714
+ function tabPanelTemplate() {
10715
+ return html`<template slot="tabpanel" role="tabpanel"><slot></slot></template>`;
10716
+ }
10879
10717
 
10880
- :host{align-items:center;flex-direction:row-reverse;outline:none;user-select:none;contain:content}:host([label-position='before']){flex-direction:row}:host([label-position='above']){flex-direction:column;align-items:flex-start}:host([disabled]) .label,:host([readonly]) .label,:host([readonly]) .switch,:host([disabled]) .switch{cursor:not-allowed}.label{position:relative;color:${colorNeutralForeground1};line-height:${lineHeightBase300};font-size:${fontSizeBase300};font-weight:${fontWeightRegular};font-family:${fontFamilyBase};padding:${spacingVerticalXS} ${spacingHorizontalXS};cursor:pointer}.label__hidden{display:none}.switch{display:flex;align-items:center;padding:0 ${spacingHorizontalXXS};box-sizing:border-box;width:40px;height:20px;background-color:${colorTransparentBackground};border:1px solid ${colorNeutralStrokeAccessible};border-radius:${borderRadiusCircular};outline:none;cursor:pointer;margin:${spacingVerticalS} ${spacingHorizontalS}}:host(:hover) .switch{background:none;border-color:${colorNeutralStrokeAccessibleHover}}:host(:active) .switch{border-color:${colorNeutralStrokeAccessiblePressed}}:host([disabled]) .switch,:host([readonly]) .switch{border:1px solid ${colorNeutralStrokeDisabled};background-color:none;pointer:default}:host([aria-checked='true']) .switch{background:${colorCompoundBrandBackground}}:host([aria-checked='true']:hover) .switch{background:${colorCompoundBrandBackgroundHover};border-color:${colorCompoundBrandBackgroundHover}}:host([aria-checked='true']:active) .switch{background:${colorCompoundBrandBackgroundPressed};border-color:${colorCompoundBrandBackgroundPressed}}:host([aria-checked='true'][disabled]) .switch{background:${colorNeutralBackgroundDisabled};border-color:${colorNeutralStrokeDisabled}}.checked-indicator{height:14px;width:14px;border-radius:50%;margin-inline-start:0;background-color:${colorNeutralForeground3};transition-duration:${durationNormal};transition-timing-function:${curveEasyEase};transition-property:margin-inline-start}:host([aria-checked='true']) .checked-indicator{background-color:${colorNeutralForegroundInverted};margin-inline-start:calc(100% - 14px)}:host([aria-checked='true']:hover) .checked-indicator{background:${colorNeutralForegroundInvertedHover}}:host([aria-checked='true']:active) .checked-indicator{background:${colorNeutralForegroundInvertedPressed}}:host(:hover) .checked-indicator{background-color:${colorNeutralForeground3Hover}}:host(:active) .checked-indicator{background-color:${colorNeutralForeground3Pressed}}:host([disabled]) .checked-indicator,:host([readonly]) .checked-indicator{background:${colorNeutralForegroundDisabled}}:host([aria-checked='true'][disabled]) .checked-indicator{background:${colorNeutralForegroundDisabled}}:host(:focus-visible){border-color:${colorTransparentStroke};outline:${strokeWidthThick} solid ${colorTransparentStroke};box-shadow:${shadow4},0 0 0 2px ${colorStrokeFocus2}}`.withBehaviors(forcedColorsStylesheetBehavior(css`
10881
- .switch{border-color:InactiveBorder}:host([aria-checked='true']) .switch,:host([aria-checked='true']:active) .switch,:host([aria-checked='true']:hover) .switch{background:Highlight;border-color:Highlight}.checked-indicator,:host(:hover) .checked-indicator,:host(:active) .checked-indicator{background-color:ActiveCaption}:host([aria-checked='true']) .checked-indicator,:host([aria-checked='true']:hover) .checked-indicator,:host([aria-checked='true']:active) .checked-indicator{background-color:ButtonFace}`));
10718
+ /**
10719
+ * A TabPanel Component to be used with {@link @microsoft/fast-foundation#(FASTTabs:class)}
10720
+ *
10721
+ * @slot - The default slot for the tabpanel content
10722
+ *
10723
+ * @public
10724
+ */
10725
+ class FASTTabPanel extends FASTElement {}
10882
10726
 
10883
- const definition$6 = Switch.compose({
10884
- name: `${FluentDesignSystem.prefix}-switch`,
10885
- template: template$6,
10886
- styles: styles$6
10887
- });
10727
+ /**
10728
+ * A Tab Component to be used with {@link @microsoft/fast-foundation#(FASTTabs:class)}
10729
+ *
10730
+ * @slot start - Content which can be provided before the tab content
10731
+ * @slot end - Content which can be provided after the tab content
10732
+ * @slot - The default slot for the tab content
10733
+ *
10734
+ * @public
10735
+ */
10736
+ class FASTTab extends FASTElement {}
10737
+ __decorate([attr({
10738
+ mode: "boolean"
10739
+ })], FASTTab.prototype, "disabled", void 0);
10740
+ applyMixins$1(FASTTab, StartEnd);
10888
10741
 
10889
10742
  /**
10890
10743
  * The orientation of the {@link @microsoft/fast-foundation#(FASTTabs:class)} component
@@ -11169,6 +11022,784 @@ __decorate([observable], FASTTabs.prototype, "tabs", void 0);
11169
11022
  __decorate([observable], FASTTabs.prototype, "tabpanels", void 0);
11170
11023
  applyMixins$1(FASTTabs, StartEnd);
11171
11024
 
11025
+ /**
11026
+ * The template for the {@link @microsoft/fast-foundation#(FASTTextField:class)} component.
11027
+ * @public
11028
+ */
11029
+ function textFieldTemplate(options = {}) {
11030
+ return html`<label part="label" for="control" class="${x => x.defaultSlottedNodes && x.defaultSlottedNodes.length ? "label" : "label label__hidden"}"><slot ${slotted({
11031
+ property: "defaultSlottedNodes",
11032
+ filter: whitespaceFilter
11033
+ })}></slot></label><div class="root" part="root">${startSlotTemplate(options)}<input class="control" part="control" id="control" @input="${x => x.handleTextInput()}" @change="${x => x.handleChange()}" ?autofocus="${x => x.autofocus}" ?disabled="${x => x.disabled}" list="${x => x.list}" maxlength="${x => x.maxlength}" name="${x => x.name}" minlength="${x => x.minlength}" pattern="${x => x.pattern}" placeholder="${x => x.placeholder}" ?readonly="${x => x.readOnly}" ?required="${x => x.required}" size="${x => x.size}" ?spellcheck="${x => x.spellcheck}" :value="${x => x.value}" type="${x => x.type}" aria-atomic="${x => x.ariaAtomic}" aria-busy="${x => x.ariaBusy}" aria-controls="${x => x.ariaControls}" aria-current="${x => x.ariaCurrent}" aria-describedby="${x => x.ariaDescribedby}" aria-details="${x => x.ariaDetails}" aria-disabled="${x => x.ariaDisabled}" aria-errormessage="${x => x.ariaErrormessage}" aria-flowto="${x => x.ariaFlowto}" aria-haspopup="${x => x.ariaHaspopup}" aria-hidden="${x => x.ariaHidden}" aria-invalid="${x => x.ariaInvalid}" aria-keyshortcuts="${x => x.ariaKeyshortcuts}" aria-label="${x => x.ariaLabel}" aria-labelledby="${x => x.ariaLabelledby}" aria-live="${x => x.ariaLive}" aria-owns="${x => x.ariaOwns}" aria-relevant="${x => x.ariaRelevant}" aria-roledescription="${x => x.ariaRoledescription}" ${ref("control")} />${endSlotTemplate(options)}</div>`;
11034
+ }
11035
+
11036
+ const styles$i = css`
11037
+ ${display("flex")}
11038
+
11039
+ :host{--dialog-backdrop:${colorBackgroundOverlay}}dialog{background:${colorNeutralBackground1};border:${strokeWidthThin} solid ${colorTransparentStroke};z-index:2;margin:auto auto;max-width:100%;width:100vw;border-radius:${borderRadiusXLarge};box-shadow:${shadow64};max-height:100vh;height:fit-content;overflow:unset;position:fixed;inset:0;padding:0}dialog::backdrop{background:var(--dialog-backdrop,rgba(0,0,0,0.4))}.root{box-sizing:border-box;display:flex;flex-direction:column;overflow:unset;max-height:calc(100vh - 48px);padding:${spacingVerticalXXL} ${spacingHorizontalXXL}}.title{font-size:${fontSizeBase500};line-height:${lineHeightBase500};font-weight:${fontWeightSemibold};font-family:${fontFamilyBase};color:${colorNeutralForeground1};margin-bottom:${spacingVerticalS};display:flex;justify-content:space-between;align-items:flex-start;column-gap:8px}.content{vertical-align:top;min-height:32px;color:${colorNeutralForeground1};font-size:${fontSizeBase300};line-height:${lineHeightBase300};font-weight:${fontWeightRegular};font-family:${fontFamilyBase};overflow-y:auto;box-sizing:border-box}.actions{display:flex;grid-column-start:1;flex-direction:column;max-width:100vw;row-gap:${spacingVerticalS};padding-top:${spacingVerticalXXL};justify-self:stretch;width:100%}::slotted([slot='action']){width:100%}@media screen and (min-width:480px){::slotted([slot='action']){width:fit-content}dialog{max-width:600px;width:100%}.actions{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;column-gap:${spacingHorizontalS};padding-top:${spacingVerticalS};box-sizing:border-box}}`;
11040
+
11041
+ const definition$j = Dialog.compose({
11042
+ name: `${FluentDesignSystem.prefix}-dialog`,
11043
+ template: template$j,
11044
+ styles: styles$i
11045
+ });
11046
+
11047
+ var __defProp$c = Object.defineProperty;
11048
+ var __getOwnPropDesc$c = Object.getOwnPropertyDescriptor;
11049
+ var __decorateClass$c = (decorators, target, key, kind) => {
11050
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$c(target, key) : target;
11051
+ for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
11052
+ if (kind && result) __defProp$c(target, key, result);
11053
+ return result;
11054
+ };
11055
+ class Divider extends FASTDivider {}
11056
+ __decorateClass$c([attr({
11057
+ attribute: "align-content"
11058
+ })], Divider.prototype, "alignContent", 2);
11059
+ __decorateClass$c([attr], Divider.prototype, "appearance", 2);
11060
+ __decorateClass$c([attr({
11061
+ mode: "boolean"
11062
+ })], Divider.prototype, "inset", 2);
11063
+
11064
+ const DividerAlignContent = {
11065
+ center: "center",
11066
+ start: "start",
11067
+ end: "end"
11068
+ };
11069
+ const DividerAppearance = {
11070
+ strong: "strong",
11071
+ brand: "brand",
11072
+ subtle: "subtle",
11073
+ default: "default"
11074
+ };
11075
+
11076
+ const template$i = dividerTemplate();
11077
+
11078
+ const styles$h = css`
11079
+ ${display("flex")}
11080
+
11081
+ :host{contain:content}:host::after,:host::before{align-self:center;background:${colorNeutralStroke2};box-sizing:border-box;content:'';display:flex;flex-grow:1;height:${strokeWidthThin}}:host([inset]){padding:0 12px}:host ::slotted(*){color:${colorNeutralForeground2};font-family:${fontFamilyBase};font-size:${fontSizeBase200};font-weight:${fontWeightRegular};margin:0;padding:0 12px}:host([align-content='start'])::before,:host([align-content='end'])::after{flex-basis:12px;flex-grow:0;flex-shrink:0}:host([orientation='vertical']){height:100%;min-height:84px}:host([orientation='vertical']):empty{min-height:20px}:host([orientation='vertical']){flex-direction:column;align-items:center}:host([orientation='vertical'][inset])::before{margin-top:12px}:host([orientation='vertical'][inset])::after{margin-bottom:12px}:host([orientation='vertical']):empty::before,:host([orientation='vertical']):empty::after{height:10px;min-height:10px;flex-grow:0}:host([orientation='vertical'])::before,:host([orientation='vertical'])::after{width:${strokeWidthThin};min-height:20px;height:100%}:host([orientation='vertical']) ::slotted(*){display:flex;flex-direction:column;padding:12px 0;line-height:20px}:host([orientation='vertical'][align-content='start'])::before{min-height:8px}:host([orientation='vertical'][align-content='end'])::after{min-height:8px}:host([appearance='strong'])::before,:host([appearance='strong'])::after{background:${colorNeutralStroke1}}:host([appearance='strong']) ::slotted(*){color:${colorNeutralForeground1}}:host([appearance='brand'])::before,:host([appearance='brand'])::after{background:${colorBrandStroke1}}:host([appearance='brand']) ::slotted(*){color:${colorBrandForeground1}}:host([appearance='subtle'])::before,:host([appearance='subtle'])::after{background:${colorNeutralStroke3}}:host([appearance='subtle']) ::slotted(*){color:${colorNeutralForeground3}}`.withBehaviors(forcedColorsStylesheetBehavior(css`
11082
+ :host([appearance='strong'])::before,:host([appearance='strong'])::after,:host([appearance='brand'])::before,:host([appearance='brand'])::after,:host([appearance='subtle'])::before,:host([appearance='subtle'])::after,:host::after,:host::before{background:WindowText;color:WindowText}`));
11083
+
11084
+ const definition$i = Divider.compose({
11085
+ name: `${FluentDesignSystem.prefix}-divider`,
11086
+ template: template$i,
11087
+ styles: styles$h
11088
+ });
11089
+
11090
+ var __defProp$b = Object.defineProperty;
11091
+ var __getOwnPropDesc$b = Object.getOwnPropertyDescriptor;
11092
+ var __decorateClass$b = (decorators, target, key, kind) => {
11093
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$b(target, key) : target;
11094
+ for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
11095
+ if (kind && result) __defProp$b(target, key, result);
11096
+ return result;
11097
+ };
11098
+ class Image extends FASTElement {}
11099
+ __decorateClass$b([attr({
11100
+ mode: "boolean"
11101
+ })], Image.prototype, "block", 2);
11102
+ __decorateClass$b([attr({
11103
+ mode: "boolean"
11104
+ })], Image.prototype, "bordered", 2);
11105
+ __decorateClass$b([attr({
11106
+ mode: "boolean"
11107
+ })], Image.prototype, "shadow", 2);
11108
+ __decorateClass$b([attr], Image.prototype, "fit", 2);
11109
+ __decorateClass$b([attr], Image.prototype, "shape", 2);
11110
+
11111
+ const ImageFit = {
11112
+ none: "none",
11113
+ center: "center",
11114
+ contain: "contain",
11115
+ cover: "cover",
11116
+ default: "default"
11117
+ };
11118
+ const ImageShape = {
11119
+ circular: "circular",
11120
+ rounded: "rounded",
11121
+ square: "square"
11122
+ };
11123
+
11124
+ const template$h = html`<slot></slot>`;
11125
+
11126
+ const styles$g = css`
11127
+ :host{contain:content}:host ::slotted(img){box-sizing:border-box;min-height:8px;min-width:8px;display:inline-block}:host([block]) ::slotted(img){width:100%;height:auto}:host([bordered]) ::slotted(img){border:${strokeWidthThin} solid ${colorNeutralStroke2}}:host([fit='none']) ::slotted(img){object-fit:none;object-position:top left;height:100%;width:100%}:host([fit='center']) ::slotted(img){object-fit:none;object-position:center;height:100%;width:100%}:host([fit='contain']) ::slotted(img){object-fit:contain;object-position:center;height:100%;width:100%}:host([fit='cover']) ::slotted(img){object-fit:cover;object-position:center;height:100%;width:100%}:host([shadow]) ::slotted(img){box-shadow:${shadow4}}:host([shape='circular']) ::slotted(img){border-radius:${borderRadiusCircular}}:host([shape='rounded']) ::slotted(img){border-radius:${borderRadiusMedium}}`;
11128
+
11129
+ const definition$h = Image.compose({
11130
+ name: `${FluentDesignSystem.prefix}-image`,
11131
+ template: template$h,
11132
+ styles: styles$g
11133
+ });
11134
+
11135
+ var __defProp$a = Object.defineProperty;
11136
+ var __getOwnPropDesc$a = Object.getOwnPropertyDescriptor;
11137
+ var __decorateClass$a = (decorators, target, key, kind) => {
11138
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$a(target, key) : target;
11139
+ for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
11140
+ if (kind && result) __defProp$a(target, key, result);
11141
+ return result;
11142
+ };
11143
+ class Label extends FASTElement {
11144
+ constructor() {
11145
+ super(...arguments);
11146
+ this.disabled = false;
11147
+ this.required = false;
11148
+ }
11149
+ }
11150
+ __decorateClass$a([attr], Label.prototype, "size", 2);
11151
+ __decorateClass$a([attr], Label.prototype, "weight", 2);
11152
+ __decorateClass$a([attr({
11153
+ mode: "boolean"
11154
+ })], Label.prototype, "disabled", 2);
11155
+ __decorateClass$a([attr({
11156
+ mode: "boolean"
11157
+ })], Label.prototype, "required", 2);
11158
+
11159
+ const styles$f = css`
11160
+ ${display("flex")}
11161
+
11162
+ :host{font-family:${fontFamilyBase};font-size:${fontSizeBase300};line-height:${lineHeightBase300};font-weight:${fontWeightRegular};color:${colorNeutralForeground1}}.asterisk{color:${colorPaletteRedForeground1};margin-left:${spacingHorizontalXS}}:host([size='small']){font-size:${fontSizeBase200};line-height:${lineHeightBase200}}:host([size='large']){font-size:${fontSizeBase400};line-height:${lineHeightBase400};font-weight:${fontWeightSemibold}}:host([weight='semibold']){font-weight:${fontWeightSemibold}}:host([disabled]),:host([disabled]) .asterisk{color:${colorNeutralForegroundDisabled}}`;
11163
+
11164
+ function labelTemplate() {
11165
+ return html`<slot></slot><span part="asterisk" class="asterisk" ?hidden="${x => !x.required}">*</span>`;
11166
+ }
11167
+ const template$g = labelTemplate();
11168
+
11169
+ const definition$g = Label.compose({
11170
+ name: `${FluentDesignSystem.prefix}-label`,
11171
+ template: template$g,
11172
+ styles: styles$f
11173
+ });
11174
+
11175
+ var __defProp$9 = Object.defineProperty;
11176
+ var __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor;
11177
+ var __decorateClass$9 = (decorators, target, key, kind) => {
11178
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$9(target, key) : target;
11179
+ for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
11180
+ if (kind && result) __defProp$9(target, key, result);
11181
+ return result;
11182
+ };
11183
+ class Menu extends FASTElement {
11184
+ constructor() {
11185
+ super(...arguments);
11186
+ this.openOnHover = false;
11187
+ this.openOnContext = false;
11188
+ this.closeOnScroll = false;
11189
+ this.persistOnItemClick = false;
11190
+ this.open = false;
11191
+ this.slottedMenuList = [];
11192
+ this.slottedTriggers = [];
11193
+ this.toggleMenu = () => {
11194
+ if (this.open) {
11195
+ this.closeMenu();
11196
+ } else {
11197
+ this.openMenu();
11198
+ }
11199
+ };
11200
+ this.closeMenu = () => {
11201
+ this.open = false;
11202
+ if (this.closeOnScroll) {
11203
+ document.removeEventListener("scroll", this.closeMenu);
11204
+ }
11205
+ };
11206
+ this.openMenu = e => {
11207
+ this.open = true;
11208
+ if (e && this.openOnContext) {
11209
+ e.preventDefault();
11210
+ }
11211
+ if (this.closeOnScroll) {
11212
+ document.addEventListener("scroll", this.closeMenu);
11213
+ }
11214
+ };
11215
+ this.setPositioningTask = () => {
11216
+ this.setPositioning();
11217
+ };
11218
+ this.handleTriggerKeydown = e => {
11219
+ if (e.defaultPrevented) {
11220
+ return;
11221
+ }
11222
+ const key = e.key;
11223
+ switch (key) {
11224
+ case keySpace:
11225
+ case keyEnter:
11226
+ e.preventDefault();
11227
+ this.toggleMenu();
11228
+ if (this.open) {
11229
+ this.focusMenuList();
11230
+ }
11231
+ break;
11232
+ default:
11233
+ return true;
11234
+ }
11235
+ };
11236
+ this.handleDocumentClick = e => {
11237
+ if (e && !e.composedPath().includes(this._menuList) && !e.composedPath().includes(this._trigger)) {
11238
+ this.closeMenu();
11239
+ }
11240
+ };
11241
+ }
11242
+ connectedCallback() {
11243
+ super.connectedCallback();
11244
+ Updates.enqueue(() => this.setComponent());
11245
+ }
11246
+ disconnectedCallback() {
11247
+ var _a;
11248
+ super.disconnectedCallback();
11249
+ (_a = this.cleanup) == null ? void 0 : _a.call(this);
11250
+ this.removeListeners();
11251
+ }
11252
+ setComponent() {
11253
+ if (this.$fastController.isConnected && this.slottedMenuList.length && this.slottedTriggers.length) {
11254
+ this._trigger = this.slottedTriggers[0];
11255
+ this._menuList = this.slottedMenuList[0];
11256
+ this._trigger.setAttribute("aria-haspopup", "true");
11257
+ this._trigger.setAttribute("aria-expanded", `${this.open}`);
11258
+ this.addListeners();
11259
+ }
11260
+ }
11261
+ focusMenuList() {
11262
+ if (this.open && this._menuList) {
11263
+ Updates.enqueue(() => {
11264
+ this._menuList.focus();
11265
+ });
11266
+ }
11267
+ }
11268
+ focusTrigger() {
11269
+ if (!this.open && this._trigger) {
11270
+ Updates.enqueue(() => {
11271
+ this._trigger.focus();
11272
+ });
11273
+ }
11274
+ }
11275
+ openChanged(oldValue, newValue) {
11276
+ var _a;
11277
+ if (this.$fastController.isConnected && this._trigger instanceof HTMLElement) {
11278
+ this._trigger.setAttribute("aria-expanded", `${this.open}`);
11279
+ if (this._menuList && this.open) {
11280
+ Updates.enqueue(this.setPositioningTask);
11281
+ }
11282
+ }
11283
+ (_a = this.cleanup) == null ? void 0 : _a.call(this);
11284
+ this.$emit("onOpenChange", {
11285
+ open: newValue
11286
+ });
11287
+ }
11288
+ openOnHoverChanged(oldValue, newValue) {
11289
+ var _a, _b;
11290
+ if (newValue) {
11291
+ (_a = this._trigger) == null ? void 0 : _a.addEventListener("mouseover", this.openMenu);
11292
+ } else {
11293
+ (_b = this._trigger) == null ? void 0 : _b.removeEventListener("mouseover", this.openMenu);
11294
+ }
11295
+ }
11296
+ persistOnItemClickChanged(oldValue, newValue) {
11297
+ var _a, _b;
11298
+ if (!newValue) {
11299
+ (_a = this._menuList) == null ? void 0 : _a.addEventListener("click", this.closeMenu);
11300
+ } else {
11301
+ (_b = this._menuList) == null ? void 0 : _b.removeEventListener("click", this.closeMenu);
11302
+ }
11303
+ }
11304
+ openOnContextChanged(oldValue, newValue) {
11305
+ var _a, _b;
11306
+ if (newValue) {
11307
+ (_a = this._trigger) == null ? void 0 : _a.addEventListener("contextmenu", this.openMenu);
11308
+ } else {
11309
+ (_b = this._trigger) == null ? void 0 : _b.removeEventListener("contextmenu", this.openMenu);
11310
+ }
11311
+ }
11312
+ closeOnScrollChanged(oldValue, newValue) {
11313
+ if (newValue) {
11314
+ document.addEventListener("scroll", this.closeMenu);
11315
+ } else {
11316
+ document.removeEventListener("scroll", this.closeMenu);
11317
+ }
11318
+ }
11319
+ setPositioning() {
11320
+ if (this.$fastController.isConnected && this._menuList && this.open && this._trigger) {
11321
+ this.cleanup = P(this, this.positioningContainer, async () => {
11322
+ var _a, _b;
11323
+ const {
11324
+ middlewareData,
11325
+ x,
11326
+ y
11327
+ } = await z(this._trigger, this.positioningContainer, {
11328
+ placement: "bottom",
11329
+ strategy: "fixed",
11330
+ middleware: [b$1(), k({
11331
+ apply: ({
11332
+ availableHeight,
11333
+ rects
11334
+ }) => {
11335
+ var _a2;
11336
+ ((_a2 = this.positioningContainer) == null ? void 0 : _a2.style) && Object.assign(this.positioningContainer.style, {
11337
+ maxHeight: `${availableHeight}px`,
11338
+ width: `${rects.reference.width}px`
11339
+ });
11340
+ }
11341
+ }), P$1()]
11342
+ });
11343
+ if ((_a = middlewareData.hide) == null ? void 0 : _a.referenceHidden) {
11344
+ this.open = false;
11345
+ return;
11346
+ }
11347
+ ((_b = this.positioningContainer) == null ? void 0 : _b.style) && Object.assign(this.positioningContainer.style, {
11348
+ position: "fixed",
11349
+ top: "0",
11350
+ left: "0",
11351
+ transform: `translate(${x}px, ${y}px)`
11352
+ });
11353
+ });
11354
+ }
11355
+ }
11356
+ addListeners() {
11357
+ var _a, _b, _c, _d, _e;
11358
+ document.addEventListener("click", this.handleDocumentClick);
11359
+ (_a = this._trigger) == null ? void 0 : _a.addEventListener("keydown", this.handleTriggerKeydown);
11360
+ if (!this.persistOnItemClick) {
11361
+ (_b = this._menuList) == null ? void 0 : _b.addEventListener("click", this.closeMenu);
11362
+ }
11363
+ if (this.openOnHover) {
11364
+ (_c = this._trigger) == null ? void 0 : _c.addEventListener("mouseover", this.openMenu);
11365
+ } else if (this.openOnContext) {
11366
+ (_d = this._trigger) == null ? void 0 : _d.addEventListener("contextmenu", this.openMenu);
11367
+ } else {
11368
+ (_e = this._trigger) == null ? void 0 : _e.addEventListener("click", this.toggleMenu);
11369
+ }
11370
+ }
11371
+ removeListeners() {
11372
+ var _a, _b, _c, _d, _e;
11373
+ document.removeEventListener("click", this.handleDocumentClick);
11374
+ (_a = this._trigger) == null ? void 0 : _a.removeEventListener("keydown", this.handleTriggerKeydown);
11375
+ if (!this.persistOnItemClick) {
11376
+ (_b = this._menuList) == null ? void 0 : _b.removeEventListener("click", this.closeMenu);
11377
+ }
11378
+ if (this.openOnHover) {
11379
+ (_c = this._trigger) == null ? void 0 : _c.removeEventListener("mouseover", this.openMenu);
11380
+ }
11381
+ if (this.openOnContext) {
11382
+ (_d = this._trigger) == null ? void 0 : _d.removeEventListener("contextmenu", this.openMenu);
11383
+ } else {
11384
+ (_e = this._trigger) == null ? void 0 : _e.removeEventListener("click", this.toggleMenu);
11385
+ }
11386
+ }
11387
+ handleMenuKeydown(e) {
11388
+ if (e.defaultPrevented) {
11389
+ return;
11390
+ }
11391
+ const key = e.key;
11392
+ switch (key) {
11393
+ case keyEscape:
11394
+ e.preventDefault();
11395
+ if (this.open) {
11396
+ this.closeMenu();
11397
+ this.focusTrigger();
11398
+ }
11399
+ break;
11400
+ case keyTab:
11401
+ if (this.open) {
11402
+ this.closeMenu();
11403
+ }
11404
+ if (e.shiftKey) {
11405
+ this.focusTrigger();
11406
+ }
11407
+ default:
11408
+ return true;
11409
+ }
11410
+ }
11411
+ }
11412
+ __decorateClass$9([observable, attr({
11413
+ attribute: "open-on-hover",
11414
+ mode: "boolean"
11415
+ })], Menu.prototype, "openOnHover", 2);
11416
+ __decorateClass$9([observable, attr({
11417
+ attribute: "open-on-context",
11418
+ mode: "boolean"
11419
+ })], Menu.prototype, "openOnContext", 2);
11420
+ __decorateClass$9([observable, attr({
11421
+ attribute: "close-on-scroll",
11422
+ mode: "boolean"
11423
+ })], Menu.prototype, "closeOnScroll", 2);
11424
+ __decorateClass$9([observable, attr({
11425
+ attribute: "persist-on-item-click",
11426
+ mode: "boolean"
11427
+ })], Menu.prototype, "persistOnItemClick", 2);
11428
+ __decorateClass$9([observable, attr({
11429
+ mode: "boolean"
11430
+ })], Menu.prototype, "open", 2);
11431
+ __decorateClass$9([observable], Menu.prototype, "slottedMenuList", 2);
11432
+ __decorateClass$9([observable], Menu.prototype, "slottedTriggers", 2);
11433
+
11434
+ function menuTemplate() {
11435
+ return html`<template ?open-on-hover="${x => x.openOnHover}" ?open-on-context="${x => x.openOnContext}" ?close-on-scroll="${x => x.closeOnScroll}" ?persist-on-item-click="${x => x.persistOnItemClick}" @keydown="${(x, c) => x.handleMenuKeydown(c.event)}"><slot name="trigger" ${slotted({
11436
+ property: "slottedTriggers",
11437
+ filter: elements()
11438
+ })}></slot><span ${ref("positioningContainer")} part="positioning-container" class="positioning-container" ?hidden="${x => !x.open}"><slot ${slotted({
11439
+ property: "slottedMenuList",
11440
+ filter: elements()
11441
+ })}></slot></span></template>`;
11442
+ }
11443
+ const template$f = menuTemplate();
11444
+
11445
+ const styles$e = css`
11446
+ :host{position:relative;z-index:var(--z-index-menu,1)}.positioning-container{position:fixed;top:0;left:0;transform:translate(0,0)}`;
11447
+
11448
+ const definition$f = Menu.compose({
11449
+ name: `${FluentDesignSystem.prefix}-menu`,
11450
+ template: template$f,
11451
+ styles: styles$e
11452
+ });
11453
+
11454
+ class MenuButton extends Button {}
11455
+
11456
+ const MenuButtonAppearance = ButtonAppearance;
11457
+ const MenuButtonShape = ButtonShape;
11458
+ const MenuButtonSize = ButtonSize;
11459
+
11460
+ const template$e = buttonTemplate$1({
11461
+ end: html.partial(`<svg slot="end" fill="currentColor" aria-hidden="true" width="1em" height="1em" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><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></svg>`)
11462
+ });
11463
+
11464
+ const definition$e = MenuButton.compose({
11465
+ name: `${FluentDesignSystem.prefix}-menu-button`,
11466
+ template: template$e,
11467
+ styles: styles$p,
11468
+ shadowOptions: {
11469
+ delegatesFocus: true
11470
+ }
11471
+ });
11472
+
11473
+ class MenuItem extends FASTMenuItem {}
11474
+
11475
+ const Checkmark16Filled = html.partial(`<svg fill="currentColor" class="___12fm75w f1w7gpdv fez10in fg4l7m0" aria-hidden="true" width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.05 3.49c.28.3.27.77-.04 1.06l-7.93 7.47A.85.85 0 014.9 12L2.22 9.28a.75.75 0 111.06-1.06l2.24 2.27 7.47-7.04a.75.75 0 011.06.04z" fill="currentColor"></path></svg>`);
11476
+ const chevronRight16Filled = html.partial(`<svg fill="currentColor" class="___12fm75w f1w7gpdv fez10in fg4l7m0" aria-hidden="true" width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M5.74 3.2a.75.75 0 00-.04 1.06L9.23 8 5.7 11.74a.75.75 0 101.1 1.02l4-4.25a.75.75 0 000-1.02l-4-4.25a.75.75 0 00-1.06-.04z" fill="currentColor"></path></svg>`);
11477
+ const template$d = menuItemTemplate({
11478
+ checkboxIndicator: Checkmark16Filled,
11479
+ expandCollapseGlyph: chevronRight16Filled,
11480
+ radioIndicator: Checkmark16Filled
11481
+ });
11482
+
11483
+ const styles$d = css`
11484
+ ${display("grid")}
11485
+
11486
+ :host{grid-template-columns:20px 20px auto 20px;align-items:center;grid-gap:4px;height:32px;background:${colorNeutralBackground1};font:${fontWeightRegular} ${fontSizeBase300} / ${lineHeightBase300} ${fontFamilyBase};border-radius:${borderRadiusMedium};color:${colorNeutralForeground2};padding:0 10px;cursor:pointer;overflow:visible;contain:layout}:host(:hover){background:${colorNeutralBackground1Hover}}.content{white-space:nowrap;flex-grow:1;grid-column:auto / span 2;padding:0 2px}.checkbox,.radio{display:none}.input-container,.expand-collapse-glyph-container,::slotted([slot='start']),::slotted([slot='end']),:host([checked]) .checkbox,:host([checked]) .radio{display:inline-flex;justify-content:center;align-items:center;color:${colorNeutralForeground2}}.expand-collapse-glyph-container,::slotted([slot='start']),::slotted([slot='end']){height:32px;font-size:${fontSizeBase500};width:fit-content}.input-container{width:20px}::slotted([slot='end']){color:${colorNeutralForeground3};font:${fontWeightRegular} ${fontSizeBase200} / ${lineHeightBase200} ${fontFamilyBase};white-space:nowrap;grid-column:4 / span 1;justify-self:flex-end}.expand-collapse-glyph-container{grid-column:4 / span 1;justify-self:flex-end}:host(:hover) .input-container,:host(:hover) .expand-collapse-glyph-container,:host(:hover) .content{color:${colorNeutralForeground2Hover}}:host([icon]:hover) ::slotted([slot='start']){color:${colorCompoundBrandForeground1Hover}}:host(:active){background-color:${colorNeutralBackground1Selected}}:host(:active) .input-container,:host(:active) .expand-collapse-glyph-container,:host(:active) .content{color:${colorNeutralForeground2Pressed}}:host(:active) ::slotted([slot='start']){color:${colorCompoundBrandForeground1Pressed}}:host([disabled]){background-color:${colorNeutralBackgroundDisabled}}:host([disabled]) .content,:host([disabled]) .expand-collapse-glyph-container,:host([disabled]) ::slotted([slot='end']),:host([disabled]) ::slotted([slot='start']){color:${colorNeutralForegroundDisabled}}:host([data-indent]){display:grid}:host([data-indent='1']) .content{grid-column:2 / span 1}:host([data-indent='1'][role='menuitemcheckbox']){display:grid}:host([data-indent='2'][aria-haspopup='menu']) ::slotted([slot='end']){grid-column:4 / span 1}:host([data-indent='2'][aria-haspopup='menu']) .expand-collapse-glyph-container{grid-column:5 / span 1}:host([data-indent='1']) .content{grid-column:2 / span 1}:host([data-indent='1'][role='menuitemcheckbox']) .content,:host([data-indent='1'][role='menuitemradio']) .content{grid-column:auto / span 1}:host([icon]) ::slotted([slot='end']),:host([data-indent='1']) ::slotted([slot='end']){grid-column:4 / span 1;justify-self:flex-end}:host([data-indent='2']){display:grid;grid-template-columns:20px 20px auto auto}:host([data-indent='2']) .content{grid-column:3 / span 1}:host([data-indent='2']) .input-container{grid-column:1 / span 1}:host([data-indent='2']) ::slotted([slot='start']){grid-column:2 / span 1}:host([aria-haspopup='menu']){grid-template-columns:20px auto auto 20px}:host([data-indent='2'][aria-haspopup='menu']){grid-template-columns:20px 20px auto auto 20px}:host([aria-haspopup='menu']) ::slotted([slot='end']){grid-column:3 / span 1;justify-self:flex-end}:host([data-indent='2'][aria-haspopup='menu']) ::slotted([slot='end']){grid-column:4 / span 1;justify-self:flex-end}`;
11487
+
11488
+ const definition$d = MenuItem.compose({
11489
+ name: `${FluentDesignSystem.prefix}-menu-item`,
11490
+ template: template$d,
11491
+ styles: styles$d
11492
+ });
11493
+
11494
+ class MenuList extends FASTMenu {
11495
+ setItems() {
11496
+ var _a;
11497
+ super.setItems();
11498
+ const filteredMenuListItems = (_a = this.menuItems) == null ? void 0 : _a.filter(this.isMenuItemElement);
11499
+ filteredMenuListItems == null ? void 0 : filteredMenuListItems.forEach((item, index) => {
11500
+ const indent = filteredMenuListItems == null ? void 0 : filteredMenuListItems.reduce((accum, current) => {
11501
+ const elementValue = MenuList.elementIndent(current);
11502
+ return Math.max(accum, elementValue);
11503
+ }, 0);
11504
+ if (item instanceof MenuItem) {
11505
+ item.setAttribute("data-indent", `${indent}`);
11506
+ }
11507
+ });
11508
+ }
11509
+ static elementIndent(el) {
11510
+ const role = el.getAttribute("role");
11511
+ const startSlot = el.querySelector("[slot=start]");
11512
+ if (role && role !== MenuItemRole.menuitem) {
11513
+ return startSlot ? 2 : 1;
11514
+ }
11515
+ return startSlot ? 1 : 0;
11516
+ }
11517
+ }
11518
+
11519
+ const template$c = menuTemplate$1();
11520
+
11521
+ const styles$c = css`
11522
+ ${display("flex")}
11523
+
11524
+ :host{flex-direction:column;height:fit-content;max-width:300px;min-width:160px;width:auto;background-color:${colorNeutralBackground1};border:1px solid ${colorTransparentStroke};border-radius:${borderRadiusMedium};box-shadow:${shadow16};padding:4px;row-gap:2px}`;
11525
+
11526
+ const definition$c = MenuList.compose({
11527
+ name: `${FluentDesignSystem.prefix}-menu-list`,
11528
+ template: template$c,
11529
+ styles: styles$c
11530
+ });
11531
+
11532
+ var __defProp$8 = Object.defineProperty;
11533
+ var __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor;
11534
+ var __decorateClass$8 = (decorators, target, key, kind) => {
11535
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$8(target, key) : target;
11536
+ for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
11537
+ if (kind && result) __defProp$8(target, key, result);
11538
+ return result;
11539
+ };
11540
+ class ProgressBar extends FASTProgress {
11541
+ constructor() {
11542
+ super(...arguments);
11543
+ this.validationState = null;
11544
+ }
11545
+ }
11546
+ __decorateClass$8([attr], ProgressBar.prototype, "thickness", 2);
11547
+ __decorateClass$8([attr], ProgressBar.prototype, "shape", 2);
11548
+ __decorateClass$8([attr({
11549
+ attribute: "validation-state"
11550
+ })], ProgressBar.prototype, "validationState", 2);
11551
+
11552
+ const ProgressBarThickness = {
11553
+ medium: "medium",
11554
+ large: "large"
11555
+ };
11556
+ const ProgressBarShape = {
11557
+ rounded: "rounded",
11558
+ square: "square"
11559
+ };
11560
+ const ProgressBarValidationState = {
11561
+ success: "success",
11562
+ warning: "warning",
11563
+ error: "error"
11564
+ };
11565
+
11566
+ const styles$b = css`
11567
+ ${display("flex")}
11568
+
11569
+ :host{align-items:center;height:2px;overflow-x:hidden;border-radius:${borderRadiusMedium};contain:content}:host([thickness='large']),:host([thickness='large']) .progress,:host([thickness='large']) .determinate{height:4px}:host([shape='square']),:host([shape='square']) .progress,:host([shape='square']) .determinate{border-radius:0}:host([validation-state='error']) .determinate{background-color:${colorPaletteRedBackground3}}:host([validation-state='error']) .indeterminate-indicator-1,:host([validation-state='error']) .indeterminate-indicator-2{background:linear-gradient(
11570
+ to right,${colorPaletteRedBackground2} 0%,${colorPaletteRedBackground3} 50%,${colorPaletteRedBackground2}
11571
+ )}:host([validation-state='warning']) .determinate{background-color:${colorPaletteDarkOrangeBackground3}}:host([validation-state='warning']) .indeterminate-indicator-1,:host([validation-state='warning']) .indeterminate-indicator-2{background:linear-gradient(
11572
+ to right,${colorPaletteDarkOrangeBackground2} 0%,${colorPaletteDarkOrangeBackground3} 50%,${colorPaletteDarkOrangeBackground2}
11573
+ )}:host([validation-state='success']) .determinate{background-color:${colorPaletteGreenBackground3}}:host([validation-state='success']) .indeterminate-indicator-1,:host([validation-state='success']) .indeterminate-indicator-2{background:linear-gradient(
11574
+ to right,${colorPaletteGreenBackground2} 0%,${colorPaletteGreenBackground3} 50%,${colorPaletteGreenBackground2}
11575
+ )}.progress{background-color:${colorNeutralBackground6};border-radius:${borderRadiusMedium};width:100%;height:2px;display:flex;align-items:center;position:relative}.determinate{background-color:${colorCompoundBrandBackground};border-radius:${borderRadiusMedium};height:2px;transition:all 0.2s ease-in-out;display:flex}.indeterminate-indicator-1{position:absolute;opacity:0;height:100%;background:linear-gradient(
11576
+ to right,${colorBrandBackground2} 0%,${colorCompoundBrandBackground} 50%,${colorBrandBackground2}
11577
+ );border-radius:${borderRadiusMedium};animation-timing-function:cubic-bezier(0.4,0,0.6,1);width:40%;animation:indeterminate-1 3s infinite}.indeterminate-indicator-2{position:absolute;opacity:0;height:100%;background:linear-gradient(
11578
+ to right,${colorBrandBackground2} 0%,${colorCompoundBrandBackground} 50%,${colorBrandBackground2}
11579
+ );border-radius:${borderRadiusMedium};animation-timing-function:cubic-bezier(0.4,0,0.6,1);width:60%;animation:indeterminate-2 3s infinite}@keyframes indeterminate-1{0%{opacity:1;transform:translateX(-100%)}70%{opacity:1;transform:translateX(300%)}70.01%{opacity:0}100%{opacity:0;transform:translateX(300%)}}@keyframes indeterminate-2{0%{opacity:0;transform:translateX(-150%)}29.99%{opacity:0}30%{opacity:1;transform:translateX(-150%)}100%{transform:translateX(166.66%);opacity:1}}`.withBehaviors(forcedColorsStylesheetBehavior(css`
11580
+ .progress{background-color:HighlightText}.determinate,:host([validation-state='success']) .determinate,:host([validation-state='warning']) .determinate,:host([validation-state='error']) .determinate,:host([validation-state='success']) ..indeterminate-indicator-1,:host([validation-state='success']) ..indeterminate-indicator-2,:host([validation-state='warning']) .indeterminate-indicator-1,:host([validation-state='warning']) .indeterminate-indicator-2,:host([validation-state='error']) .indeterminate-indicator-1,:host([validation-state='error']) .indeterminate-indicator-2{background-color:Highlight}`));
11581
+
11582
+ const template$b = progressTemplate({
11583
+ indeterminateIndicator1: `<span class="indeterminate-indicator-1" part="indeterminate-indicator-1></span>`,
11584
+ indeterminateIndicator2: `<span class="indeterminate-indicator-2" part="indeterminate-indicator-2"></span>`
11585
+ });
11586
+
11587
+ const definition$b = ProgressBar.compose({
11588
+ name: `${FluentDesignSystem.prefix}-progress-bar`,
11589
+ template: template$b,
11590
+ styles: styles$b
11591
+ });
11592
+
11593
+ class Radio extends FASTRadio {}
11594
+
11595
+ const styles$a = css`
11596
+ ${display("inline-grid")}
11597
+
11598
+ :host{grid-auto-flow:column;grid-template-columns:max-content;gap:${spacingHorizontalXS};align-items:center;height:32px;cursor:pointer;outline:none;position:relative;user-select:none;color:blue;color:var(--state-color,${colorNeutralForeground3});padding-inline-end:${spacingHorizontalS};--control-border-color:${colorNeutralStrokeAccessible};--checked-indicator-background-color:${colorCompoundBrandForeground1};--state-color:${colorNeutralForeground3}}:host([disabled]){--control-border-color:${colorNeutralForegroundDisabled};--checked-indicator-background-color:${colorNeutralForegroundDisabled};--state-color:${colorNeutralForegroundDisabled}}.label{cursor:pointer;font-family:${fontFamilyBase};font-size:${fontSizeBase300};font-weight:${fontWeightRegular};line-height:${lineHeightBase300}}.label__hidden{display:none}.control{box-sizing:border-box;align-items:center;border:1px solid var(--control-border-color,${colorNeutralStrokeAccessible});border-radius:${borderRadiusCircular};display:flex;height:16px;justify-content:center;margin:${spacingVerticalS} ${spacingHorizontalS};position:relative;width:16px;justify-self:center}.checked-indicator{border-radius:${borderRadiusCircular};height:10px;opacity:0;width:10px}:host([aria-checked='false']:hover) .control{color:${colorNeutralForeground2}}:host(:focus-visible){border-radius:${borderRadiusSmall};box-shadow:0 0 0 3px ${colorStrokeFocus2};outline:1px solid ${colorStrokeFocus1}}:host(:hover) .control{border-color:${colorNeutralStrokeAccessibleHover}}:host(:active) .control{border-color:${colorNeutralStrokeAccessiblePressed}}:host([aria-checked='true']) .checked-indicator{opacity:1}:host([aria-checked='true']) .control{border-color:var(--control-border-color,${colorNeutralStrokeAccessible})}:host([aria-checked='true']) .checked-indicator{background-color:var(--checked-indicator-background-color,${colorCompoundBrandForeground1})}:host([aria-checked='true']:hover) .control{border-color:${colorCompoundBrandStrokeHover}}:host([aria-checked='true']:hover) .checked-indicator{background-color:${colorCompoundBrandStrokeHover}}:host([aria-checked='true']:active) .control{border-color:${colorCompoundBrandStrokePressed}}:host([aria-checked='true']:active) .checked-indicator{background:${colorCompoundBrandForeground1Pressed}}:host([disabled]){color:${colorNeutralForegroundDisabled};pointer-events:none}:host([disabled]) .control{pointer-events:none;border-color:${colorNeutralForegroundDisabled}}:host([disabled]) .checked-indicator{background:${colorNeutralForegroundDisabled}}`.withBehaviors(forcedColorsStylesheetBehavior(css`
11599
+ :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}`));
11600
+
11601
+ const template$a = radioTemplate({
11602
+ checkedIndicator: html`<div part="checked-indicator" class="checked-indicator"></div>`
11603
+ });
11604
+
11605
+ const definition$a = Radio.compose({
11606
+ name: `${FluentDesignSystem.prefix}-radio`,
11607
+ template: template$a,
11608
+ styles: styles$a
11609
+ });
11610
+
11611
+ var __defProp$7 = Object.defineProperty;
11612
+ var __getOwnPropDesc$7 = Object.getOwnPropertyDescriptor;
11613
+ var __decorateClass$7 = (decorators, target, key, kind) => {
11614
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$7(target, key) : target;
11615
+ for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
11616
+ if (kind && result) __defProp$7(target, key, result);
11617
+ return result;
11618
+ };
11619
+ class RadioGroup extends FASTRadioGroup {
11620
+ constructor() {
11621
+ super(...arguments);
11622
+ this.stacked = false;
11623
+ }
11624
+ }
11625
+ __decorateClass$7([attr({
11626
+ mode: "boolean"
11627
+ })], RadioGroup.prototype, "stacked", 2);
11628
+
11629
+ const styles$9 = css`
11630
+ ${display("flex")}
11631
+
11632
+ :host{align-items:flex-start;flex-direction:column;row-gap:${spacingVerticalS}}:host([disabled]) ::slotted([role='radio']){--control-border-color:${colorNeutralForegroundDisabled};--checked-indicator-background-color:${colorNeutralForegroundDisabled};--state-color:${colorNeutralForegroundDisabled}}::slotted([slot='label']){color:${colorNeutralForeground1};padding:${spacingVerticalS} ${spacingHorizontalS} ${spacingVerticalS} ${spacingHorizontalXS};font:${fontWeightRegular} ${fontSizeBase300} / ${lineHeightBase300} ${fontFamilyBase};cursor:default}.positioning-region{display:flex;flex-wrap:wrap}:host([orientation='vertical']) .positioning-region{flex-direction:column;justify-content:flex-start}:host([orientation='horizontal']) .positioning-region{flex-direction:row}:host([orientation='horizontal']) ::slotted([role='radio']){padding-inline-end:${spacingHorizontalS}}:host([orientation='horizontal'][stacked]) ::slotted([role='radio']){display:flex;flex-direction:column;padding-inline:${spacingHorizontalS};height:auto;align-items:center;justify-content:center}:host([disabled]) ::slotted([role='radio']){pointer-events:none}`;
11633
+
11634
+ const template$9 = radioGroupTemplate();
11635
+
11636
+ const definition$9 = RadioGroup.compose({
11637
+ name: `${FluentDesignSystem.prefix}-radio-group`,
11638
+ template: template$9,
11639
+ styles: styles$9
11640
+ });
11641
+
11642
+ var __defProp$6 = Object.defineProperty;
11643
+ var __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor;
11644
+ var __decorateClass$6 = (decorators, target, key, kind) => {
11645
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$6(target, key) : target;
11646
+ for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
11647
+ if (kind && result) __defProp$6(target, key, result);
11648
+ return result;
11649
+ };
11650
+ class Slider extends FASTSlider {
11651
+ handleChange(source, propertyName) {
11652
+ switch (propertyName) {
11653
+ case "min":
11654
+ case "max":
11655
+ case "step":
11656
+ this.handleStepStyles();
11657
+ break;
11658
+ }
11659
+ }
11660
+ connectedCallback() {
11661
+ super.connectedCallback();
11662
+ Observable.getNotifier(this).subscribe(this, "max");
11663
+ Observable.getNotifier(this).subscribe(this, "min");
11664
+ Observable.getNotifier(this).subscribe(this, "step");
11665
+ this.handleStepStyles();
11666
+ }
11667
+ disconnectedCallback() {
11668
+ super.disconnectedCallback();
11669
+ Observable.getNotifier(this).unsubscribe(this, "max");
11670
+ Observable.getNotifier(this).unsubscribe(this, "min");
11671
+ Observable.getNotifier(this).unsubscribe(this, "step");
11672
+ }
11673
+ handleStepStyles() {
11674
+ if (this.step) {
11675
+ const totalSteps = 100 / Math.floor((this.max - this.min) / this.step);
11676
+ if (this.stepStyles !== void 0) {
11677
+ this.$fastController.removeStyles(this.stepStyles);
11678
+ }
11679
+ this.stepStyles = css`
11680
+ :host{--step-rate:${totalSteps}%;color:blue}`;
11681
+ this.$fastController.addStyles(this.stepStyles);
11682
+ } else if (this.stepStyles !== void 0) {
11683
+ this.$fastController.removeStyles(this.stepStyles);
11684
+ }
11685
+ }
11686
+ }
11687
+ __decorateClass$6([attr], Slider.prototype, "size", 2);
11688
+
11689
+ const SliderSize = {
11690
+ small: "small",
11691
+ medium: "medium"
11692
+ };
11693
+
11694
+ const styles$8 = css`
11695
+ ${display("inline-grid")} :host{--thumb-size:18px;--thumb-padding:3px;--thumb-translate:calc(var(--thumb-size) * -0.5 + var(--track-width) / 2);--track-overhang:-2px;--track-width:4px;--fast-slider-height:calc(var(--thumb-size) * 10);--slider-direction:90deg;align-items:center;box-sizing:border-box;outline:none;cursor:pointer;user-select:none;border-radius:${borderRadiusSmall};touch-action:pan-y;min-width:calc(var(--thumb-size) * 1px);width:100%}:host([size='small']){--thumb-size:14px;--track-width:2px;--thumb-padding:3px}:host([orientation='vertical']){--slider-direction:0deg;height:160px;min-height:var(--thumb-size);touch-action:pan-x;padding:8px 0;width:auto;min-width:auto}:host([disabled]:hover){cursor:initial}:host(:focus-visible){box-shadow:0 0 0 2pt ${colorStrokeFocus2};outline:1px solid ${colorStrokeFocus1}}.thumb-cursor:focus{outline:0}.thumb-container{position:absolute;height:var(--thumb-size);width:var(--thumb-size);transition:all 0.2s ease}.thumb-container{transform:translateX(calc(var(--thumb-size) * 0.5)) translateY(calc(var(--thumb-translate) * -1.5))}:host([size='small']) .thumb-container{transform:translateX(calc(var(--thumb-size) * 0.5)) translateY(calc(var(--thumb-translate) * -1.35))}:host([orientation='vertical']) .thumb-container{transform:translateX(calc(var(--thumb-translate) * -1.5)) translateY(calc(var(--thumb-size) * -0.5))}:host([orientation='vertical'][size='small']) .thumb-container{transform:translateX(calc(var(--thumb-translate) * -1.35)) translateY(calc(var(--thumb-size) * -0.5))}.thumb-cursor{height:var(--thumb-size);width:var(--thumb-size);background-color:${colorBrandBackground};border-radius:${borderRadiusCircular};box-shadow:inset 0 0 0 var(--thumb-padding) ${colorNeutralBackground1},0 0 0 1px ${colorNeutralStroke1}}.thumb-cursor:hover{background-color:${colorCompoundBrandBackgroundHover}}.thumb-cursor:active{background-color:${colorCompoundBrandBackgroundPressed}}:host([disabled]) .thumb-cursor{background-color:${colorNeutralForegroundDisabled};box-shadow:inset 0 0 0 var(--thumb-padding) ${colorNeutralBackground1},0 0 0 1px ${colorNeutralStrokeDisabled}}.positioning-region{position:relative;display:grid}:host([orientation='horizontal']) .positioning-region{margin:0 8px;grid-template-rows:var(--thumb-size) var(--thumb-size)}:host([orientation='vertical']) .positioning-region{margin:8px 0;height:100%;grid-template-columns:var(--thumb-size) var(--thumb-size)}.track{align-self:start;position:absolute;background-color:${colorNeutralStrokeAccessible};border-radius:${borderRadiusMedium};overflow:hidden}:host([step]) .track::after{content:'';position:absolute;border-radius:${borderRadiusMedium};width:100%;inset:0 2px;background-image:repeating-linear-gradient(
11696
+ var(--slider-direction),#0000 0%,#0000 calc(var(--step-rate) - 1px),${colorNeutralBackground1} calc(var(--step-rate) - 1px),${colorNeutralBackground1} var(--step-rate)
11697
+ )}:host([orientation='vertical'][step]) .track::after{inset:-2px 0}:host([disabled]) .track{background-color:${colorNeutralBackgroundDisabled}}:host([orientation='horizontal']) .track{right:var(--track-overhang);left:var(--track-overhang);align-self:start;height:var(--track-width);grid-row:2 / auto}:host([orientation='vertical']) .track{top:var(--track-overhang);bottom:var(--track-overhang);width:var(--track-width);height:100%;grid-column:2 / auto}.track-start{background-color:${colorCompoundBrandBackground};position:absolute;height:100%;left:0;border-radius:${borderRadiusMedium}}:host([disabled]) .track-start{background-color:${colorNeutralForegroundDisabled}}:host(:hover) .track-start{background-color:${colorCompoundBrandBackgroundHover}}:host([disabled]:hover) .track-start{background-color:${colorNeutralForegroundDisabled}}.track-start:active{background-color:${colorCompoundBrandBackgroundPressed}}:host([orientation='vertical']) .track-start{height:auto;width:100%;bottom:0}`.withBehaviors(forcedColorsStylesheetBehavior(css`
11698
+ .track:hover,.track:active,.track{background:WindowText}.thumb-cursor:hover,.thumb-cursor:active,.thumb-cursor{background:ButtonText}:host(:hover) .track-start,.track-start:active,.track-start{background:Highlight}`));
11699
+
11700
+ const template$8 = sliderTemplate({
11701
+ thumb: `<div class="thumb-cursor" tabindex="0"></div>`
11702
+ });
11703
+
11704
+ const definition$8 = Slider.compose({
11705
+ name: `${FluentDesignSystem.prefix}-slider`,
11706
+ template: template$8,
11707
+ styles: styles$8
11708
+ });
11709
+
11710
+ var __defProp$5 = Object.defineProperty;
11711
+ var __getOwnPropDesc$5 = Object.getOwnPropertyDescriptor;
11712
+ var __decorateClass$5 = (decorators, target, key, kind) => {
11713
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$5(target, key) : target;
11714
+ for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
11715
+ if (kind && result) __defProp$5(target, key, result);
11716
+ return result;
11717
+ };
11718
+ class Spinner extends FASTProgressRing {}
11719
+ __decorateClass$5([attr], Spinner.prototype, "size", 2);
11720
+ __decorateClass$5([attr], Spinner.prototype, "appearance", 2);
11721
+
11722
+ const SpinnerAppearance = {
11723
+ primary: "primary",
11724
+ inverted: "inverted"
11725
+ };
11726
+ const SpinnerSize = {
11727
+ tiny: "tiny",
11728
+ extraSmall: "extra-small",
11729
+ small: "small",
11730
+ medium: "medium",
11731
+ large: "large",
11732
+ extraLarge: "extra-large",
11733
+ huge: "huge"
11734
+ };
11735
+
11736
+ const template$7 = progressRingTemplate({
11737
+ indeterminateIndicator: `
11738
+ <svg class="progress" part="progress" viewBox="0 0 16 16">
11739
+ <circle
11740
+ class="background"
11741
+ part="background"
11742
+ cx="8px"
11743
+ cy="8px"
11744
+ r="7px"
11745
+ ></circle>
11746
+ <circle
11747
+ class="indeterminate-indicator-1"
11748
+ part="indeterminate-indicator-1"
11749
+ cx="8px"
11750
+ cy="8px"
11751
+ r="7px"
11752
+ ></circle>
11753
+ </svg>
11754
+ `
11755
+ });
11756
+
11757
+ const styles$7 = css`
11758
+ ${display("flex")}
11759
+
11760
+ :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)}}`;
11761
+
11762
+ const definition$7 = Spinner.compose({
11763
+ name: `${FluentDesignSystem.prefix}-spinner`,
11764
+ template: template$7,
11765
+ styles: styles$7
11766
+ });
11767
+
11768
+ var __defProp$4 = Object.defineProperty;
11769
+ var __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor;
11770
+ var __decorateClass$4 = (decorators, target, key, kind) => {
11771
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target;
11772
+ for (var i = decorators.length - 1, decorator; i >= 0; i--) if (decorator = decorators[i]) result = (kind ? decorator(target, key, result) : decorator(result)) || result;
11773
+ if (kind && result) __defProp$4(target, key, result);
11774
+ return result;
11775
+ };
11776
+ class Switch extends FASTSwitch {}
11777
+ __decorateClass$4([attr({
11778
+ attribute: "label-position"
11779
+ })], Switch.prototype, "labelPosition", 2);
11780
+
11781
+ const SwitchLabelPosition = {
11782
+ above: "above",
11783
+ after: "after",
11784
+ before: "before"
11785
+ };
11786
+
11787
+ const template$6 = switchTemplate({
11788
+ switch: `<span class="checked-indicator" part="checked-indicator"></span>`
11789
+ });
11790
+
11791
+ const styles$6 = css`
11792
+ ${display("inline-flex")}
11793
+
11794
+ :host{align-items:center;flex-direction:row-reverse;outline:none;user-select:none;contain:content}:host([label-position='before']){flex-direction:row}:host([label-position='above']){flex-direction:column;align-items:flex-start}:host([disabled]) .label,:host([readonly]) .label,:host([readonly]) .switch,:host([disabled]) .switch{cursor:not-allowed}.label{position:relative;color:${colorNeutralForeground1};line-height:${lineHeightBase300};font-size:${fontSizeBase300};font-weight:${fontWeightRegular};font-family:${fontFamilyBase};padding:${spacingVerticalXS} ${spacingHorizontalXS};cursor:pointer}.label__hidden{display:none}.switch{display:flex;align-items:center;padding:0 ${spacingHorizontalXXS};box-sizing:border-box;width:40px;height:20px;background-color:${colorTransparentBackground};border:1px solid ${colorNeutralStrokeAccessible};border-radius:${borderRadiusCircular};outline:none;cursor:pointer;margin:${spacingVerticalS} ${spacingHorizontalS}}:host(:hover) .switch{background:none;border-color:${colorNeutralStrokeAccessibleHover}}:host(:active) .switch{border-color:${colorNeutralStrokeAccessiblePressed}}:host([disabled]) .switch,:host([readonly]) .switch{border:1px solid ${colorNeutralStrokeDisabled};background-color:none;pointer:default}:host([aria-checked='true']) .switch{background:${colorCompoundBrandBackground}}:host([aria-checked='true']:hover) .switch{background:${colorCompoundBrandBackgroundHover};border-color:${colorCompoundBrandBackgroundHover}}:host([aria-checked='true']:active) .switch{background:${colorCompoundBrandBackgroundPressed};border-color:${colorCompoundBrandBackgroundPressed}}:host([aria-checked='true'][disabled]) .switch{background:${colorNeutralBackgroundDisabled};border-color:${colorNeutralStrokeDisabled}}.checked-indicator{height:14px;width:14px;border-radius:50%;margin-inline-start:0;background-color:${colorNeutralForeground3};transition-duration:${durationNormal};transition-timing-function:${curveEasyEase};transition-property:margin-inline-start}:host([aria-checked='true']) .checked-indicator{background-color:${colorNeutralForegroundInverted};margin-inline-start:calc(100% - 14px)}:host([aria-checked='true']:hover) .checked-indicator{background:${colorNeutralForegroundInvertedHover}}:host([aria-checked='true']:active) .checked-indicator{background:${colorNeutralForegroundInvertedPressed}}:host(:hover) .checked-indicator{background-color:${colorNeutralForeground3Hover}}:host(:active) .checked-indicator{background-color:${colorNeutralForeground3Pressed}}:host([disabled]) .checked-indicator,:host([readonly]) .checked-indicator{background:${colorNeutralForegroundDisabled}}:host([aria-checked='true'][disabled]) .checked-indicator{background:${colorNeutralForegroundDisabled}}:host(:focus-visible){border-color:${colorTransparentStroke};outline:${strokeWidthThick} solid ${colorTransparentStroke};box-shadow:${shadow4},0 0 0 2px ${colorStrokeFocus2}}`.withBehaviors(forcedColorsStylesheetBehavior(css`
11795
+ .switch{border-color:InactiveBorder}:host([aria-checked='true']) .switch,:host([aria-checked='true']:active) .switch,:host([aria-checked='true']:hover) .switch{background:Highlight;border-color:Highlight}.checked-indicator,:host(:hover) .checked-indicator,:host(:active) .checked-indicator{background-color:ActiveCaption}:host([aria-checked='true']) .checked-indicator,:host([aria-checked='true']:hover) .checked-indicator,:host([aria-checked='true']:active) .checked-indicator{background-color:ButtonFace}`));
11796
+
11797
+ const definition$6 = Switch.compose({
11798
+ name: `${FluentDesignSystem.prefix}-switch`,
11799
+ template: template$6,
11800
+ styles: styles$6
11801
+ });
11802
+
11172
11803
  const TabsAppearance = {
11173
11804
  subtle: "subtle",
11174
11805
  transparent: "transparent"
@@ -11291,21 +11922,6 @@ const definition$5 = Tabs.compose({
11291
11922
  styles: styles$5
11292
11923
  });
11293
11924
 
11294
- /**
11295
- * A Tab Component to be used with {@link @microsoft/fast-foundation#(FASTTabs:class)}
11296
- *
11297
- * @slot start - Content which can be provided before the tab content
11298
- * @slot end - Content which can be provided after the tab content
11299
- * @slot - The default slot for the tab content
11300
- *
11301
- * @public
11302
- */
11303
- class FASTTab extends FASTElement {}
11304
- __decorate([attr({
11305
- mode: "boolean"
11306
- })], FASTTab.prototype, "disabled", void 0);
11307
- applyMixins$1(FASTTab, StartEnd);
11308
-
11309
11925
  class Tab extends FASTTab {
11310
11926
  connectedCallback() {
11311
11927
  super.connectedCallback();
@@ -11335,23 +11951,6 @@ const definition$4 = Tab.compose({
11335
11951
  styles: styles$4
11336
11952
  });
11337
11953
 
11338
- /**
11339
- * The template for the {@link @microsoft/fast-foundation#FASTTabPanel} component.
11340
- * @public
11341
- */
11342
- function tabPanelTemplate() {
11343
- return html`<template slot="tabpanel" role="tabpanel"><slot></slot></template>`;
11344
- }
11345
-
11346
- /**
11347
- * A TabPanel Component to be used with {@link @microsoft/fast-foundation#(FASTTabs:class)}
11348
- *
11349
- * @slot - The default slot for the tabpanel content
11350
- *
11351
- * @public
11352
- */
11353
- class FASTTabPanel extends FASTElement {}
11354
-
11355
11954
  class TabPanel extends FASTTabPanel {}
11356
11955
 
11357
11956
  const template$3 = tabPanelTemplate();
@@ -11452,224 +12051,6 @@ const definition$2 = Text.compose({
11452
12051
  styles: styles$2
11453
12052
  });
11454
12053
 
11455
- /**
11456
- * The template for the {@link @microsoft/fast-foundation#(FASTTextField:class)} component.
11457
- * @public
11458
- */
11459
- function textFieldTemplate(options = {}) {
11460
- return html`<label part="label" for="control" class="${x => x.defaultSlottedNodes && x.defaultSlottedNodes.length ? "label" : "label label__hidden"}"><slot ${slotted({
11461
- property: "defaultSlottedNodes",
11462
- filter: whitespaceFilter
11463
- })}></slot></label><div class="root" part="root">${startSlotTemplate(options)}<input class="control" part="control" id="control" @input="${x => x.handleTextInput()}" @change="${x => x.handleChange()}" ?autofocus="${x => x.autofocus}" ?disabled="${x => x.disabled}" list="${x => x.list}" maxlength="${x => x.maxlength}" name="${x => x.name}" minlength="${x => x.minlength}" pattern="${x => x.pattern}" placeholder="${x => x.placeholder}" ?readonly="${x => x.readOnly}" ?required="${x => x.required}" size="${x => x.size}" ?spellcheck="${x => x.spellcheck}" :value="${x => x.value}" type="${x => x.type}" aria-atomic="${x => x.ariaAtomic}" aria-busy="${x => x.ariaBusy}" aria-controls="${x => x.ariaControls}" aria-current="${x => x.ariaCurrent}" aria-describedby="${x => x.ariaDescribedby}" aria-details="${x => x.ariaDetails}" aria-disabled="${x => x.ariaDisabled}" aria-errormessage="${x => x.ariaErrormessage}" aria-flowto="${x => x.ariaFlowto}" aria-haspopup="${x => x.ariaHaspopup}" aria-hidden="${x => x.ariaHidden}" aria-invalid="${x => x.ariaInvalid}" aria-keyshortcuts="${x => x.ariaKeyshortcuts}" aria-label="${x => x.ariaLabel}" aria-labelledby="${x => x.ariaLabelledby}" aria-live="${x => x.ariaLive}" aria-owns="${x => x.ariaOwns}" aria-relevant="${x => x.ariaRelevant}" aria-roledescription="${x => x.ariaRoledescription}" ${ref("control")} />${endSlotTemplate(options)}</div>`;
11464
- }
11465
-
11466
- class _TextField extends FASTElement {}
11467
- /**
11468
- * A form-associated base class for the {@link @microsoft/fast-foundation#(TextField:class)} component.
11469
- *
11470
- * @beta
11471
- */
11472
- class FormAssociatedTextField extends FormAssociated(_TextField) {
11473
- constructor() {
11474
- super(...arguments);
11475
- this.proxy = document.createElement("input");
11476
- }
11477
- }
11478
-
11479
- /**
11480
- * Text field sub-types
11481
- * @public
11482
- */
11483
- const TextFieldType = {
11484
- /**
11485
- * An email TextField
11486
- */
11487
- email: "email",
11488
- /**
11489
- * A password TextField
11490
- */
11491
- password: "password",
11492
- /**
11493
- * A telephone TextField
11494
- */
11495
- tel: "tel",
11496
- /**
11497
- * A text TextField
11498
- */
11499
- text: "text",
11500
- /**
11501
- * A URL TextField
11502
- */
11503
- url: "url"
11504
- };
11505
-
11506
- /**
11507
- * A Text Field Custom HTML Element.
11508
- * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/text | <input type="text" /> element }.
11509
- *
11510
- * @slot start - Content which can be provided before the number field input
11511
- * @slot end - Content which can be provided after the number field input
11512
- * @slot - The default slot for the label
11513
- * @csspart label - The label
11514
- * @csspart root - The element wrapping the control, including start and end slots
11515
- * @csspart control - The text field element
11516
- * @fires change - Fires a custom 'change' event when the value has changed
11517
- *
11518
- * @public
11519
- */
11520
- class FASTTextField extends FormAssociatedTextField {
11521
- constructor() {
11522
- super(...arguments);
11523
- /**
11524
- * Allows setting a type or mode of text.
11525
- * @public
11526
- * @remarks
11527
- * HTML Attribute: type
11528
- */
11529
- this.type = TextFieldType.text;
11530
- }
11531
- readOnlyChanged() {
11532
- if (this.proxy instanceof HTMLInputElement) {
11533
- this.proxy.readOnly = this.readOnly;
11534
- this.validate();
11535
- }
11536
- }
11537
- autofocusChanged() {
11538
- if (this.proxy instanceof HTMLInputElement) {
11539
- this.proxy.autofocus = this.autofocus;
11540
- this.validate();
11541
- }
11542
- }
11543
- placeholderChanged() {
11544
- if (this.proxy instanceof HTMLInputElement) {
11545
- this.proxy.placeholder = this.placeholder;
11546
- }
11547
- }
11548
- typeChanged() {
11549
- if (this.proxy instanceof HTMLInputElement) {
11550
- this.proxy.type = this.type;
11551
- this.validate();
11552
- }
11553
- }
11554
- listChanged() {
11555
- if (this.proxy instanceof HTMLInputElement) {
11556
- this.proxy.setAttribute("list", this.list);
11557
- this.validate();
11558
- }
11559
- }
11560
- maxlengthChanged() {
11561
- if (this.proxy instanceof HTMLInputElement) {
11562
- this.proxy.maxLength = this.maxlength;
11563
- this.validate();
11564
- }
11565
- }
11566
- minlengthChanged() {
11567
- if (this.proxy instanceof HTMLInputElement) {
11568
- this.proxy.minLength = this.minlength;
11569
- this.validate();
11570
- }
11571
- }
11572
- patternChanged() {
11573
- if (this.proxy instanceof HTMLInputElement) {
11574
- this.proxy.pattern = this.pattern;
11575
- this.validate();
11576
- }
11577
- }
11578
- sizeChanged() {
11579
- if (this.proxy instanceof HTMLInputElement) {
11580
- this.proxy.size = this.size;
11581
- }
11582
- }
11583
- spellcheckChanged() {
11584
- if (this.proxy instanceof HTMLInputElement) {
11585
- this.proxy.spellcheck = this.spellcheck;
11586
- }
11587
- }
11588
- /**
11589
- * @internal
11590
- */
11591
- connectedCallback() {
11592
- super.connectedCallback();
11593
- this.proxy.setAttribute("type", this.type);
11594
- this.validate();
11595
- if (this.autofocus) {
11596
- Updates.enqueue(() => {
11597
- this.focus();
11598
- });
11599
- }
11600
- }
11601
- /**
11602
- * Selects all the text in the text field
11603
- *
11604
- * @public
11605
- */
11606
- select() {
11607
- this.control.select();
11608
- /**
11609
- * The select event does not permeate the shadow DOM boundary.
11610
- * This fn effectively proxies the select event,
11611
- * emitting a `select` event whenever the internal
11612
- * control emits a `select` event
11613
- */
11614
- this.$emit("select");
11615
- }
11616
- /**
11617
- * Handles the internal control's `input` event
11618
- * @internal
11619
- */
11620
- handleTextInput() {
11621
- this.value = this.control.value;
11622
- }
11623
- /**
11624
- * Change event handler for inner control.
11625
- * @remarks
11626
- * "Change" events are not `composable` so they will not
11627
- * permeate the shadow DOM boundary. This fn effectively proxies
11628
- * the change event, emitting a `change` event whenever the internal
11629
- * control emits a `change` event
11630
- * @internal
11631
- */
11632
- handleChange() {
11633
- this.$emit("change");
11634
- }
11635
- /** {@inheritDoc (FormAssociated:interface).validate} */
11636
- validate() {
11637
- super.validate(this.control);
11638
- }
11639
- }
11640
- __decorate([attr({
11641
- attribute: "readonly",
11642
- mode: "boolean"
11643
- })], FASTTextField.prototype, "readOnly", void 0);
11644
- __decorate([attr({
11645
- mode: "boolean"
11646
- })], FASTTextField.prototype, "autofocus", void 0);
11647
- __decorate([attr], FASTTextField.prototype, "placeholder", void 0);
11648
- __decorate([attr], FASTTextField.prototype, "type", void 0);
11649
- __decorate([attr], FASTTextField.prototype, "list", void 0);
11650
- __decorate([attr({
11651
- converter: nullableNumberConverter
11652
- })], FASTTextField.prototype, "maxlength", void 0);
11653
- __decorate([attr({
11654
- converter: nullableNumberConverter
11655
- })], FASTTextField.prototype, "minlength", void 0);
11656
- __decorate([attr], FASTTextField.prototype, "pattern", void 0);
11657
- __decorate([attr({
11658
- converter: nullableNumberConverter
11659
- })], FASTTextField.prototype, "size", void 0);
11660
- __decorate([attr({
11661
- mode: "boolean"
11662
- })], FASTTextField.prototype, "spellcheck", void 0);
11663
- __decorate([observable], FASTTextField.prototype, "defaultSlottedNodes", void 0);
11664
- /**
11665
- * Includes ARIA states and properties relating to the ARIA textbox role
11666
- *
11667
- * @public
11668
- */
11669
- class DelegatesARIATextbox {}
11670
- applyMixins$1(DelegatesARIATextbox, ARIAGlobalStatesAndProperties);
11671
- applyMixins$1(FASTTextField, StartEnd, DelegatesARIATextbox);
11672
-
11673
12054
  var __defProp$1 = Object.defineProperty;
11674
12055
  var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
11675
12056
  var __decorateClass$1 = (decorators, target, key, kind) => {
@@ -11784,7 +12165,7 @@ const ToggleButtonSize = ButtonSize;
11784
12165
  const template = buttonTemplate$1();
11785
12166
 
11786
12167
  const styles = css`
11787
- ${styles$o}
12168
+ ${styles$p}
11788
12169
 
11789
12170
  :host([aria-pressed="true"]) .control{border-color:${colorNeutralStroke1};background-color:${colorNeutralBackground1Selected};color:${colorNeutralForeground1};border-width:${strokeWidthThin}}:host([aria-pressed='true']:hover) .control{border-color:${colorNeutralStroke1Hover};background-color:${colorNeutralBackground1Hover}}:host([aria-pressed='true']:active) .control{border-color:${colorNeutralStroke1Pressed};background-color:${colorNeutralBackground1Pressed}}:host([aria-pressed='true'][appearance='primary']) .control{border-color:transparent;background-color:${colorBrandBackgroundSelected};color:${colorNeutralForegroundOnBrand}}:host([aria-pressed='true'][appearance='primary']:hover) .control{background-color:${colorBrandBackgroundHover}}:host([aria-pressed='true'][appearance='primary']:active) .control{background-color:${colorBrandBackgroundPressed}}:host([aria-pressed='true'][appearance='subtle']) .control{border-color:transparent;background-color:${colorSubtleBackgroundSelected};color:${colorNeutralForeground2Selected}}:host([aria-pressed='true'][appearance='subtle']:hover) .control{background-color:${colorSubtleBackgroundHover};color:${colorNeutralForeground2Hover}}:host([aria-pressed='true'][appearance='subtle']:active) .control{background-color:${colorSubtleBackgroundPressed};color:${colorNeutralForeground2Pressed}}:host([aria-pressed='true'][appearance='outline']) .control,:host([aria-pressed='true'][appearance='transparent']) .control{background-color:${colorTransparentBackgroundSelected}}:host([aria-pressed='true'][appearance='outline']:hover) .control,:host([aria-pressed='true'][appearance='transparent']:hover) .control{background-color:${colorTransparentBackgroundHover}}:host([aria-pressed='true'][appearance='outline']:active) .control,:host([aria-pressed='true'][appearance='transparent']:active) .control{background-color:${colorTransparentBackgroundPressed}}:host([aria-pressed='true'][appearance='transparent']) .control{border-color:transparent;color:${colorNeutralForeground2BrandSelected}}:host([aria-pressed='true'][appearance='transparent']:hover) .control{color:${colorNeutralForeground2BrandHover}}:host([aria-pressed='true'][appearance='transparent']:active) .control{color:${colorNeutralForeground2BrandPressed}}`.withBehaviors(forcedColorsStylesheetBehavior(css`
11790
12171
  :host([aria-pressed='true']) .control,:host([aria-pressed='true'][appearance='primary']) .control,:host([aria-pressed='true'][appearance='subtle']) .control,:host([aria-pressed='true'][appearance='outline']) .control,:host([aria-pressed='true'][appearance='transparent']) .control,:host([aria-pressed='true'][appearance='transparent']) .control{background:SelectedItem;color:SelectedItemText}`));
@@ -11810,4 +12191,4 @@ const setThemeFor = (element, theme) => {
11810
12191
  }
11811
12192
  };
11812
12193
 
11813
- export { Accordion, AccordionItem, AccordionItemExpandIconPosition, AccordionItemSize, AnchorButton, AnchorButtonAppearance, definition$p as AnchorButtonDefinition, AnchorButtonShape, AnchorButtonSize, template$p as AnchorButtonTemplate, Avatar, AvatarActive, AvatarAppearance, AvatarColor, definition$o as AvatarDefinition, AvatarNamedColor, AvatarShape, AvatarSize, styles$m as AvatarStyles, template$o as AvatarTemplate, Badge, BadgeAppearance, BadgeColor, definition$n as BadgeDefinition, BadgeShape, BadgeSize, styles$l as BadgeStyles, template$n as BadgeTemplate, Button, ButtonAppearance, definition$m as ButtonDefinition, ButtonShape, ButtonSize, styles$o as ButtonStyles, template$m as ButtonTemplate, Checkbox, definition$l as CheckboxDefinition, CheckboxLabelPosition, CheckboxShape, CheckboxSize, styles$k as CheckboxStyles, template$l as CheckboxTemplate, CompoundButton, CompoundButtonAppearance, definition$k as CompoundButtonDefinition, CompoundButtonShape, CompoundButtonSize, styles$j as CompoundButtonStyles, template$k as CompoundButtonTemplate, CounterBadge, CounterBadgeAppearance, CounterBadgeColor, definition$j as CounterBadgeDefinition, CounterBadgeShape, CounterBadgeSize, styles$i as CounterBadgeStyles, template$j as CounterBadgeTemplate, 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, styles$f as LabelStyles, template$g as LabelTemplate, Menu, MenuButton, MenuButtonAppearance, definition$e as MenuButtonDefinition, MenuButtonShape, MenuButtonSize, styles$o 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, 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$4 as TabDefinition, TabPanel, definition$3 as TabPanelDefinition, styles$3 as TabPanelStyles, template$3 as TabPanelTemplate, styles$4 as TabStyles, template$4 as TabTemplate, Tabs, TabsAppearance, definition$5 as TabsDefinition, TabsOrientation, TabsSize, styles$5 as TabsStyles, template$5 as TabsTemplate, Text, TextAlign, definition$2 as TextDefinition, TextFont, TextInput, TextInputAppearance, TextInputControlSize, definition$1 as TextInputDefinition, styles$1 as TextInputStyles, template$1 as TextInputTemplate, TextFieldType as 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$r as accordionDefinition, definition$q as accordionItemDefinition, styles$p as accordionItemStyles, template$q as accordionItemTemplate, styles$q as accordionStyles, template$r 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, durationFast, durationFaster, durationNormal, durationSlow, durationSlower, durationUltraFast, durationUltraSlow, fontFamilyBase, fontFamilyMonospace, fontFamilyNumeric, fontSizeBase100, fontSizeBase200, fontSizeBase300, fontSizeBase400, fontSizeBase500, fontSizeBase600, fontSizeHero1000, fontSizeHero700, fontSizeHero800, fontSizeHero900, fontWeightBold, fontWeightMedium, fontWeightRegular, fontWeightSemibold, lineHeightBase100, lineHeightBase200, lineHeightBase300, lineHeightBase400, lineHeightBase500, lineHeightBase600, lineHeightHero1000, lineHeightHero700, lineHeightHero800, lineHeightHero900, 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 };
12194
+ export { Accordion, AccordionItem, AccordionItemExpandIconPosition, AccordionItemSize, AnchorButton, AnchorButtonAppearance, definition$q as AnchorButtonDefinition, AnchorButtonShape, AnchorButtonSize, template$q as AnchorButtonTemplate, Avatar, AvatarActive, AvatarAppearance, AvatarColor, definition$p as AvatarDefinition, AvatarNamedColor, AvatarShape, AvatarSize, styles$n as AvatarStyles, template$p as AvatarTemplate, Badge, BadgeAppearance, BadgeColor, definition$o as BadgeDefinition, BadgeShape, BadgeSize, styles$m as BadgeStyles, template$o as BadgeTemplate, Button, ButtonAppearance, definition$n as ButtonDefinition, ButtonShape, ButtonSize, styles$p as ButtonStyles, template$n as ButtonTemplate, 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, 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, styles$f as LabelStyles, template$g as LabelTemplate, Menu, MenuButton, MenuButtonAppearance, definition$e as MenuButtonDefinition, MenuButtonShape, MenuButtonSize, styles$p 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, 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$4 as TabDefinition, TabPanel, definition$3 as TabPanelDefinition, styles$3 as TabPanelStyles, template$3 as TabPanelTemplate, styles$4 as TabStyles, template$4 as TabTemplate, Tabs, TabsAppearance, definition$5 as TabsDefinition, TabsOrientation, TabsSize, styles$5 as TabsStyles, template$5 as TabsTemplate, Text, TextAlign, definition$2 as TextDefinition, TextFont, TextInput, TextInputAppearance, TextInputControlSize, definition$1 as TextInputDefinition, styles$1 as TextInputStyles, template$1 as TextInputTemplate, TextFieldType as 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, durationFast, durationFaster, durationNormal, durationSlow, durationSlower, durationUltraFast, durationUltraSlow, fontFamilyBase, fontFamilyMonospace, fontFamilyNumeric, fontSizeBase100, fontSizeBase200, fontSizeBase300, fontSizeBase400, fontSizeBase500, fontSizeBase600, fontSizeHero1000, fontSizeHero700, fontSizeHero800, fontSizeHero900, fontWeightBold, fontWeightMedium, fontWeightRegular, fontWeightSemibold, lineHeightBase100, lineHeightBase200, lineHeightBase300, lineHeightBase400, lineHeightBase500, lineHeightBase600, lineHeightHero1000, lineHeightHero700, lineHeightHero800, lineHeightHero900, 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 };