@fluentui/web-components 3.0.0-beta.71 → 3.0.0-beta.72

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 (143) hide show
  1. package/CHANGELOG.md +11 -2
  2. package/dist/dts/accordion/accordion.template.d.ts +1 -1
  3. package/dist/dts/accordion-item/accordion-item.d.ts +2 -2
  4. package/dist/dts/accordion-item/accordion-item.template.d.ts +1 -1
  5. package/dist/dts/anchor-button/anchor-button.d.ts +2 -2
  6. package/dist/dts/anchor-button/anchor-button.options.d.ts +1 -1
  7. package/dist/dts/anchor-button/anchor-button.template.d.ts +1 -1
  8. package/dist/dts/avatar/avatar.d.ts +1 -1
  9. package/dist/dts/avatar/avatar.template.d.ts +1 -1
  10. package/dist/dts/badge/badge.options.d.ts +1 -1
  11. package/dist/dts/badge/badge.template.d.ts +1 -1
  12. package/dist/dts/button/button.d.ts +1 -2
  13. package/dist/dts/button/button.options.d.ts +1 -1
  14. package/dist/dts/button/button.template.d.ts +2 -2
  15. package/dist/dts/compound-button/compound-button.options.d.ts +1 -1
  16. package/dist/dts/compound-button/compound-button.template.d.ts +1 -1
  17. package/dist/dts/counter-badge/counter-badge.options.d.ts +1 -1
  18. package/dist/dts/counter-badge/counter-badge.template.d.ts +2 -2
  19. package/dist/dts/dialog/dialog.template.d.ts +1 -1
  20. package/dist/dts/dialog-body/dialog-body.template.d.ts +1 -1
  21. package/dist/dts/divider/divider.d.ts +1 -1
  22. package/dist/dts/divider/divider.template.d.ts +1 -1
  23. package/dist/dts/drawer/drawer.template.d.ts +1 -1
  24. package/dist/dts/drawer-body/drawer-body.template.d.ts +1 -1
  25. package/dist/dts/field/field.d.ts +1 -1
  26. package/dist/dts/field/field.template.d.ts +1 -1
  27. package/dist/dts/image/image.template.d.ts +1 -1
  28. package/dist/dts/label/label.template.d.ts +2 -2
  29. package/dist/dts/link/link.d.ts +1 -1
  30. package/dist/dts/link/link.template.d.ts +1 -1
  31. package/dist/dts/menu/menu.d.ts +1 -1
  32. package/dist/dts/menu/menu.template.d.ts +1 -1
  33. package/dist/dts/menu-button/menu-button.template.d.ts +1 -1
  34. package/dist/dts/menu-item/menu-item.d.ts +1 -1
  35. package/dist/dts/menu-list/menu-list.template.d.ts +1 -1
  36. package/dist/dts/message-bar/message-bar.template.d.ts +1 -1
  37. package/dist/dts/patterns/start-end.d.ts +1 -1
  38. package/dist/dts/radio/radio.template.d.ts +1 -1
  39. package/dist/dts/radio-group/radio-group.template.d.ts +1 -1
  40. package/dist/dts/rating-display/rating-display.template.d.ts +1 -1
  41. package/dist/dts/slider/slider.d.ts +3 -3
  42. package/dist/dts/spinner/spinner.d.ts +1 -1
  43. package/dist/dts/spinner/spinner.template.d.ts +1 -1
  44. package/dist/dts/switch/switch.template.d.ts +2 -2
  45. package/dist/dts/tab/tab.d.ts +2 -1
  46. package/dist/dts/tab/tab.template.d.ts +1 -1
  47. package/dist/dts/tab-panel/tab-panel.template.d.ts +2 -2
  48. package/dist/dts/tablist/tablist.template.d.ts +1 -1
  49. package/dist/dts/tabs/tabs.d.ts +1 -1
  50. package/dist/dts/tabs/tabs.options.d.ts +2 -2
  51. package/dist/dts/tabs/tabs.template.d.ts +3 -3
  52. package/dist/dts/text/text.d.ts +1 -1
  53. package/dist/dts/text/text.template.d.ts +1 -1
  54. package/dist/dts/text-input/text-input.d.ts +1 -2
  55. package/dist/dts/textarea/textarea.template.d.ts +1 -1
  56. package/dist/dts/toggle-button/toggle-button.template.d.ts +1 -1
  57. package/dist/dts/utils/element-internals.d.ts +23 -1
  58. package/dist/dts/utils/template-helpers.d.ts +1 -2
  59. package/dist/esm/accordion/accordion.template.js.map +1 -1
  60. package/dist/esm/accordion-item/accordion-item.js +4 -13
  61. package/dist/esm/accordion-item/accordion-item.js.map +1 -1
  62. package/dist/esm/accordion-item/accordion-item.template.js.map +1 -1
  63. package/dist/esm/anchor-button/anchor-button.js +5 -20
  64. package/dist/esm/anchor-button/anchor-button.js.map +1 -1
  65. package/dist/esm/anchor-button/anchor-button.template.js.map +1 -1
  66. package/dist/esm/avatar/avatar.js +2 -3
  67. package/dist/esm/avatar/avatar.js.map +1 -1
  68. package/dist/esm/avatar/avatar.template.js.map +1 -1
  69. package/dist/esm/badge/badge.js +6 -27
  70. package/dist/esm/badge/badge.js.map +1 -1
  71. package/dist/esm/badge/badge.template.js.map +1 -1
  72. package/dist/esm/button/button.js +5 -20
  73. package/dist/esm/button/button.js.map +1 -1
  74. package/dist/esm/button/button.template.js.map +1 -1
  75. package/dist/esm/checkbox/checkbox.js +4 -13
  76. package/dist/esm/checkbox/checkbox.js.map +1 -1
  77. package/dist/esm/compound-button/compound-button.template.js.map +1 -1
  78. package/dist/esm/counter-badge/counter-badge.js +6 -26
  79. package/dist/esm/counter-badge/counter-badge.js.map +1 -1
  80. package/dist/esm/counter-badge/counter-badge.template.js.map +1 -1
  81. package/dist/esm/dialog/dialog.template.js.map +1 -1
  82. package/dist/esm/dialog-body/dialog-body.template.js.map +1 -1
  83. package/dist/esm/divider/divider.js +6 -21
  84. package/dist/esm/divider/divider.js.map +1 -1
  85. package/dist/esm/divider/divider.template.js.map +1 -1
  86. package/dist/esm/drawer/drawer.template.js.map +1 -1
  87. package/dist/esm/drawer-body/drawer-body.template.js.map +1 -1
  88. package/dist/esm/field/field.js.map +1 -1
  89. package/dist/esm/field/field.template.js.map +1 -1
  90. package/dist/esm/image/image.js +4 -13
  91. package/dist/esm/image/image.js.map +1 -1
  92. package/dist/esm/image/image.template.js.map +1 -1
  93. package/dist/esm/label/label.js +4 -13
  94. package/dist/esm/label/label.js.map +1 -1
  95. package/dist/esm/label/label.template.js.map +1 -1
  96. package/dist/esm/link/link.js +3 -7
  97. package/dist/esm/link/link.js.map +1 -1
  98. package/dist/esm/link/link.template.js.map +1 -1
  99. package/dist/esm/menu/menu.template.js.map +1 -1
  100. package/dist/esm/menu-button/menu-button.template.js.map +1 -1
  101. package/dist/esm/menu-item/menu-item.js.map +1 -1
  102. package/dist/esm/menu-list/menu-list.template.js.map +1 -1
  103. package/dist/esm/message-bar/message-bar.js +5 -19
  104. package/dist/esm/message-bar/message-bar.js.map +1 -1
  105. package/dist/esm/message-bar/message-bar.template.js.map +1 -1
  106. package/dist/esm/patterns/start-end.js.map +1 -1
  107. package/dist/esm/progress-bar/progress-bar.js +5 -19
  108. package/dist/esm/progress-bar/progress-bar.js.map +1 -1
  109. package/dist/esm/progress-bar/progress-bar.options.js.map +1 -1
  110. package/dist/esm/radio/radio.template.js.map +1 -1
  111. package/dist/esm/radio-group/radio-group.template.js.map +1 -1
  112. package/dist/esm/rating-display/rating-display.js +4 -9
  113. package/dist/esm/rating-display/rating-display.js.map +1 -1
  114. package/dist/esm/rating-display/rating-display.template.js.map +1 -1
  115. package/dist/esm/slider/slider.js +4 -14
  116. package/dist/esm/slider/slider.js.map +1 -1
  117. package/dist/esm/spinner/spinner.js +4 -13
  118. package/dist/esm/spinner/spinner.js.map +1 -1
  119. package/dist/esm/switch/switch.template.js.map +1 -1
  120. package/dist/esm/tab/tab.js +1 -1
  121. package/dist/esm/tab/tab.js.map +1 -1
  122. package/dist/esm/tab/tab.template.js.map +1 -1
  123. package/dist/esm/tab-panel/tab-panel.template.js.map +1 -1
  124. package/dist/esm/tablist/tablist.js +6 -22
  125. package/dist/esm/tablist/tablist.js.map +1 -1
  126. package/dist/esm/tabs/tabs.js.map +1 -1
  127. package/dist/esm/tabs/tabs.template.js.map +1 -1
  128. package/dist/esm/text/text.js +6 -25
  129. package/dist/esm/text/text.js.map +1 -1
  130. package/dist/esm/text/text.template.js.map +1 -1
  131. package/dist/esm/text-input/text-input.js +4 -14
  132. package/dist/esm/text-input/text-input.js.map +1 -1
  133. package/dist/esm/textarea/textarea.js +9 -21
  134. package/dist/esm/textarea/textarea.js.map +1 -1
  135. package/dist/esm/textarea/textarea.template.js.map +1 -1
  136. package/dist/esm/utils/element-internals.js +45 -0
  137. package/dist/esm/utils/element-internals.js.map +1 -1
  138. package/dist/esm/utils/template-helpers.js +1 -1
  139. package/dist/esm/utils/template-helpers.js.map +1 -1
  140. package/dist/web-components.d.ts +6 -6
  141. package/dist/web-components.js +301 -296
  142. package/dist/web-components.min.js +316 -316
  143. package/package.json +1 -1
@@ -4343,6 +4343,9 @@ function stateSelector(state) {
4343
4343
  return statesMap.get(state) ?? statesMap.set(state, CustomStatesSetSupported ? `:state(${state})` : `[state--${state}]`).get(state);
4344
4344
  }
4345
4345
  function toggleState(elementInternals, state, force) {
4346
+ if (!state) {
4347
+ return;
4348
+ }
4346
4349
  if (!CustomStatesSetSupported) {
4347
4350
  elementInternals.shadowRoot.host.toggleAttribute(`state--${state}`, force);
4348
4351
  return;
@@ -4353,6 +4356,35 @@ function toggleState(elementInternals, state, force) {
4353
4356
  }
4354
4357
  elementInternals.states.delete(state);
4355
4358
  }
4359
+ const matchingStateMap = /* @__PURE__ */new WeakMap();
4360
+ function hasMatchingState(States, state) {
4361
+ if (!States || !state) {
4362
+ return false;
4363
+ }
4364
+ if (matchingStateMap.has(States)) {
4365
+ return matchingStateMap.get(States).has(state);
4366
+ }
4367
+ const stateSet = new Set(Object.values(States));
4368
+ matchingStateMap.set(States, stateSet);
4369
+ return stateSet.has(state);
4370
+ }
4371
+ function swapStates(elementInternals, prev = "", next = "", States, prefix = "") {
4372
+ toggleState(elementInternals, `${prefix}${prev}`, false);
4373
+ if (!States || hasMatchingState(States, next)) {
4374
+ toggleState(elementInternals, `${prefix}${next}`, true);
4375
+ }
4376
+ }
4377
+
4378
+ const AccordionItemSize = {
4379
+ small: "small",
4380
+ medium: "medium",
4381
+ large: "large",
4382
+ extraLarge: "extra-large"
4383
+ };
4384
+ const AccordionItemMarkerPosition = {
4385
+ start: "start",
4386
+ end: "end"
4387
+ };
4356
4388
 
4357
4389
  var __defProp$v = Object.defineProperty;
4358
4390
  var __getOwnPropDesc$v = Object.getOwnPropertyDescriptor;
@@ -4416,12 +4448,7 @@ class AccordionItem extends BaseAccordionItem {
4416
4448
  * @param next - next value
4417
4449
  */
4418
4450
  sizeChanged(prev, next) {
4419
- if (prev) {
4420
- toggleState(this.elementInternals, prev, false);
4421
- }
4422
- if (next) {
4423
- toggleState(this.elementInternals, next, true);
4424
- }
4451
+ swapStates(this.elementInternals, prev, next, AccordionItemSize);
4425
4452
  }
4426
4453
  /**
4427
4454
  * Handles changes to marker-position attribute
@@ -4429,12 +4456,7 @@ class AccordionItem extends BaseAccordionItem {
4429
4456
  * @param next - next value
4430
4457
  */
4431
4458
  markerPositionChanged(prev, next) {
4432
- if (prev) {
4433
- toggleState(this.elementInternals, `align-${prev}`, false);
4434
- }
4435
- if (next) {
4436
- toggleState(this.elementInternals, `align-${next}`, true);
4437
- }
4459
+ swapStates(this.elementInternals, prev, next, AccordionItemMarkerPosition, "align-");
4438
4460
  }
4439
4461
  /**
4440
4462
  * Handles changes to block attribute
@@ -5037,12 +5059,31 @@ const definition$A = Accordion.compose({
5037
5059
 
5038
5060
  definition$A.define(FluentDesignSystem.registry);
5039
5061
 
5062
+ const ButtonAppearance = {
5063
+ primary: "primary",
5064
+ outline: "outline",
5065
+ subtle: "subtle",
5066
+ transparent: "transparent"
5067
+ };
5068
+ const ButtonShape = {
5069
+ circular: "circular",
5070
+ rounded: "rounded",
5071
+ square: "square"
5072
+ };
5073
+ const ButtonSize = {
5074
+ small: "small",
5075
+ medium: "medium",
5076
+ large: "large"
5077
+ };
5040
5078
  const ButtonType = {
5041
5079
  submit: "submit",
5042
5080
  reset: "reset",
5043
5081
  button: "button"
5044
5082
  };
5045
5083
 
5084
+ const AnchorButtonAppearance = ButtonAppearance;
5085
+ const AnchorButtonShape = ButtonShape;
5086
+ const AnchorButtonSize = ButtonSize;
5046
5087
  const AnchorAttributes = {
5047
5088
  download: "download",
5048
5089
  href: "href",
@@ -5186,12 +5227,7 @@ class AnchorButton extends BaseAnchor {
5186
5227
  * @param next - the next state
5187
5228
  */
5188
5229
  appearanceChanged(prev, next) {
5189
- if (prev) {
5190
- toggleState(this.elementInternals, `${prev}`, false);
5191
- }
5192
- if (next) {
5193
- toggleState(this.elementInternals, `${next}`, true);
5194
- }
5230
+ swapStates(this.elementInternals, prev, next, AnchorButtonAppearance);
5195
5231
  }
5196
5232
  /**
5197
5233
  * Handles changes to shape attribute custom states
@@ -5199,12 +5235,7 @@ class AnchorButton extends BaseAnchor {
5199
5235
  * @param next - the next state
5200
5236
  */
5201
5237
  shapeChanged(prev, next) {
5202
- if (prev) {
5203
- toggleState(this.elementInternals, `${prev}`, false);
5204
- }
5205
- if (next) {
5206
- toggleState(this.elementInternals, `${next}`, true);
5207
- }
5238
+ swapStates(this.elementInternals, prev, next, AnchorButtonShape);
5208
5239
  }
5209
5240
  /**
5210
5241
  * Handles changes to size attribute custom states
@@ -5212,12 +5243,7 @@ class AnchorButton extends BaseAnchor {
5212
5243
  * @param next - the next state
5213
5244
  */
5214
5245
  sizeChanged(prev, next) {
5215
- if (prev) {
5216
- toggleState(this.elementInternals, `${prev}`, false);
5217
- }
5218
- if (next) {
5219
- toggleState(this.elementInternals, `${next}`, true);
5220
- }
5246
+ swapStates(this.elementInternals, prev, next, AnchorButtonSize);
5221
5247
  }
5222
5248
  /**
5223
5249
  * Handles changes to icon only custom states
@@ -5404,9 +5430,8 @@ const _Avatar = class _Avatar extends BaseAvatar {
5404
5430
  generateColor() {
5405
5431
  const colorful = this.color === AvatarColor.colorful;
5406
5432
  const prev = this.currentColor;
5407
- toggleState(this.elementInternals, `${prev}`, false);
5408
5433
  this.currentColor = colorful && this.colorId ? this.colorId : colorful ? _Avatar.colors[getHashCode(this.name ?? "") % _Avatar.colors.length] : this.color ?? AvatarColor.neutral;
5409
- toggleState(this.elementInternals, `${this.currentColor}`, true);
5434
+ swapStates(this.elementInternals, prev, this.currentColor);
5410
5435
  }
5411
5436
  connectedCallback() {
5412
5437
  super.connectedCallback();
@@ -5486,6 +5511,19 @@ const BadgeColor = {
5486
5511
  success: "success",
5487
5512
  warning: "warning"
5488
5513
  };
5514
+ const BadgeShape = {
5515
+ circular: "circular",
5516
+ rounded: "rounded",
5517
+ square: "square"
5518
+ };
5519
+ const BadgeSize = {
5520
+ tiny: "tiny",
5521
+ extraSmall: "extra-small",
5522
+ small: "small",
5523
+ medium: "medium",
5524
+ large: "large",
5525
+ extraLarge: "extra-large"
5526
+ };
5489
5527
 
5490
5528
  var __defProp$r = Object.defineProperty;
5491
5529
  var __getOwnPropDesc$r = Object.getOwnPropertyDescriptor;
@@ -5513,12 +5551,7 @@ class Badge extends FASTElement {
5513
5551
  * @param next - the next state
5514
5552
  */
5515
5553
  appearanceChanged(prev, next) {
5516
- if (prev) {
5517
- toggleState(this.elementInternals, `${prev}`, false);
5518
- }
5519
- if (next) {
5520
- toggleState(this.elementInternals, `${next}`, true);
5521
- }
5554
+ swapStates(this.elementInternals, prev, next, BadgeAppearance);
5522
5555
  }
5523
5556
  /**
5524
5557
  * Handles changes to color attribute custom states
@@ -5526,12 +5559,7 @@ class Badge extends FASTElement {
5526
5559
  * @param next - the next state
5527
5560
  */
5528
5561
  colorChanged(prev, next) {
5529
- if (prev) {
5530
- toggleState(this.elementInternals, `${prev}`, false);
5531
- }
5532
- if (next) {
5533
- toggleState(this.elementInternals, `${next}`, true);
5534
- }
5562
+ swapStates(this.elementInternals, prev, next, BadgeColor);
5535
5563
  }
5536
5564
  /**
5537
5565
  * Handles changes to shape attribute custom states
@@ -5539,12 +5567,7 @@ class Badge extends FASTElement {
5539
5567
  * @param next - the next state
5540
5568
  */
5541
5569
  shapeChanged(prev, next) {
5542
- if (prev) {
5543
- toggleState(this.elementInternals, `${prev}`, false);
5544
- }
5545
- if (next) {
5546
- toggleState(this.elementInternals, `${next}`, true);
5547
- }
5570
+ swapStates(this.elementInternals, prev, next, BadgeShape);
5548
5571
  }
5549
5572
  /**
5550
5573
  * Handles changes to size attribute custom states
@@ -5552,12 +5575,7 @@ class Badge extends FASTElement {
5552
5575
  * @param next - the next state
5553
5576
  */
5554
5577
  sizeChanged(prev, next) {
5555
- if (prev) {
5556
- toggleState(this.elementInternals, `${prev}`, false);
5557
- }
5558
- if (next) {
5559
- toggleState(this.elementInternals, `${next}`, true);
5560
- }
5578
+ swapStates(this.elementInternals, prev, next, BadgeSize);
5561
5579
  }
5562
5580
  }
5563
5581
  __decorateClass$r([attr], Badge.prototype, "appearance", 2);
@@ -6198,12 +6216,7 @@ class Button extends BaseButton {
6198
6216
  * @param next - the next state
6199
6217
  */
6200
6218
  appearanceChanged(prev, next) {
6201
- if (prev) {
6202
- toggleState(this.elementInternals, `${prev}`, false);
6203
- }
6204
- if (next) {
6205
- toggleState(this.elementInternals, `${next}`, true);
6206
- }
6219
+ swapStates(this.elementInternals, prev, next, ButtonAppearance);
6207
6220
  }
6208
6221
  /**
6209
6222
  * Handles changes to shape attribute custom states
@@ -6211,12 +6224,7 @@ class Button extends BaseButton {
6211
6224
  * @param next - the next state
6212
6225
  */
6213
6226
  shapeChanged(prev, next) {
6214
- if (prev) {
6215
- toggleState(this.elementInternals, `${prev}`, false);
6216
- }
6217
- if (next) {
6218
- toggleState(this.elementInternals, `${next}`, true);
6219
- }
6227
+ swapStates(this.elementInternals, prev, next, ButtonShape);
6220
6228
  }
6221
6229
  /**
6222
6230
  * Handles changes to size attribute custom states
@@ -6224,12 +6232,7 @@ class Button extends BaseButton {
6224
6232
  * @param next - the next state
6225
6233
  */
6226
6234
  sizeChanged(prev, next) {
6227
- if (prev) {
6228
- toggleState(this.elementInternals, `${prev}`, false);
6229
- }
6230
- if (next) {
6231
- toggleState(this.elementInternals, `${next}`, true);
6232
- }
6235
+ swapStates(this.elementInternals, prev, next, ButtonSize);
6233
6236
  }
6234
6237
  /**
6235
6238
  * Handles changes to icon only custom states
@@ -6262,6 +6265,15 @@ const definition$w = Button.compose({
6262
6265
 
6263
6266
  definition$w.define(FluentDesignSystem.registry);
6264
6267
 
6268
+ const CheckboxShape = {
6269
+ circular: "circular",
6270
+ square: "square"
6271
+ };
6272
+ const CheckboxSize = {
6273
+ medium: "medium",
6274
+ large: "large"
6275
+ };
6276
+
6265
6277
  var __defProp$p = Object.defineProperty;
6266
6278
  var __getOwnPropDesc$p = Object.getOwnPropertyDescriptor;
6267
6279
  var __decorateClass$p = (decorators, target, key, kind) => {
@@ -6644,12 +6656,7 @@ class Checkbox extends BaseCheckbox {
6644
6656
  * @internal
6645
6657
  */
6646
6658
  shapeChanged(prev, next) {
6647
- if (prev) {
6648
- toggleState(this.elementInternals, prev, false);
6649
- }
6650
- if (next) {
6651
- toggleState(this.elementInternals, next, true);
6652
- }
6659
+ swapStates(this.elementInternals, prev, next, CheckboxShape);
6653
6660
  }
6654
6661
  /**
6655
6662
  * Applies size states when the `size` property changes.
@@ -6659,12 +6666,7 @@ class Checkbox extends BaseCheckbox {
6659
6666
  * @internal
6660
6667
  */
6661
6668
  sizeChanged(prev, next) {
6662
- if (prev) {
6663
- toggleState(this.elementInternals, prev, false);
6664
- }
6665
- if (next) {
6666
- toggleState(this.elementInternals, next, true);
6667
- }
6669
+ swapStates(this.elementInternals, prev, next, CheckboxSize);
6668
6670
  }
6669
6671
  constructor() {
6670
6672
  super();
@@ -6758,6 +6760,33 @@ const definition$u = CompoundButton.compose({
6758
6760
 
6759
6761
  definition$u.define(FluentDesignSystem.registry);
6760
6762
 
6763
+ const CounterBadgeAppearance = {
6764
+ filled: "filled",
6765
+ ghost: "ghost"
6766
+ };
6767
+ const CounterBadgeColor = {
6768
+ brand: "brand",
6769
+ danger: "danger",
6770
+ important: "important",
6771
+ informative: "informative",
6772
+ severe: "severe",
6773
+ subtle: "subtle",
6774
+ success: "success",
6775
+ warning: "warning"
6776
+ };
6777
+ const CounterBadgeShape = {
6778
+ circular: "circular",
6779
+ rounded: "rounded"
6780
+ };
6781
+ const CounterBadgeSize = {
6782
+ tiny: "tiny",
6783
+ extraSmall: "extra-small",
6784
+ small: "small",
6785
+ medium: "medium",
6786
+ large: "large",
6787
+ extraLarge: "extra-large"
6788
+ };
6789
+
6761
6790
  var __defProp$o = Object.defineProperty;
6762
6791
  var __getOwnPropDesc$o = Object.getOwnPropertyDescriptor;
6763
6792
  var __decorateClass$o = (decorators, target, key, kind) => {
@@ -6786,12 +6815,7 @@ class CounterBadge extends FASTElement {
6786
6815
  * @param next - the next state
6787
6816
  */
6788
6817
  appearanceChanged(prev, next) {
6789
- if (prev) {
6790
- toggleState(this.elementInternals, `${prev}`, false);
6791
- }
6792
- if (next) {
6793
- toggleState(this.elementInternals, `${next}`, true);
6794
- }
6818
+ swapStates(this.elementInternals, prev, next, CounterBadgeAppearance);
6795
6819
  }
6796
6820
  /**
6797
6821
  * Handles changes to color attribute custom states
@@ -6799,12 +6823,7 @@ class CounterBadge extends FASTElement {
6799
6823
  * @param next - the next state
6800
6824
  */
6801
6825
  colorChanged(prev, next) {
6802
- if (prev) {
6803
- toggleState(this.elementInternals, `${prev}`, false);
6804
- }
6805
- if (next) {
6806
- toggleState(this.elementInternals, `${next}`, true);
6807
- }
6826
+ swapStates(this.elementInternals, prev, next, CounterBadgeColor);
6808
6827
  }
6809
6828
  /**
6810
6829
  * Handles changes to shape attribute custom states
@@ -6812,12 +6831,7 @@ class CounterBadge extends FASTElement {
6812
6831
  * @param next - the next state
6813
6832
  */
6814
6833
  shapeChanged(prev, next) {
6815
- if (prev) {
6816
- toggleState(this.elementInternals, `${prev}`, false);
6817
- }
6818
- if (next) {
6819
- toggleState(this.elementInternals, `${next}`, true);
6820
- }
6834
+ swapStates(this.elementInternals, prev, next, CounterBadgeShape);
6821
6835
  }
6822
6836
  /**
6823
6837
  * Handles changes to size attribute custom states
@@ -6825,12 +6839,7 @@ class CounterBadge extends FASTElement {
6825
6839
  * @param next - the next state
6826
6840
  */
6827
6841
  sizeChanged(prev, next) {
6828
- if (prev) {
6829
- toggleState(this.elementInternals, `${prev}`, false);
6830
- }
6831
- if (next) {
6832
- toggleState(this.elementInternals, `${next}`, true);
6833
- }
6842
+ swapStates(this.elementInternals, prev, next, CounterBadgeSize);
6834
6843
  }
6835
6844
  countChanged() {
6836
6845
  this.setCount();
@@ -7064,6 +7073,16 @@ const DividerRole = {
7064
7073
  presentation: "presentation"
7065
7074
  };
7066
7075
  const DividerOrientation = Orientation;
7076
+ const DividerAlignContent = {
7077
+ center: "center",
7078
+ start: "start",
7079
+ end: "end"
7080
+ };
7081
+ const DividerAppearance = {
7082
+ strong: "strong",
7083
+ brand: "brand",
7084
+ subtle: "subtle"
7085
+ };
7067
7086
 
7068
7087
  var __defProp$l = Object.defineProperty;
7069
7088
  var __getOwnPropDesc$l = Object.getOwnPropertyDescriptor;
@@ -7113,13 +7132,8 @@ class BaseDivider extends FASTElement {
7113
7132
  * @internal
7114
7133
  */
7115
7134
  orientationChanged(previous, next) {
7116
- this.elementInternals.ariaOrientation = this.role !== DividerRole.presentation ? next : null;
7117
- if (previous) {
7118
- toggleState(this.elementInternals, `${previous}`, false);
7119
- }
7120
- if (next) {
7121
- toggleState(this.elementInternals, `${next}`, true);
7122
- }
7135
+ this.elementInternals.ariaOrientation = this.role !== DividerRole.presentation ? next ?? null : null;
7136
+ swapStates(this.elementInternals, previous, next, DividerOrientation);
7123
7137
  }
7124
7138
  }
7125
7139
  __decorateClass$l([attr], BaseDivider.prototype, "role", 2);
@@ -7131,12 +7145,7 @@ class Divider extends BaseDivider {
7131
7145
  * @param next - the next state
7132
7146
  */
7133
7147
  alignContentChanged(prev, next) {
7134
- if (prev) {
7135
- toggleState(this.elementInternals, `align-${prev}`, false);
7136
- }
7137
- if (next) {
7138
- toggleState(this.elementInternals, `align-${next}`, true);
7139
- }
7148
+ swapStates(this.elementInternals, prev, next, DividerAlignContent, "align-");
7140
7149
  }
7141
7150
  /**
7142
7151
  * Handles changes to appearance attribute custom states
@@ -7144,12 +7153,7 @@ class Divider extends BaseDivider {
7144
7153
  * @param next - the next state
7145
7154
  */
7146
7155
  appearanceChanged(prev, next) {
7147
- if (prev) {
7148
- toggleState(this.elementInternals, `${prev}`, false);
7149
- }
7150
- if (next) {
7151
- toggleState(this.elementInternals, `${next}`, true);
7152
- }
7156
+ swapStates(this.elementInternals, prev, next, DividerAppearance);
7153
7157
  }
7154
7158
  /**
7155
7159
  * Handles changes to inset custom states
@@ -7562,6 +7566,18 @@ const definition$n = Field.compose({
7562
7566
 
7563
7567
  definition$n.define(FluentDesignSystem.registry);
7564
7568
 
7569
+ const ImageFit = {
7570
+ none: "none",
7571
+ center: "center",
7572
+ contain: "contain",
7573
+ cover: "cover"
7574
+ };
7575
+ const ImageShape = {
7576
+ circular: "circular",
7577
+ rounded: "rounded",
7578
+ square: "square"
7579
+ };
7580
+
7565
7581
  var __defProp$i = Object.defineProperty;
7566
7582
  var __getOwnPropDesc$i = Object.getOwnPropertyDescriptor;
7567
7583
  var __decorateClass$i = (decorators, target, key, kind) => {
@@ -7610,12 +7626,7 @@ class Image extends FASTElement {
7610
7626
  * @param next - the next state
7611
7627
  */
7612
7628
  fitChanged(prev, next) {
7613
- if (prev) {
7614
- toggleState(this.elementInternals, `fit-${prev}`, false);
7615
- }
7616
- if (next) {
7617
- toggleState(this.elementInternals, `fit-${next}`, true);
7618
- }
7629
+ swapStates(this.elementInternals, prev, next, ImageFit, "fit-");
7619
7630
  }
7620
7631
  /**
7621
7632
  * Handles changes to shape attribute custom states
@@ -7623,12 +7634,7 @@ class Image extends FASTElement {
7623
7634
  * @param next - the next state
7624
7635
  */
7625
7636
  shapeChanged(prev, next) {
7626
- if (prev) {
7627
- toggleState(this.elementInternals, `${prev}`, false);
7628
- }
7629
- if (next) {
7630
- toggleState(this.elementInternals, `${next}`, true);
7631
- }
7637
+ swapStates(this.elementInternals, prev, next, ImageShape);
7632
7638
  }
7633
7639
  }
7634
7640
  __decorateClass$i([attr({
@@ -7656,6 +7662,16 @@ const definition$m = Image.compose({
7656
7662
 
7657
7663
  definition$m.define(FluentDesignSystem.registry);
7658
7664
 
7665
+ const LabelSize = {
7666
+ small: "small",
7667
+ medium: "medium",
7668
+ large: "large"
7669
+ };
7670
+ const LabelWeight = {
7671
+ regular: "regular",
7672
+ semibold: "semibold"
7673
+ };
7674
+
7659
7675
  var __defProp$h = Object.defineProperty;
7660
7676
  var __getOwnPropDesc$h = Object.getOwnPropertyDescriptor;
7661
7677
  var __decorateClass$h = (decorators, target, key, kind) => {
@@ -7682,12 +7698,7 @@ class Label extends FASTElement {
7682
7698
  * @param next - the next state
7683
7699
  */
7684
7700
  sizeChanged(prev, next) {
7685
- if (prev) {
7686
- toggleState(this.elementInternals, `${prev}`, false);
7687
- }
7688
- if (next) {
7689
- toggleState(this.elementInternals, `${next}`, true);
7690
- }
7701
+ swapStates(this.elementInternals, prev, next, LabelSize);
7691
7702
  }
7692
7703
  /**
7693
7704
  * Handles changes to weight attribute custom states
@@ -7695,12 +7706,7 @@ class Label extends FASTElement {
7695
7706
  * @param next - the next state
7696
7707
  */
7697
7708
  weightChanged(prev, next) {
7698
- if (prev) {
7699
- toggleState(this.elementInternals, `${prev}`, false);
7700
- }
7701
- if (next) {
7702
- toggleState(this.elementInternals, `${next}`, true);
7703
- }
7709
+ swapStates(this.elementInternals, prev, next, LabelWeight);
7704
7710
  }
7705
7711
  /**
7706
7712
  * Handles changes to disabled attribute custom states
@@ -7738,6 +7744,10 @@ const definition$l = Label.compose({
7738
7744
 
7739
7745
  definition$l.define(FluentDesignSystem.registry);
7740
7746
 
7747
+ const LinkAppearance = {
7748
+ subtle: "subtle"
7749
+ };
7750
+
7741
7751
  var __defProp$g = Object.defineProperty;
7742
7752
  var __getOwnPropDesc$g = Object.getOwnPropertyDescriptor;
7743
7753
  var __decorateClass$g = (decorators, target, key, kind) => {
@@ -7757,12 +7767,7 @@ class Link extends BaseAnchor {
7757
7767
  * @param next - the next state
7758
7768
  */
7759
7769
  appearanceChanged(prev, next) {
7760
- if (prev) {
7761
- toggleState(this.elementInternals, `${prev}`, false);
7762
- }
7763
- if (next) {
7764
- toggleState(this.elementInternals, `${next}`, true);
7765
- }
7770
+ swapStates(this.elementInternals, prev, next, LinkAppearance);
7766
7771
  }
7767
7772
  /**
7768
7773
  * Handles changes to inline attribute custom states
@@ -8648,6 +8653,21 @@ const definition$g = Menu.compose({
8648
8653
 
8649
8654
  definition$g.define(FluentDesignSystem.registry);
8650
8655
 
8656
+ const MessageBarLayout = {
8657
+ multiline: "multiline",
8658
+ singleline: "singleline"
8659
+ };
8660
+ const MessageBarShape = {
8661
+ rounded: "rounded",
8662
+ square: "square"
8663
+ };
8664
+ const MessageBarIntent = {
8665
+ success: "success",
8666
+ warning: "warning",
8667
+ error: "error",
8668
+ info: "info"
8669
+ };
8670
+
8651
8671
  var __defProp$c = Object.defineProperty;
8652
8672
  var __getOwnPropDesc$c = Object.getOwnPropertyDescriptor;
8653
8673
  var __decorateClass$c = (decorators, target, key, kind) => {
@@ -8680,12 +8700,7 @@ class MessageBar extends FASTElement {
8680
8700
  * @param next - the next state
8681
8701
  */
8682
8702
  shapeChanged(prev, next) {
8683
- if (prev) {
8684
- toggleState(this.elementInternals, prev, false);
8685
- }
8686
- if (next) {
8687
- toggleState(this.elementInternals, next, true);
8688
- }
8703
+ swapStates(this.elementInternals, prev, next, MessageBarShape);
8689
8704
  }
8690
8705
  /**
8691
8706
  * Handles changes to the layout attribute custom states
@@ -8693,12 +8708,7 @@ class MessageBar extends FASTElement {
8693
8708
  * @param next - the next state
8694
8709
  */
8695
8710
  layoutChanged(prev, next) {
8696
- if (prev) {
8697
- toggleState(this.elementInternals, prev, false);
8698
- }
8699
- if (next) {
8700
- toggleState(this.elementInternals, next, true);
8701
- }
8711
+ swapStates(this.elementInternals, prev, next, MessageBarLayout);
8702
8712
  }
8703
8713
  /**
8704
8714
  * Handles changes to the intent attribute custom states
@@ -8706,12 +8716,7 @@ class MessageBar extends FASTElement {
8706
8716
  * @param next - the next state
8707
8717
  */
8708
8718
  intentChanged(prev, next) {
8709
- if (prev) {
8710
- toggleState(this.elementInternals, prev, false);
8711
- }
8712
- if (next) {
8713
- toggleState(this.elementInternals, next, true);
8714
- }
8719
+ swapStates(this.elementInternals, prev, next, MessageBarIntent);
8715
8720
  }
8716
8721
  }
8717
8722
  __decorateClass$c([attr], MessageBar.prototype, "shape", 2);
@@ -8738,6 +8743,20 @@ const definition$f = MessageBar.compose({
8738
8743
 
8739
8744
  definition$f.define(FluentDesignSystem.registry);
8740
8745
 
8746
+ const ProgressBarThickness = {
8747
+ medium: "medium",
8748
+ large: "large"
8749
+ };
8750
+ const ProgressBarShape = {
8751
+ rounded: "rounded",
8752
+ square: "square"
8753
+ };
8754
+ const ProgressBarValidationState = {
8755
+ success: "success",
8756
+ warning: "warning",
8757
+ error: "error"
8758
+ };
8759
+
8741
8760
  var __defProp$b = Object.defineProperty;
8742
8761
  var __getOwnPropDesc$b = Object.getOwnPropertyDescriptor;
8743
8762
  var __decorateClass$b = (decorators, target, key, kind) => {
@@ -8764,12 +8783,7 @@ class BaseProgressBar extends FASTElement {
8764
8783
  * @param next - the next state
8765
8784
  */
8766
8785
  validationStateChanged(prev, next) {
8767
- if (prev) {
8768
- toggleState(this.elementInternals, `${prev}`, false);
8769
- }
8770
- if (next) {
8771
- toggleState(this.elementInternals, `${next}`, true);
8772
- }
8786
+ swapStates(this.elementInternals, prev, next, ProgressBarValidationState);
8773
8787
  }
8774
8788
  /**
8775
8789
  * Updates the percent complete when the `value` property changes.
@@ -8826,12 +8840,7 @@ class ProgressBar extends BaseProgressBar {
8826
8840
  * @param next - the next state
8827
8841
  */
8828
8842
  thicknessChanged(prev, next) {
8829
- if (prev) {
8830
- toggleState(this.elementInternals, `${prev}`, false);
8831
- }
8832
- if (next) {
8833
- toggleState(this.elementInternals, `${next}`, true);
8834
- }
8843
+ swapStates(this.elementInternals, prev, next, ProgressBarThickness);
8835
8844
  }
8836
8845
  /**
8837
8846
  * Handles changes to shape attribute custom states
@@ -8839,12 +8848,7 @@ class ProgressBar extends BaseProgressBar {
8839
8848
  * @param next - the next state
8840
8849
  */
8841
8850
  shapeChanged(prev, next) {
8842
- if (prev) {
8843
- toggleState(this.elementInternals, `${prev}`, false);
8844
- }
8845
- if (next) {
8846
- toggleState(this.elementInternals, `${next}`, true);
8847
- }
8851
+ swapStates(this.elementInternals, prev, next, ProgressBarShape);
8848
8852
  }
8849
8853
  }
8850
8854
  __decorateClass$b([attr], ProgressBar.prototype, "thickness", 2);
@@ -9442,6 +9446,17 @@ const definition$c = Radio.compose({
9442
9446
 
9443
9447
  definition$c.define(FluentDesignSystem.registry);
9444
9448
 
9449
+ const RatingDisplayColor = {
9450
+ neutral: "neutral",
9451
+ brand: "brand",
9452
+ marigold: "marigold"
9453
+ };
9454
+ const RatingDisplaySize = {
9455
+ small: "small",
9456
+ medium: "medium",
9457
+ large: "large"
9458
+ };
9459
+
9445
9460
  var __defProp$9 = Object.defineProperty;
9446
9461
  var __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor;
9447
9462
  var __decorateClass$9 = (decorators, target, key, kind) => {
@@ -9539,8 +9554,7 @@ class RatingDisplay extends BaseRatingDisplay {
9539
9554
  * @param next - The next state
9540
9555
  */
9541
9556
  colorChanged(prev, next) {
9542
- if (prev) toggleState(this.elementInternals, prev, false);
9543
- if (next) toggleState(this.elementInternals, next, true);
9557
+ swapStates(this.elementInternals, prev, next, RatingDisplayColor);
9544
9558
  }
9545
9559
  /**
9546
9560
  * Handles changes to the size attribute.
@@ -9549,8 +9563,7 @@ class RatingDisplay extends BaseRatingDisplay {
9549
9563
  * @param next - The next state
9550
9564
  */
9551
9565
  sizeChanged(prev, next) {
9552
- if (prev) toggleState(this.elementInternals, prev, false);
9553
- if (next) toggleState(this.elementInternals, next, true);
9566
+ swapStates(this.elementInternals, prev, next, RatingDisplaySize);
9554
9567
  }
9555
9568
  /**
9556
9569
  * Overrides the selected value and returns 1 if compact is true.
@@ -9598,6 +9611,10 @@ const definition$b = RatingDisplay.compose({
9598
9611
 
9599
9612
  definition$b.define(FluentDesignSystem.registry);
9600
9613
 
9614
+ const SliderSize = {
9615
+ small: "small",
9616
+ medium: "medium"
9617
+ };
9601
9618
  const SliderOrientation = Orientation;
9602
9619
  const SliderMode = {
9603
9620
  singleValue: "single-value"
@@ -9755,12 +9772,7 @@ class Slider extends FASTElement {
9755
9772
  return Object.freeze(Array.from(this.elementInternals.labels));
9756
9773
  }
9757
9774
  sizeChanged(prev, next) {
9758
- if (prev) {
9759
- toggleState(this.elementInternals, `${prev}`, false);
9760
- }
9761
- if (next) {
9762
- toggleState(this.elementInternals, `${next}`, true);
9763
- }
9775
+ swapStates(this.elementInternals, prev, next, SliderSize);
9764
9776
  }
9765
9777
  handleChange(_, propertyName) {
9766
9778
  switch (propertyName) {
@@ -10021,12 +10033,7 @@ class Slider extends FASTElement {
10021
10033
  }
10022
10034
  orientationChanged(prev, next) {
10023
10035
  this.elementInternals.ariaOrientation = next ?? Orientation.horizontal;
10024
- if (prev) {
10025
- toggleState(this.elementInternals, `${prev}`, false);
10026
- }
10027
- if (next) {
10028
- toggleState(this.elementInternals, `${next}`, true);
10029
- }
10036
+ swapStates(this.elementInternals, prev, next, Orientation);
10030
10037
  if (this.$fastController.isConnected) {
10031
10038
  this.setSliderPosition(this.direction);
10032
10039
  }
@@ -10209,6 +10216,20 @@ const definition$a = Slider.compose({
10209
10216
 
10210
10217
  definition$a.define(FluentDesignSystem.registry);
10211
10218
 
10219
+ const SpinnerAppearance = {
10220
+ primary: "primary",
10221
+ inverted: "inverted"
10222
+ };
10223
+ const SpinnerSize = {
10224
+ tiny: "tiny",
10225
+ extraSmall: "extra-small",
10226
+ small: "small",
10227
+ medium: "medium",
10228
+ large: "large",
10229
+ extraLarge: "extra-large",
10230
+ huge: "huge"
10231
+ };
10232
+
10212
10233
  var __defProp$7 = Object.defineProperty;
10213
10234
  var __getOwnPropDesc$7 = Object.getOwnPropertyDescriptor;
10214
10235
  var __decorateClass$7 = (decorators, target, key, kind) => {
@@ -10236,12 +10257,7 @@ class Spinner extends BaseSpinner {
10236
10257
  * @param next - the next state
10237
10258
  */
10238
10259
  sizeChanged(prev, next) {
10239
- if (prev) {
10240
- toggleState(this.elementInternals, `${prev}`, false);
10241
- }
10242
- if (next) {
10243
- toggleState(this.elementInternals, `${next}`, true);
10244
- }
10260
+ swapStates(this.elementInternals, prev, next, SpinnerSize);
10245
10261
  }
10246
10262
  /**
10247
10263
  * Handles changes to appearance attribute custom states
@@ -10249,12 +10265,7 @@ class Spinner extends BaseSpinner {
10249
10265
  * @param next - the next state
10250
10266
  */
10251
10267
  appearanceChanged(prev, next) {
10252
- if (prev) {
10253
- toggleState(this.elementInternals, `${prev}`, false);
10254
- }
10255
- if (next) {
10256
- toggleState(this.elementInternals, `${next}`, true);
10257
- }
10268
+ swapStates(this.elementInternals, prev, next, SpinnerAppearance);
10258
10269
  }
10259
10270
  }
10260
10271
  __decorateClass$7([attr], Spinner.prototype, "size", 2);
@@ -10796,6 +10807,11 @@ const TablistAppearance = {
10796
10807
  subtle: "subtle",
10797
10808
  transparent: "transparent"
10798
10809
  };
10810
+ const TablistSize = {
10811
+ small: "small",
10812
+ medium: "medium",
10813
+ large: "large"
10814
+ };
10799
10815
  const TablistOrientation = Orientation;
10800
10816
 
10801
10817
  var __defProp$4 = Object.defineProperty;
@@ -10887,12 +10903,7 @@ class BaseTablist extends FASTElement {
10887
10903
  */
10888
10904
  orientationChanged(prev, next) {
10889
10905
  this.elementInternals.ariaOrientation = next ?? TablistOrientation.horizontal;
10890
- if (prev) {
10891
- toggleState(this.elementInternals, `${prev}`, false);
10892
- }
10893
- if (next) {
10894
- toggleState(this.elementInternals, `${next}`, true);
10895
- }
10906
+ swapStates(this.elementInternals, prev, next, TablistOrientation);
10896
10907
  if (this.$fastController.isConnected) {
10897
10908
  this.setTabs();
10898
10909
  }
@@ -11042,23 +11053,13 @@ class Tablist extends BaseTablist {
11042
11053
  * @internal
11043
11054
  */
11044
11055
  appearanceChanged(prev, next) {
11045
- if (prev) {
11046
- toggleState(this.elementInternals, `${prev}`, false);
11047
- }
11048
- if (next) {
11049
- toggleState(this.elementInternals, `${next}`, true);
11050
- }
11056
+ swapStates(this.elementInternals, prev, next, TablistAppearance);
11051
11057
  }
11052
11058
  /**
11053
11059
  * @internal
11054
11060
  */
11055
11061
  sizeChanged(prev, next) {
11056
- if (prev) {
11057
- toggleState(this.elementInternals, `${prev}`, false);
11058
- }
11059
- if (next) {
11060
- toggleState(this.elementInternals, `${next}`, true);
11061
- }
11062
+ swapStates(this.elementInternals, prev, next, TablistSize);
11062
11063
  }
11063
11064
  /**
11064
11065
  * calculateAnimationProperties
@@ -11182,6 +11183,11 @@ const definition$4 = Tablist.compose({
11182
11183
 
11183
11184
  definition$4.define(FluentDesignSystem.registry);
11184
11185
 
11186
+ const TextAreaSize = {
11187
+ small: "small",
11188
+ medium: "medium",
11189
+ large: "large"
11190
+ };
11185
11191
  const TextAreaAppearance = {
11186
11192
  outline: "outline",
11187
11193
  filledLighter: "filled-lighter",
@@ -11270,13 +11276,8 @@ class BaseTextArea extends FASTElement {
11270
11276
  }
11271
11277
  }
11272
11278
  resizeChanged(prev, next) {
11273
- if (prev) {
11274
- toggleState(this.elementInternals, `resize-${prev}`, false);
11275
- }
11276
- if (next) {
11277
- toggleState(this.elementInternals, `resize-${next}`, true);
11278
- }
11279
- toggleState(this.elementInternals, `resize`, [TextAreaResize.both, TextAreaResize.horizontal, TextAreaResize.vertical].includes(this.resize));
11279
+ swapStates(this.elementInternals, prev, next, TextAreaResize, "resize-");
11280
+ toggleState(this.elementInternals, "resize", hasMatchingState(TextAreaResize, next) && next !== TextAreaResize.none);
11280
11281
  }
11281
11282
  /**
11282
11283
  * The length of the current value.
@@ -11630,25 +11631,18 @@ class TextArea extends BaseTextArea {
11630
11631
  });
11631
11632
  }
11632
11633
  appearanceChanged(prev, next) {
11633
- if (prev) {
11634
- toggleState(this.elementInternals, `${prev}`, false);
11635
- }
11636
- if (!next || !Array.from(Object.values(TextAreaAppearance)).includes(next)) {
11637
- toggleState(this.elementInternals, TextAreaAppearance.outline, true);
11634
+ toggleState(this.elementInternals, prev, false);
11635
+ if (hasMatchingState(TextAreaAppearance, next)) {
11636
+ toggleState(this.elementInternals, next, true);
11638
11637
  } else {
11639
- toggleState(this.elementInternals, `${next}`, true);
11638
+ this.appearance = TextAreaAppearance.outline;
11640
11639
  }
11641
11640
  }
11642
11641
  blockChanged() {
11643
11642
  toggleState(this.elementInternals, "block", this.block);
11644
11643
  }
11645
11644
  sizeChanged(prev, next) {
11646
- if (prev) {
11647
- toggleState(this.elementInternals, `${prev}`, false);
11648
- }
11649
- if (next) {
11650
- toggleState(this.elementInternals, `${next}`, true);
11651
- }
11645
+ swapStates(this.elementInternals, prev, next, TextAreaSize);
11652
11646
  }
11653
11647
  /**
11654
11648
  * @internal
@@ -11725,6 +11719,17 @@ const definition$3 = TextArea.compose({
11725
11719
 
11726
11720
  definition$3.define(FluentDesignSystem.registry);
11727
11721
 
11722
+ const TextInputControlSize = {
11723
+ small: "small",
11724
+ medium: "medium",
11725
+ large: "large"
11726
+ };
11727
+ const TextInputAppearance = {
11728
+ outline: "outline",
11729
+ underline: "underline",
11730
+ filledLighter: "filled-lighter",
11731
+ filledDarker: "filled-darker"
11732
+ };
11728
11733
  const TextInputType = {
11729
11734
  email: "email",
11730
11735
  password: "password",
@@ -12109,12 +12114,7 @@ class TextInput extends BaseTextInput {
12109
12114
  * @param next - the next state
12110
12115
  */
12111
12116
  appearanceChanged(prev, next) {
12112
- if (prev) {
12113
- toggleState(this.elementInternals, `${prev}`, false);
12114
- }
12115
- if (next) {
12116
- toggleState(this.elementInternals, `${next}`, true);
12117
- }
12117
+ swapStates(this.elementInternals, prev, next, TextInputAppearance);
12118
12118
  }
12119
12119
  /**
12120
12120
  * Handles changes to `control-size` attribute custom states
@@ -12122,12 +12122,7 @@ class TextInput extends BaseTextInput {
12122
12122
  * @param next - the next state
12123
12123
  */
12124
12124
  controlSizeChanged(prev, next) {
12125
- if (prev) {
12126
- toggleState(this.elementInternals, `${prev}`, false);
12127
- }
12128
- if (next) {
12129
- toggleState(this.elementInternals, `${next}`, true);
12130
- }
12125
+ swapStates(this.elementInternals, prev, next, TextInputControlSize);
12131
12126
  }
12132
12127
  }
12133
12128
  __decorateClass$2([attr], TextInput.prototype, "appearance", 2);
@@ -12160,6 +12155,36 @@ const definition$2 = TextInput.compose({
12160
12155
 
12161
12156
  definition$2.define(FluentDesignSystem.registry);
12162
12157
 
12158
+ const TextSize = {
12159
+ _100: "100",
12160
+ _200: "200",
12161
+ _300: "300",
12162
+ _400: "400",
12163
+ _500: "500",
12164
+ _600: "600",
12165
+ _700: "700",
12166
+ _800: "800",
12167
+ _900: "900",
12168
+ _1000: "1000"
12169
+ };
12170
+ const TextFont = {
12171
+ base: "base",
12172
+ numeric: "numeric",
12173
+ monospace: "monospace"
12174
+ };
12175
+ const TextWeight = {
12176
+ medium: "medium",
12177
+ regular: "regular",
12178
+ semibold: "semibold",
12179
+ bold: "bold"
12180
+ };
12181
+ const TextAlign = {
12182
+ start: "start",
12183
+ end: "end",
12184
+ center: "center",
12185
+ justify: "justify"
12186
+ };
12187
+
12163
12188
  var __defProp$1 = Object.defineProperty;
12164
12189
  var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
12165
12190
  var __decorateClass$1 = (decorators, target, key, kind) => {
@@ -12190,12 +12215,7 @@ class Text extends FASTElement {
12190
12215
  * @param next - the next state
12191
12216
  */
12192
12217
  sizeChanged(prev, next) {
12193
- if (prev) {
12194
- toggleState(this.elementInternals, `size-${prev}`, false);
12195
- }
12196
- if (next) {
12197
- toggleState(this.elementInternals, `size-${next}`, true);
12198
- }
12218
+ swapStates(this.elementInternals, prev, next, TextSize, "size-");
12199
12219
  }
12200
12220
  /**
12201
12221
  * Handles changes to font attribute custom states
@@ -12203,12 +12223,7 @@ class Text extends FASTElement {
12203
12223
  * @param next - the next state
12204
12224
  */
12205
12225
  fontChanged(prev, next) {
12206
- if (prev) {
12207
- toggleState(this.elementInternals, prev, false);
12208
- }
12209
- if (next) {
12210
- toggleState(this.elementInternals, next, true);
12211
- }
12226
+ swapStates(this.elementInternals, prev, next, TextFont);
12212
12227
  }
12213
12228
  /**
12214
12229
  * Handles changes to weight attribute custom states
@@ -12216,12 +12231,7 @@ class Text extends FASTElement {
12216
12231
  * @param next - the next state
12217
12232
  */
12218
12233
  weightChanged(prev, next) {
12219
- if (prev) {
12220
- toggleState(this.elementInternals, prev, false);
12221
- }
12222
- if (next) {
12223
- toggleState(this.elementInternals, next, true);
12224
- }
12234
+ swapStates(this.elementInternals, prev, next, TextWeight);
12225
12235
  }
12226
12236
  /**
12227
12237
  * Handles changes to align attribute custom states
@@ -12229,12 +12239,7 @@ class Text extends FASTElement {
12229
12239
  * @param next - the next state
12230
12240
  */
12231
12241
  alignChanged(prev, next) {
12232
- if (prev) {
12233
- toggleState(this.elementInternals, prev, false);
12234
- }
12235
- if (next) {
12236
- toggleState(this.elementInternals, next, true);
12237
- }
12242
+ swapStates(this.elementInternals, prev, next, TextAlign);
12238
12243
  }
12239
12244
  connectedCallback() {
12240
12245
  super.connectedCallback();