@m3e/web 2.5.5 → 2.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/README.md +1 -1
  2. package/dist/all.js +287 -221
  3. package/dist/all.js.map +1 -1
  4. package/dist/all.min.js +31 -31
  5. package/dist/all.min.js.map +1 -1
  6. package/dist/autocomplete.js +3 -3
  7. package/dist/autocomplete.js.map +1 -1
  8. package/dist/autocomplete.min.js.map +1 -1
  9. package/dist/bottom-sheet.js +5 -5
  10. package/dist/bottom-sheet.js.map +1 -1
  11. package/dist/bottom-sheet.min.js.map +1 -1
  12. package/dist/breadcrumb.js +1 -1
  13. package/dist/breadcrumb.js.map +1 -1
  14. package/dist/breadcrumb.min.js.map +1 -1
  15. package/dist/button.js +7 -8
  16. package/dist/button.js.map +1 -1
  17. package/dist/button.min.js +1 -1
  18. package/dist/button.min.js.map +1 -1
  19. package/dist/calendar.js +1 -1
  20. package/dist/calendar.js.map +1 -1
  21. package/dist/calendar.min.js.map +1 -1
  22. package/dist/card.js +1 -1
  23. package/dist/card.js.map +1 -1
  24. package/dist/card.min.js.map +1 -1
  25. package/dist/checkbox.js +10 -9
  26. package/dist/checkbox.js.map +1 -1
  27. package/dist/checkbox.min.js +1 -1
  28. package/dist/checkbox.min.js.map +1 -1
  29. package/dist/chips.js +17 -16
  30. package/dist/chips.js.map +1 -1
  31. package/dist/chips.min.js +1 -1
  32. package/dist/chips.min.js.map +1 -1
  33. package/dist/core.js +5 -5
  34. package/dist/core.js.map +1 -1
  35. package/dist/core.min.js.map +1 -1
  36. package/dist/css-custom-data.json +120 -120
  37. package/dist/custom-elements.json +765 -534
  38. package/dist/datepicker.js +26 -2
  39. package/dist/datepicker.js.map +1 -1
  40. package/dist/datepicker.min.js +1 -1
  41. package/dist/datepicker.min.js.map +1 -1
  42. package/dist/dialog.js +5 -5
  43. package/dist/dialog.js.map +1 -1
  44. package/dist/dialog.min.js.map +1 -1
  45. package/dist/drawer-container.js +1 -1
  46. package/dist/drawer-container.js.map +1 -1
  47. package/dist/drawer-container.min.js.map +1 -1
  48. package/dist/expansion-panel.js +5 -5
  49. package/dist/expansion-panel.js.map +1 -1
  50. package/dist/expansion-panel.min.js.map +1 -1
  51. package/dist/fab-menu.js +1 -1
  52. package/dist/fab-menu.js.map +1 -1
  53. package/dist/fab-menu.min.js.map +1 -1
  54. package/dist/fab.js +1 -1
  55. package/dist/fab.js.map +1 -1
  56. package/dist/fab.min.js.map +1 -1
  57. package/dist/html-custom-data.json +83 -78
  58. package/dist/icon-button.js +7 -8
  59. package/dist/icon-button.js.map +1 -1
  60. package/dist/icon-button.min.js +1 -1
  61. package/dist/icon-button.min.js.map +1 -1
  62. package/dist/list.js +17 -16
  63. package/dist/list.js.map +1 -1
  64. package/dist/list.min.js +1 -1
  65. package/dist/list.min.js.map +1 -1
  66. package/dist/menu.js +3 -3
  67. package/dist/menu.js.map +1 -1
  68. package/dist/menu.min.js.map +1 -1
  69. package/dist/nav-bar.js +12 -9
  70. package/dist/nav-bar.js.map +1 -1
  71. package/dist/nav-bar.min.js +1 -1
  72. package/dist/nav-bar.min.js.map +1 -1
  73. package/dist/nav-menu.js +5 -5
  74. package/dist/nav-menu.js.map +1 -1
  75. package/dist/nav-menu.min.js.map +1 -1
  76. package/dist/nav-rail.js +3 -1
  77. package/dist/nav-rail.js.map +1 -1
  78. package/dist/nav-rail.min.js.map +1 -1
  79. package/dist/paginator.js +1 -1
  80. package/dist/paginator.js.map +1 -1
  81. package/dist/paginator.min.js.map +1 -1
  82. package/dist/radio-group.js +12 -9
  83. package/dist/radio-group.js.map +1 -1
  84. package/dist/radio-group.min.js +1 -1
  85. package/dist/radio-group.min.js.map +1 -1
  86. package/dist/segmented-button.js +12 -11
  87. package/dist/segmented-button.js.map +1 -1
  88. package/dist/segmented-button.min.js +1 -1
  89. package/dist/segmented-button.min.js.map +1 -1
  90. package/dist/select.js +9 -9
  91. package/dist/select.js.map +1 -1
  92. package/dist/select.min.js +1 -1
  93. package/dist/select.min.js.map +1 -1
  94. package/dist/slider.js +46 -25
  95. package/dist/slider.js.map +1 -1
  96. package/dist/slider.min.js +1 -1
  97. package/dist/slider.min.js.map +1 -1
  98. package/dist/split-pane.js +17 -19
  99. package/dist/split-pane.js.map +1 -1
  100. package/dist/split-pane.min.js +1 -1
  101. package/dist/split-pane.min.js.map +1 -1
  102. package/dist/src/autocomplete/AutocompleteElement.d.ts +3 -3
  103. package/dist/src/autocomplete/AutocompleteQueryEventDetail.d.ts +1 -1
  104. package/dist/src/autocomplete/QueryEventDetail.d.ts +1 -1
  105. package/dist/src/bottom-sheet/BottomSheetElement.d.ts +5 -5
  106. package/dist/src/breadcrumb/BreadcrumbItemElement.d.ts +1 -1
  107. package/dist/src/button/ButtonElement.d.ts +2 -1
  108. package/dist/src/button/ButtonElement.d.ts.map +1 -1
  109. package/dist/src/calendar/CalendarElement.d.ts +1 -1
  110. package/dist/src/card/CardElement.d.ts +1 -1
  111. package/dist/src/checkbox/CheckboxElement.d.ts +5 -4
  112. package/dist/src/checkbox/CheckboxElement.d.ts.map +1 -1
  113. package/dist/src/chips/AssistChipElement.d.ts +1 -1
  114. package/dist/src/chips/FilterChipElement.d.ts +4 -3
  115. package/dist/src/chips/FilterChipElement.d.ts.map +1 -1
  116. package/dist/src/chips/FilterChipSetElement.d.ts +3 -2
  117. package/dist/src/chips/FilterChipSetElement.d.ts.map +1 -1
  118. package/dist/src/chips/InputChipElement.d.ts +2 -2
  119. package/dist/src/chips/InputChipSetElement.d.ts +1 -1
  120. package/dist/src/chips/SuggestionChipElement.d.ts +1 -1
  121. package/dist/src/core/shared/primitives/CollapsibleElement.d.ts +4 -4
  122. package/dist/src/core/shared/primitives/TextHighlightElement.d.ts +1 -1
  123. package/dist/src/datepicker/DatepickerElement.d.ts +6 -0
  124. package/dist/src/datepicker/DatepickerElement.d.ts.map +1 -1
  125. package/dist/src/dialog/DialogElement.d.ts +5 -5
  126. package/dist/src/drawer-container/DrawerContainerElement.d.ts +1 -1
  127. package/dist/src/expansion-panel/ExpansionHeaderElement.d.ts +1 -1
  128. package/dist/src/expansion-panel/ExpansionPanelElement.d.ts +4 -4
  129. package/dist/src/fab/FabElement.d.ts +1 -1
  130. package/dist/src/fab-menu/FabMenuItemElement.d.ts +1 -1
  131. package/dist/src/icon-button/IconButtonElement.d.ts +2 -1
  132. package/dist/src/icon-button/IconButtonElement.d.ts.map +1 -1
  133. package/dist/src/list/ExpandableListItemElement.d.ts +4 -4
  134. package/dist/src/list/ListActionElement.d.ts +1 -1
  135. package/dist/src/list/ListOptionElement.d.ts +4 -3
  136. package/dist/src/list/ListOptionElement.d.ts.map +1 -1
  137. package/dist/src/list/SelectionListElement.d.ts +3 -2
  138. package/dist/src/list/SelectionListElement.d.ts.map +1 -1
  139. package/dist/src/menu/MenuItemCheckboxElement.d.ts +1 -1
  140. package/dist/src/menu/MenuItemElement.d.ts +1 -1
  141. package/dist/src/menu/MenuItemRadioElement.d.ts +1 -1
  142. package/dist/src/nav-bar/NavBarElement.d.ts +3 -1
  143. package/dist/src/nav-bar/NavBarElement.d.ts.map +1 -1
  144. package/dist/src/nav-bar/NavItemElement.d.ts +4 -3
  145. package/dist/src/nav-bar/NavItemElement.d.ts.map +1 -1
  146. package/dist/src/nav-menu/NavMenuItemElement.d.ts +5 -5
  147. package/dist/src/nav-rail/NavRailElement.d.ts +3 -1
  148. package/dist/src/nav-rail/NavRailElement.d.ts.map +1 -1
  149. package/dist/src/paginator/PageEventDetail.d.ts +1 -1
  150. package/dist/src/paginator/PaginatorElement.d.ts +1 -1
  151. package/dist/src/paginator/PaginatorPageEventDetail.d.ts +1 -1
  152. package/dist/src/paginator/PaginatorPageEventDetail.d.ts.map +1 -1
  153. package/dist/src/radio-group/RadioElement.d.ts +4 -3
  154. package/dist/src/radio-group/RadioElement.d.ts.map +1 -1
  155. package/dist/src/radio-group/RadioGroupElement.d.ts +3 -1
  156. package/dist/src/radio-group/RadioGroupElement.d.ts.map +1 -1
  157. package/dist/src/search/SearchViewQueryEventDetail.d.ts +1 -1
  158. package/dist/src/segmented-button/ButtonSegmentElement.d.ts +4 -3
  159. package/dist/src/segmented-button/ButtonSegmentElement.d.ts.map +1 -1
  160. package/dist/src/segmented-button/SegmentedButtonElement.d.ts +3 -2
  161. package/dist/src/segmented-button/SegmentedButtonElement.d.ts.map +1 -1
  162. package/dist/src/select/SelectElement.d.ts +3 -2
  163. package/dist/src/select/SelectElement.d.ts.map +1 -1
  164. package/dist/src/slider/SliderElement.d.ts +4 -0
  165. package/dist/src/slider/SliderElement.d.ts.map +1 -1
  166. package/dist/src/slider/SliderThumbElement.d.ts +4 -3
  167. package/dist/src/slider/SliderThumbElement.d.ts.map +1 -1
  168. package/dist/src/split-pane/SplitPaneElement.d.ts +3 -2
  169. package/dist/src/split-pane/SplitPaneElement.d.ts.map +1 -1
  170. package/dist/src/stepper/StepElement.d.ts +4 -3
  171. package/dist/src/stepper/StepElement.d.ts.map +1 -1
  172. package/dist/src/stepper/StepperElement.d.ts +5 -1
  173. package/dist/src/stepper/StepperElement.d.ts.map +1 -1
  174. package/dist/src/switch/SwitchElement.d.ts +4 -3
  175. package/dist/src/switch/SwitchElement.d.ts.map +1 -1
  176. package/dist/src/tabs/TabElement.d.ts +4 -3
  177. package/dist/src/tabs/TabElement.d.ts.map +1 -1
  178. package/dist/src/tabs/TabsElement.d.ts +3 -1
  179. package/dist/src/tabs/TabsElement.d.ts.map +1 -1
  180. package/dist/src/toc/TocItemElement.d.ts +1 -1
  181. package/dist/src/tree/TreeElement.d.ts +1 -1
  182. package/dist/src/tree/TreeItemElement.d.ts +5 -5
  183. package/dist/stepper.js +26 -17
  184. package/dist/stepper.js.map +1 -1
  185. package/dist/stepper.min.js +1 -1
  186. package/dist/stepper.min.js.map +1 -1
  187. package/dist/switch.js +9 -8
  188. package/dist/switch.js.map +1 -1
  189. package/dist/switch.min.js +1 -1
  190. package/dist/switch.min.js.map +1 -1
  191. package/dist/tabs.js +12 -9
  192. package/dist/tabs.js.map +1 -1
  193. package/dist/tabs.min.js +1 -1
  194. package/dist/tabs.min.js.map +1 -1
  195. package/dist/toc.js +1 -1
  196. package/dist/toc.js.map +1 -1
  197. package/dist/toc.min.js.map +1 -1
  198. package/dist/tree.js +6 -6
  199. package/dist/tree.js.map +1 -1
  200. package/dist/tree.min.js.map +1 -1
  201. package/package.json +1 -1
package/dist/all.js CHANGED
@@ -403,9 +403,9 @@ var M3eAutocompleteElement_1;
403
403
  * @slot loading - Renders content when loading options.
404
404
  * @slot no-data - Renders content when there are no options to show.
405
405
  *
406
- * @fires toggle - Emitted when the options menu opens or closes.
407
- * @fires query - Emitted when the input is focused or when the user modifies its value.
408
- * @fires change - Emitted when the committed value changes due to selecting an option or clearing the input.
406
+ * @fires toggle - Dispatched when the options menu opens or closes.
407
+ * @fires query - Dispatched when the input is focused or when the user modifies its value.
408
+ * @fires change - Dispatched when the committed value changes due to selecting an option or clearing the input.
409
409
  */
410
410
  let M3eAutocompleteElement = M3eAutocompleteElement_1 = class M3eAutocompleteElement extends HtmlFor$1(LitElement) {
411
411
  constructor() {
@@ -1468,11 +1468,11 @@ var M3eBottomSheetElement_1;
1468
1468
  * @attr open - Whether the bottom sheet is open.
1469
1469
  * @attr overshoot-limit - A fractional value, between 0 and 100, indicating the maximum visual overshoot allowed when dragging past the minimum or maximum size.
1470
1470
  *
1471
- * @fires opening - Emitted when the sheet begins to open.
1472
- * @fires opened - Emitted when the sheet has opened.
1473
- * @fires cancel - Emitted when the sheet is cancelled.
1474
- * @fires closing - Emitted when the sheet begins to close.
1475
- * @fires closed - Emitted when the sheet has closed.
1471
+ * @fires opening - Dispatched when the sheet begins to open.
1472
+ * @fires opened - Dispatched when the sheet has opened.
1473
+ * @fires cancel - Dispatched when the sheet is cancelled.
1474
+ * @fires closing - Dispatched when the sheet begins to close.
1475
+ * @fires closed - Dispatched when the sheet has closed.
1476
1476
  *
1477
1477
  * @cssprop --m3e-bottom-sheet-width - The width of the sheet.
1478
1478
  * @cssprop --m3e-bottom-sheet-max-width - The maximum width of the sheet.
@@ -2358,7 +2358,7 @@ var _M3eBreadcrumbItemElement_instances, _M3eBreadcrumbItemElement_defaultSepara
2358
2358
  * @attr download - A value indicating whether the internal link target will be downloaded, optionally specifying a file name.
2359
2359
  * @attr rel - The relationship between the internal link target and the document.
2360
2360
  *
2361
- * @fires click - Emitted when the element is clicked.
2361
+ * @fires click - Dispatched when the element is clicked.
2362
2362
  *
2363
2363
  * @cssprop --m3e-breadcrumb-item-shape - Shape of the internal breadcrumb item button.
2364
2364
  * @cssprop --m3e-breadcrumb-item-container-height - Height of the internal breadcrumb item button container.
@@ -3196,9 +3196,10 @@ var _M3eButtonElement_instances, _M3eButtonElement_clickHandler, _M3eButtonEleme
3196
3196
  * @attr value - The value associated with the element's name when it's submitted with form data.
3197
3197
  * @attr variant - The appearance variant of the button.
3198
3198
  *
3199
+ * @fires beforeinput - Dispatched before a toggle button's selected state changes.
3199
3200
  * @fires input - Dispatched when a toggle button's selected state changes.
3200
3201
  * @fires change - Dispatched when a toggle button's selected state changes.
3201
- * @fires click - Emitted when the element is clicked.
3202
+ * @fires click - Dispatched when the element is clicked.
3202
3203
  *
3203
3204
  * @cssprop --m3e-button-container-height - Height of the button container, for all size variants.
3204
3205
  * @cssprop --m3e-button-outline-thickness - Thickness of the button outline, for all size variants.
@@ -3710,19 +3711,17 @@ _M3eButtonElement_handleClick = function _M3eButtonElement_handleClick(e) {
3710
3711
  e.stopImmediatePropagation();
3711
3712
  }
3712
3713
  if (this.toggle && !e.defaultPrevented) {
3713
- this.selected = !this.selected;
3714
- // Dispatch an input event and if not prevented, dispatch a change event.
3715
- // Otherwise, reset the selected state.
3716
- if (this.dispatchEvent(new Event("input", {
3714
+ if (this.dispatchEvent(new Event("beforeinput", {
3717
3715
  bubbles: true,
3718
- composed: true,
3719
3716
  cancelable: true
3720
3717
  }))) {
3718
+ this.selected = !this.selected;
3719
+ this.dispatchEvent(new Event("input", {
3720
+ bubbles: true
3721
+ }));
3721
3722
  this.dispatchEvent(new Event("change", {
3722
3723
  bubbles: true
3723
3724
  }));
3724
- } else {
3725
- this.selected = !this.selected;
3726
3725
  }
3727
3726
  }
3728
3727
  };
@@ -4592,7 +4591,7 @@ var _M3eCalendarElement_instances, _M3eCalendarElement_transitionComplete, _M3eC
4592
4591
  * @attr previous-multi-year-label - The accessible label given to the button used to move to the previous 24 years.
4593
4592
  * @attr next-multi-year-label - The accessible label given to the button used to move to the next 24 years.
4594
4593
  *
4595
- * @fires change - Emitted when the selected date changes.
4594
+ * @fires change - Dispatched when the selected date changes.
4596
4595
  *
4597
4596
  * @cssprop --m3e-calendar-container-color - Background color of the container surface.
4598
4597
  * @cssprop --m3e-calendar-container-elevation - Elevation shadow applied to the container surface.
@@ -5244,7 +5243,7 @@ var _M3eCardElement_instances, _M3eCardElement_clickHandler, _M3eCardElement_han
5244
5243
  * @attr orientation - The orientation of the card.
5245
5244
  * @attr variant - The appearance variant of the card.
5246
5245
  *
5247
- * @fires click - Emitted when the element is clicked.
5246
+ * @fires click - Dispatched when the element is clicked.
5248
5247
  *
5249
5248
  * @cssprop --m3e-card-padding - Internal spacing for all slotted regions
5250
5249
  * @cssprop --m3e-card-shape - Corner radius of the card container.
@@ -5476,10 +5475,11 @@ var _M3eCheckboxElement_instances, _M3eCheckboxElement_clickHandler, _M3eCheckbo
5476
5475
  * @attr required - Whether the element is required.
5477
5476
  * @attr value - A string representing the value of the checkbox.
5478
5477
  *
5479
- * @fires input - Emitted when the checked state changes.
5480
- * @fires invalid - Emitted when a form is submitted and the element fails constraint validation.
5481
- * @fires change - Emitted when the checked state changes.
5482
- * @fires click - Emitted when the element is clicked.
5478
+ * @fires beforeinput - Dispatched before the checked state changes.
5479
+ * @fires input - Dispatched when the checked state changes.
5480
+ * @fires invalid - Dispatched when a form is submitted and the element fails constraint validation.
5481
+ * @fires change - Dispatched when the checked state changes.
5482
+ * @fires click - Dispatched when the element is clicked.
5483
5483
  *
5484
5484
  * @cssprop --m3e-checkbox-icon-size - Size of the checkbox icon inside the container.
5485
5485
  * @cssprop --m3e-checkbox-container-size - Base size of the checkbox container.
@@ -5589,18 +5589,18 @@ _M3eCheckboxElement_renderIcon = function _M3eCheckboxElement_renderIcon() {
5589
5589
  };
5590
5590
  _M3eCheckboxElement_handleClick = function _M3eCheckboxElement_handleClick(e) {
5591
5591
  if (e.defaultPrevented) return;
5592
- this.checked = !this.checked;
5593
- if (this.dispatchEvent(new Event("input", {
5592
+ if (this.dispatchEvent(new Event("beforeinput", {
5594
5593
  bubbles: true,
5595
- composed: true,
5596
5594
  cancelable: true
5597
5595
  }))) {
5596
+ this.checked = !this.checked;
5598
5597
  this.indeterminate = false;
5598
+ this.dispatchEvent(new Event("input", {
5599
+ bubbles: true
5600
+ }));
5599
5601
  this.dispatchEvent(new Event("change", {
5600
5602
  bubbles: true
5601
5603
  }));
5602
- } else {
5603
- this.checked = !this.checked;
5604
5604
  }
5605
5605
  // Prevent default avoids double-click in FireFox.
5606
5606
  if (this.closest("label")) {
@@ -5786,7 +5786,7 @@ M3eChipElement = __decorate([customElement$1("m3e-chip")], M3eChipElement);
5786
5786
  * @attr value - A string representing the value of the chip.
5787
5787
  * @attr variant - The appearance variant of the chip.
5788
5788
  *
5789
- * @fires click - Emitted when the element is clicked.
5789
+ * @fires click - Dispatched when the element is clicked.
5790
5790
  *
5791
5791
  * @cssprop --m3e-chip-container-shape - Border radius of the chip container.
5792
5792
  * @cssprop --m3e-chip-container-height - Base height of the chip container before density adjustment.
@@ -5899,9 +5899,10 @@ var _M3eFilterChipElement_instances, _M3eFilterChipElement_clickHandler, _M3eFil
5899
5899
  * @attr value - A string representing the value of the chip.
5900
5900
  * @attr variant - The appearance variant of the chip.
5901
5901
  *
5902
- * @fires input - Emitted when the selected state changes.
5903
- * @fires change - Emitted when the selected state changes.
5904
- * @fires click - Emitted when the element is clicked.
5902
+ * @fires beforeinput - Dispatched before the selected state changes.
5903
+ * @fires input - Dispatched when the selected state changes.
5904
+ * @fires change - Dispatched when the selected state changes.
5905
+ * @fires click - Dispatched when the element is clicked.
5905
5906
  *
5906
5907
  * @cssprop --m3e-chip-container-shape - Border radius of the chip container.
5907
5908
  * @cssprop --m3e-chip-container-height - Base height of the chip container before density adjustment.
@@ -5980,19 +5981,18 @@ _M3eFilterChipElement_clickHandler = new WeakMap();
5980
5981
  _M3eFilterChipElement_instances = new WeakSet();
5981
5982
  _M3eFilterChipElement_handleClick = function _M3eFilterChipElement_handleClick(e) {
5982
5983
  if (e.defaultPrevented) return;
5983
- const selected = this.selected;
5984
- this.selected = !this.selected;
5985
- if (this.dispatchEvent(new Event("input", {
5984
+ if (this.dispatchEvent(new Event("beforeinput", {
5986
5985
  bubbles: true,
5987
- composed: true,
5988
5986
  cancelable: true
5989
5987
  }))) {
5988
+ this.selected = !this.selected;
5990
5989
  this.closest("m3e-filter-chip-set")?.[selectionManager].notifySelectionChange(this);
5990
+ this.dispatchEvent(new Event("input", {
5991
+ bubbles: true
5992
+ }));
5991
5993
  this.dispatchEvent(new Event("change", {
5992
5994
  bubbles: true
5993
5995
  }));
5994
- } else {
5995
- this.selected = selected;
5996
5996
  }
5997
5997
  };
5998
5998
  /** Indicates that this custom element participates in form submission, validation, and form state restoration. */
@@ -6034,8 +6034,9 @@ var _M3eFilterChipSetElement_instances, _M3eFilterChipSetElement_directionalityS
6034
6034
  * @attr name - The name that identifies the element when submitting the associated form.
6035
6035
  * @attr vertical - Whether the element is oriented vertically.
6036
6036
  *
6037
- * @fires input - Emitted when the selected state of a chip changes.
6038
- * @fires change - Emitted when the selected state of a chip changes.
6037
+ * @fires beforeinput - Dispatched before the selected state of a chip changes.
6038
+ * @fires input - Dispatched when the selected state of a chip changes.
6039
+ * @fires change - Dispatched when the selected state of a chip changes.
6039
6040
  *
6040
6041
  * @cssprop --m3e-chip-set-spacing - The spacing (gap) between chips in the set.
6041
6042
  */
@@ -6194,8 +6195,8 @@ var _M3eInputChipElement_instances, _M3eInputChipElement_handleAvatarSlotChange,
6194
6195
  * @attr value - A string representing the value of the chip.
6195
6196
  * @attr variant - The appearance variant of the chip.
6196
6197
  *
6197
- * @fires remove - Emitted when the remove button is clicked or DELETE or BACKSPACE key is pressed.
6198
- * @fires click - Emitted when the element is clicked.
6198
+ * @fires remove - Dispatched when the remove button is clicked or DELETE or BACKSPACE key is pressed.
6199
+ * @fires click - Dispatched when the element is clicked.
6199
6200
  *
6200
6201
  * @cssprop --m3e-chip-container-shape - Border radius of the chip container.
6201
6202
  * @cssprop --m3e-chip-container-height - Base height of the chip container before density adjustment.
@@ -6336,7 +6337,7 @@ var _M3eInputChipSetElement_instances, _M3eInputChipSetElement_directionalitySub
6336
6337
  * @attr required - Whether a value is required for the element.
6337
6338
  * @attr vertical - Whether the element is oriented vertically.
6338
6339
  *
6339
- * @fires change - Emitted when a chip is added to, or removed from, the set.
6340
+ * @fires change - Dispatched when a chip is added to, or removed from, the set.
6340
6341
  *
6341
6342
  * @cssprop --m3e-chip-set-spacing - The spacing (gap) between chips in the set.
6342
6343
  */
@@ -6613,7 +6614,7 @@ M3eInputChipSetElement = __decorate([customElement$1("m3e-input-chip-set")], M3e
6613
6614
  * @attr value - A string representing the value of the chip.
6614
6615
  * @attr variant - The appearance variant of the chip.
6615
6616
  *
6616
- * @fires click - Emitted when the element is clicked.
6617
+ * @fires click - Dispatched when the element is clicked.
6617
6618
  *
6618
6619
  * @cssprop --m3e-chip-container-shape - Border radius of the chip container.
6619
6620
  * @cssprop --m3e-chip-container-height - Base height of the chip container before density adjustment.
@@ -10550,10 +10551,10 @@ var _M3eCollapsibleElement_instances, _M3eCollapsibleElement_slotChanged, _M3eCo
10550
10551
  * @attr orientation - Orientation of collapsible content.
10551
10552
  * @attr no-animate - Whether to disable animation.
10552
10553
  *
10553
- * @fires opening - Emitted when the collapsible begins to open.
10554
- * @fires opened - Emitted when the collapsible has opened.
10555
- * @fires closing - Emitted when the collapsible begins to close.
10556
- * @fires closed - Emitted when the collapsible has closed.
10554
+ * @fires opening - Dispatched when the collapsible begins to open.
10555
+ * @fires opened - Dispatched when the collapsible has opened.
10556
+ * @fires closing - Dispatched when the collapsible begins to close.
10557
+ * @fires closed - Dispatched when the collapsible has closed.
10557
10558
  *
10558
10559
  * @cssprop --m3e-collapsible-animation-duration - The duration of the expand / collapse animation.
10559
10560
  */
@@ -11699,7 +11700,7 @@ var M3eTextHighlightElement_1;
11699
11700
  * @attr mode - The mode in which to highlight text.
11700
11701
  * @attr term - The term to highlight.
11701
11702
  *
11702
- * @fires highlight - Emitted when content is highlighted.
11703
+ * @fires highlight - Dispatched when content is highlighted.
11703
11704
  *
11704
11705
  * @cssprop --m3e-text-highlight-container-color - Background color applied to highlighted text ranges.
11705
11706
  * @cssprop --m3e-text-highlight-color - Foreground color of highlighted text content.
@@ -11964,6 +11965,7 @@ var M3eDatepickerElement_1;
11964
11965
  * @attr date - The selected date.
11965
11966
  * @attr max-date - The maximum date that can be selected.
11966
11967
  * @attr min-date - The minimum date that can be selected.
11968
+ * @attr range - Whether a range of dates can be selected.
11967
11969
  * @attr range-end - End of a date range.
11968
11970
  * @attr range-start - Start of a date range.
11969
11971
  * @attr start-at - A date specifying the period (month or year) to start the calendar in.
@@ -12065,6 +12067,11 @@ let M3eDatepickerElement = M3eDatepickerElement_1 = class M3eDatepickerElement e
12065
12067
  * @default null
12066
12068
  */
12067
12069
  this.maxDate = null;
12070
+ /**
12071
+ * Whether a range of dates can be selected.
12072
+ * @default false
12073
+ */
12074
+ this.range = false;
12068
12075
  /**
12069
12076
  * Start of a date range.
12070
12077
  * @default null
@@ -12247,6 +12254,9 @@ let M3eDatepickerElement = M3eDatepickerElement_1 = class M3eDatepickerElement e
12247
12254
  if (["date", "rangeStart", "rangeEnd"].some(x => changedProperties.has(x))) {
12248
12255
  __classPrivateFieldGet(this, _M3eDatepickerElement_instances, "m", _M3eDatepickerElement_clearSelectionState).call(this);
12249
12256
  }
12257
+ if (changedProperties.has("rangeStart") && this.rangeStart) {
12258
+ this.range = true;
12259
+ }
12250
12260
  if (changedProperties.has("rangeStart") && this.rangeStart && !changedProperties.has("date")) {
12251
12261
  this.date = new Date(this.rangeStart);
12252
12262
  }
@@ -12284,12 +12294,20 @@ _M3eDatepickerElement_toggleHandler = new WeakMap();
12284
12294
  _M3eDatepickerElement_instances = new WeakSet();
12285
12295
  _M3eDatepickerElement_renderHeader = function _M3eDatepickerElement_renderHeader() {
12286
12296
  if (this.currentVariant === "docked") return nothing;
12297
+ const rangeStart = this._rangeStart ?? this.rangeStart;
12298
+ const rangeEnd = this._rangeStart ? this._rangeEnd : this._rangeEnd ?? this.rangeEnd;
12287
12299
  const selectedDate = this._date ?? this.date;
12288
- return html`<div class="supporting-text">${this.label}</div><div class="headline">${selectedDate ? new Intl.DateTimeFormat(navigator.language, {
12300
+ return html`<div class="supporting-text">${this.label}</div>${rangeStart ? html`<div class="headline">${new Intl.DateTimeFormat(navigator.language, {
12301
+ month: "short",
12302
+ day: "numeric"
12303
+ }).format(rangeStart) + " – " + (rangeEnd ? new Intl.DateTimeFormat(navigator.language, {
12304
+ month: "short",
12305
+ day: "numeric"
12306
+ }).format(rangeEnd) : "")}</div>` : html`<div class="headline">${selectedDate ? new Intl.DateTimeFormat(navigator.language, {
12289
12307
  weekday: "short",
12290
12308
  month: "short",
12291
12309
  day: "numeric"
12292
- }).format(selectedDate) : "––"}</div><div class="divider"></div>`;
12310
+ }).format(selectedDate) : "––"}</div>`}<div class="divider"></div>`;
12293
12311
  };
12294
12312
  _M3eDatepickerElement_handleDocumentClick = function _M3eDatepickerElement_handleDocumentClick(e) {
12295
12313
  if (!e.composedPath().some(x => x instanceof M3eDatepickerElement_1 || x === __classPrivateFieldGet(this, _M3eDatepickerElement_trigger, "f") || x === __classPrivateFieldGet(this, _M3eDatepickerElement_anchor, "f"))) {
@@ -12300,6 +12318,10 @@ _M3eDatepickerElement_handleCalendarChange = function _M3eDatepickerElement_hand
12300
12318
  this._date = this._calendar.date;
12301
12319
  this._rangeStart = this._calendar.rangeStart;
12302
12320
  this._rangeEnd = this._calendar.rangeEnd;
12321
+ if (this.range && !this._rangeStart && this._date) {
12322
+ this._rangeStart = new Date(this._date);
12323
+ this._calendar.rangeStart = this._rangeStart;
12324
+ }
12303
12325
  };
12304
12326
  _M3eDatepickerElement_handleClearClick = function _M3eDatepickerElement_handleClearClick() {
12305
12327
  this.date = null;
@@ -12425,6 +12447,9 @@ __decorate([property({
12425
12447
  attribute: "max-date",
12426
12448
  converter: dateConverter$1
12427
12449
  })], M3eDatepickerElement.prototype, "maxDate", void 0);
12450
+ __decorate([property({
12451
+ type: Boolean
12452
+ })], M3eDatepickerElement.prototype, "range", void 0);
12428
12453
  __decorate([property({
12429
12454
  attribute: "range-start",
12430
12455
  converter: dateConverter$1
@@ -12565,11 +12590,11 @@ var M3eDialogElement_1;
12565
12590
  * @attr no-focus-trap - Whether to disable focus trapping, which keeps keyboard `Tab` navigation within the dialog.
12566
12591
  * @attr open - Whether the dialog is open.
12567
12592
  *
12568
- * @fires opening - Emitted when the dialog begins to open.
12569
- * @fires opened - Emitted when the dialog has opened.
12570
- * @fires cancel - Emitted when the dialog is cancelled.
12571
- * @fires closing - Emitted when the dialog begins to close.
12572
- * @fires closed - Emitted when the dialog has closed.
12593
+ * @fires opening - Dispatched when the dialog begins to open.
12594
+ * @fires opened - Dispatched when the dialog has opened.
12595
+ * @fires cancel - Dispatched when the dialog is cancelled.
12596
+ * @fires closing - Dispatched when the dialog begins to close.
12597
+ * @fires closed - Dispatched when the dialog has closed.
12573
12598
  *
12574
12599
  * @cssprop --m3e-dialog-shape - Border radius of the dialog container.
12575
12600
  * @cssprop --m3e-dialog-min-width - Minimum width of the dialog.
@@ -12967,7 +12992,7 @@ var _M3eDrawerContainerElement_instances, _M3eDrawerContainerElement_breakpointU
12967
12992
  * @attr start-mode - The behavior mode of the start drawer.
12968
12993
  * @attr start-divider - Whether to show a divider between the start drawer and content for `side` mode.
12969
12994
  *
12970
- * @fires change - Emitted when the state of the start or end drawers change.
12995
+ * @fires change - Dispatched when the state of the start or end drawers change.
12971
12996
  *
12972
12997
  * @cssprop --m3e-drawer-container-color - The background color of the drawer container.
12973
12998
  * @cssprop --m3e-drawer-container-elevation - The elevation level of the drawer container.
@@ -13488,7 +13513,7 @@ var _M3eExpansionHeaderElement_instances, _M3eExpansionHeaderElement_renderToggl
13488
13513
  * @attr toggle-direction - The direction of the expansion toggle.
13489
13514
  * @attr toggle-position - The position of the expansion toggle.
13490
13515
  *
13491
- * @fires click - Emitted when the element is clicked.
13516
+ * @fires click - Dispatched when the element is clicked.
13492
13517
  *
13493
13518
  * @cssprop --m3e-expansion-header-collapsed-height - Height of the header when the panel is collapsed.
13494
13519
  * @cssprop --m3e-expansion-header-expanded-height - Height of the header when the panel is expanded.
@@ -13596,10 +13621,10 @@ var M3eExpansionPanelElement_1;
13596
13621
  * @attr toggle-direction - The direction of the expansion toggle.
13597
13622
  * @attr toggle-position - The position of the expansion toggle.
13598
13623
  *
13599
- * @fires opening - Emitted when the expansion panel begins to open.
13600
- * @fires opened - Emitted when the expansion panel has opened.
13601
- * @fires closing - Emitted when the expansion panel begins to close.
13602
- * @fires closed - Emitted when the expansion panel has closed.
13624
+ * @fires opening - Dispatched when the expansion panel begins to open.
13625
+ * @fires opened - Dispatched when the expansion panel has opened.
13626
+ * @fires closing - Dispatched when the expansion panel begins to close.
13627
+ * @fires closed - Dispatched when the expansion panel has closed.
13603
13628
  *
13604
13629
  * @cssprop --m3e-expansion-header-collapsed-height - Height of the header when the panel is collapsed.
13605
13630
  * @cssprop --m3e-expansion-header-expanded-height - Height of the header when the panel is expanded.
@@ -14463,7 +14488,7 @@ var _M3eFabElement_instances, _M3eFabElement_handleSlotChange;
14463
14488
  * @attr value - The value associated with the element's name when it's submitted with form data.
14464
14489
  * @attr variant - The appearance variant of the button.
14465
14490
  *
14466
- * @fires click - Emitted when the element is clicked.
14491
+ * @fires click - Dispatched when the element is clicked.
14467
14492
  *
14468
14493
  * @cssprop --m3e-fab-container-height - Height of the FAB container for all size variants.
14469
14494
  * @cssprop --m3e-fab-label-text-font-size - Font size for the FAB label text for all size variants.
@@ -14873,7 +14898,7 @@ var _M3eFabMenuItemElement_instances, _M3eFabMenuItemElement_clickHandler, _M3eF
14873
14898
  * @attr rel - The relationship between the `target` of the link button and the document.
14874
14899
  * @attr target - The target of the link button.
14875
14900
  *
14876
- * @fires click - Emitted when the element is clicked.
14901
+ * @fires click - Dispatched when the element is clicked.
14877
14902
  *
14878
14903
  * @cssprop --m3e-fab-menu-item-height - Height of the menu item.
14879
14904
  * @cssprop --m3e-fab-menu-item-font-size - Font size of the menu item label.
@@ -16718,9 +16743,10 @@ var _M3eIconButtonElement_instances, _M3eIconButtonElement_clickHandler, _M3eIco
16718
16743
  * @attr variant - The appearance variant of the button.
16719
16744
  * @attr width - The width of the button.
16720
16745
  *
16746
+ * @fires beforeinput - Dispatched before a toggle button's selected state changes.
16721
16747
  * @fires input - Dispatched when a toggle button's selected state changes.
16722
16748
  * @fires change - Dispatched when a toggle button's selected state changes.
16723
- * @fires click - Emitted when the element is clicked.
16749
+ * @fires click - Dispatched when the element is clicked.
16724
16750
  *
16725
16751
  * @cssprop --m3e-icon-button-container-height - Height of the container for all size variants.
16726
16752
  * @cssprop --m3e-icon-button-outline-thickness - Outline thickness for all size variants.
@@ -17135,19 +17161,17 @@ _M3eIconButtonElement_handleClick = function _M3eIconButtonElement_handleClick(e
17135
17161
  e.stopImmediatePropagation();
17136
17162
  }
17137
17163
  if (this.toggle && !e.defaultPrevented) {
17138
- this.selected = !this.selected;
17139
- // Dispatch an input event and if not prevented, dispatch a change event.
17140
- // Otherwise, reset the selected state.
17141
- if (this.dispatchEvent(new Event("input", {
17164
+ if (this.dispatchEvent(new Event("beforeinput", {
17142
17165
  bubbles: true,
17143
- composed: true,
17144
17166
  cancelable: true
17145
17167
  }))) {
17168
+ this.selected = !this.selected;
17169
+ this.dispatchEvent(new Event("input", {
17170
+ bubbles: true
17171
+ }));
17146
17172
  this.dispatchEvent(new Event("change", {
17147
17173
  bubbles: true
17148
17174
  }));
17149
- } else {
17150
- this.selected = !this.selected;
17151
17175
  }
17152
17176
  }
17153
17177
  };
@@ -17550,10 +17574,10 @@ var M3eExpandableListItemElement_1;
17550
17574
  * @attr disabled - Whether the element is disabled.
17551
17575
  * @attr open - Whether the item is expanded.
17552
17576
  *
17553
- * @fires opening - Emitted when the item begins to open.
17554
- * @fires opened - Emitted when the item has opened.
17555
- * @fires closing - Emitted when the item begins to close.
17556
- * @fires closed - Emitted when the item has closed.
17577
+ * @fires opening - Dispatched when the item begins to open.
17578
+ * @fires opened - Dispatched when the item has opened.
17579
+ * @fires closing - Dispatched when the item begins to close.
17580
+ * @fires closed - Dispatched when the item has closed.
17557
17581
  *
17558
17582
  * @cssprop --m3e-expandable-list-item-toggle-icon-container-width - Width of the toggle icon container.
17559
17583
  * @cssprop --m3e-expandable-list-item-toggle-icon-container-shape - Border radius of the toggle icon container.
@@ -17874,7 +17898,7 @@ var _M3eListActionElement_instances, _M3eListActionElement_handleClick;
17874
17898
  * @attr rel - The relationship between the `target` of the link button and the document.
17875
17899
  * @attr target - The target of the link button.
17876
17900
  *
17877
- * @fires click - Emitted when the element is clicked.
17901
+ * @fires click - Dispatched when the element is clicked.
17878
17902
  *
17879
17903
  * @cssprop --m3e-list-item-between-space - Horizontal gap between elements.
17880
17904
  * @cssprop --m3e-list-item-padding-inline - Horizontal padding for the list item.
@@ -17996,9 +18020,10 @@ var _M3eListOptionElement_instances, _M3eListOptionElement_value, _M3eListOption
17996
18020
  * @attr disabled - Whether the element is disabled.
17997
18021
  * @attr selected - Whether the element is selected.
17998
18022
  *
17999
- * @fires input - Emitted when the selected state changes.
18000
- * @fires change - Emitted when the selected state changes.
18001
- * @fires click - Emitted when the element is clicked.
18023
+ * @fires beforeinput - Dispatched before the selected state changes.
18024
+ * @fires input - Dispatched when the selected state changes.
18025
+ * @fires change - Dispatched when the selected state changes.
18026
+ * @fires click - Dispatched when the element is clicked.
18002
18027
  *
18003
18028
  * @cssprop --m3e-list-item-between-space - Horizontal gap between elements.
18004
18029
  * @cssprop --m3e-list-item-padding-inline - Horizontal padding for the list item.
@@ -18139,19 +18164,18 @@ _M3eListOptionElement_handleClick = function _M3eListOptionElement_handleClick(e
18139
18164
  const selectionList = this.closest("m3e-selection-list");
18140
18165
  if (e.defaultPrevented || !selectionList) return;
18141
18166
  if (selectionList.multi || !this.selected) {
18142
- const selected = this.selected;
18143
- this.selected = !this.selected;
18144
- if (this.dispatchEvent(new Event("input", {
18167
+ if (this.dispatchEvent(new Event("beforeinput", {
18145
18168
  bubbles: true,
18146
- composed: true,
18147
18169
  cancelable: true
18148
18170
  }))) {
18171
+ this.selected = !this.selected;
18149
18172
  selectionList[selectionManager].notifySelectionChange(this);
18173
+ this.dispatchEvent(new Event("input", {
18174
+ bubbles: true
18175
+ }));
18150
18176
  this.dispatchEvent(new Event("change", {
18151
18177
  bubbles: true
18152
18178
  }));
18153
- } else {
18154
- this.selected = selected;
18155
18179
  }
18156
18180
  }
18157
18181
  };
@@ -18183,8 +18207,9 @@ var _M3eSelectionListElement_instances, _M3eSelectionListElement_keyDownHandler,
18183
18207
  * @attr multi - Whether multiple items can be selected.
18184
18208
  * @attr variant - The appearance variant of the list.
18185
18209
  *
18186
- * @fires input - Emitted when the selected state of an option changes.
18187
- * @fires change - Emitted when the selected state of an option changes.
18210
+ * @fires beforeinput - Dispatched before the selected state of an option changes.
18211
+ * @fires input - Dispatched when the selected state of an option changes.
18212
+ * @fires change - Dispatched when the selected state of an option changes.
18188
18213
  *
18189
18214
  * @cssprop --m3e-list-divider-inset-start-size - Start inset for dividers within the list.
18190
18215
  * @cssprop --m3e-list-divider-inset-end-size - End inset for dividers within the list.
@@ -18621,7 +18646,7 @@ var M3eMenuItemElement_1;
18621
18646
  * @attr rel - The relationship between the `target` of the link button and the document.
18622
18647
  * @attr target - The target of the link button.
18623
18648
  *
18624
- * @fires click - Emitted when the element is clicked.
18649
+ * @fires click - Dispatched when the element is clicked.
18625
18650
  *
18626
18651
  * @cssprop --m3e-menu-item-container-height - Height of the menu item container.
18627
18652
  * @cssprop --m3e-menu-item-color - Text color for unselected, enabled menu items.
@@ -19164,7 +19189,7 @@ var _M3eMenuItemCheckboxElement_instances, _M3eMenuItemCheckboxElement_clickHand
19164
19189
  * @attr disabled - Whether the element is disabled.
19165
19190
  * @attr checked - Whether the element is checked.
19166
19191
  *
19167
- * @fires click - Emitted when the element is clicked.
19192
+ * @fires click - Dispatched when the element is clicked.
19168
19193
  *
19169
19194
  * @cssprop --m3e-menu-item-container-height - Height of the menu item container.
19170
19195
  * @cssprop --m3e-menu-item-color - Text color for unselected, enabled menu items.
@@ -19337,7 +19362,7 @@ var _M3eMenuItemRadioElement_instances, _M3eMenuItemRadioElement_clickHandler, _
19337
19362
  * @attr disabled - Whether the element is disabled.
19338
19363
  * @attr checked - Whether the element is checked.
19339
19364
  *
19340
- * @fires click - Emitted when the element is clicked.
19365
+ * @fires click - Dispatched when the element is clicked.
19341
19366
  *
19342
19367
  * @cssprop --m3e-menu-item-container-height - Height of the menu item container.
19343
19368
  * @cssprop --m3e-menu-item-color - Text color for unselected, enabled menu items.
@@ -19493,7 +19518,9 @@ var _M3eNavBarElement_instances, _M3eNavBarElement_breakpointUnobserve, _M3eNavB
19493
19518
  *
19494
19519
  * @attr mode - The mode in which items in the bar are presented.
19495
19520
  *
19496
- * @fires change - Emitted when the selected state of an item changes.
19521
+ * @fires beforeinput - Dispatched before the selected state of an item changes.
19522
+ * @fires input - Dispatched when the selected state of an item changes.
19523
+ * @fires change - Dispatched when the selected state of an item changes.
19497
19524
  *
19498
19525
  * @cssprop --m3e-nav-bar-height - Height of the navigation bar.
19499
19526
  * @cssprop --m3e-nav-bar-container-color - Background color of the navigation bar container.
@@ -19634,9 +19661,10 @@ var _M3eNavItemElement_instances, _M3eNavItemElement_inRail, _M3eNavItemElement_
19634
19661
  * @attr selected - A value indicating whether the element is selected.
19635
19662
  * @attr target - The target of the link button.
19636
19663
  *
19637
- * @fires input - Emitted when the selected state changes.
19638
- * @fires change - Emitted when the selected state changes.
19639
- * @fires click - Emitted when the element is clicked.
19664
+ * @fires beforeinput - Dispatched before the selected state changes.
19665
+ * @fires input - Dispatched when the selected state changes.
19666
+ * @fires change - Dispatched when the selected state changes.
19667
+ * @fires click - Dispatched when the element is clicked.
19640
19668
  *
19641
19669
  * @cssprop --m3e-nav-item-label-text-font-size - Font size for the label text.
19642
19670
  * @cssprop --m3e-nav-item-label-text-font-weight - Font weight for the label text.
@@ -19752,18 +19780,18 @@ let M3eNavItemElement = class M3eNavItemElement extends ReconnectedCallback$1(Su
19752
19780
  };
19753
19781
  _M3eNavItemElement_handleClick = function _M3eNavItemElement_handleClick(e) {
19754
19782
  if (e.defaultPrevented) return;
19755
- this.selected = true;
19756
- if (this.dispatchEvent(new Event("input", {
19783
+ if (this.dispatchEvent(new Event("beforeinput", {
19757
19784
  bubbles: true,
19758
- composed: true,
19759
19785
  cancelable: true
19760
19786
  }))) {
19787
+ this.selected = true;
19761
19788
  this.navBar?.[selectionManager].notifySelectionChange(this);
19789
+ this.dispatchEvent(new Event("input", {
19790
+ bubbles: true
19791
+ }));
19762
19792
  this.dispatchEvent(new Event("change", {
19763
19793
  bubbles: true
19764
19794
  }));
19765
- } else {
19766
- this.selected = false;
19767
19795
  }
19768
19796
  };
19769
19797
  _M3eNavItemElement_handleSelectedIconSlotChange = function _M3eNavItemElement_handleSelectedIconSlotChange(e) {
@@ -19865,11 +19893,11 @@ var M3eNavMenuItemElement_1;
19865
19893
  * @attr open - Whether the item is expanded.
19866
19894
  * @attr selected - Whether the item is selected.
19867
19895
  *
19868
- * @fires opening - Emitted when the item begins to open.
19869
- * @fires opened - Emitted when the item has opened.
19870
- * @fires closing - Emitted when the item begins to close.
19871
- * @fires closed - Emitted when the item has closed.
19872
- * @fires click - Emitted when the element is clicked.
19896
+ * @fires opening - Dispatched when the item begins to open.
19897
+ * @fires opened - Dispatched when the item has opened.
19898
+ * @fires closing - Dispatched when the item begins to close.
19899
+ * @fires closed - Dispatched when the item has closed.
19900
+ * @fires click - Dispatched when the element is clicked.
19873
19901
  *
19874
19902
  * @cssprop --m3e-nav-menu-item-font-size - Font size for the item label.
19875
19903
  * @cssprop --m3e-nav-menu-item-font-weight - Font weight for the item label.
@@ -20554,7 +20582,9 @@ var _M3eNavRailElement_instances, _M3eNavRailElement_focusKeyManager, _M3eNavRai
20554
20582
  *
20555
20583
  * @attr mode - The mode in which items in the rail are presented.
20556
20584
  *
20557
- * @fires change - Emitted when the selected state of an item changes.
20585
+ * @fires beforeinput - Dispatched before the selected state of an item changes.
20586
+ * @fires input - Dispatched when the selected state of an item changes.
20587
+ * @fires change - Dispatched when the selected state of an item changes.
20558
20588
  *
20559
20589
  * @cssprop --m3e-nav-rail-top-space - Top block padding for the nav rail.
20560
20590
  * @cssprop --m3e-nav-rail-bottom-space - Bottom block padding for the nav rail.
@@ -21071,7 +21101,7 @@ var M3ePaginatorElement_1;
21071
21101
  * @attr previous-page-label - The accessible label given to the button used to move to the previous page.
21072
21102
  * @attr show-first-last-buttons - Whether to show first/last buttons.
21073
21103
  *
21074
- * @fires page - Emitted when a user selects a different page size or navigates to another page.
21104
+ * @fires page - Dispatched when a user selects a different page size or navigates to another page.
21075
21105
  *
21076
21106
  * @cssprop --m3e-paginator-font-size - The font size used for paginator text.
21077
21107
  * @cssprop --m3e-paginator-font-weight - The font weight used for paginator text.
@@ -21990,9 +22020,10 @@ var _M3eRadioElement_instances, _M3eRadioElement_clickHandler, _M3eRadioElement_
21990
22020
  * @attr required - Whether the element is required.
21991
22021
  * @attr value - A string representing the value of the radio.
21992
22022
  *
21993
- * @fires input - Emitted when the checked state changes.
21994
- * @fires change - Emitted when the checked state changes.
21995
- * @fires click - Emitted when the element is clicked.
22023
+ * @fires beforeinput - Dispatched before the checked state changes.
22024
+ * @fires input - Dispatched when the checked state changes.
22025
+ * @fires change - Dispatched when the checked state changes.
22026
+ * @fires click - Dispatched when the element is clicked.
21996
22027
  *
21997
22028
  * @cssprop --m3e-radio-container-size - Base size of the radio button container.
21998
22029
  * @cssprop --m3e-radio-icon-size - Size of the radio icon inside the wrapper.
@@ -22091,18 +22122,18 @@ _M3eRadioElement_renderIcon = function _M3eRadioElement_renderIcon() {
22091
22122
  };
22092
22123
  _M3eRadioElement_handleClick = function _M3eRadioElement_handleClick(e) {
22093
22124
  if (e.defaultPrevented || this.checked || this.disabled) return;
22094
- this.checked = true;
22095
- if (this.dispatchEvent(new Event("input", {
22125
+ if (this.dispatchEvent(new Event("beforeinput", {
22096
22126
  bubbles: true,
22097
- composed: true,
22098
22127
  cancelable: true
22099
22128
  }))) {
22129
+ this.checked = true;
22100
22130
  __classPrivateFieldGet(this, _M3eRadioElement_instances, "m", _M3eRadioElement_notifySelectionChange).call(this);
22131
+ this.dispatchEvent(new Event("input", {
22132
+ bubbles: true
22133
+ }));
22101
22134
  this.dispatchEvent(new Event("change", {
22102
22135
  bubbles: true
22103
22136
  }));
22104
- } else {
22105
- this.checked = false;
22106
22137
  }
22107
22138
  // Prevent default avoids double-click in FireFox.
22108
22139
  if (this.closest("label")) {
@@ -22158,7 +22189,9 @@ var _M3eRadioGroupElement_instances, _M3eRadioGroupElement_directionalitySubscri
22158
22189
  * @attr name - The name that identifies the element when submitting the associated form.
22159
22190
  * @attr required - Whether the element is required.
22160
22191
  *
22161
- * @fires change - Emitted when the checked state of a radio button changes.
22192
+ * @fires beforeinput - Dispatched before the checked state of a radio button changes.
22193
+ * @fires input - Dispatched when the checked state of a radio button changes.
22194
+ * @fires change - Dispatched when the checked state of a radio button changes.
22162
22195
  */
22163
22196
  let M3eRadioGroupElement = class M3eRadioGroupElement extends Labelled$1(RequiredConstraintValidation$1(Dirty$1(Touched$1(Required$1(ConstraintValidation$1(FormAssociated$1(Disabled$1(AttachInternals$1(Role$1(LitElement, "radiogroup")))))))))) {
22164
22197
  constructor() {
@@ -23115,9 +23148,10 @@ var M3eButtonSegmentElement_1;
23115
23148
  * @attr disabled - Whether the element is disabled.
23116
23149
  * @attr value - A string representing the value of the segment.
23117
23150
  *
23118
- * @fires input - Emitted when the checked state changes.
23119
- * @fires change - Emitted when the checked state changes.
23120
- * @fires click - Emitted when the element is clicked.
23151
+ * @fires beforeinput - Dispatched before the checked state changes.
23152
+ * @fires input - Dispatched when the checked state changes.
23153
+ * @fires change - Dispatched when the checked state changes.
23154
+ * @fires click - Dispatched when the element is clicked.
23121
23155
  *
23122
23156
  * @cssprop --m3e-segmented-button-height - Total height of the segmented button.
23123
23157
  * @cssprop --m3e-segmented-button-outline-thickness - Thickness of the button's border.
@@ -23221,19 +23255,18 @@ _M3eButtonSegmentElement_handleClick = function _M3eButtonSegmentElement_handleC
23221
23255
  if (e.defaultPrevented) return;
23222
23256
  const segmentedButton = this.closest("m3e-segmented-button");
23223
23257
  if (segmentedButton && (segmentedButton.multi || !this.checked)) {
23224
- const checked = this.checked;
23225
- this.checked = !this.checked;
23226
- if (this.dispatchEvent(new Event("input", {
23258
+ if (this.dispatchEvent(new Event("beforeinput", {
23227
23259
  bubbles: true,
23228
- composed: true,
23229
23260
  cancelable: true
23230
23261
  }))) {
23262
+ this.checked = !this.checked;
23231
23263
  this.closest("m3e-segmented-button")?.[selectionManager].notifySelectionChange(this);
23264
+ this.dispatchEvent(new Event("input", {
23265
+ bubbles: true
23266
+ }));
23232
23267
  this.dispatchEvent(new Event("change", {
23233
23268
  bubbles: true
23234
23269
  }));
23235
- } else {
23236
- this.checked = checked;
23237
23270
  }
23238
23271
  }
23239
23272
  };
@@ -23285,8 +23318,9 @@ var _M3eSegmentedButtonElement_instances, _M3eSegmentedButtonElement_directional
23285
23318
  * @attr multi - Whether multiple options can be selected.
23286
23319
  * @attr name - The name that identifies the element when submitting the associated form.
23287
23320
  *
23288
- * @fires input - Emitted when the checked state of a segment changes.
23289
- * @fires change - Emitted when the checked state of a segment changes.
23321
+ * @fires beforeinput - Dispatched before the checked state of a segment changes.
23322
+ * @fires input - Dispatched when the checked state of a segment changes.
23323
+ * @fires change - Dispatched when the checked state of a segment changes.
23290
23324
  *
23291
23325
  * @cssprop --m3e-segmented-button-start-shape - Border radius for the first segment in a segmented button.
23292
23326
  * @cssprop --m3e-segmented-button-end-shape - Border radius for the last segment in a segmented button.
@@ -23453,8 +23487,9 @@ var M3eSelectElement_1;
23453
23487
  * @attr panel-class - Class or list of classes to be applied to the select's overlay panel.
23454
23488
  * @attr required - Whether the element is required.
23455
23489
  *
23456
- * @fires input - Emitted when the selected state changes.
23457
- * @fires change - Emitted when the selected state changes.
23490
+ * @fires beforeinput - Dispatched before the selected state changes.
23491
+ * @fires input - Dispatched when the selected state changes.
23492
+ * @fires change - Dispatched when the selected state changes.
23458
23493
  *
23459
23494
  * @cssprop --m3e-form-field-font-size - The font size of the select control.
23460
23495
  * @cssprop --m3e-form-field-font-weight - The font weight of the select control.
@@ -23874,13 +23909,12 @@ _M3eSelectElement_updateSelectionState = function _M3eSelectElement_updateSelect
23874
23909
  _M3eSelectElement_selectOption = function _M3eSelectElement_selectOption(option) {
23875
23910
  const selected = this.multi ? !option.selected : true;
23876
23911
  if (option.selected === selected) return;
23877
- option.selected = selected;
23878
- __classPrivateFieldGet(this, _M3eSelectElement_instances, "m", _M3eSelectElement_updateSelectionState).call(this, option);
23879
- if (this.dispatchEvent(new Event("input", {
23912
+ if (this.dispatchEvent(new Event("beforeinput", {
23880
23913
  bubbles: true,
23881
- composed: true,
23882
23914
  cancelable: true
23883
23915
  }))) {
23916
+ option.selected = selected;
23917
+ __classPrivateFieldGet(this, _M3eSelectElement_instances, "m", _M3eSelectElement_updateSelectionState).call(this, option);
23884
23918
  if (!this.multi) {
23885
23919
  __classPrivateFieldGet(this, _M3eSelectElement_instances, "a", _M3eSelectElement_selected_get).filter(x => x !== option).forEach(x => {
23886
23920
  x.selected = false;
@@ -23889,12 +23923,12 @@ _M3eSelectElement_selectOption = function _M3eSelectElement_selectOption(option)
23889
23923
  }
23890
23924
  this.requestUpdate();
23891
23925
  __classPrivateFieldGet(this, _M3eSelectElement_instances, "a", _M3eSelectElement_formField_get)?.notifyControlStateChange();
23926
+ this.dispatchEvent(new Event("input", {
23927
+ bubbles: true
23928
+ }));
23892
23929
  this.dispatchEvent(new Event("change", {
23893
23930
  bubbles: true
23894
23931
  }));
23895
- } else {
23896
- option.selected = !selected;
23897
- __classPrivateFieldGet(this, _M3eSelectElement_instances, "m", _M3eSelectElement_updateSelectionState).call(this, option);
23898
23932
  }
23899
23933
  };
23900
23934
  /** The styles of the element. */
@@ -24465,9 +24499,10 @@ var _M3eSliderThumbElement_instances, _M3eSliderThumbElement_labelText_get;
24465
24499
  * @attr name - The name that identifies the element when submitting the associated form.
24466
24500
  * @attr value - The value of the thumb.
24467
24501
  *
24468
- * @fires input - Emitted when the value changes.
24469
- * @fires change - Emitted when the value changes.
24470
- * @fires click - Emitted when the element is clicked.
24502
+ * @fires beforeinput - Dispatched before the value changes.
24503
+ * @fires input - Dispatched when the value changes.
24504
+ * @fires change - Dispatched when the value changes.
24505
+ * @fires click - Dispatched when the element is clicked.
24471
24506
  *
24472
24507
  * @cssprop --m3e-slider-thumb-width - Width of the slider thumb.
24473
24508
  * @cssprop --m3e-slider-thumb-padding - Horizontal padding around the thumb.
@@ -24540,7 +24575,7 @@ __decorate([property({
24540
24575
  })], M3eSliderThumbElement.prototype, "value", void 0);
24541
24576
  M3eSliderThumbElement = __decorate([customElement$1("m3e-slider-thumb")], M3eSliderThumbElement);
24542
24577
 
24543
- var _M3eSliderElement_instances, _M3eSliderElement_directionalitySubscription, _M3eSliderElement_thumbs, _M3eSliderElement_activeThumb, _M3eSliderElement_cachedWidth, _M3eSliderElement_cachedThumbWidth, _M3eSliderElement_cachedLeft, _M3eSliderElement_renderTick, _M3eSliderElement_handleSlotChange, _M3eSliderElement_updateThumbs, _M3eSliderElement_pointFromValue, _M3eSliderElement_valueFromPoint, _M3eSliderElement_updateCachedDimensions, _M3eSliderElement_updateDimensions, _M3eSliderElement_updateTicks, _M3eSliderElement_handlePointerDown, _M3eSliderElement_handlePointerMove, _M3eSliderElement_handlePointerUp, _M3eSliderElement_handleKeyDown, _M3eSliderElement_handleThumbChange, _M3eSliderElement_changeThumb;
24578
+ var _M3eSliderElement_instances, _M3eSliderElement_directionalitySubscription, _M3eSliderElement_changedThumbs, _M3eSliderElement_thumbs, _M3eSliderElement_activeThumb, _M3eSliderElement_cachedWidth, _M3eSliderElement_cachedThumbWidth, _M3eSliderElement_cachedLeft, _M3eSliderElement_renderTick, _M3eSliderElement_handleSlotChange, _M3eSliderElement_updateThumbs, _M3eSliderElement_pointFromValue, _M3eSliderElement_valueFromPoint, _M3eSliderElement_updateCachedDimensions, _M3eSliderElement_updateDimensions, _M3eSliderElement_updateTicks, _M3eSliderElement_handlePointerDown, _M3eSliderElement_handlePointerMove, _M3eSliderElement_handlePointerUp, _M3eSliderElement_handleKeyDown, _M3eSliderElement_handleKeyUp, _M3eSliderElement_handleThumbChange, _M3eSliderElement_changeThumb, _M3eSliderElement_commitThumb;
24544
24579
  /**
24545
24580
  * Allows for the selection of numeric values from a range.
24546
24581
  *
@@ -24578,6 +24613,10 @@ var _M3eSliderElement_instances, _M3eSliderElement_directionalitySubscription, _
24578
24613
  * @attr step - The value at which the thumb will snap.
24579
24614
  * @attr size - The size of the slider.
24580
24615
  *
24616
+ * @fires beforeinput - Dispatched before the value of a thumb changes.
24617
+ * @fires input - Dispatched when the value of a thumb changes.
24618
+ * @fires change - Dispatched when the value of a thumb changes.
24619
+ *
24581
24620
  * @cssprop --m3e-slider-min-width - Minimum inline size of the slider host.
24582
24621
  * @cssprop --m3e-slider-small-height - Height of the slider when size is small or extra-small.
24583
24622
  * @cssprop --m3e-slider-medium-height - Height of the slider when size is medium.
@@ -24622,6 +24661,8 @@ let M3eSliderElement = class M3eSliderElement extends AttachInternals$1(LitEleme
24622
24661
  /** @private */
24623
24662
  this._ticks = new Array();
24624
24663
  /** @private */
24664
+ _M3eSliderElement_changedThumbs.set(this, new Set());
24665
+ /** @private */
24625
24666
  _M3eSliderElement_thumbs.set(this, new Array());
24626
24667
  /** @private */
24627
24668
  _M3eSliderElement_activeThumb.set(this, void 0);
@@ -24703,6 +24744,7 @@ let M3eSliderElement = class M3eSliderElement extends AttachInternals$1(LitEleme
24703
24744
  /** @inheritdoc */
24704
24745
  disconnectedCallback() {
24705
24746
  super.disconnectedCallback();
24747
+ __classPrivateFieldGet(this, _M3eSliderElement_changedThumbs, "f").clear();
24706
24748
  __classPrivateFieldGet(this, _M3eSliderElement_directionalitySubscription, "f")?.call(this);
24707
24749
  }
24708
24750
  /** @inheritdoc */
@@ -24714,10 +24756,11 @@ let M3eSliderElement = class M3eSliderElement extends AttachInternals$1(LitEleme
24714
24756
  }
24715
24757
  /** @inheritdoc */
24716
24758
  render() {
24717
- return html`<div class="base" tabindex="${ifDefined(!this.disabled ? "-1" : undefined)}" @pointerdown="${__classPrivateFieldGet(this, _M3eSliderElement_instances, "m", _M3eSliderElement_handlePointerDown)}" @pointermove="${__classPrivateFieldGet(this, _M3eSliderElement_instances, "m", _M3eSliderElement_handlePointerMove)}" @pointerup="${__classPrivateFieldGet(this, _M3eSliderElement_instances, "m", _M3eSliderElement_handlePointerUp)}" @keydown="${__classPrivateFieldGet(this, _M3eSliderElement_instances, "m", _M3eSliderElement_handleKeyDown)}" @value-change="${__classPrivateFieldGet(this, _M3eSliderElement_instances, "m", _M3eSliderElement_handleThumbChange)}"><div class="track" aria-hidden="true"><div class="track-inactive start"></div><div class="track-active"></div><div class="track-inactive end"></div></div><div class="ticks" aria-hidden="true">${this._ticks.map(x => __classPrivateFieldGet(this, _M3eSliderElement_instances, "m", _M3eSliderElement_renderTick).call(this, x))}</div><slot @slotchange="${__classPrivateFieldGet(this, _M3eSliderElement_instances, "m", _M3eSliderElement_handleSlotChange)}"></slot></div>`;
24759
+ return html`<div class="base" tabindex="${ifDefined(!this.disabled ? "-1" : undefined)}" @pointerdown="${__classPrivateFieldGet(this, _M3eSliderElement_instances, "m", _M3eSliderElement_handlePointerDown)}" @pointermove="${__classPrivateFieldGet(this, _M3eSliderElement_instances, "m", _M3eSliderElement_handlePointerMove)}" @pointerup="${__classPrivateFieldGet(this, _M3eSliderElement_instances, "m", _M3eSliderElement_handlePointerUp)}" @keydown="${__classPrivateFieldGet(this, _M3eSliderElement_instances, "m", _M3eSliderElement_handleKeyDown)}" @keyup="${__classPrivateFieldGet(this, _M3eSliderElement_instances, "m", _M3eSliderElement_handleKeyUp)}" @value-change="${__classPrivateFieldGet(this, _M3eSliderElement_instances, "m", _M3eSliderElement_handleThumbChange)}"><div class="track" aria-hidden="true"><div class="track-inactive start"></div><div class="track-active"></div><div class="track-inactive end"></div></div><div class="ticks" aria-hidden="true">${this._ticks.map(x => __classPrivateFieldGet(this, _M3eSliderElement_instances, "m", _M3eSliderElement_renderTick).call(this, x))}</div><slot @slotchange="${__classPrivateFieldGet(this, _M3eSliderElement_instances, "m", _M3eSliderElement_handleSlotChange)}"></slot></div>`;
24718
24760
  }
24719
24761
  };
24720
24762
  _M3eSliderElement_directionalitySubscription = new WeakMap();
24763
+ _M3eSliderElement_changedThumbs = new WeakMap();
24721
24764
  _M3eSliderElement_thumbs = new WeakMap();
24722
24765
  _M3eSliderElement_activeThumb = new WeakMap();
24723
24766
  _M3eSliderElement_cachedWidth = new WeakMap();
@@ -24828,6 +24871,7 @@ _M3eSliderElement_handlePointerDown = function _M3eSliderElement_handlePointerDo
24828
24871
  if (e.target instanceof HTMLElement) {
24829
24872
  e.target.setPointerCapture(e.pointerId);
24830
24873
  }
24874
+ __classPrivateFieldGet(this, _M3eSliderElement_changedThumbs, "f").clear();
24831
24875
  __classPrivateFieldSet(this, _M3eSliderElement_activeThumb, e.composedPath().find(x => x instanceof M3eSliderThumbElement), "f");
24832
24876
  if (__classPrivateFieldGet(this, _M3eSliderElement_activeThumb, "f")) {
24833
24877
  return;
@@ -24888,6 +24932,7 @@ _M3eSliderElement_handlePointerUp = function _M3eSliderElement_handlePointerUp(e
24888
24932
  e.target.releasePointerCapture(e.pointerId);
24889
24933
  }
24890
24934
  if (__classPrivateFieldGet(this, _M3eSliderElement_activeThumb, "f") && !__classPrivateFieldGet(this, _M3eSliderElement_activeThumb, "f").disabled) {
24935
+ __classPrivateFieldGet(this, _M3eSliderElement_instances, "m", _M3eSliderElement_commitThumb).call(this, __classPrivateFieldGet(this, _M3eSliderElement_activeThumb, "f"));
24891
24936
  __classPrivateFieldGet(this, _M3eSliderElement_activeThumb, "f").focus();
24892
24937
  }
24893
24938
  };
@@ -24954,6 +24999,12 @@ _M3eSliderElement_handleKeyDown = function _M3eSliderElement_handleKeyDown(e) {
24954
24999
  break;
24955
25000
  }
24956
25001
  };
25002
+ _M3eSliderElement_handleKeyUp = function _M3eSliderElement_handleKeyUp(e) {
25003
+ const activeThumb = e.composedPath().find(x => x instanceof M3eSliderThumbElement);
25004
+ if (activeThumb) {
25005
+ __classPrivateFieldGet(this, _M3eSliderElement_instances, "m", _M3eSliderElement_commitThumb).call(this, activeThumb);
25006
+ }
25007
+ };
24957
25008
  _M3eSliderElement_handleThumbChange = function _M3eSliderElement_handleThumbChange(e) {
24958
25009
  e.stopPropagation();
24959
25010
  __classPrivateFieldGet(this, _M3eSliderElement_instances, "m", _M3eSliderElement_updateThumbs).call(this);
@@ -24961,31 +25012,35 @@ _M3eSliderElement_handleThumbChange = function _M3eSliderElement_handleThumbChan
24961
25012
  };
24962
25013
  _M3eSliderElement_changeThumb = function _M3eSliderElement_changeThumb(thumb, value, animate = false) {
24963
25014
  if (thumb.value === value) return;
24964
- const prev = thumb.value;
24965
- if (animate && !prefersReducedMotion$1()) {
24966
- addCustomState$1(this, "--animating");
24967
- thumb.addEventListener("transitionend", () => {
24968
- thumb.style.transition = "";
24969
- deleteCustomState$1(this, "--animating");
24970
- }, {
24971
- once: true
24972
- });
24973
- thumb.style.transition = `transform ${DesignToken$1.motion.spring.fastEffects}`;
24974
- }
24975
- thumb.value = value;
24976
- thumb.markAsDirty();
24977
- thumb.markAsTouched();
24978
- if (thumb.dispatchEvent(new Event("input", {
25015
+ if (thumb.dispatchEvent(new Event("beforeinput", {
24979
25016
  bubbles: true,
24980
- composed: true,
24981
25017
  cancelable: true
24982
25018
  }))) {
25019
+ if (animate && !prefersReducedMotion$1()) {
25020
+ addCustomState$1(this, "--animating");
25021
+ thumb.addEventListener("transitionend", () => {
25022
+ thumb.style.transition = "";
25023
+ deleteCustomState$1(this, "--animating");
25024
+ }, {
25025
+ once: true
25026
+ });
25027
+ thumb.style.transition = `transform ${DesignToken$1.motion.spring.fastEffects}`;
25028
+ }
25029
+ __classPrivateFieldGet(this, _M3eSliderElement_changedThumbs, "f").add(thumb);
25030
+ thumb.value = value;
25031
+ thumb.markAsDirty();
25032
+ thumb.markAsTouched();
25033
+ thumb.dispatchEvent(new Event("input", {
25034
+ bubbles: true
25035
+ }));
25036
+ }
25037
+ };
25038
+ _M3eSliderElement_commitThumb = function _M3eSliderElement_commitThumb(thumb) {
25039
+ if (__classPrivateFieldGet(this, _M3eSliderElement_changedThumbs, "f").has(thumb)) {
24983
25040
  thumb.dispatchEvent(new Event("change", {
24984
- bubbles: true,
24985
- composed: true
25041
+ bubbles: true
24986
25042
  }));
24987
- } else {
24988
- thumb.value = prev;
25043
+ __classPrivateFieldGet(this, _M3eSliderElement_changedThumbs, "f").delete(thumb);
24989
25044
  }
24990
25045
  };
24991
25046
  /** The styles of the element. */
@@ -25498,8 +25553,9 @@ var _M3eSplitPaneElement_instances, _M3eSplitPaneElement_breakpointUnobserve, _M
25498
25553
  * @attr value - A fractional value, between 0 and 100, indicating the size of the start pane.
25499
25554
  * @attr wrap-detents - Whether cycling through detents will wrap.
25500
25555
  *
25501
- * @fires input - Fired continuously while the user adjusts the drag handle.
25502
- * @fires change - Fired when the user finishes adjusting the drag handle.
25556
+ * @fires beforeinput - Dispatched continuously before the user adjusts the drag handle.
25557
+ * @fires input - Dispatched continuously while the user adjusts the drag handle.
25558
+ * @fires change - Dispatched when the user finishes adjusting the drag handle.
25503
25559
  *
25504
25560
  * @cssprop --m3e-split-pane-drag-handle-hover-color - Color used for the drag handle hover state.
25505
25561
  * @cssprop --m3e-split-pane-drag-handle-hover-opacity - Opacity used for the drag handle hover state.
@@ -25806,8 +25862,7 @@ _M3eSplitPaneElement_handlePointerUp = function _M3eSplitPaneElement_handlePoint
25806
25862
  }
25807
25863
  if (__classPrivateFieldGet(this, _M3eSplitPaneElement_valueChanged, "f")) {
25808
25864
  this.dispatchEvent(new Event("change", {
25809
- bubbles: true,
25810
- composed: true
25865
+ bubbles: true
25811
25866
  }));
25812
25867
  __classPrivateFieldSet(this, _M3eSplitPaneElement_valueChanged, false, "f");
25813
25868
  }
@@ -25943,27 +25998,25 @@ _M3eSplitPaneElement_handleKeyDown = function _M3eSplitPaneElement_handleKeyDown
25943
25998
  };
25944
25999
  _M3eSplitPaneElement_changeValue = function _M3eSplitPaneElement_changeValue(value, emitChange = true, allowOvershoot = false) {
25945
26000
  __classPrivateFieldGet(this, _M3eSplitPaneElement_instances, "m", _M3eSplitPaneElement_clearSnapAnimation).call(this);
25946
- if (!allowOvershoot) {
25947
- value = Math.max(this.min, Math.min(this.max, value));
25948
- }
25949
- if (value != this.value) {
25950
- const prev = this.value;
25951
- this.value = value;
25952
- if (this.dispatchEvent(new Event("input", {
25953
- bubbles: true,
25954
- composed: true,
25955
- cancelable: true
25956
- }))) {
26001
+ if (this.dispatchEvent(new Event("beforeinput", {
26002
+ bubbles: true,
26003
+ cancelable: true
26004
+ }))) {
26005
+ if (!allowOvershoot) {
26006
+ value = Math.max(this.min, Math.min(this.max, value));
26007
+ }
26008
+ if (value != this.value) {
26009
+ this.value = value;
25957
26010
  this._base.style.setProperty("--_split-pane-value", `${this.value}%`);
26011
+ this.dispatchEvent(new Event("input", {
26012
+ bubbles: true
26013
+ }));
25958
26014
  if (emitChange) {
25959
26015
  this.dispatchEvent(new Event("change", {
25960
- bubbles: true,
25961
- composed: true
26016
+ bubbles: true
25962
26017
  }));
25963
26018
  }
25964
26019
  return true;
25965
- } else {
25966
- this.value = prev;
25967
26020
  }
25968
26021
  }
25969
26022
  return false;
@@ -26244,9 +26297,10 @@ var M3eStepElement_1;
26244
26297
  * @attr optional - Whether the step is optional.
26245
26298
  * @attr selected - Whether the element is selected.
26246
26299
  *
26247
- * @fires input - Emitted when the selected state changes.
26248
- * @fires change - Emitted when the selected state changes.
26249
- * @fires click - Emitted when the element is clicked.
26300
+ * @fires beforeinput - Dispatched before the selected state changes.
26301
+ * @fires input - Dispatched when the selected state changes.
26302
+ * @fires change - Dispatched when the selected state changes.
26303
+ * @fires click - Dispatched when the element is clicked.
26250
26304
  *
26251
26305
  * @cssprop --m3e-step-shape - Border radius of the step container, defining its visual shape.
26252
26306
  * @cssprop --m3e-step-padding - Internal padding of the step container, used for layout spacing.
@@ -26390,17 +26444,17 @@ _M3eStepElement_handleClick = function _M3eStepElement_handleClick(e) {
26390
26444
  e.stopImmediatePropagation();
26391
26445
  }
26392
26446
  if (e.defaultPrevented || this.selected) return;
26393
- this.selected = true;
26394
- if (this.dispatchEvent(new Event("input", {
26447
+ if (this.dispatchEvent(new Event("beforeinput", {
26395
26448
  bubbles: true,
26396
- composed: true,
26397
26449
  cancelable: true
26398
- })) && this.closest("m3e-stepper")?.moveTo(this.index)) {
26450
+ })) && this.closest("m3e-stepper")?._moveTo(this.index)) {
26451
+ this.selected = true;
26452
+ this.dispatchEvent(new Event("input", {
26453
+ bubbles: true
26454
+ }));
26399
26455
  this.dispatchEvent(new Event("change", {
26400
26456
  bubbles: true
26401
26457
  }));
26402
- } else {
26403
- this.selected = false;
26404
26458
  }
26405
26459
  };
26406
26460
  /** The styles of the element. */
@@ -26515,7 +26569,9 @@ var _M3eStepperElement_instances, _M3eStepperElement_breakpointUnobserve, _M3eSt
26515
26569
  * @slot step - Renders a step.
26516
26570
  * @slot panel - Renders a panel.
26517
26571
  *
26518
- * @fires change - Emitted when the selected step changes.
26572
+ * @fires beforeinput - Dispatched before the selected state of a step changes.
26573
+ * @fires input - Dispatched when the selected state of a step changes.
26574
+ * @fires change - Dispatched when the selected step changes.
26519
26575
  *
26520
26576
  * @cssprop --m3e-step-divider-thickness - Thickness of the divider line between steps.
26521
26577
  * @cssprop --m3e-step-divider-color - Color of the divider line between steps.
@@ -26584,6 +26640,16 @@ let M3eStepperElement = class M3eStepperElement extends ReconnectedCallback$1(At
26584
26640
  * @returns {boolean} Whether the stepper moved to the specified `index`.
26585
26641
  */
26586
26642
  moveTo(index) {
26643
+ if (this._moveTo(index)) {
26644
+ this.dispatchEvent(new Event("change", {
26645
+ bubbles: true
26646
+ }));
26647
+ return true;
26648
+ }
26649
+ return false;
26650
+ }
26651
+ /** @internal */
26652
+ _moveTo(index) {
26587
26653
  const selectedStep = this.selectedStep;
26588
26654
  if (selectedStep && selectedStep.index === index) {
26589
26655
  return true;
@@ -26613,16 +26679,10 @@ let M3eStepperElement = class M3eStepperElement extends ReconnectedCallback$1(At
26613
26679
  }
26614
26680
  this._selectedIndex = index;
26615
26681
  this[selectionManager].select(this.selectedStep);
26616
- this.dispatchEvent(new Event("change", {
26617
- bubbles: true
26618
- }));
26619
26682
  return true;
26620
26683
  } else {
26621
26684
  if (selectedStep) {
26622
26685
  this[selectionManager].deselect(selectedStep);
26623
- this.dispatchEvent(new Event("change", {
26624
- bubbles: true
26625
- }));
26626
26686
  }
26627
26687
  return false;
26628
26688
  }
@@ -26696,7 +26756,9 @@ _M3eStepperElement_renderHeader = function _M3eStepperElement_renderHeader() {
26696
26756
  };
26697
26757
  _M3eStepperElement_handleChange = function _M3eStepperElement_handleChange(e) {
26698
26758
  e.stopPropagation();
26699
- // Note: change event emitted from moveTo.
26759
+ this.dispatchEvent(new Event("change", {
26760
+ bubbles: true
26761
+ }));
26700
26762
  };
26701
26763
  _M3eStepperElement_handleSlotChange = function _M3eStepperElement_handleSlotChange() {
26702
26764
  const {
@@ -26990,9 +27052,10 @@ var _M3eSwitchElement_instances, _M3eSwitchElement_clickHandler, _M3eSwitchEleme
26990
27052
  * @attr name - The name that identifies the element when submitting the associated form.
26991
27053
  * @attr value - A string representing the value of the switch.
26992
27054
  *
26993
- * @fires input - Emitted when the checked state changes.
26994
- * @fires change - Emitted when the checked state changes.
26995
- * @fires click - Emitted when the element is clicked.
27055
+ * @fires beforeinput - Dispatched before the checked state changes.
27056
+ * @fires input - Dispatched when the checked state changes.
27057
+ * @fires change - Dispatched when the checked state changes.
27058
+ * @fires click - Dispatched when the element is clicked.
26996
27059
  *
26997
27060
  * @cssprop --m3e-switch-selected-icon-color - Color of the icon when the switch is selected.
26998
27061
  * @cssprop --m3e-switch-selected-icon-size - Size of the icon in the selected state.
@@ -27139,17 +27202,17 @@ _M3eSwitchElement_renderIcon = function _M3eSwitchElement_renderIcon() {
27139
27202
  };
27140
27203
  _M3eSwitchElement_handleClick = function _M3eSwitchElement_handleClick(e) {
27141
27204
  if (e.defaultPrevented) return;
27142
- this.checked = !this.checked;
27143
- if (this.dispatchEvent(new Event("input", {
27205
+ if (this.dispatchEvent(new Event("beforeinput", {
27144
27206
  bubbles: true,
27145
- composed: true,
27146
27207
  cancelable: true
27147
27208
  }))) {
27209
+ this.checked = !this.checked;
27210
+ this.dispatchEvent(new Event("input", {
27211
+ bubbles: true
27212
+ }));
27148
27213
  this.dispatchEvent(new Event("change", {
27149
27214
  bubbles: true
27150
27215
  }));
27151
- } else {
27152
- this.checked = !this.checked;
27153
27216
  }
27154
27217
  // Prevent default avoids double-click in FireFox.
27155
27218
  if (this.closest("label")) {
@@ -27201,9 +27264,10 @@ var M3eTabElement_1;
27201
27264
  * @attr for - The identifier of the interactive control to which this element is attached.
27202
27265
  * @attr selected - Whether the element is selected.
27203
27266
  *
27204
- * @fires input - Emitted when the selected state changes.
27205
- * @fires change - Emitted when the selected state changes.
27206
- * @fires click - Emitted when the element is clicked.
27267
+ * @fires beforeinput - Dispatched before the selected state changes.
27268
+ * @fires input - Dispatched when the selected state changes.
27269
+ * @fires change - Dispatched when the selected state changes.
27270
+ * @fires click - Dispatched when the element is clicked.
27207
27271
  *
27208
27272
  * @cssprop --m3e-tab-font-size - Font size for tab label.
27209
27273
  * @cssprop --m3e-tab-font-weight - Font weight for tab label.
@@ -27280,18 +27344,18 @@ _M3eTabElement_handleClick = function _M3eTabElement_handleClick(e) {
27280
27344
  e.stopImmediatePropagation();
27281
27345
  }
27282
27346
  if (e.defaultPrevented || this.selected) return;
27283
- this.selected = true;
27284
- if (this.dispatchEvent(new Event("input", {
27347
+ if (this.dispatchEvent(new Event("beforeinput", {
27285
27348
  bubbles: true,
27286
- composed: true,
27287
27349
  cancelable: true
27288
27350
  }))) {
27351
+ this.selected = true;
27289
27352
  this.closest("m3e-tabs")?.[selectionManager].notifySelectionChange(this);
27353
+ this.dispatchEvent(new Event("input", {
27354
+ bubbles: true
27355
+ }));
27290
27356
  this.dispatchEvent(new Event("change", {
27291
27357
  bubbles: true
27292
27358
  }));
27293
- } else {
27294
- this.selected = false;
27295
27359
  }
27296
27360
  };
27297
27361
  /** The styles of the element. */
@@ -27389,7 +27453,9 @@ const MIN_PRIMARY_TAB_WIDTH = 24;
27389
27453
  * @attr stretch - Whether tabs are stretched to fill the header.
27390
27454
  * @attr variant - The appearance variant of the tabs.
27391
27455
  *
27392
- * @fires change - Emitted when the selected tab changes.
27456
+ * @fires beforeinput - Dispatched before the selected state of a tab changes.
27457
+ * @fires input - Dispatched when the selected state of a tab changes.
27458
+ * @fires change - Dispatched when the selected tab changes.
27393
27459
  *
27394
27460
  * @cssprop --m3e-tabs-paginator-button-icon-size - Overrides the icon size for paginator buttons.
27395
27461
  * @cssprop --m3e-tabs-active-indicator-color - Color of the active tab indicator.
@@ -32154,7 +32220,7 @@ M3eThemeElement = __decorate([customElement$1("m3e-theme")], M3eThemeElement);
32154
32220
  *
32155
32221
  * @attr disabled - A value indicating whether the element is disabled.
32156
32222
  *
32157
- * @fires click - Emitted when the element is clicked.
32223
+ * @fires click - Dispatched when the element is clicked.
32158
32224
  *
32159
32225
  * @cssprop --m3e-toc-item-shape - Border radius of the TOC item.
32160
32226
  * @cssprop --m3e-toc-item-padding-block - Block padding for the TOC item.
@@ -33267,11 +33333,11 @@ var M3eTreeItemElement_1;
33267
33333
  * @attr open - Whether the item is expanded.
33268
33334
  * @attr selected - Whether the item is selected.
33269
33335
  *
33270
- * @fires opening - Emitted when the item begins to open.
33271
- * @fires opened - Emitted when the item has opened.
33272
- * @fires closing - Emitted when the item begins to close.
33273
- * @fires closed - Emitted when the item has closed.
33274
- * @fires click - Emitted when the element is clicked.
33336
+ * @fires opening - Dispatched when the item begins to open.
33337
+ * @fires opened - Dispatched when the item has opened.
33338
+ * @fires closing - Dispatched when the item begins to close.
33339
+ * @fires closed - Dispatched when the item has closed.
33340
+ * @fires click - Dispatched when the element is clicked.
33275
33341
  *
33276
33342
  * @cssprop --m3e-tree-item-font-size - Font size for the item label.
33277
33343
  * @cssprop --m3e-tree-item-font-weight - Font weight for the item label.
@@ -33632,7 +33698,7 @@ var M3eTreeElement_1;
33632
33698
  * @attr multi - Whether multiple items can be selected.
33633
33699
  * @attr cascade -Whether multiple item selection cascades to child items.
33634
33700
  *
33635
- * @fires change - Emitted when the selected state changes.
33701
+ * @fires change - Dispatched when the selected state changes.
33636
33702
  *
33637
33703
  * @cssprop --m3e-tree-scrollbar-width - Width of the tree scrollbar.
33638
33704
  * @cssprop --m3e-tree-scrollbar-color - Color of the tree scrollbar.