@fluentui/web-components 3.0.0-alpha.12 → 3.0.0-alpha.14

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 (107) hide show
  1. package/CHANGELOG.json +51 -1
  2. package/CHANGELOG.md +22 -2
  3. package/dist/dts/button/button.d.ts +55 -0
  4. package/dist/dts/button/button.definition.d.ts +10 -0
  5. package/dist/dts/button/button.options.d.ts +46 -0
  6. package/dist/dts/button/button.styles.d.ts +1 -0
  7. package/dist/dts/button/button.template.d.ts +7 -0
  8. package/dist/dts/button/define.d.ts +1 -0
  9. package/dist/dts/button/index.d.ts +5 -0
  10. package/dist/dts/index.d.ts +5 -0
  11. package/dist/dts/menu-button/define.d.ts +1 -0
  12. package/dist/dts/menu-button/index.d.ts +5 -0
  13. package/dist/dts/menu-button/menu-button.d.ts +7 -0
  14. package/dist/dts/menu-button/menu-button.definition.d.ts +10 -0
  15. package/dist/dts/menu-button/menu-button.options.d.ts +46 -0
  16. package/dist/dts/menu-button/menu-button.template.d.ts +7 -0
  17. package/dist/dts/tab/define.d.ts +1 -0
  18. package/dist/dts/tab/index.d.ts +4 -0
  19. package/dist/dts/tab/tab.d.ts +8 -0
  20. package/dist/dts/tab/tab.definition.d.ts +2 -0
  21. package/dist/dts/tab/tab.styles.d.ts +1 -0
  22. package/dist/dts/tab/tab.template.d.ts +4 -0
  23. package/dist/dts/tab-panel/define.d.ts +1 -0
  24. package/dist/dts/tab-panel/index.d.ts +4 -0
  25. package/dist/dts/tab-panel/tab-panel.d.ts +3 -0
  26. package/dist/dts/tab-panel/tab-panel.definition.d.ts +2 -0
  27. package/dist/dts/tab-panel/tab-panel.styles.d.ts +1 -0
  28. package/dist/dts/tab-panel/tab-panel.template.d.ts +1 -0
  29. package/dist/dts/tabs/define.d.ts +1 -0
  30. package/dist/dts/tabs/index.d.ts +5 -0
  31. package/dist/dts/tabs/tabs.d.ts +88 -0
  32. package/dist/dts/tabs/tabs.definition.d.ts +2 -0
  33. package/dist/dts/tabs/tabs.options.d.ts +14 -0
  34. package/dist/dts/tabs/tabs.styles.d.ts +1 -0
  35. package/dist/dts/tabs/tabs.template.d.ts +1 -0
  36. package/dist/esm/button/button.definition.js +21 -0
  37. package/dist/esm/button/button.definition.js.map +1 -0
  38. package/dist/esm/button/button.js +72 -0
  39. package/dist/esm/button/button.js.map +1 -0
  40. package/dist/esm/button/button.options.js +30 -0
  41. package/dist/esm/button/button.options.js.map +1 -0
  42. package/dist/esm/button/button.styles.js +255 -0
  43. package/dist/esm/button/button.styles.js.map +1 -0
  44. package/dist/esm/button/button.template.js +7 -0
  45. package/dist/esm/button/button.template.js.map +1 -0
  46. package/dist/esm/button/define.js +4 -0
  47. package/dist/esm/button/define.js.map +1 -0
  48. package/dist/esm/button/index.js +6 -0
  49. package/dist/esm/button/index.js.map +1 -0
  50. package/dist/esm/index.js +5 -0
  51. package/dist/esm/index.js.map +1 -1
  52. package/dist/esm/menu-button/define.js +4 -0
  53. package/dist/esm/menu-button/define.js.map +1 -0
  54. package/dist/esm/menu-button/index.js +6 -0
  55. package/dist/esm/menu-button/index.js.map +1 -0
  56. package/dist/esm/menu-button/menu-button.definition.js +21 -0
  57. package/dist/esm/menu-button/menu-button.definition.js.map +1 -0
  58. package/dist/esm/menu-button/menu-button.js +8 -0
  59. package/dist/esm/menu-button/menu-button.js.map +1 -0
  60. package/dist/esm/menu-button/menu-button.options.js +17 -0
  61. package/dist/esm/menu-button/menu-button.options.js.map +1 -0
  62. package/dist/esm/menu-button/menu-button.template.js +10 -0
  63. package/dist/esm/menu-button/menu-button.template.js.map +1 -0
  64. package/dist/esm/tab/define.js +4 -0
  65. package/dist/esm/tab/define.js.map +1 -0
  66. package/dist/esm/tab/index.js +5 -0
  67. package/dist/esm/tab/index.js.map +1 -0
  68. package/dist/esm/tab/tab.definition.js +10 -0
  69. package/dist/esm/tab/tab.definition.js.map +1 -0
  70. package/dist/esm/tab/tab.js +20 -0
  71. package/dist/esm/tab/tab.js.map +1 -0
  72. package/dist/esm/tab/tab.styles.js +94 -0
  73. package/dist/esm/tab/tab.styles.js.map +1 -0
  74. package/dist/esm/tab/tab.template.js +13 -0
  75. package/dist/esm/tab/tab.template.js.map +1 -0
  76. package/dist/esm/tab-panel/define.js +4 -0
  77. package/dist/esm/tab-panel/define.js.map +1 -0
  78. package/dist/esm/tab-panel/index.js +5 -0
  79. package/dist/esm/tab-panel/index.js.map +1 -0
  80. package/dist/esm/tab-panel/tab-panel.definition.js +10 -0
  81. package/dist/esm/tab-panel/tab-panel.definition.js.map +1 -0
  82. package/dist/esm/tab-panel/tab-panel.js +4 -0
  83. package/dist/esm/tab-panel/tab-panel.js.map +1 -0
  84. package/dist/esm/tab-panel/tab-panel.styles.js +12 -0
  85. package/dist/esm/tab-panel/tab-panel.styles.js.map +1 -0
  86. package/dist/esm/tab-panel/tab-panel.template.js +3 -0
  87. package/dist/esm/tab-panel/tab-panel.template.js.map +1 -0
  88. package/dist/esm/tabs/define.js +4 -0
  89. package/dist/esm/tabs/define.js.map +1 -0
  90. package/dist/esm/tabs/index.js +6 -0
  91. package/dist/esm/tabs/index.js.map +1 -0
  92. package/dist/esm/tabs/tabs.definition.js +10 -0
  93. package/dist/esm/tabs/tabs.definition.js.map +1 -0
  94. package/dist/esm/tabs/tabs.js +158 -0
  95. package/dist/esm/tabs/tabs.js.map +1 -0
  96. package/dist/esm/tabs/tabs.options.js +12 -0
  97. package/dist/esm/tabs/tabs.options.js.map +1 -0
  98. package/dist/esm/tabs/tabs.styles.js +230 -0
  99. package/dist/esm/tabs/tabs.styles.js.map +1 -0
  100. package/dist/esm/tabs/tabs.template.js +3 -0
  101. package/dist/esm/tabs/tabs.template.js.map +1 -0
  102. package/dist/fluent-web-components.api.json +4778 -3155
  103. package/dist/web-components.d.ts +339 -0
  104. package/dist/web-components.js +971 -54
  105. package/dist/web-components.min.js +148 -132
  106. package/docs/api-report.md +178 -0
  107. package/package.json +14 -6
@@ -3269,6 +3269,74 @@ function __decorate(decorators, target, key, desc) {
3269
3269
  return c > 3 && r && Object.defineProperty(target, key, r), r;
3270
3270
  }
3271
3271
 
3272
+ /**
3273
+ * Some states and properties are applicable to all host language elements regardless of whether a role is applied.
3274
+ * The following global states and properties are supported by all roles and by all base markup elements.
3275
+ * {@link https://www.w3.org/TR/wai-aria-1.1/#global_states}
3276
+ *
3277
+ * This is intended to be used as a mixin. Be sure you extend FASTElement.
3278
+ *
3279
+ * @public
3280
+ */
3281
+ class ARIAGlobalStatesAndProperties {}
3282
+ __decorate([attr({
3283
+ attribute: "aria-atomic"
3284
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaAtomic", void 0);
3285
+ __decorate([attr({
3286
+ attribute: "aria-busy"
3287
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaBusy", void 0);
3288
+ __decorate([attr({
3289
+ attribute: "aria-controls"
3290
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaControls", void 0);
3291
+ __decorate([attr({
3292
+ attribute: "aria-current"
3293
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaCurrent", void 0);
3294
+ __decorate([attr({
3295
+ attribute: "aria-describedby"
3296
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaDescribedby", void 0);
3297
+ __decorate([attr({
3298
+ attribute: "aria-details"
3299
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaDetails", void 0);
3300
+ __decorate([attr({
3301
+ attribute: "aria-disabled"
3302
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaDisabled", void 0);
3303
+ __decorate([attr({
3304
+ attribute: "aria-errormessage"
3305
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaErrormessage", void 0);
3306
+ __decorate([attr({
3307
+ attribute: "aria-flowto"
3308
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaFlowto", void 0);
3309
+ __decorate([attr({
3310
+ attribute: "aria-haspopup"
3311
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaHaspopup", void 0);
3312
+ __decorate([attr({
3313
+ attribute: "aria-hidden"
3314
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaHidden", void 0);
3315
+ __decorate([attr({
3316
+ attribute: "aria-invalid"
3317
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaInvalid", void 0);
3318
+ __decorate([attr({
3319
+ attribute: "aria-keyshortcuts"
3320
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaKeyshortcuts", void 0);
3321
+ __decorate([attr({
3322
+ attribute: "aria-label"
3323
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaLabel", void 0);
3324
+ __decorate([attr({
3325
+ attribute: "aria-labelledby"
3326
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaLabelledby", void 0);
3327
+ __decorate([attr({
3328
+ attribute: "aria-live"
3329
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaLive", void 0);
3330
+ __decorate([attr({
3331
+ attribute: "aria-owns"
3332
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaOwns", void 0);
3333
+ __decorate([attr({
3334
+ attribute: "aria-relevant"
3335
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaRelevant", void 0);
3336
+ __decorate([attr({
3337
+ attribute: "aria-roledescription"
3338
+ })], ARIAGlobalStatesAndProperties.prototype, "ariaRoledescription", void 0);
3339
+
3272
3340
  /**
3273
3341
  * A mixin class implementing start and end slots.
3274
3342
  * These are generally used to decorate text elements with icons or other visual indicators.
@@ -4162,6 +4230,155 @@ function CheckableFormAssociated(BaseCtor) {
4162
4230
  return D;
4163
4231
  }
4164
4232
 
4233
+ class _Button extends FASTElement {}
4234
+ /**
4235
+ * A form-associated base class for the {@link @microsoft/fast-foundation#(FASTButton:class)} component.
4236
+ *
4237
+ * @beta
4238
+ */
4239
+ class FormAssociatedButton extends FormAssociated(_Button) {
4240
+ constructor() {
4241
+ super(...arguments);
4242
+ this.proxy = document.createElement("input");
4243
+ }
4244
+ }
4245
+
4246
+ /**
4247
+ * Button type values.
4248
+ *
4249
+ * @public
4250
+ */
4251
+ const ButtonType = {
4252
+ submit: "submit",
4253
+ reset: "reset",
4254
+ button: "button"
4255
+ };
4256
+
4257
+ /**
4258
+ * A Button Custom HTML Element.
4259
+ * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button | <button> element }.
4260
+ *
4261
+ * @slot start - Content which can be provided before the button content
4262
+ * @slot end - Content which can be provided after the button content
4263
+ * @slot - The default slot for button content
4264
+ * @csspart control - The button element
4265
+ * @csspart content - The element wrapping button content
4266
+ *
4267
+ * @public
4268
+ */
4269
+ class FASTButton extends FormAssociatedButton {
4270
+ constructor() {
4271
+ super(...arguments);
4272
+ /**
4273
+ * Submits the parent form
4274
+ */
4275
+ this.handleSubmission = () => {
4276
+ if (!this.form) {
4277
+ return;
4278
+ }
4279
+ const attached = this.proxy.isConnected;
4280
+ if (!attached) {
4281
+ this.attachProxy();
4282
+ }
4283
+ // Browser support for requestSubmit is not comprehensive
4284
+ // so click the proxy if it isn't supported
4285
+ typeof this.form.requestSubmit === "function" ? this.form.requestSubmit(this.proxy) : this.proxy.click();
4286
+ if (!attached) {
4287
+ this.detachProxy();
4288
+ }
4289
+ };
4290
+ /**
4291
+ * Resets the parent form
4292
+ */
4293
+ this.handleFormReset = () => {
4294
+ var _a;
4295
+ (_a = this.form) === null || _a === void 0 ? void 0 : _a.reset();
4296
+ };
4297
+ }
4298
+ formactionChanged() {
4299
+ if (this.proxy instanceof HTMLInputElement) {
4300
+ this.proxy.formAction = this.formaction;
4301
+ }
4302
+ }
4303
+ formenctypeChanged() {
4304
+ if (this.proxy instanceof HTMLInputElement) {
4305
+ this.proxy.formEnctype = this.formenctype;
4306
+ }
4307
+ }
4308
+ formmethodChanged() {
4309
+ if (this.proxy instanceof HTMLInputElement) {
4310
+ this.proxy.formMethod = this.formmethod;
4311
+ }
4312
+ }
4313
+ formnovalidateChanged() {
4314
+ if (this.proxy instanceof HTMLInputElement) {
4315
+ this.proxy.formNoValidate = this.formnovalidate;
4316
+ }
4317
+ }
4318
+ formtargetChanged() {
4319
+ if (this.proxy instanceof HTMLInputElement) {
4320
+ this.proxy.formTarget = this.formtarget;
4321
+ }
4322
+ }
4323
+ typeChanged(previous, next) {
4324
+ if (this.proxy instanceof HTMLInputElement) {
4325
+ this.proxy.type = this.type;
4326
+ }
4327
+ next === ButtonType.submit && this.addEventListener("click", this.handleSubmission);
4328
+ previous === ButtonType.submit && this.removeEventListener("click", this.handleSubmission);
4329
+ next === ButtonType.reset && this.addEventListener("click", this.handleFormReset);
4330
+ previous === ButtonType.reset && this.removeEventListener("click", this.handleFormReset);
4331
+ }
4332
+ /** {@inheritDoc (FormAssociated:interface).validate} */
4333
+ validate() {
4334
+ super.validate(this.control);
4335
+ }
4336
+ /**
4337
+ * @internal
4338
+ */
4339
+ connectedCallback() {
4340
+ super.connectedCallback();
4341
+ this.proxy.setAttribute("type", this.type);
4342
+ }
4343
+ }
4344
+ __decorate([attr({
4345
+ mode: "boolean"
4346
+ })], FASTButton.prototype, "autofocus", void 0);
4347
+ __decorate([attr({
4348
+ attribute: "form"
4349
+ })], FASTButton.prototype, "formId", void 0);
4350
+ __decorate([attr], FASTButton.prototype, "formaction", void 0);
4351
+ __decorate([attr], FASTButton.prototype, "formenctype", void 0);
4352
+ __decorate([attr], FASTButton.prototype, "formmethod", void 0);
4353
+ __decorate([attr({
4354
+ mode: "boolean"
4355
+ })], FASTButton.prototype, "formnovalidate", void 0);
4356
+ __decorate([attr], FASTButton.prototype, "formtarget", void 0);
4357
+ __decorate([attr], FASTButton.prototype, "type", void 0);
4358
+ __decorate([observable], FASTButton.prototype, "defaultSlottedContent", void 0);
4359
+ /**
4360
+ * Includes ARIA states and properties relating to the ARIA button role
4361
+ *
4362
+ * @public
4363
+ */
4364
+ class DelegatesARIAButton {}
4365
+ __decorate([attr({
4366
+ attribute: "aria-expanded"
4367
+ })], DelegatesARIAButton.prototype, "ariaExpanded", void 0);
4368
+ __decorate([attr({
4369
+ attribute: "aria-pressed"
4370
+ })], DelegatesARIAButton.prototype, "ariaPressed", void 0);
4371
+ applyMixins(DelegatesARIAButton, ARIAGlobalStatesAndProperties);
4372
+ applyMixins(FASTButton, StartEnd, DelegatesARIAButton);
4373
+
4374
+ /**
4375
+ * The template for the {@link @microsoft/fast-foundation#(FASTButton:class)} component.
4376
+ * @public
4377
+ */
4378
+ function buttonTemplate(options = {}) {
4379
+ 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>`;
4380
+ }
4381
+
4165
4382
  class DerivedValueEvaluator {
4166
4383
  constructor(value) {
4167
4384
  this.value = value;
@@ -5733,6 +5950,317 @@ __decorate([attr({
5733
5950
  })], FASTSwitch.prototype, "readOnly", void 0);
5734
5951
  __decorate([observable], FASTSwitch.prototype, "defaultSlottedNodes", void 0);
5735
5952
 
5953
+ /**
5954
+ * The template for the {@link @microsoft/fast-foundation#FASTTabPanel} component.
5955
+ * @public
5956
+ */
5957
+ function tabPanelTemplate() {
5958
+ return html`<template slot="tabpanel" role="tabpanel"><slot></slot></template>`;
5959
+ }
5960
+
5961
+ /**
5962
+ * A TabPanel Component to be used with {@link @microsoft/fast-foundation#(FASTTabs:class)}
5963
+ *
5964
+ * @slot - The default slot for the tabpanel content
5965
+ *
5966
+ * @public
5967
+ */
5968
+ class FASTTabPanel extends FASTElement {}
5969
+
5970
+ /**
5971
+ * A Tab Component to be used with {@link @microsoft/fast-foundation#(FASTTabs:class)}
5972
+ *
5973
+ * @slot start - Content which can be provided before the tab content
5974
+ * @slot end - Content which can be provided after the tab content
5975
+ * @slot - The default slot for the tab content
5976
+ *
5977
+ * @public
5978
+ */
5979
+ class FASTTab extends FASTElement {}
5980
+ __decorate([attr({
5981
+ mode: "boolean"
5982
+ })], FASTTab.prototype, "disabled", void 0);
5983
+ applyMixins(FASTTab, StartEnd);
5984
+
5985
+ /**
5986
+ * The orientation of the {@link @microsoft/fast-foundation#(FASTTabs:class)} component
5987
+ * @public
5988
+ */
5989
+ const TabsOrientation = Orientation;
5990
+
5991
+ /**
5992
+ * The template for the {@link @microsoft/fast-foundation#(FASTTabs:class)} component.
5993
+ * @public
5994
+ */
5995
+ function tabsTemplate(options = {}) {
5996
+ return html` ${startSlotTemplate(options)}<div class="tablist" part="tablist" role="tablist"><slot name="tab" ${slotted("tabs")}></slot></div>${endSlotTemplate(options)}<div class="tabpanel" part="tabpanel"><slot name="tabpanel" ${slotted("tabpanels")}></slot></div>`;
5997
+ }
5998
+
5999
+ /**
6000
+ * A Tabs Custom HTML Element.
6001
+ * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#tablist | ARIA tablist }.
6002
+ *
6003
+ * @slot start - Content which can be provided before the tablist element
6004
+ * @slot end - Content which can be provided after the tablist element
6005
+ * @slot tab - The slot for tabs
6006
+ * @slot tabpanel - The slot for tabpanels
6007
+ * @csspart tablist - The element wrapping for the tabs
6008
+ * @fires change - Fires a custom 'change' event when a tab is clicked or during keyboard navigation
6009
+ *
6010
+ * @public
6011
+ */
6012
+ class FASTTabs extends FASTElement {
6013
+ constructor() {
6014
+ super(...arguments);
6015
+ /**
6016
+ * The orientation
6017
+ * @public
6018
+ * @remarks
6019
+ * HTML Attribute: orientation
6020
+ */
6021
+ this.orientation = TabsOrientation.horizontal;
6022
+ this.prevActiveTabIndex = 0;
6023
+ this.activeTabIndex = 0;
6024
+ this.change = () => {
6025
+ this.$emit("change", this.activetab);
6026
+ };
6027
+ this.isDisabledElement = el => {
6028
+ return el.getAttribute("aria-disabled") === "true";
6029
+ };
6030
+ this.isFocusableElement = el => {
6031
+ return !this.isDisabledElement(el);
6032
+ };
6033
+ this.setTabs = () => {
6034
+ const gridHorizontalProperty = "gridColumn";
6035
+ const gridVerticalProperty = "gridRow";
6036
+ const gridProperty = this.isHorizontal() ? gridHorizontalProperty : gridVerticalProperty;
6037
+ this.activeTabIndex = this.getActiveIndex();
6038
+ this.tabs.forEach((tab, index) => {
6039
+ if (tab.slot === "tab") {
6040
+ const isActiveTab = this.activeTabIndex === index && this.isFocusableElement(tab);
6041
+ const tabId = this.tabIds[index];
6042
+ const tabpanelId = this.tabpanelIds[index];
6043
+ tab.setAttribute("id", tabId);
6044
+ tab.setAttribute("aria-selected", isActiveTab ? "true" : "false");
6045
+ tab.setAttribute("aria-controls", tabpanelId);
6046
+ tab.addEventListener("click", this.handleTabClick);
6047
+ tab.addEventListener("keydown", this.handleTabKeyDown);
6048
+ tab.setAttribute("tabindex", isActiveTab ? "0" : "-1");
6049
+ if (isActiveTab) {
6050
+ this.activetab = tab;
6051
+ }
6052
+ }
6053
+ // If the original property isn't emptied out,
6054
+ // the next set will morph into a grid-area style setting that is not what we want
6055
+ tab.style[gridHorizontalProperty] = "";
6056
+ tab.style[gridVerticalProperty] = "";
6057
+ tab.style[gridProperty] = `${index + 1}`;
6058
+ !this.isHorizontal() ? tab.classList.add("vertical") : tab.classList.remove("vertical");
6059
+ });
6060
+ };
6061
+ this.setTabPanels = () => {
6062
+ this.tabpanels.forEach((tabpanel, index) => {
6063
+ const tabId = this.tabIds[index];
6064
+ const tabpanelId = this.tabpanelIds[index];
6065
+ tabpanel.setAttribute("id", tabpanelId);
6066
+ tabpanel.setAttribute("aria-labelledby", tabId);
6067
+ this.activeTabIndex !== index ? tabpanel.setAttribute("hidden", "") : tabpanel.removeAttribute("hidden");
6068
+ });
6069
+ };
6070
+ this.handleTabClick = event => {
6071
+ const selectedTab = event.currentTarget;
6072
+ if (selectedTab.nodeType === 1 && this.isFocusableElement(selectedTab)) {
6073
+ this.prevActiveTabIndex = this.activeTabIndex;
6074
+ this.activeTabIndex = this.tabs.indexOf(selectedTab);
6075
+ this.setComponent();
6076
+ }
6077
+ };
6078
+ this.handleTabKeyDown = event => {
6079
+ if (this.isHorizontal()) {
6080
+ switch (event.key) {
6081
+ case keyArrowLeft:
6082
+ event.preventDefault();
6083
+ this.adjustBackward(event);
6084
+ break;
6085
+ case keyArrowRight:
6086
+ event.preventDefault();
6087
+ this.adjustForward(event);
6088
+ break;
6089
+ }
6090
+ } else {
6091
+ switch (event.key) {
6092
+ case keyArrowUp:
6093
+ event.preventDefault();
6094
+ this.adjustBackward(event);
6095
+ break;
6096
+ case keyArrowDown:
6097
+ event.preventDefault();
6098
+ this.adjustForward(event);
6099
+ break;
6100
+ }
6101
+ }
6102
+ switch (event.key) {
6103
+ case keyHome:
6104
+ event.preventDefault();
6105
+ this.adjust(-this.activeTabIndex);
6106
+ break;
6107
+ case keyEnd:
6108
+ event.preventDefault();
6109
+ this.adjust(this.tabs.length - this.activeTabIndex - 1);
6110
+ break;
6111
+ }
6112
+ };
6113
+ this.adjustForward = e => {
6114
+ const group = this.tabs;
6115
+ let index = 0;
6116
+ index = this.activetab ? group.indexOf(this.activetab) + 1 : 1;
6117
+ if (index === group.length) {
6118
+ index = 0;
6119
+ }
6120
+ while (index < group.length && group.length > 1) {
6121
+ if (this.isFocusableElement(group[index])) {
6122
+ this.moveToTabByIndex(group, index);
6123
+ break;
6124
+ } else if (this.activetab && index === group.indexOf(this.activetab)) {
6125
+ break;
6126
+ } else if (index + 1 >= group.length) {
6127
+ index = 0;
6128
+ } else {
6129
+ index += 1;
6130
+ }
6131
+ }
6132
+ };
6133
+ this.adjustBackward = e => {
6134
+ const group = this.tabs;
6135
+ let index = 0;
6136
+ index = this.activetab ? group.indexOf(this.activetab) - 1 : 0;
6137
+ index = index < 0 ? group.length - 1 : index;
6138
+ while (index >= 0 && group.length > 1) {
6139
+ if (this.isFocusableElement(group[index])) {
6140
+ this.moveToTabByIndex(group, index);
6141
+ break;
6142
+ } else if (index - 1 < 0) {
6143
+ index = group.length - 1;
6144
+ } else {
6145
+ index -= 1;
6146
+ }
6147
+ }
6148
+ };
6149
+ this.moveToTabByIndex = (group, index) => {
6150
+ const tab = group[index];
6151
+ this.activetab = tab;
6152
+ this.prevActiveTabIndex = this.activeTabIndex;
6153
+ this.activeTabIndex = index;
6154
+ tab.focus();
6155
+ this.setComponent();
6156
+ };
6157
+ }
6158
+ /**
6159
+ * @internal
6160
+ */
6161
+ orientationChanged() {
6162
+ if (this.$fastController.isConnected) {
6163
+ this.setTabs();
6164
+ this.setTabPanels();
6165
+ }
6166
+ }
6167
+ /**
6168
+ * @internal
6169
+ */
6170
+ activeidChanged(oldValue, newValue) {
6171
+ if (this.$fastController.isConnected && this.tabs.length <= this.tabpanels.length) {
6172
+ this.prevActiveTabIndex = this.tabs.findIndex(item => item.id === oldValue);
6173
+ this.setTabs();
6174
+ this.setTabPanels();
6175
+ }
6176
+ }
6177
+ /**
6178
+ * @internal
6179
+ */
6180
+ tabsChanged() {
6181
+ if (this.$fastController.isConnected && this.tabs.length <= this.tabpanels.length) {
6182
+ this.tabIds = this.getTabIds();
6183
+ this.tabpanelIds = this.getTabPanelIds();
6184
+ this.setTabs();
6185
+ this.setTabPanels();
6186
+ }
6187
+ }
6188
+ /**
6189
+ * @internal
6190
+ */
6191
+ tabpanelsChanged() {
6192
+ if (this.$fastController.isConnected && this.tabpanels.length <= this.tabs.length) {
6193
+ this.tabIds = this.getTabIds();
6194
+ this.tabpanelIds = this.getTabPanelIds();
6195
+ this.setTabs();
6196
+ this.setTabPanels();
6197
+ }
6198
+ }
6199
+ getActiveIndex() {
6200
+ const id = this.activeid;
6201
+ if (id !== undefined) {
6202
+ return this.tabIds.indexOf(this.activeid) === -1 ? 0 : this.tabIds.indexOf(this.activeid);
6203
+ } else {
6204
+ return 0;
6205
+ }
6206
+ }
6207
+ getTabIds() {
6208
+ return this.tabs.map(tab => {
6209
+ var _a;
6210
+ return (_a = tab.getAttribute("id")) !== null && _a !== void 0 ? _a : `tab-${uniqueId()}`;
6211
+ });
6212
+ }
6213
+ getTabPanelIds() {
6214
+ return this.tabpanels.map(tabPanel => {
6215
+ var _a;
6216
+ return (_a = tabPanel.getAttribute("id")) !== null && _a !== void 0 ? _a : `panel-${uniqueId()}`;
6217
+ });
6218
+ }
6219
+ setComponent() {
6220
+ if (this.activeTabIndex !== this.prevActiveTabIndex) {
6221
+ this.activeid = this.tabIds[this.activeTabIndex];
6222
+ this.focusTab();
6223
+ this.change();
6224
+ }
6225
+ }
6226
+ isHorizontal() {
6227
+ return this.orientation === TabsOrientation.horizontal;
6228
+ }
6229
+ /**
6230
+ * The adjust method for FASTTabs
6231
+ * @public
6232
+ * @remarks
6233
+ * This method allows the active index to be adjusted by numerical increments
6234
+ */
6235
+ adjust(adjustment) {
6236
+ const focusableTabs = this.tabs.filter(t => !this.isDisabledElement(t));
6237
+ const currentActiveTabIndex = focusableTabs.indexOf(this.activetab);
6238
+ const nextTabIndex = limit(0, focusableTabs.length - 1, currentActiveTabIndex + adjustment);
6239
+ // the index of the next focusable tab within the context of all available tabs
6240
+ const nextIndex = this.tabs.indexOf(focusableTabs[nextTabIndex]);
6241
+ if (nextIndex > -1) {
6242
+ this.moveToTabByIndex(this.tabs, nextIndex);
6243
+ }
6244
+ }
6245
+ focusTab() {
6246
+ this.tabs[this.activeTabIndex].focus();
6247
+ }
6248
+ /**
6249
+ * @internal
6250
+ */
6251
+ connectedCallback() {
6252
+ super.connectedCallback();
6253
+ this.tabIds = this.getTabIds();
6254
+ this.tabpanelIds = this.getTabPanelIds();
6255
+ this.activeTabIndex = this.getActiveIndex();
6256
+ }
6257
+ }
6258
+ __decorate([attr], FASTTabs.prototype, "orientation", void 0);
6259
+ __decorate([attr], FASTTabs.prototype, "activeid", void 0);
6260
+ __decorate([observable], FASTTabs.prototype, "tabs", void 0);
6261
+ __decorate([observable], FASTTabs.prototype, "tabpanels", void 0);
6262
+ applyMixins(FASTTabs, StartEnd);
6263
+
5736
6264
  /**
5737
6265
  * A CSS fragment to set `display: none;` when the host is hidden using the [hidden] attribute.
5738
6266
  * @public
@@ -5754,9 +6282,9 @@ function display(displayValue) {
5754
6282
  */
5755
6283
  class Accordion extends FASTAccordion {}
5756
6284
 
5757
- const template$b = accordionTemplate();
6285
+ const template$g = accordionTemplate();
5758
6286
 
5759
- const styles$b = css`
6287
+ const styles$f = css`
5760
6288
  ${display('flex')}
5761
6289
 
5762
6290
  :host{flex-direction:column;width:100%;contain:content}`;
@@ -5776,10 +6304,10 @@ const FluentDesignSystem = Object.freeze({
5776
6304
  * @remarks
5777
6305
  * HTML Element: \<fluent-accordion\>
5778
6306
  */
5779
- const definition$b = Accordion.compose({
6307
+ const definition$g = Accordion.compose({
5780
6308
  name: `${FluentDesignSystem.prefix}-accordion`,
5781
- template: template$b,
5782
- styles: styles$b
6309
+ template: template$g,
6310
+ styles: styles$f
5783
6311
  });
5784
6312
 
5785
6313
  /**
@@ -6599,7 +7127,7 @@ var tokens = /*#__PURE__*/Object.freeze({
6599
7127
  shadow64Brand: shadow64Brand
6600
7128
  });
6601
7129
 
6602
- const styles$a = css`
7130
+ const styles$e = css`
6603
7131
  ${display('block')}
6604
7132
 
6605
7133
  :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}`;
@@ -6634,7 +7162,7 @@ const chevronDown20Filled = html.partial(`<svg
6634
7162
  * The template for the fluent-accordion component.
6635
7163
  * @public
6636
7164
  */
6637
- const template$a = accordionItemTemplate({
7165
+ const template$f = accordionItemTemplate({
6638
7166
  collapsedIcon: chevronRight20Filled,
6639
7167
  expandedIcon: chevronDown20Filled
6640
7168
  });
@@ -6648,10 +7176,10 @@ const template$a = accordionItemTemplate({
6648
7176
  * @remarks
6649
7177
  * HTML Element: \<fluent-accordion-item\>
6650
7178
  */
6651
- const definition$a = AccordionItem.compose({
7179
+ const definition$f = AccordionItem.compose({
6652
7180
  name: `${FluentDesignSystem.prefix}-accordion-item`,
6653
- template: template$a,
6654
- styles: styles$a
7181
+ template: template$f,
7182
+ styles: styles$e
6655
7183
  });
6656
7184
 
6657
7185
  /* TODO: This file is a direct copy of the React Avatar utils */
@@ -6905,7 +7433,7 @@ const defaultIconTemplate = html`<svg width="1em" height="1em" viewBox="0 0 20 2
6905
7433
  function avatarTemplate() {
6906
7434
  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>`;
6907
7435
  }
6908
- const template$9 = avatarTemplate();
7436
+ const template$e = avatarTemplate();
6909
7437
 
6910
7438
  const animations = {
6911
7439
  fastOutSlowInMax: curveDecelerateMax,
@@ -6921,7 +7449,7 @@ const animations = {
6921
7449
  /** Avatar styles
6922
7450
  * @public
6923
7451
  */
6924
- const styles$9 = css`
7452
+ const styles$d = css`
6925
7453
  ${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}}`;
6926
7454
 
6927
7455
  /**
@@ -6931,10 +7459,10 @@ const styles$9 = css`
6931
7459
  * @remarks
6932
7460
  * HTML Element: \<fluent-badge\>
6933
7461
  */
6934
- const definition$9 = Avatar.compose({
7462
+ const definition$e = Avatar.compose({
6935
7463
  name: `${FluentDesignSystem.prefix}-avatar`,
6936
- template: template$9,
6937
- styles: styles$9
7464
+ template: template$e,
7465
+ styles: styles$d
6938
7466
  });
6939
7467
 
6940
7468
  /**
@@ -7021,7 +7549,7 @@ applyMixins(Badge, StartEnd);
7021
7549
  function badgeTemplate(options = {}) {
7022
7550
  return html` ${startSlotTemplate(options)}<slot>${staticallyCompose(options.defaultContent)}</slot>${endSlotTemplate(options)} `;
7023
7551
  }
7024
- const template$8 = badgeTemplate();
7552
+ const template$d = badgeTemplate();
7025
7553
 
7026
7554
  const textPadding = spacingHorizontalXXS;
7027
7555
  const badgeBaseStyles = css.partial`
@@ -7298,7 +7826,7 @@ const badgeTintStyles = css.partial`
7298
7826
  /** Badge styles
7299
7827
  * @public
7300
7828
  */
7301
- const styles$8 = css`
7829
+ const styles$c = css`
7302
7830
  :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}
7303
7831
  ${badgeFilledStyles}
7304
7832
  ${badgeGhostStyles}
@@ -7316,10 +7844,134 @@ const styles$8 = css`
7316
7844
  * @remarks
7317
7845
  * HTML Element: \<fluent-badge\>
7318
7846
  */
7319
- const definition$8 = Badge.compose({
7847
+ const definition$d = Badge.compose({
7320
7848
  name: `${FluentDesignSystem.prefix}-badge`,
7321
- template: template$8,
7322
- styles: styles$8
7849
+ template: template$d,
7850
+ styles: styles$c
7851
+ });
7852
+
7853
+ /**
7854
+ * The base class used for constructing a fluent-button custom element
7855
+ * @public
7856
+ */
7857
+ class Button extends FASTButton {
7858
+ constructor() {
7859
+ super(...arguments);
7860
+ /**
7861
+ * The button has an icon only, no text content
7862
+ *
7863
+ * @public
7864
+ * @remarks
7865
+ * HTML Attribute: icon-only
7866
+ */
7867
+ this.iconOnly = false;
7868
+ /**
7869
+ * The button is disabled but focusable
7870
+ *
7871
+ * @public
7872
+ * @remarks
7873
+ * HTML Attribute: disabled-focusable
7874
+ */
7875
+ this.disabledFocusable = false;
7876
+ /**
7877
+ * Prevents disabledFocusable click events
7878
+ */
7879
+ this.handleDisabledFocusableClick = e => {
7880
+ if (e && this.disabledFocusable) {
7881
+ e.stopImmediatePropagation();
7882
+ return;
7883
+ }
7884
+ };
7885
+ }
7886
+ disabledFocusableChanged(prev, next) {
7887
+ if (!this.$fastController.isConnected) {
7888
+ return;
7889
+ }
7890
+ if (this.disabledFocusable) {
7891
+ this.setAttribute('aria-disabled', 'true');
7892
+ } else {
7893
+ this.removeAttribute('aria-disabled');
7894
+ }
7895
+ }
7896
+ connectedCallback() {
7897
+ super.connectedCallback();
7898
+ this.addEventListener('click', this.handleDisabledFocusableClick);
7899
+ }
7900
+ disconnectedCallback() {
7901
+ super.disconnectedCallback();
7902
+ this.removeEventListener('click', this.handleDisabledFocusableClick);
7903
+ }
7904
+ }
7905
+ __decorate([attr], Button.prototype, "appearance", void 0);
7906
+ __decorate([attr], Button.prototype, "shape", void 0);
7907
+ __decorate([attr], Button.prototype, "size", void 0);
7908
+ __decorate([attr({
7909
+ attribute: 'icon-only',
7910
+ mode: 'boolean'
7911
+ })], Button.prototype, "iconOnly", void 0);
7912
+ __decorate([attr({
7913
+ attribute: 'disabled-focusable',
7914
+ mode: 'boolean'
7915
+ })], Button.prototype, "disabledFocusable", void 0);
7916
+
7917
+ /**
7918
+ * ButtonAppearance constants
7919
+ * @public
7920
+ */
7921
+ const ButtonAppearance = {
7922
+ primary: 'primary',
7923
+ outline: 'outline',
7924
+ subtle: 'subtle',
7925
+ secondary: 'secondary',
7926
+ transparent: 'transparent'
7927
+ };
7928
+ /**
7929
+ * A Button can be square, circular or rounded.
7930
+ * @public
7931
+ */
7932
+ const ButtonShape = {
7933
+ circular: 'circular',
7934
+ rounded: 'rounded',
7935
+ square: 'square'
7936
+ };
7937
+ /**
7938
+ * A Button can be a size of small, medium or large.
7939
+ * @public
7940
+ */
7941
+ const ButtonSize = {
7942
+ small: 'small',
7943
+ medium: 'medium',
7944
+ large: 'large'
7945
+ };
7946
+
7947
+ /**
7948
+ * The template for the Button component.
7949
+ * @public
7950
+ */
7951
+ const template$c = buttonTemplate();
7952
+
7953
+ // Need to support icon hover styles
7954
+ const styles$b = css`
7955
+ ${display('inline-flex')}
7956
+
7957
+ :host{--icon-spacing:${spacingHorizontalSNudge};contain:layout style}: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)
7958
+ .control{background-color:${colorNeutralBackgroundDisabled};border-color:${colorNeutralStrokeDisabled};color:${colorNeutralForegroundDisabled};cursor:not-allowed}`;
7959
+
7960
+ /**
7961
+ * The Fluent Button Element. Implements {@link @microsoft/fast-foundation#Button },
7962
+ * {@link @microsoft/fast-foundation#buttonTemplate}
7963
+ *
7964
+ * @public
7965
+ * @remarks
7966
+ * HTML Element: \<fluent-button\>
7967
+ */
7968
+ const definition$c = Button.compose({
7969
+ name: `${FluentDesignSystem.prefix}-button`,
7970
+ template: template$c,
7971
+ styles: styles$b,
7972
+ shadowOptions: {
7973
+ delegatesFocus: true
7974
+ }
7323
7975
  });
7324
7976
 
7325
7977
  /**
@@ -7455,12 +8107,12 @@ function composeTemplate(options = {}) {
7455
8107
  * The template for the Counter Badge component.
7456
8108
  * @public
7457
8109
  */
7458
- const template$7 = composeTemplate();
8110
+ const template$b = composeTemplate();
7459
8111
 
7460
8112
  /** Badge styles
7461
8113
  * @public
7462
8114
  */
7463
- const styles$7 = css`
8115
+ const styles$a = css`
7464
8116
  :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}
7465
8117
  ${badgeFilledStyles}
7466
8118
  ${badgeGhostStyles}
@@ -7477,10 +8129,10 @@ const styles$7 = css`
7477
8129
  * @remarks
7478
8130
  * HTML Element: \<fluent-counter-badge\>
7479
8131
  */
7480
- const definition$7 = CounterBadge.compose({
8132
+ const definition$b = CounterBadge.compose({
7481
8133
  name: `${FluentDesignSystem.prefix}-counter-badge`,
7482
- template: template$7,
7483
- styles: styles$7
8134
+ template: template$b,
8135
+ styles: styles$a
7484
8136
  });
7485
8137
 
7486
8138
  /**
@@ -7522,12 +8174,12 @@ const DividerAppearance = {
7522
8174
  * Template for the Divider component
7523
8175
  * @public
7524
8176
  */
7525
- const template$6 = dividerTemplate();
8177
+ const template$a = dividerTemplate();
7526
8178
 
7527
8179
  /** Divider styles
7528
8180
  * @public
7529
8181
  */
7530
- const styles$6 = css`
8182
+ const styles$9 = css`
7531
8183
  ${display('flex')}
7532
8184
 
7533
8185
  :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}}`;
@@ -7539,10 +8191,10 @@ const styles$6 = css`
7539
8191
  * @remarks
7540
8192
  * HTML Element: \<fluent-divider\>
7541
8193
  */
7542
- const definition$6 = Divider.compose({
8194
+ const definition$a = Divider.compose({
7543
8195
  name: `${FluentDesignSystem.prefix}-divider`,
7544
- template: template$6,
7545
- styles: styles$6
8196
+ template: template$a,
8197
+ styles: styles$9
7546
8198
  });
7547
8199
 
7548
8200
  /**
@@ -7587,13 +8239,13 @@ const ImageShape = {
7587
8239
  * Template for the Image component
7588
8240
  * @public
7589
8241
  */
7590
- const template$5 = html`<slot></slot>`;
8242
+ const template$9 = html`<slot></slot>`;
7591
8243
 
7592
8244
  /** Image styles
7593
8245
  *
7594
8246
  * @public
7595
8247
  */
7596
- const styles$5 = css`
8248
+ const styles$8 = css`
7597
8249
  :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}}`;
7598
8250
 
7599
8251
  /**
@@ -7603,10 +8255,57 @@ const styles$5 = css`
7603
8255
  * @remarks
7604
8256
  * HTML Element: \<fluent-image\>
7605
8257
  */
7606
- const definition$5 = Image.compose({
8258
+ const definition$9 = Image.compose({
7607
8259
  name: `${FluentDesignSystem.prefix}-image`,
7608
- template: template$5,
7609
- styles: styles$5
8260
+ template: template$9,
8261
+ styles: styles$8
8262
+ });
8263
+
8264
+ /**
8265
+ * The base class used for constructing a fluent-menu-button custom element
8266
+ * @public
8267
+ */
8268
+ class MenuButton extends Button {}
8269
+
8270
+ /**
8271
+ * Menu Button Appearance constants
8272
+ * @public
8273
+ */
8274
+ const MenuButtonAppearance = ButtonAppearance;
8275
+ /**
8276
+ * A Menu Button can be square, circular or rounded.
8277
+ * @public
8278
+ */
8279
+ const MenuButtonShape = ButtonShape;
8280
+ /**
8281
+ * A Menu Button can be a size of small, medium or large.
8282
+ * @public
8283
+ */
8284
+ const MenuButtonSize = ButtonSize;
8285
+
8286
+ /**
8287
+ * The template for the Button component.
8288
+ * @public
8289
+ */
8290
+ const template$8 = buttonTemplate({
8291
+ 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>`)
8292
+ });
8293
+
8294
+ /**
8295
+ * The Fluent Menu Button Element. Implements {@link @microsoft/fast-foundation#Button },
8296
+ * {@link @microsoft/fast-foundation#buttonTemplate}
8297
+ *
8298
+ * @public
8299
+ * @remarks
8300
+ * HTML Element: \<fluent-button\>
8301
+ */
8302
+ const definition$8 = MenuButton.compose({
8303
+ name: `${FluentDesignSystem.prefix}-menu-button`,
8304
+ template: template$8,
8305
+ styles: styles$b,
8306
+ shadowOptions: {
8307
+ delegatesFocus: true
8308
+ }
7610
8309
  });
7611
8310
 
7612
8311
  /**
@@ -7660,7 +8359,7 @@ const ProgressBarValidationState = {
7660
8359
  /** ProgressBar styles
7661
8360
  * @public
7662
8361
  */
7663
- const styles$4 = css`
8362
+ const styles$7 = css`
7664
8363
  ${display('flex')}
7665
8364
 
7666
8365
  :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(
@@ -7675,7 +8374,7 @@ const styles$4 = css`
7675
8374
  to right,${colorBrandBackground2} 0%,${colorCompoundBrandBackground} 50%,${colorBrandBackground2}
7676
8375
  );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}}`;
7677
8376
 
7678
- const template$4 = progressTemplate({
8377
+ const template$7 = progressTemplate({
7679
8378
  indeterminateIndicator1: `<span class="indeterminate-indicator-1" part="indeterminate-indicator-1></span>`,
7680
8379
  indeterminateIndicator2: `<span class="indeterminate-indicator-2" part="indeterminate-indicator-2"></span>`
7681
8380
  });
@@ -7688,10 +8387,10 @@ const template$4 = progressTemplate({
7688
8387
  * @remarks
7689
8388
  * HTML Element: \<fluent-progress-bar\>
7690
8389
  */
7691
- const definition$4 = ProgressBar.compose({
8390
+ const definition$7 = ProgressBar.compose({
7692
8391
  name: `${FluentDesignSystem.prefix}-progress-bar`,
7693
- template: template$4,
7694
- styles: styles$4
8392
+ template: template$7,
8393
+ styles: styles$7
7695
8394
  });
7696
8395
 
7697
8396
  /**
@@ -7753,12 +8452,12 @@ const SliderSize = {
7753
8452
  /** Text styles
7754
8453
  * @public
7755
8454
  */
7756
- const styles$3 = css`
8455
+ const styles$6 = css`
7757
8456
  ${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(
7758
8457
  var(--slider-direction),#0000 0%,#0000 calc(var(--step-rate) - 1px),${colorNeutralBackground1} calc(var(--step-rate) - 1px),${colorNeutralBackground1} var(--step-rate)
7759
8458
  )}: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}`;
7760
8459
 
7761
- const template$3 = sliderTemplate({
8460
+ const template$6 = sliderTemplate({
7762
8461
  thumb: `<div class="thumb-cursor" tabindex="0"></div>`
7763
8462
  });
7764
8463
 
@@ -7770,10 +8469,10 @@ const template$3 = sliderTemplate({
7770
8469
  * @remarks
7771
8470
  * HTML Element: \<fluent-slider\>
7772
8471
  */
7773
- const definition$3 = Slider.compose({
8472
+ const definition$6 = Slider.compose({
7774
8473
  name: `${FluentDesignSystem.prefix}-slider`,
7775
- template: template$3,
7776
- styles: styles$3
8474
+ template: template$6,
8475
+ styles: styles$6
7777
8476
  });
7778
8477
 
7779
8478
  /**
@@ -7806,7 +8505,7 @@ const SpinnerSize = {
7806
8505
  huge: 'huge'
7807
8506
  };
7808
8507
 
7809
- const template$2 = progressRingTemplate({
8508
+ const template$5 = progressRingTemplate({
7810
8509
  indeterminateIndicator: `
7811
8510
  <svg class="progress" part="progress" viewBox="0 0 16 16">
7812
8511
  <circle
@@ -7827,7 +8526,7 @@ const template$2 = progressRingTemplate({
7827
8526
  `
7828
8527
  });
7829
8528
 
7830
- const styles$2 = css`
8529
+ const styles$5 = css`
7831
8530
  ${display('flex')}
7832
8531
 
7833
8532
  :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)}}`;
@@ -7841,10 +8540,10 @@ const styles$2 = css`
7841
8540
  * @remarks
7842
8541
  * HTML Element: \<fluent-spinner\>
7843
8542
  */
7844
- const definition$2 = Spinner.compose({
8543
+ const definition$5 = Spinner.compose({
7845
8544
  name: `${FluentDesignSystem.prefix}-spinner`,
7846
- template: template$2,
7847
- styles: styles$2
8545
+ template: template$5,
8546
+ styles: styles$5
7848
8547
  });
7849
8548
 
7850
8549
  class Switch extends FASTSwitch {}
@@ -7862,11 +8561,11 @@ const SwitchLabelPosition = {
7862
8561
  before: 'before'
7863
8562
  };
7864
8563
 
7865
- const template$1 = switchTemplate({
8564
+ const template$4 = switchTemplate({
7866
8565
  switch: `<span class="checked-indicator" part="checked-indicator"></span>`
7867
8566
  });
7868
8567
 
7869
- const styles$1 = css`
8568
+ const styles$4 = css`
7870
8569
  ${display('inline-flex')}
7871
8570
 
7872
8571
  :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%;background-color:${colorNeutralForeground3};transition-duration:${durationNormal};transition-timing-function:${curveEasyEase};transition-property:transform}:host([aria-checked='true']) .checked-indicator{background-color:${colorNeutralForegroundInverted};transform:translateX(20px)}: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}}`;
@@ -7878,8 +8577,226 @@ const styles$1 = css`
7878
8577
  * @remarks
7879
8578
  * HTML Element: \<fluent-switch\>
7880
8579
  */
7881
- const definition$1 = Switch.compose({
8580
+ const definition$4 = Switch.compose({
7882
8581
  name: `${FluentDesignSystem.prefix}-switch`,
8582
+ template: template$4,
8583
+ styles: styles$4
8584
+ });
8585
+
8586
+ const TabsAppearance = {
8587
+ subtle: 'subtle',
8588
+ transparent: 'transparent'
8589
+ };
8590
+ const TabsSize = {
8591
+ small: 'small',
8592
+ medium: 'medium',
8593
+ large: 'large'
8594
+ };
8595
+
8596
+ /**
8597
+ * TabList extends FASTTabs and is used for constructing a fluent-tab-list custom html element.
8598
+ *
8599
+ * @class TabList component
8600
+ * @public
8601
+ */
8602
+ class Tabs extends FASTTabs {
8603
+ constructor() {
8604
+ super(...arguments);
8605
+ /**
8606
+ * activeTabData
8607
+ * The positional coordinates and size dimensions of the active tab. Used for calculating the offset and scale of the tab active indicator.
8608
+ */
8609
+ this.activeTabData = {
8610
+ x: 0,
8611
+ y: 0,
8612
+ height: 0,
8613
+ width: 0
8614
+ };
8615
+ /**
8616
+ * previousActiveTabData
8617
+ * The positional coordinates and size dimensions of the active tab. Used for calculating the offset and scale of the tab active indicator.
8618
+ */
8619
+ this.previousActiveTabData = {
8620
+ x: 0,
8621
+ y: 0,
8622
+ height: 0,
8623
+ width: 0
8624
+ };
8625
+ /**
8626
+ * activeTabOffset
8627
+ * Used to position the active indicator for animations of the active indicator on active tab changes.
8628
+ */
8629
+ this.activeTabOffset = 0;
8630
+ /**
8631
+ * activeTabScale
8632
+ * Used to scale the tab active indicator up or down as animations of the active indicator occur.
8633
+ */
8634
+ this.activeTabScale = 1;
8635
+ /**
8636
+ * appearance
8637
+ * There are two modes of appearance: transparent and subtle.
8638
+ */
8639
+ this.appearance = TabsAppearance.transparent;
8640
+ }
8641
+ /**
8642
+ * calculateAnimationProperties
8643
+ *
8644
+ * Recalculates the active tab offset and scale.
8645
+ * These values will be applied to css variables that control the tab active indicator position animations
8646
+ */
8647
+ calculateAnimationProperties(tab) {
8648
+ this.activeTabOffset = this.getTabPosition(tab);
8649
+ this.activeTabScale = this.getTabScale(tab);
8650
+ }
8651
+ /**
8652
+ * getSelectedTabPosition - gets the x or y coordinates of the tab
8653
+ */
8654
+ getTabPosition(tab) {
8655
+ if (this.orientation === TabsOrientation.horizontal) {
8656
+ return this.previousActiveTabData.x - (tab.getBoundingClientRect().x - this.getBoundingClientRect().x);
8657
+ } else return this.previousActiveTabData.y - (tab.getBoundingClientRect().y - this.getBoundingClientRect().y);
8658
+ }
8659
+ /**
8660
+ * getSelectedTabScale - gets the scale of the tab
8661
+ */
8662
+ getTabScale(tab) {
8663
+ if (this.orientation === TabsOrientation.horizontal) {
8664
+ return this.previousActiveTabData.width / tab.getBoundingClientRect().width;
8665
+ } else return this.previousActiveTabData.height / tab.getBoundingClientRect().height;
8666
+ }
8667
+ /**
8668
+ * applyUpdatedCSSValues
8669
+ *
8670
+ * calculates and applies updated values to CSS variables
8671
+ * @param tab
8672
+ */
8673
+ applyUpdatedCSSValues(tab) {
8674
+ this.calculateAnimationProperties(tab);
8675
+ this.setTabScaleCSSVar();
8676
+ this.setTabOffsetCSSVar();
8677
+ }
8678
+ /**
8679
+ * animationLoop
8680
+ * runs through all the operations required for setting the tab active indicator to its starting location, ending location, and applying the animated css class to the tab.
8681
+ * @param tab
8682
+ */
8683
+ animationLoop(tab) {
8684
+ // remove the animated class so nothing animates yet
8685
+ tab.setAttribute('data-animate', 'false');
8686
+ // animation start - this applyUpdeatedCSSValues sets the active indicator to the location of the previously selected tab
8687
+ this.applyUpdatedCSSValues(tab);
8688
+ // changing the previously active tab allows the applyUpdatedCSSValues method to calculate the correct end to the animation.
8689
+ this.previousActiveTabData = this.activeTabData;
8690
+ // calculate and apply updated css values for animation.
8691
+ this.applyUpdatedCSSValues(tab);
8692
+ // add the css class and active indicator will animate from the previous tab location to its tab location
8693
+ tab.setAttribute('data-animate', 'true');
8694
+ }
8695
+ /**
8696
+ * setTabData
8697
+ * sets the data from the active tab onto the class. used for making all the animation calculations for the active tab indicator.
8698
+ */
8699
+ setTabData() {
8700
+ var _a, _b, _c, _d;
8701
+ if (this.tabs && this.tabs.length > 0) {
8702
+ const tabs = this.tabs;
8703
+ const activeTab = this.activetab || tabs[0];
8704
+ const activeRect = activeTab === null || activeTab === void 0 ? void 0 : activeTab.getBoundingClientRect();
8705
+ const parentRect = this.getBoundingClientRect();
8706
+ this.activeTabData = {
8707
+ x: activeRect.x - parentRect.x,
8708
+ y: activeRect.y - parentRect.y,
8709
+ height: activeRect.height,
8710
+ width: activeRect.width
8711
+ };
8712
+ if (((_a = this.previousActiveTabData) === null || _a === void 0 ? void 0 : _a.x) !== ((_b = this.activeTabData) === null || _b === void 0 ? void 0 : _b.x) && ((_c = this.previousActiveTabData) === null || _c === void 0 ? void 0 : _c.y) !== ((_d = this.activeTabData) === null || _d === void 0 ? void 0 : _d.y)) {
8713
+ this.previousActiveTabData = this.activeTabData;
8714
+ }
8715
+ }
8716
+ }
8717
+ setTabOffsetCSSVar() {
8718
+ this.styles = css /**css*/`
8719
+ :host{--tabIndicatorOffset:${this.activeTabOffset.toString()}px}`;
8720
+ this.$fastController.addStyles(this.styles);
8721
+ }
8722
+ setTabScaleCSSVar() {
8723
+ this.styles = css /**css*/`
8724
+ :host{--tabIndicatorScale:${this.activeTabScale.toString()}}`;
8725
+ this.$fastController.addStyles(this.styles);
8726
+ }
8727
+ activeidChanged(oldValue, newValue) {
8728
+ super.activeidChanged(oldValue, newValue);
8729
+ this.setTabData();
8730
+ if (this.activetab) {
8731
+ this.animationLoop(this.activetab);
8732
+ }
8733
+ }
8734
+ tabsChanged() {
8735
+ super.tabsChanged();
8736
+ this.setTabData();
8737
+ }
8738
+ }
8739
+ __decorate([attr], Tabs.prototype, "appearance", void 0);
8740
+ __decorate([attr({
8741
+ mode: 'boolean'
8742
+ })], Tabs.prototype, "disabled", void 0);
8743
+ __decorate([attr], Tabs.prototype, "size", void 0);
8744
+
8745
+ const template$3 = tabsTemplate({});
8746
+
8747
+ const styles$3 = css`
8748
+ ${display('grid')}
8749
+
8750
+ :host{box-sizing:border-box;font-family:${fontFamilyBase};font-size:${fontSizeBase300};line-height:${lineHeightBase300};color:${colorNeutralForeground2};grid-template-columns:auto 1fr auto;grid-template-rows:auto 1fr}:host([disabled]){cursor:not-allowed;color:${colorNeutralForegroundDisabled}}:host([disabled]) ::slotted(fluent-tab){pointer-events:none;cursor:not-allowed;color:${colorNeutralForegroundDisabled}}:host([disabled]) ::slotted(fluent-tab:after){background-color:${colorNeutralForegroundDisabled}}:host([disabled]) ::slotted(fluent-tab[aria-selected='true'])::after{background-color:${colorNeutralForegroundDisabled}}:host([disabled]) ::slotted(fluent-tab:hover):before{content:unset}:host ::slotted(fluent-tab){border-radius:${borderRadiusMedium}}:host ::slotted(fluent-tab[aria-selected='true'])::before{background-color:${colorNeutralForegroundDisabled}}.tablist{display:grid;grid-template-rows:auto auto;grid-template-columns:auto;position:relative;width:max-content;align-self:end;box-sizing:border-box}::slotted([slot='start']),::slotted([slot='end']){display:flex;align-self:center}::slotted([slot='start']){margin-inline-end:11px}::slotted([slot='end']){margin-inline-start:11px}.tabpanel{grid-row:2;grid-column-start:1;grid-column-end:4;position:relative}:host([orientation='vertical']){grid-template-rows:auto 1fr auto;grid-template-columns:auto 1fr}:host([orientation='vertical']) .tablist{grid-row-start:2;grid-row-end:2;display:grid;grid-template-rows:auto;grid-template-columns:auto 1fr;position:relative;width:max-content;justify-self:end;align-self:flex-start;width:100%}:host([orientation='vertical']) .tabpanel{grid-column:2;grid-row-start:1;grid-row-end:4}:host([orientation='vertical']) ::slotted([slot='end']){grid-row:3}:host([appearance='subtle']) ::slotted(fluent-tab:hover){background-color:${colorSubtleBackgroundHover};color:${colorNeutralForeground1Hover};fill:${colorCompoundBrandForeground1Hover}}:host([appearance='subtle']) ::slotted(fluent-tab:active){background-color:${colorSubtleBackgroundPressed};fill:${colorSubtleBackgroundPressed};color:${colorNeutralForeground1}}:host([size='small']) ::slotted(fluent-tab){font-size:${fontSizeBase300};line-height:${lineHeightBase300};padding:${spacingVerticalSNudge} ${spacingHorizontalSNudge}}:host([size='large']) ::slotted(fluent-tab){font-size:${fontSizeBase400};line-height:${lineHeightBase400};padding:${spacingVerticalL} ${spacingHorizontalMNudge}}:host ::slotted(fluent-tab[data-animate='true'])::after{transition-property:transform;transition-duration:${durationSlow};transition-timing-function:${curveDecelerateMax}}:host ::slotted(fluent-tab)::after{height:${strokeWidthThicker};margin-top:auto;transform-origin:left;transform:translateX(var(--tabIndicatorOffset)) scaleX(var(--tabIndicatorScale))}:host([orientation='vertical']) ::slotted(fluent-tab)::after{width:${strokeWidthThicker};height:unset;margin-top:unset;transform-origin:top;transform:translateY(var(--tabIndicatorOffset)) scaleY(var(--tabIndicatorScale))}:host ::slotted(fluent-tab)::before{height:${strokeWidthThicker};border-radius:${borderRadiusCircular};content:'';inset:0;position:absolute;margin-top:auto}:host([orientation='vertical']) ::slotted(fluent-tab)::before{height:unset;width:${strokeWidthThicker};margin-inline-end:auto;transform-origin:top}:host ::slotted(fluent-tab[aria-selected='false']:hover)::after{height:${strokeWidthThicker};margin-top:auto;transform-origin:left}:host([orientation='vertical']) ::slotted(fluent-tab[aria-selected='false']:hover)::after{height:unset;margin-inline-end:auto;transform-origin:top;width:${strokeWidthThicker}}:host([orientation='vertical']) ::slotted(fluent-tab){align-items:flex-start;grid-column:2;padding-top:${spacingVerticalSNudge};padding-bottom:${spacingVerticalSNudge}}:host([orientation='vertical'][size='small']) ::slotted(fluent-tab){padding-top:${spacingVerticalXXS};padding-bottom:${spacingVerticalXXS}}:host([orientation='vertical'][size='large']) ::slotted(fluent-tab){padding-top:${spacingVerticalS};padding-bottom:${spacingVerticalS}}:host([size='small']) ::slotted(fluent-tab)::after,:host([size='small']) ::slotted(fluent-tab)::before,:host([size='small']) ::slotted(fluent-tab:hover)::after{right:${spacingHorizontalSNudge};left:${spacingHorizontalSNudge}}:host ::slotted(fluent-tab)::after,:host ::slotted(fluent-tab)::before,:host ::slotted(fluent-tab:hover)::after{right:${spacingHorizontalMNudge};left:${spacingHorizontalMNudge}}:host([size='large']) ::slotted(fluent-tab)::after,:host([size='large']) ::slotted(fluent-tab)::before,:host([size='large']) ::slotted(fluent-tab:hover)::after{right:${spacingHorizontalMNudge};left:${spacingHorizontalMNudge}}:host([orientation='vertical'][size='small']) ::slotted(fluent-tab)::after,:host([orientation='vertical'][size='small']) ::slotted(fluent-tab)::before,:host([orientation='vertical'][size='small']) ::slotted(fluent-tab:hover)::after{right:0;left:0;top:${spacingVerticalSNudge};bottom:${spacingVerticalSNudge}}:host([orientation='vertical']) ::slotted(fluent-tab)::after,:host([orientation='vertical']) ::slotted(fluent-tab)::before,:host([orientation='vertical']) ::slotted(fluent-tab:hover)::after{right:0;left:0;top:${spacingVerticalS};bottom:${spacingVerticalS}}:host([orientation='vertical'][size='large']) ::slotted(fluent-tab)::after,:host([orientation='vertical'][size='large']) ::slotted(fluent-tab)::before,:host([orientation='vertical'][size='large']) ::slotted(fluent-tab:hover)::after{right:0;left:0;top:${spacingVerticalMNudge};bottom:${spacingVerticalMNudge}}`;
8751
+
8752
+ const definition$3 = Tabs.compose({
8753
+ name: `${FluentDesignSystem.prefix}-tabs`,
8754
+ template: template$3,
8755
+ styles: styles$3
8756
+ });
8757
+
8758
+ /**
8759
+ * Tab extends the FASTTab and is a child of the TabList
8760
+ */
8761
+ class Tab extends FASTTab {
8762
+ connectedCallback() {
8763
+ super.connectedCallback();
8764
+ if (this.styles !== undefined) {
8765
+ this.$fastController.removeStyles(this.styles);
8766
+ }
8767
+ this.styles = css /**css*/`
8768
+ :host{--textContent:'${this.textContent}'}`;
8769
+ this.$fastController.addStyles(this.styles);
8770
+ }
8771
+ }
8772
+
8773
+ function tabTemplate(options = {}) {
8774
+ return html`<template slot="tab" role="tab" aria-disabled="${x => x.disabled}">${startSlotTemplate(options)}<span class="tab-content"><slot></slot></span>${endSlotTemplate(options)}</template>`;
8775
+ }
8776
+ const template$2 = tabTemplate({});
8777
+
8778
+ const styles$2 = css`
8779
+ ${display('inline-flex')}
8780
+
8781
+ :host{position:relative;flex-direction:column;cursor:pointer;box-sizing:border-box;justify-content:center;line-height:${lineHeightBase300};font-family:${fontFamilyBase};font-size:${fontSizeBase300};color:${colorNeutralForeground2};fill:currentcolor;grid-row:1;padding:${spacingHorizontalM} ${spacingHorizontalMNudge};border-radius:${borderRadiusMedium}}:host .tab-content{display:inline-flex;flex-direction:column;padding:0 2px}:host([aria-selected='true']){color:${colorNeutralForeground1};font-weight:${fontWeightSemibold}}:host .tab-content::after{content:var(--textContent);visibility:hidden;height:0;line-height:${lineHeightBase300};font-weight:${fontWeightSemibold}}:host([aria-selected='true'])::after{background-color:${colorCompoundBrandStroke};border-radius:${borderRadiusCircular};content:'';inset:0;position:absolute;z-index:2}:host([aria-selected='false']:hover)::after{background-color:${colorNeutralStroke1Hover};border-radius:${borderRadiusCircular};content:'';inset:0;position:absolute;z-index:1}:host([aria-selected='true'][disabled])::after{background-color:${colorNeutralForegroundDisabled}}::slotted([slot='start']),::slotted([slot='end']){display:flex}::slotted([slot='start']){margin-inline-end:11px}::slotted([slot='end']){margin-inline-start:11px}:host([disabled]){cursor:not-allowed;fill:${colorNeutralForegroundDisabled};color:${colorNeutralForegroundDisabled}}:host([disabled]:hover)::after{background-color:unset}:host(:focus){outline:none}:host(:focus-visible){border-radius:${borderRadiusSmall};box-shadow:0 0 0 3px ${colorStrokeFocus2};outline:1px solid ${colorStrokeFocus1}}`;
8782
+
8783
+ const definition$2 = Tab.compose({
8784
+ name: `${FluentDesignSystem.prefix}-tab`,
8785
+ template: template$2,
8786
+ styles: styles$2
8787
+ });
8788
+
8789
+ class TabPanel extends FASTTabPanel {}
8790
+
8791
+ const template$1 = tabPanelTemplate();
8792
+
8793
+ const styles$1 = css`
8794
+ ${display('block')}
8795
+
8796
+ :host{box-sizing:border-box;padding:${spacingHorizontalM} ${spacingHorizontalMNudge}}`;
8797
+
8798
+ const definition$1 = TabPanel.compose({
8799
+ name: `${FluentDesignSystem.prefix}-tab-panel`,
7883
8800
  template: template$1,
7884
8801
  styles: styles$1
7885
8802
  });
@@ -8050,4 +8967,4 @@ const setTheme = theme => {
8050
8967
  }
8051
8968
  };
8052
8969
 
8053
- export { Accordion, AccordionItem, AccordionItemExpandIconPosition, AccordionItemSize, Avatar, AvatarActive, AvatarAppearance, AvatarColor, definition$9 as AvatarDefinition, AvatarNamedColor, AvatarShape, AvatarSize, styles$9 as AvatarStyles, template$9 as AvatarTemplate, Badge, BadgeAppearance, BadgeColor, definition$8 as BadgeDefinition, BadgeShape, BadgeSize, styles$8 as BadgeStyles, template$8 as BadgeTemplate, CounterBadge, CounterBadgeAppearance, CounterBadgeColor, definition$7 as CounterBadgeDefinition, CounterBadgeShape, CounterBadgeSize, styles$7 as CounterBadgeStyles, template$7 as CounterBadgeTemplate, Divider, DividerAlignContent, DividerAppearance, definition$6 as DividerDefinition, DividerOrientation, DividerRole, styles$6 as DividerStyles, template$6 as DividerTemplate, Image, definition$5 as ImageDefinition, ImageFit, ImageShape, styles$5 as ImageStyles, template$5 as ImageTemplate, ProgressBar, definition$4 as ProgressBarDefinition, ProgressBarShape, styles$4 as ProgressBarStyles, template$4 as ProgressBarTemplate, ProgressBarThickness, ProgressBarValidationState, Slider, definition$3 as SliderDefinition, SliderOrientation, SliderSize, styles$3 as SliderStyles, template$3 as SliderTemplate, Spinner, SpinnerAppearance, definition$2 as SpinnerDefinition, SpinnerSize, styles$2 as SpinnerStyles, template$2 as SpinnerTemplate, Switch, SwitchLabelPosition, Text, TextAlign, definition as TextDefinition, TextFont, TextSize, styles as TextStyles, template as TextTemplate, TextWeight, definition$b as accordionDefinition, definition$a as accordionItemDefinition, styles$a as accordionItemStyles, template$a as accordionItemTemplate, styles$b as accordionStyles, template$b 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, definition$1 as definition, 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, 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, styles$1 as switchStyles, template$1 as switchTemplate };
8970
+ export { Accordion, AccordionItem, AccordionItemExpandIconPosition, AccordionItemSize, Avatar, AvatarActive, AvatarAppearance, AvatarColor, definition$e as AvatarDefinition, AvatarNamedColor, AvatarShape, AvatarSize, styles$d as AvatarStyles, template$e as AvatarTemplate, Badge, BadgeAppearance, BadgeColor, definition$d as BadgeDefinition, BadgeShape, BadgeSize, styles$c as BadgeStyles, template$d as BadgeTemplate, Button, ButtonAppearance, definition$c as ButtonDefinition, ButtonShape, ButtonSize, styles$b as ButtonStyles, template$c as ButtonTemplate, CounterBadge, CounterBadgeAppearance, CounterBadgeColor, definition$b as CounterBadgeDefinition, CounterBadgeShape, CounterBadgeSize, styles$a as CounterBadgeStyles, template$b as CounterBadgeTemplate, Divider, DividerAlignContent, DividerAppearance, definition$a as DividerDefinition, DividerOrientation, DividerRole, styles$9 as DividerStyles, template$a as DividerTemplate, Image, definition$9 as ImageDefinition, ImageFit, ImageShape, styles$8 as ImageStyles, template$9 as ImageTemplate, MenuButton, MenuButtonAppearance, definition$8 as MenuButtonDefinition, MenuButtonShape, MenuButtonSize, styles$b as MenuButtonStyles, template$8 as MenuButtonTemplate, ProgressBar, definition$7 as ProgressBarDefinition, ProgressBarShape, styles$7 as ProgressBarStyles, template$7 as ProgressBarTemplate, ProgressBarThickness, ProgressBarValidationState, Slider, definition$6 as SliderDefinition, SliderOrientation, SliderSize, styles$6 as SliderStyles, template$6 as SliderTemplate, Spinner, SpinnerAppearance, definition$5 as SpinnerDefinition, SpinnerSize, styles$5 as SpinnerStyles, template$5 as SpinnerTemplate, Switch, SwitchLabelPosition, Tab, definition$2 as TabDefinition, TabPanel, definition$1 as TabPanelDefinition, styles$1 as TabPanelStyles, template$1 as TabPanelTemplate, styles$2 as TabStyles, template$2 as TabTemplate, Tabs, TabsAppearance, definition$3 as TabsDefinition, TabsOrientation, TabsSize, styles$3 as TabsStyles, template$3 as TabsTemplate, Text, TextAlign, definition as TextDefinition, TextFont, TextSize, styles as TextStyles, template as TextTemplate, TextWeight, definition$g as accordionDefinition, definition$f as accordionItemDefinition, styles$e as accordionItemStyles, template$f as accordionItemTemplate, styles$f as accordionStyles, template$g 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, definition$4 as definition, 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, 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, styles$4 as switchStyles, template$4 as switchTemplate };