@vonage/vivid 4.10.0 → 4.11.0

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 (90) hide show
  1. package/custom-elements.json +9103 -6572
  2. package/lib/badge/badge.d.ts +1 -1
  3. package/lib/breadcrumb-item/breadcrumb-item.d.ts +1 -1
  4. package/lib/button/button.d.ts +1 -1
  5. package/lib/checkbox/checkbox.d.ts +5 -3
  6. package/lib/checkbox/checkbox.form-associated.d.ts +10 -0
  7. package/lib/enums.d.ts +1 -0
  8. package/lib/fab/fab.d.ts +1 -1
  9. package/lib/file-picker/file-picker.d.ts +3 -0
  10. package/lib/slider/slider.d.ts +30 -6
  11. package/lib/slider/slider.form-associated.d.ts +10 -0
  12. package/lib/split-button/split-button.d.ts +1 -1
  13. package/lib/tabs/tabs.d.ts +1 -0
  14. package/package.json +1 -1
  15. package/shared/aria-global2.cjs +93 -0
  16. package/shared/aria-global2.js +91 -0
  17. package/shared/breadcrumb-item.cjs +2 -89
  18. package/shared/breadcrumb-item.js +1 -88
  19. package/shared/definition11.cjs +200 -4
  20. package/shared/definition11.js +198 -3
  21. package/shared/definition15.cjs +34 -91
  22. package/shared/definition15.js +35 -92
  23. package/shared/definition16.cjs +9 -7
  24. package/shared/definition16.js +9 -7
  25. package/shared/definition20.cjs +1 -1
  26. package/shared/definition20.js +1 -1
  27. package/shared/definition21.cjs +1 -1
  28. package/shared/definition21.js +1 -1
  29. package/shared/definition24.cjs +156 -2
  30. package/shared/definition24.js +157 -3
  31. package/shared/definition25.cjs +106 -56
  32. package/shared/definition25.js +106 -56
  33. package/shared/definition35.cjs +2 -2
  34. package/shared/definition35.js +2 -2
  35. package/shared/definition37.cjs +1 -1
  36. package/shared/definition37.js +1 -1
  37. package/shared/definition4.cjs +5 -6
  38. package/shared/definition4.js +1 -2
  39. package/shared/definition40.cjs +11 -4
  40. package/shared/definition40.js +8 -1
  41. package/shared/definition42.cjs +3 -22
  42. package/shared/definition42.js +2 -21
  43. package/shared/definition43.cjs +1 -2
  44. package/shared/definition43.js +1 -2
  45. package/shared/definition44.js +1 -1
  46. package/shared/definition47.cjs +369 -502
  47. package/shared/definition47.js +370 -503
  48. package/shared/definition5.cjs +4 -4
  49. package/shared/definition5.js +1 -1
  50. package/shared/definition51.cjs +1 -1
  51. package/shared/definition51.js +1 -1
  52. package/shared/definition52.cjs +63 -26
  53. package/shared/definition52.js +63 -26
  54. package/shared/definition56.cjs +41 -43
  55. package/shared/definition56.js +41 -43
  56. package/shared/definition57.cjs +1 -1
  57. package/shared/definition57.js +1 -1
  58. package/shared/definition64.cjs +242 -79
  59. package/shared/definition64.js +242 -79
  60. package/shared/definition7.cjs +1 -1
  61. package/shared/definition7.js +1 -1
  62. package/shared/definition8.cjs +1 -1
  63. package/shared/definition8.js +1 -1
  64. package/shared/enums.cjs +1 -0
  65. package/shared/enums.js +1 -0
  66. package/shared/form-associated.js +1 -1
  67. package/shared/{patterns → foundation/anchor}/anchor.d.ts +1 -1
  68. package/shared/foundation/button/button.d.ts +27 -0
  69. package/shared/foundation/button/button.template.d.ts +4 -0
  70. package/shared/foundation/button/index.d.ts +2 -0
  71. package/shared/foundation/patterns/index.d.ts +1 -0
  72. package/shared/index.cjs +22 -2
  73. package/shared/index.js +22 -2
  74. package/shared/key-codes2.js +1 -1
  75. package/shared/presentationDate.cjs +4328 -4042
  76. package/shared/presentationDate.js +4327 -4041
  77. package/shared/slider.template.cjs +23 -1
  78. package/shared/slider.template.js +21 -2
  79. package/styles/core/all.css +1 -1
  80. package/styles/core/theme.css +1 -1
  81. package/styles/core/typography.css +1 -1
  82. package/styles/tokens/theme-dark.css +4 -4
  83. package/styles/tokens/theme-light.css +4 -4
  84. package/styles/tokens/vivid-2-compat.css +1 -1
  85. package/vivid.api.json +52 -4
  86. package/shared/aria2.cjs +0 -11
  87. package/shared/aria2.js +0 -9
  88. package/shared/button.cjs +0 -202
  89. package/shared/button.js +0 -200
  90. /package/shared/{patterns → foundation/patterns}/aria-global.d.ts +0 -0
@@ -1,102 +1,24 @@
1
- import { F as FoundationElement, _ as __decorate, a as attr, o as observable, h as html, r as registerFactory } from './index.js';
1
+ import { F as FoundationElement, a as attr, o as observable, h as html, r as registerFactory } from './index.js';
2
2
  import { a as iconRegistries } from './definition27.js';
3
3
  import { a as applyMixinsWithObservables } from './applyMixinsWithObservables.js';
4
4
  import { C as CheckableFormAssociated } from './form-associated.js';
5
- import { a as keySpace$1 } from './key-codes.js';
6
5
  import { e as errorText, f as formElements, F as FormElementSuccessText, a as FormElementHelperText, g as getFeedbackTemplate } from './form-elements.js';
7
6
  import { I as Icon } from './icon.js';
8
7
  import { w as when } from './when.js';
9
8
  import { s as slotted } from './slotted.js';
10
9
  import { c as classNames } from './class-names.js';
11
10
 
11
+ const styles = ":host{display:inline-flex;flex-direction:column;vertical-align:middle}:host([disabled]){cursor:not-allowed}.base.connotation-cta{--_connotation-color-primary: var(--vvd-checkbox-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-checkbox-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-checkbox-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-fierce: var(--vvd-checkbox-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-intermediate: var(--vvd-checkbox-cta-intermediate, var(--vvd-color-cta-500));--_connotation-color-firm: var(--vvd-checkbox-cta-firm, var(--vvd-color-cta-600))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-checkbox-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-checkbox-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-checkbox-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-fierce: var(--vvd-checkbox-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-intermediate: var(--vvd-checkbox-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-firm: var(--vvd-checkbox-accent-firm, var(--vvd-color-canvas-text))}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-intermediate)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-fierce)}.base:where(.checked,:checked):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: var(--_connotation-color-primary)}.base:where(.checked,:checked):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary-increment);--_appearance-color-outline: var(--_connotation-color-primary-increment)}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base{display:inline-flex;align-items:center;gap:8px;vertical-align:middle}.base:focus-visible{outline:none}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{pointer-events:none}.control{position:relative;display:flex;flex-shrink:0;align-items:center;justify-content:center;border-radius:4px;background-color:var(--_appearance-color-fill);block-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)));box-shadow:inset 0 0 0 2px var(--_appearance-color-outline);color:var(--_appearance-color-text);inline-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}.base:focus-visible .control{--focus-inset: -3px;--focus-stroke-gap-color: transparent}.base:focus-visible .control:before{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));position:absolute;display:block;border-radius:2px;block-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)));content:\"\";inline-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}.base.error:not(.checked) .control{background-color:var(--vvd-color-alert-50);box-shadow:inset 0 0 0 2px var(--vvd-color-alert-500)}.indicator{font-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)) - 4px)}.base:not(.checked) .indicator.checkmark{display:none}.base.checked .indicator.minus,.base:not(.indeterminate) .indicator.minus{display:none}label{display:flex;flex-wrap:wrap;align-items:center;color:var(--vvd-color-canvas-text);column-gap:4px;cursor:pointer;font:var(--vvd-typography-base)}.hide-label label{display:none}.icon{font-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2))*.6);line-height:1}.message{margin-block-start:4px;--_low-ink-color: var(--vvd-color-neutral-600)}";
12
+
12
13
  class _Checkbox extends FoundationElement {
13
14
  }
14
- /**
15
- * A form-associated base class for the {@link @microsoft/fast-foundation#(Checkbox:class)} component.
16
- *
17
- * @internal
18
- */
19
15
  class FormAssociatedCheckbox extends CheckableFormAssociated(_Checkbox) {
20
- constructor() {
21
- super(...arguments);
22
- this.proxy = document.createElement("input");
23
- }
16
+ constructor() {
17
+ super(...arguments);
18
+ this.proxy = document.createElement("input");
19
+ }
24
20
  }
25
21
 
26
- /**
27
- * A Checkbox Custom HTML Element.
28
- * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#checkbox | ARIA checkbox }.
29
- *
30
- * @slot checked-indicator - The checked indicator
31
- * @slot indeterminate-indicator - The indeterminate indicator
32
- * @slot - The default slot for the label
33
- * @csspart control - The element representing the visual checkbox control
34
- * @csspart label - The label
35
- * @fires change - Emits a custom change event when the checked state changes
36
- *
37
- * @public
38
- */
39
- let Checkbox$1 = class Checkbox extends FormAssociatedCheckbox {
40
- constructor() {
41
- super();
42
- /**
43
- * The element's value to be included in form submission when checked.
44
- * Default to "on" to reach parity with input[type="checkbox"]
45
- *
46
- * @internal
47
- */
48
- this.initialValue = "on";
49
- /**
50
- * The indeterminate state of the control
51
- */
52
- this.indeterminate = false;
53
- /**
54
- * @internal
55
- */
56
- this.keypressHandler = (e) => {
57
- if (this.readOnly) {
58
- return;
59
- }
60
- switch (e.key) {
61
- case keySpace$1:
62
- if (this.indeterminate) {
63
- this.indeterminate = false;
64
- }
65
- this.checked = !this.checked;
66
- break;
67
- }
68
- };
69
- /**
70
- * @internal
71
- */
72
- this.clickHandler = (e) => {
73
- if (!this.disabled && !this.readOnly) {
74
- if (this.indeterminate) {
75
- this.indeterminate = false;
76
- }
77
- this.checked = !this.checked;
78
- }
79
- };
80
- this.proxy.setAttribute("type", "checkbox");
81
- }
82
- readOnlyChanged() {
83
- if (this.proxy instanceof HTMLInputElement) {
84
- this.proxy.readOnly = this.readOnly;
85
- }
86
- }
87
- };
88
- __decorate([
89
- attr({ attribute: "readonly", mode: "boolean" })
90
- ], Checkbox$1.prototype, "readOnly", void 0);
91
- __decorate([
92
- observable
93
- ], Checkbox$1.prototype, "defaultSlottedNodes", void 0);
94
- __decorate([
95
- observable
96
- ], Checkbox$1.prototype, "indeterminate", void 0);
97
-
98
- const styles = ":host{display:inline-flex;flex-direction:column;vertical-align:middle}:host([disabled]){cursor:not-allowed}.base.connotation-cta{--_connotation-color-primary: var(--vvd-checkbox-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-checkbox-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-checkbox-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-fierce: var(--vvd-checkbox-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-intermediate: var(--vvd-checkbox-cta-intermediate, var(--vvd-color-cta-500));--_connotation-color-firm: var(--vvd-checkbox-cta-firm, var(--vvd-color-cta-600))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-checkbox-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-checkbox-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-checkbox-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-fierce: var(--vvd-checkbox-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-intermediate: var(--vvd-checkbox-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-firm: var(--vvd-checkbox-accent-firm, var(--vvd-color-canvas-text))}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-intermediate)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-fierce)}.base:where(.checked,:checked):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: var(--_connotation-color-primary)}.base:where(.checked,:checked):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary-increment);--_appearance-color-outline: var(--_connotation-color-primary-increment)}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base{display:inline-flex;align-items:center;gap:8px;vertical-align:middle}.base:focus-visible{outline:none}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{pointer-events:none}.control{position:relative;display:flex;flex-shrink:0;align-items:center;justify-content:center;border-radius:4px;background-color:var(--_appearance-color-fill);block-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)));box-shadow:inset 0 0 0 2px var(--_appearance-color-outline);color:var(--_appearance-color-text);inline-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}.base:focus-visible .control{--focus-inset: -3px;--focus-stroke-gap-color: transparent}.base:focus-visible .control:before{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));position:absolute;display:block;border-radius:2px;block-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)));content:\"\";inline-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}.base.error:not(.checked) .control{background-color:var(--vvd-color-alert-50);box-shadow:inset 0 0 0 2px var(--vvd-color-alert-500)}.indicator{font-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2)) - 4px)}.base:not(.checked) .indicator.checkmark{display:none}.base.checked .indicator.minus,.base:not(.indeterminate) .indicator.minus{display:none}label{display:flex;flex-wrap:wrap;align-items:center;color:var(--vvd-color-canvas-text);column-gap:4px;cursor:pointer;font:var(--vvd-typography-base)}.hide-label label{display:none}.icon{font-size:calc(1px*(20 + 4*clamp(-1,var(--vvd-size-density, 0),2))*.6);line-height:1}.message{margin-block-start:4px;--_low-ink-color: var(--vvd-color-neutral-600)}";
99
-
100
22
  var __defProp = Object.defineProperty;
101
23
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
102
24
  var __decorateClass = (decorators, target, key, kind) => {
@@ -108,17 +30,24 @@ var __decorateClass = (decorators, target, key, kind) => {
108
30
  return result;
109
31
  };
110
32
  const keySpace = " ";
111
- let Checkbox = class extends Checkbox$1 {
33
+ let Checkbox = class extends FormAssociatedCheckbox {
112
34
  constructor() {
113
- super(...arguments);
35
+ super();
114
36
  this.ariaLabel = null;
115
37
  this.tabindex = null;
116
38
  this.ariaChecked = null;
117
39
  /**
118
- * !remove method as will be implemented by fast-foundation in version after 2.46.9
40
+ * The element's value to be included in form submission when checked.
41
+ * Default to "on" to reach parity with input[type="checkbox"]
119
42
  *
120
43
  * @internal
121
44
  */
45
+ this.initialValue = "on";
46
+ this.defaultSlottedNodes = [];
47
+ this.indeterminate = false;
48
+ /**
49
+ * @internal
50
+ */
122
51
  this.keypressHandler = (event) => {
123
52
  if (event.target instanceof HTMLAnchorElement) {
124
53
  return true;
@@ -136,8 +65,6 @@ let Checkbox = class extends Checkbox$1 {
136
65
  return false;
137
66
  };
138
67
  /**
139
- * !remove method as will be implemented by fast-foundation in version after 2.46.9
140
- *
141
68
  * @internal
142
69
  */
143
70
  this.clickHandler = (event) => {
@@ -152,9 +79,16 @@ let Checkbox = class extends Checkbox$1 {
152
79
  }
153
80
  return false;
154
81
  };
82
+ this.proxy.setAttribute("type", "checkbox");
155
83
  }
156
- indeterminateChanged(_, next) {
157
- this.checked = !next;
84
+ // Map to proxy element
85
+ /**
86
+ * @internal
87
+ */
88
+ readOnlyChanged() {
89
+ if (this.proxy instanceof HTMLInputElement) {
90
+ this.proxy.readOnly = this.readOnly;
91
+ }
158
92
  }
159
93
  ariaCheckedChanged() {
160
94
  if (this.ariaChecked === "mixed") {
@@ -187,6 +121,15 @@ __decorateClass([
187
121
  __decorateClass([
188
122
  attr({ attribute: "aria-checked" })
189
123
  ], Checkbox.prototype, "ariaChecked", 2);
124
+ __decorateClass([
125
+ attr({ attribute: "readonly", mode: "boolean" })
126
+ ], Checkbox.prototype, "readOnly", 2);
127
+ __decorateClass([
128
+ observable
129
+ ], Checkbox.prototype, "defaultSlottedNodes", 2);
130
+ __decorateClass([
131
+ observable
132
+ ], Checkbox.prototype, "indeterminate", 2);
190
133
  __decorateClass([
191
134
  observable
192
135
  ], Checkbox.prototype, "slottedContent", 2);
@@ -217,18 +217,20 @@ let Combobox$1 = class Combobox extends FormAssociatedCombobox {
217
217
  * @internal
218
218
  */
219
219
  clickHandler(e) {
220
- if (this.disabled) {
220
+ const captured = e.target.closest(`option,[role=option]`);
221
+ if (this.disabled || (captured === null || captured === void 0 ? void 0 : captured.disabled)) {
221
222
  return;
222
223
  }
223
224
  if (this.open) {
224
- const captured = e.target.closest(`option,[role=option]`);
225
- if (!captured || captured.disabled) {
225
+ if (e.composedPath()[0] === this.control) {
226
226
  return;
227
227
  }
228
- this.selectedOptions = [captured];
229
- this.control.value = captured.text;
230
- this.clearSelectionRange();
231
- this.updateValue(true);
228
+ if (captured) {
229
+ this.selectedOptions = [captured];
230
+ this.control.value = captured.text;
231
+ this.clearSelectionRange();
232
+ this.updateValue(true);
233
+ }
232
234
  }
233
235
  this.open = !this.open;
234
236
  if (this.open) {
@@ -215,18 +215,20 @@ let Combobox$1 = class Combobox extends FormAssociatedCombobox {
215
215
  * @internal
216
216
  */
217
217
  clickHandler(e) {
218
- if (this.disabled) {
218
+ const captured = e.target.closest(`option,[role=option]`);
219
+ if (this.disabled || (captured === null || captured === void 0 ? void 0 : captured.disabled)) {
219
220
  return;
220
221
  }
221
222
  if (this.open) {
222
- const captured = e.target.closest(`option,[role=option]`);
223
- if (!captured || captured.disabled) {
223
+ if (e.composedPath()[0] === this.control) {
224
224
  return;
225
225
  }
226
- this.selectedOptions = [captured];
227
- this.control.value = captured.text;
228
- this.clearSelectionRange();
229
- this.updateValue(true);
226
+ if (captured) {
227
+ this.selectedOptions = [captured];
228
+ this.control.value = captured.text;
229
+ this.clearSelectionRange();
230
+ this.updateValue(true);
231
+ }
230
232
  }
231
233
  this.open = !this.open;
232
234
  if (this.open) {
@@ -225,7 +225,7 @@ function renderDialButton(buttonTag) {
225
225
  </${buttonTag}>`;
226
226
  }
227
227
  const DialPadTemplate = (context) => {
228
- const buttonTag = context.tagFor(definition.Button);
228
+ const buttonTag = context.tagFor(definition.Button$1);
229
229
  const iconTag = context.tagFor(icon.Icon);
230
230
  const textFieldTag = context.tagFor(definition$1.TextField);
231
231
  return index.html` <div class="${getClasses}">
@@ -1,5 +1,5 @@
1
1
  import { F as FoundationElement, a as attr, h as html, r as registerFactory } from './index.js';
2
- import { B as Button, a as buttonRegistries } from './definition11.js';
2
+ import { c as Button, a as buttonRegistries } from './definition11.js';
3
3
  import { T as TextField, a as textFieldRegistries } from './definition56.js';
4
4
  import { a as applyMixins } from './apply-mixins.js';
5
5
  import { L as Localized } from './localized.js';
@@ -286,7 +286,7 @@ function renderDismissButton(buttonTag) {
286
286
  const DialogTemplate = (context) => {
287
287
  const elevationTag = context.tagFor(definition.Elevation);
288
288
  const iconTag = context.tagFor(icon$1.Icon);
289
- const buttonTag = context.tagFor(definition$1.Button);
289
+ const buttonTag = context.tagFor(definition$1.Button$1);
290
290
  return index.html`
291
291
  <${elevationTag} dp="8">
292
292
  <dialog class="${getClasses}"
@@ -1,6 +1,6 @@
1
1
  import { F as FoundationElement, a as attr, o as observable, h as html, r as registerFactory } from './index.js';
2
2
  import { a as iconRegistries } from './definition27.js';
3
- import { B as Button, a as buttonRegistries } from './definition11.js';
3
+ import { c as Button, a as buttonRegistries } from './definition11.js';
4
4
  import { E as Elevation, e as elevationRegistries } from './definition63.js';
5
5
  import { h as handleEscapeKeyAndStopPropogation } from './index2.js';
6
6
  import { a as applyMixins } from './apply-mixins.js';
@@ -3,13 +3,167 @@
3
3
  const index = require('./index.cjs');
4
4
  const definition = require('./definition27.cjs');
5
5
  const affix = require('./affix.cjs');
6
- const button = require('./button.cjs');
6
+ const formAssociated = require('./form-associated.cjs');
7
+ const ariaGlobal = require('./aria-global2.cjs');
7
8
  const applyMixins = require('./apply-mixins.cjs');
8
9
  const ref = require('./ref.cjs');
9
10
  const classNames = require('./class-names.cjs');
10
11
 
11
12
  const styles = ".control.connotation-accent{--_connotation-color-primary: var(--vvd-fab-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-fab-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-fab-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-contrast: var(--vvd-fab-accent-contrast, var(--vvd-color-neutral-800));--_connotation-color-fierce: var(--vvd-fab-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-firm: var(--vvd-fab-accent-firm, var(--vvd-color-canvas-text))}.control.connotation-cta{--_connotation-color-primary: var(--vvd-fab-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-fab-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-fab-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-contrast: var(--vvd-fab-cta-contrast, var(--vvd-color-cta-800));--_connotation-color-fierce: var(--vvd-fab-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-firm: var(--vvd-fab-cta-firm, var(--vvd-color-cta-600))}.control.connotation-announcement{--_connotation-color-primary: var(--vvd-fab-announcement-primary, var(--vvd-color-announcement-500));--_connotation-color-primary-text: var(--vvd-fab-announcement-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-fab-announcement-primary-increment, var(--vvd-color-announcement-600));--_connotation-color-contrast: var(--vvd-fab-announcement-contrast, var(--vvd-color-announcement-800));--_connotation-color-fierce: var(--vvd-fab-announcement-fierce, var(--vvd-color-announcement-700));--_connotation-color-firm: var(--vvd-fab-announcement-firm, var(--vvd-color-announcement-600))}.control{--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.control:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary-increment);--_appearance-color-outline: transparent}.control:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.control:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-fierce);--_appearance-color-outline: transparent}.control{--_fab-inline-padding: 12px;display:inline-flex;box-sizing:border-box;align-items:center;border:0 none;border-radius:var(--_fab-border-radius);background:var(--_appearance-color-fill, var(--_elevation-fill));block-size:var(--_fab-block-size);color:var(--_appearance-color-text, var(--vvd-color-canvas-text));column-gap:var(--fab-icon-gap);filter:var(--_elevation-shadow);font:var(--vvd-typography-base-bold);padding-inline:var(--_fab-inline-padding);transition:background-color .15s linear,filter .15s linear;vertical-align:middle}.control:not(.connotation-accent,.connotation-cta){--focus-stroke-gap-color: transparent}.control:focus-visible{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}@supports (user-select: none){.control{user-select:none}}.control.size-expanded{--_fab-border-radius: 40px;--_fab-block-size: calc(1px*(56 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_fab-inline-padding: 20px}.control.size-condensed{--_fab-border-radius: 20px;--_fab-block-size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;font:var(--vvd-typography-base-condensed-bold)}.control.size-condensed vwc-icon{font-size:calc(1px*(32 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2)}.control:not(.size-expanded,.size-condensed){--_fab-border-radius: 24px;--_fab-block-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control:not(.size-condensed){font:var(--vvd-typography-base-bold)}.control.icon-only{--_fab-inline-padding: 0;border-radius:50%;place-content:center}@supports (aspect-ratio: 1){.control.icon-only{aspect-ratio:1}}@supports not (aspect-ratio: 1){.control.icon-only{inline-size:var(--_fab-block-size)}}.control:not(.icon-only){--fab-icon-gap: 10px}.control:disabled{--_elevation-fill: var(--vvd-color-surface-nonedp);--_elevation-shadow: var(--vvd-shadow-surface-nonedp);cursor:not-allowed}.control:not(:disabled){--_elevation-fill: var(--vvd-color-surface-4dp);--_elevation-shadow: var(--vvd-shadow-surface-4dp);cursor:pointer}.control:not(:disabled):hover{--_elevation-fill: var(--vvd-color-surface-12dp);--_elevation-shadow: var(--vvd-shadow-surface-12dp)}.control:not(:disabled):active{--_elevation-fill: var(--vvd-color-surface-24dp);--_elevation-shadow: var(--vvd-shadow-surface-24dp)}slot[name=icon]{line-height:1}.icon-trailing slot[name=icon]{display:inline-block;order:1}.control.size-extended slot[name=icon]{font-size:calc(calc(1px*(56 + 4*clamp(-1,var(--vvd-size-density, 0),2))) / 2.3333)}.control:not(.size-extended) slot[name=icon]{font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2)}";
12
13
 
14
+ class _FoundationButton extends index.FoundationElement {
15
+ }
16
+ class FormAssociatedButton extends formAssociated.FormAssociated(_FoundationButton) {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.proxy = document.createElement("input");
20
+ }
21
+ }
22
+
23
+ var __defProp$1 = Object.defineProperty;
24
+ var __decorateClass$1 = (decorators, target, key, kind) => {
25
+ var result = void 0 ;
26
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
27
+ if (decorator = decorators[i])
28
+ result = (decorator(target, key, result) ) || result;
29
+ if (result) __defProp$1(target, key, result);
30
+ return result;
31
+ };
32
+ class FoundationButton extends FormAssociatedButton {
33
+ constructor() {
34
+ super(...arguments);
35
+ /**
36
+ * Prevent events to propagate if disabled
37
+ * @internal
38
+ */
39
+ this.handleClick = (e) => {
40
+ if (this.disabled) {
41
+ e.stopPropagation();
42
+ }
43
+ };
44
+ /**
45
+ * Submits the parent form
46
+ */
47
+ this.handleSubmission = () => {
48
+ if (!this.form) {
49
+ return;
50
+ }
51
+ this.attachProxy();
52
+ this.form.requestSubmit(this.proxy);
53
+ this.detachProxy();
54
+ };
55
+ /**
56
+ * Resets the parent form
57
+ */
58
+ this.handleFormReset = () => {
59
+ this.form?.reset();
60
+ };
61
+ }
62
+ // @ts-expect-error Function is delcared but not used
63
+ formactionChanged() {
64
+ if (this.proxy instanceof HTMLInputElement) {
65
+ this.proxy.formAction = this.formaction;
66
+ }
67
+ }
68
+ // @ts-expect-error Function is delcared but not used
69
+ formenctypeChanged() {
70
+ if (this.proxy instanceof HTMLInputElement) {
71
+ this.proxy.formEnctype = this.formenctype;
72
+ }
73
+ }
74
+ // @ts-expect-error Function is delcared but not used
75
+ formmethodChanged() {
76
+ if (this.proxy instanceof HTMLInputElement) {
77
+ this.proxy.formMethod = this.formmethod;
78
+ }
79
+ }
80
+ // @ts-expect-error Function is delcared but not used
81
+ formnovalidateChanged() {
82
+ if (this.proxy instanceof HTMLInputElement) {
83
+ this.proxy.formNoValidate = this.formnovalidate;
84
+ }
85
+ }
86
+ // @ts-expect-error Function is delcared but not used
87
+ formtargetChanged() {
88
+ if (this.proxy instanceof HTMLInputElement) {
89
+ this.proxy.formTarget = this.formtarget;
90
+ }
91
+ }
92
+ // @ts-expect-error Function is delcared but not used
93
+ typeChanged(previous, next) {
94
+ if (this.proxy instanceof HTMLInputElement) {
95
+ this.proxy.type = this.type;
96
+ }
97
+ next === "submit" && this.addEventListener("click", this.handleSubmission);
98
+ previous === "submit" && this.removeEventListener("click", this.handleSubmission);
99
+ next === "reset" && this.addEventListener("click", this.handleFormReset);
100
+ previous === "reset" && this.removeEventListener("click", this.handleFormReset);
101
+ }
102
+ /** {@inheritDoc (FormAssociated:interface).validate} */
103
+ validate() {
104
+ super.validate(this.control);
105
+ }
106
+ /**
107
+ * @internal
108
+ */
109
+ connectedCallback() {
110
+ super.connectedCallback();
111
+ this.proxy.setAttribute("type", this.type);
112
+ const elements = Array.from(this.control.children);
113
+ if (elements) {
114
+ elements.forEach((span) => {
115
+ span.addEventListener("click", this.handleClick);
116
+ });
117
+ }
118
+ }
119
+ /**
120
+ * @internal
121
+ */
122
+ disconnectedCallback() {
123
+ super.disconnectedCallback();
124
+ const elements = Array.from(this.control.children);
125
+ if (elements) {
126
+ elements.forEach((span) => {
127
+ span.removeEventListener("click", this.handleClick);
128
+ });
129
+ }
130
+ }
131
+ }
132
+ __decorateClass$1([
133
+ index.attr({ mode: "boolean" })
134
+ ], FoundationButton.prototype, "autofocus");
135
+ __decorateClass$1([
136
+ index.attr({ attribute: "form" })
137
+ ], FoundationButton.prototype, "formId");
138
+ __decorateClass$1([
139
+ index.attr
140
+ ], FoundationButton.prototype, "formaction");
141
+ __decorateClass$1([
142
+ index.attr
143
+ ], FoundationButton.prototype, "formenctype");
144
+ __decorateClass$1([
145
+ index.attr
146
+ ], FoundationButton.prototype, "formmethod");
147
+ __decorateClass$1([
148
+ index.attr({ mode: "boolean" })
149
+ ], FoundationButton.prototype, "formnovalidate");
150
+ __decorateClass$1([
151
+ index.attr
152
+ ], FoundationButton.prototype, "formtarget");
153
+ __decorateClass$1([
154
+ index.attr
155
+ ], FoundationButton.prototype, "type");
156
+ class DelegatesARIAButton {
157
+ }
158
+ __decorateClass$1([
159
+ index.attr({ attribute: "aria-expanded" })
160
+ ], DelegatesARIAButton.prototype, "ariaExpanded");
161
+ __decorateClass$1([
162
+ index.attr({ attribute: "aria-pressed" })
163
+ ], DelegatesARIAButton.prototype, "ariaPressed");
164
+ applyMixins.applyMixins(DelegatesARIAButton, ariaGlobal.ARIAGlobalStatesAndProperties);
165
+ applyMixins.applyMixins(FoundationButton, DelegatesARIAButton);
166
+
13
167
  var __defProp = Object.defineProperty;
14
168
  var __decorateClass = (decorators, target, key, kind) => {
15
169
  var result = void 0 ;
@@ -19,7 +173,7 @@ var __decorateClass = (decorators, target, key, kind) => {
19
173
  if (result) __defProp(target, key, result);
20
174
  return result;
21
175
  };
22
- class Fab extends button.Button {
176
+ class Fab extends FoundationButton {
23
177
  }
24
178
  __decorateClass([
25
179
  index.attr
@@ -1,13 +1,167 @@
1
- import { a as attr, h as html, r as registerFactory } from './index.js';
1
+ import { F as FoundationElement, a as attr, h as html, r as registerFactory } from './index.js';
2
2
  import { a as iconRegistries } from './definition27.js';
3
3
  import { b as AffixIconWithTrailing, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
4
- import { B as Button$1 } from './button.js';
4
+ import { F as FormAssociated } from './form-associated.js';
5
+ import { A as ARIAGlobalStatesAndProperties } from './aria-global2.js';
5
6
  import { a as applyMixins } from './apply-mixins.js';
6
7
  import { r as ref } from './ref.js';
7
8
  import { c as classNames } from './class-names.js';
8
9
 
9
10
  const styles = ".control.connotation-accent{--_connotation-color-primary: var(--vvd-fab-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-fab-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-fab-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-contrast: var(--vvd-fab-accent-contrast, var(--vvd-color-neutral-800));--_connotation-color-fierce: var(--vvd-fab-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-firm: var(--vvd-fab-accent-firm, var(--vvd-color-canvas-text))}.control.connotation-cta{--_connotation-color-primary: var(--vvd-fab-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-fab-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-fab-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-contrast: var(--vvd-fab-cta-contrast, var(--vvd-color-cta-800));--_connotation-color-fierce: var(--vvd-fab-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-firm: var(--vvd-fab-cta-firm, var(--vvd-color-cta-600))}.control.connotation-announcement{--_connotation-color-primary: var(--vvd-fab-announcement-primary, var(--vvd-color-announcement-500));--_connotation-color-primary-text: var(--vvd-fab-announcement-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-fab-announcement-primary-increment, var(--vvd-color-announcement-600));--_connotation-color-contrast: var(--vvd-fab-announcement-contrast, var(--vvd-color-announcement-800));--_connotation-color-fierce: var(--vvd-fab-announcement-fierce, var(--vvd-color-announcement-700));--_connotation-color-firm: var(--vvd-fab-announcement-firm, var(--vvd-color-announcement-600))}.control{--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.control:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary-increment);--_appearance-color-outline: transparent}.control:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.control:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-fierce);--_appearance-color-outline: transparent}.control{--_fab-inline-padding: 12px;display:inline-flex;box-sizing:border-box;align-items:center;border:0 none;border-radius:var(--_fab-border-radius);background:var(--_appearance-color-fill, var(--_elevation-fill));block-size:var(--_fab-block-size);color:var(--_appearance-color-text, var(--vvd-color-canvas-text));column-gap:var(--fab-icon-gap);filter:var(--_elevation-shadow);font:var(--vvd-typography-base-bold);padding-inline:var(--_fab-inline-padding);transition:background-color .15s linear,filter .15s linear;vertical-align:middle}.control:not(.connotation-accent,.connotation-cta){--focus-stroke-gap-color: transparent}.control:focus-visible{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}@supports (user-select: none){.control{user-select:none}}.control.size-expanded{--_fab-border-radius: 40px;--_fab-block-size: calc(1px*(56 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;--_fab-inline-padding: 20px}.control.size-condensed{--_fab-border-radius: 20px;--_fab-block-size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;font:var(--vvd-typography-base-condensed-bold)}.control.size-condensed vwc-icon{font-size:calc(1px*(32 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2)}.control:not(.size-expanded,.size-condensed){--_fab-border-radius: 24px;--_fab-block-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control:not(.size-condensed){font:var(--vvd-typography-base-bold)}.control.icon-only{--_fab-inline-padding: 0;border-radius:50%;place-content:center}@supports (aspect-ratio: 1){.control.icon-only{aspect-ratio:1}}@supports not (aspect-ratio: 1){.control.icon-only{inline-size:var(--_fab-block-size)}}.control:not(.icon-only){--fab-icon-gap: 10px}.control:disabled{--_elevation-fill: var(--vvd-color-surface-nonedp);--_elevation-shadow: var(--vvd-shadow-surface-nonedp);cursor:not-allowed}.control:not(:disabled){--_elevation-fill: var(--vvd-color-surface-4dp);--_elevation-shadow: var(--vvd-shadow-surface-4dp);cursor:pointer}.control:not(:disabled):hover{--_elevation-fill: var(--vvd-color-surface-12dp);--_elevation-shadow: var(--vvd-shadow-surface-12dp)}.control:not(:disabled):active{--_elevation-fill: var(--vvd-color-surface-24dp);--_elevation-shadow: var(--vvd-shadow-surface-24dp)}slot[name=icon]{line-height:1}.icon-trailing slot[name=icon]{display:inline-block;order:1}.control.size-extended slot[name=icon]{font-size:calc(calc(1px*(56 + 4*clamp(-1,var(--vvd-size-density, 0),2))) / 2.3333)}.control:not(.size-extended) slot[name=icon]{font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2)}";
10
11
 
12
+ class _FoundationButton extends FoundationElement {
13
+ }
14
+ class FormAssociatedButton extends FormAssociated(_FoundationButton) {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.proxy = document.createElement("input");
18
+ }
19
+ }
20
+
21
+ var __defProp$1 = Object.defineProperty;
22
+ var __decorateClass$1 = (decorators, target, key, kind) => {
23
+ var result = void 0 ;
24
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
25
+ if (decorator = decorators[i])
26
+ result = (decorator(target, key, result) ) || result;
27
+ if (result) __defProp$1(target, key, result);
28
+ return result;
29
+ };
30
+ class FoundationButton extends FormAssociatedButton {
31
+ constructor() {
32
+ super(...arguments);
33
+ /**
34
+ * Prevent events to propagate if disabled
35
+ * @internal
36
+ */
37
+ this.handleClick = (e) => {
38
+ if (this.disabled) {
39
+ e.stopPropagation();
40
+ }
41
+ };
42
+ /**
43
+ * Submits the parent form
44
+ */
45
+ this.handleSubmission = () => {
46
+ if (!this.form) {
47
+ return;
48
+ }
49
+ this.attachProxy();
50
+ this.form.requestSubmit(this.proxy);
51
+ this.detachProxy();
52
+ };
53
+ /**
54
+ * Resets the parent form
55
+ */
56
+ this.handleFormReset = () => {
57
+ this.form?.reset();
58
+ };
59
+ }
60
+ // @ts-expect-error Function is delcared but not used
61
+ formactionChanged() {
62
+ if (this.proxy instanceof HTMLInputElement) {
63
+ this.proxy.formAction = this.formaction;
64
+ }
65
+ }
66
+ // @ts-expect-error Function is delcared but not used
67
+ formenctypeChanged() {
68
+ if (this.proxy instanceof HTMLInputElement) {
69
+ this.proxy.formEnctype = this.formenctype;
70
+ }
71
+ }
72
+ // @ts-expect-error Function is delcared but not used
73
+ formmethodChanged() {
74
+ if (this.proxy instanceof HTMLInputElement) {
75
+ this.proxy.formMethod = this.formmethod;
76
+ }
77
+ }
78
+ // @ts-expect-error Function is delcared but not used
79
+ formnovalidateChanged() {
80
+ if (this.proxy instanceof HTMLInputElement) {
81
+ this.proxy.formNoValidate = this.formnovalidate;
82
+ }
83
+ }
84
+ // @ts-expect-error Function is delcared but not used
85
+ formtargetChanged() {
86
+ if (this.proxy instanceof HTMLInputElement) {
87
+ this.proxy.formTarget = this.formtarget;
88
+ }
89
+ }
90
+ // @ts-expect-error Function is delcared but not used
91
+ typeChanged(previous, next) {
92
+ if (this.proxy instanceof HTMLInputElement) {
93
+ this.proxy.type = this.type;
94
+ }
95
+ next === "submit" && this.addEventListener("click", this.handleSubmission);
96
+ previous === "submit" && this.removeEventListener("click", this.handleSubmission);
97
+ next === "reset" && this.addEventListener("click", this.handleFormReset);
98
+ previous === "reset" && this.removeEventListener("click", this.handleFormReset);
99
+ }
100
+ /** {@inheritDoc (FormAssociated:interface).validate} */
101
+ validate() {
102
+ super.validate(this.control);
103
+ }
104
+ /**
105
+ * @internal
106
+ */
107
+ connectedCallback() {
108
+ super.connectedCallback();
109
+ this.proxy.setAttribute("type", this.type);
110
+ const elements = Array.from(this.control.children);
111
+ if (elements) {
112
+ elements.forEach((span) => {
113
+ span.addEventListener("click", this.handleClick);
114
+ });
115
+ }
116
+ }
117
+ /**
118
+ * @internal
119
+ */
120
+ disconnectedCallback() {
121
+ super.disconnectedCallback();
122
+ const elements = Array.from(this.control.children);
123
+ if (elements) {
124
+ elements.forEach((span) => {
125
+ span.removeEventListener("click", this.handleClick);
126
+ });
127
+ }
128
+ }
129
+ }
130
+ __decorateClass$1([
131
+ attr({ mode: "boolean" })
132
+ ], FoundationButton.prototype, "autofocus");
133
+ __decorateClass$1([
134
+ attr({ attribute: "form" })
135
+ ], FoundationButton.prototype, "formId");
136
+ __decorateClass$1([
137
+ attr
138
+ ], FoundationButton.prototype, "formaction");
139
+ __decorateClass$1([
140
+ attr
141
+ ], FoundationButton.prototype, "formenctype");
142
+ __decorateClass$1([
143
+ attr
144
+ ], FoundationButton.prototype, "formmethod");
145
+ __decorateClass$1([
146
+ attr({ mode: "boolean" })
147
+ ], FoundationButton.prototype, "formnovalidate");
148
+ __decorateClass$1([
149
+ attr
150
+ ], FoundationButton.prototype, "formtarget");
151
+ __decorateClass$1([
152
+ attr
153
+ ], FoundationButton.prototype, "type");
154
+ class DelegatesARIAButton {
155
+ }
156
+ __decorateClass$1([
157
+ attr({ attribute: "aria-expanded" })
158
+ ], DelegatesARIAButton.prototype, "ariaExpanded");
159
+ __decorateClass$1([
160
+ attr({ attribute: "aria-pressed" })
161
+ ], DelegatesARIAButton.prototype, "ariaPressed");
162
+ applyMixins(DelegatesARIAButton, ARIAGlobalStatesAndProperties);
163
+ applyMixins(FoundationButton, DelegatesARIAButton);
164
+
11
165
  var __defProp = Object.defineProperty;
12
166
  var __decorateClass = (decorators, target, key, kind) => {
13
167
  var result = void 0 ;
@@ -17,7 +171,7 @@ var __decorateClass = (decorators, target, key, kind) => {
17
171
  if (result) __defProp(target, key, result);
18
172
  return result;
19
173
  };
20
- class Fab extends Button$1 {
174
+ class Fab extends FoundationButton {
21
175
  }
22
176
  __decorateClass([
23
177
  attr