@m3e/web 2.5.12 → 2.5.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/dist/all.js +20840 -16242
  2. package/dist/all.js.map +1 -1
  3. package/dist/all.min.js +174 -62
  4. package/dist/all.min.js.map +1 -1
  5. package/dist/avatar.js +1 -1
  6. package/dist/avatar.js.map +1 -1
  7. package/dist/avatar.min.js +1 -1
  8. package/dist/avatar.min.js.map +1 -1
  9. package/dist/badge.js +29 -8
  10. package/dist/badge.js.map +1 -1
  11. package/dist/badge.min.js +1 -1
  12. package/dist/badge.min.js.map +1 -1
  13. package/dist/bottom-sheet.js +1 -1
  14. package/dist/bottom-sheet.js.map +1 -1
  15. package/dist/bottom-sheet.min.js +1 -1
  16. package/dist/bottom-sheet.min.js.map +1 -1
  17. package/dist/calendar.js +46 -10
  18. package/dist/calendar.js.map +1 -1
  19. package/dist/calendar.min.js +5 -5
  20. package/dist/calendar.min.js.map +1 -1
  21. package/dist/checkbox.js +1 -1
  22. package/dist/checkbox.js.map +1 -1
  23. package/dist/checkbox.min.js +1 -1
  24. package/dist/checkbox.min.js.map +1 -1
  25. package/dist/core-anchoring.js +58 -25
  26. package/dist/core-anchoring.js.map +1 -1
  27. package/dist/core-anchoring.min.js +1 -1
  28. package/dist/core-anchoring.min.js.map +1 -1
  29. package/dist/core.js +105 -88
  30. package/dist/core.js.map +1 -1
  31. package/dist/core.min.js +1 -1
  32. package/dist/core.min.js.map +1 -1
  33. package/dist/css-custom-data.json +50 -50
  34. package/dist/custom-elements.json +1746 -935
  35. package/dist/datepicker.js +75 -34
  36. package/dist/datepicker.js.map +1 -1
  37. package/dist/datepicker.min.js +1 -1
  38. package/dist/datepicker.min.js.map +1 -1
  39. package/dist/dialog.js +1 -1
  40. package/dist/dialog.js.map +1 -1
  41. package/dist/dialog.min.js +1 -1
  42. package/dist/dialog.min.js.map +1 -1
  43. package/dist/divider.js +1 -1
  44. package/dist/divider.js.map +1 -1
  45. package/dist/divider.min.js +1 -1
  46. package/dist/divider.min.js.map +1 -1
  47. package/dist/drawer-container.js +2 -2
  48. package/dist/drawer-container.js.map +1 -1
  49. package/dist/drawer-container.min.js +1 -1
  50. package/dist/drawer-container.min.js.map +1 -1
  51. package/dist/expansion-panel.js +6 -3
  52. package/dist/expansion-panel.js.map +1 -1
  53. package/dist/expansion-panel.min.js +1 -1
  54. package/dist/expansion-panel.min.js.map +1 -1
  55. package/dist/fab-menu.js +116 -114
  56. package/dist/fab-menu.js.map +1 -1
  57. package/dist/fab-menu.min.js +1 -1
  58. package/dist/fab-menu.min.js.map +1 -1
  59. package/dist/form-field.js +9 -6
  60. package/dist/form-field.js.map +1 -1
  61. package/dist/form-field.min.js +1 -1
  62. package/dist/form-field.min.js.map +1 -1
  63. package/dist/html-custom-data.json +28 -13
  64. package/dist/icon.js +8 -9
  65. package/dist/icon.js.map +1 -1
  66. package/dist/icon.min.js +1 -1
  67. package/dist/icon.min.js.map +1 -1
  68. package/dist/menu.js +45 -25
  69. package/dist/menu.js.map +1 -1
  70. package/dist/menu.min.js +1 -1
  71. package/dist/menu.min.js.map +1 -1
  72. package/dist/nav-bar.js +2 -2
  73. package/dist/nav-bar.js.map +1 -1
  74. package/dist/nav-bar.min.js +1 -1
  75. package/dist/nav-bar.min.js.map +1 -1
  76. package/dist/nav-menu.js +2 -2
  77. package/dist/nav-menu.js.map +1 -1
  78. package/dist/nav-menu.min.js +1 -1
  79. package/dist/nav-menu.min.js.map +1 -1
  80. package/dist/nav-rail.js +1 -1
  81. package/dist/nav-rail.js.map +1 -1
  82. package/dist/nav-rail.min.js +1 -1
  83. package/dist/nav-rail.min.js.map +1 -1
  84. package/dist/radio-group.js +1 -1
  85. package/dist/radio-group.js.map +1 -1
  86. package/dist/radio-group.min.js +1 -1
  87. package/dist/radio-group.min.js.map +1 -1
  88. package/dist/search.js +31 -11
  89. package/dist/search.js.map +1 -1
  90. package/dist/search.min.js +1 -1
  91. package/dist/search.min.js.map +1 -1
  92. package/dist/skeleton.js +89 -44
  93. package/dist/skeleton.js.map +1 -1
  94. package/dist/skeleton.min.js +1 -1
  95. package/dist/skeleton.min.js.map +1 -1
  96. package/dist/slide-group.js +1 -1
  97. package/dist/slide-group.js.map +1 -1
  98. package/dist/slide-group.min.js +1 -1
  99. package/dist/slide-group.min.js.map +1 -1
  100. package/dist/slider.js +2 -2
  101. package/dist/slider.js.map +1 -1
  102. package/dist/slider.min.js +1 -1
  103. package/dist/slider.min.js.map +1 -1
  104. package/dist/snackbar.js +1 -1
  105. package/dist/snackbar.js.map +1 -1
  106. package/dist/snackbar.min.js +1 -1
  107. package/dist/snackbar.min.js.map +1 -1
  108. package/dist/split-pane.js +1 -1
  109. package/dist/split-pane.js.map +1 -1
  110. package/dist/split-pane.min.js +1 -1
  111. package/dist/split-pane.min.js.map +1 -1
  112. package/dist/src/avatar/AvatarElement.d.ts.map +1 -1
  113. package/dist/src/badge/BadgeElement.d.ts +1 -0
  114. package/dist/src/badge/BadgeElement.d.ts.map +1 -1
  115. package/dist/src/bottom-sheet/BottomSheetElement.d.ts.map +1 -1
  116. package/dist/src/calendar/CalendarElement.d.ts +2 -0
  117. package/dist/src/calendar/CalendarElement.d.ts.map +1 -1
  118. package/dist/src/calendar/CalendarViewElementBase.d.ts +2 -0
  119. package/dist/src/calendar/CalendarViewElementBase.d.ts.map +1 -1
  120. package/dist/src/calendar/MonthViewElement.d.ts +1 -0
  121. package/dist/src/calendar/MonthViewElement.d.ts.map +1 -1
  122. package/dist/src/calendar/MultiYearViewElement.d.ts.map +1 -1
  123. package/dist/src/calendar/YearViewElement.d.ts.map +1 -1
  124. package/dist/src/checkbox/CheckboxElement.d.ts.map +1 -1
  125. package/dist/src/core/anchoring/FloatingPanelElement.d.ts.map +1 -1
  126. package/dist/src/core/anchoring/positionAnchor.d.ts.map +1 -1
  127. package/dist/src/core/shared/controllers/ClickOutsideController.d.ts +24 -0
  128. package/dist/src/core/shared/controllers/ClickOutsideController.d.ts.map +1 -0
  129. package/dist/src/core/shared/controllers/FocusController.d.ts +5 -11
  130. package/dist/src/core/shared/controllers/FocusController.d.ts.map +1 -1
  131. package/dist/src/core/shared/controllers/HoverController.d.ts +2 -8
  132. package/dist/src/core/shared/controllers/HoverController.d.ts.map +1 -1
  133. package/dist/src/core/shared/controllers/IntersectionController.d.ts +2 -8
  134. package/dist/src/core/shared/controllers/IntersectionController.d.ts.map +1 -1
  135. package/dist/src/core/shared/controllers/LongPressController.d.ts +2 -8
  136. package/dist/src/core/shared/controllers/LongPressController.d.ts.map +1 -1
  137. package/dist/src/core/shared/controllers/MonitorControllerBase.d.ts +4 -0
  138. package/dist/src/core/shared/controllers/MonitorControllerBase.d.ts.map +1 -1
  139. package/dist/src/core/shared/controllers/PressedController.d.ts +6 -8
  140. package/dist/src/core/shared/controllers/PressedController.d.ts.map +1 -1
  141. package/dist/src/core/shared/controllers/ResizeController.d.ts +2 -8
  142. package/dist/src/core/shared/controllers/ResizeController.d.ts.map +1 -1
  143. package/dist/src/core/shared/controllers/index.d.ts +1 -0
  144. package/dist/src/core/shared/controllers/index.d.ts.map +1 -1
  145. package/dist/src/core/shared/mixins/AttachInternals.d.ts.map +1 -1
  146. package/dist/src/core/shared/primitives/FocusRingElement.d.ts.map +1 -1
  147. package/dist/src/core/shared/primitives/PseudoCheckboxElement.d.ts.map +1 -1
  148. package/dist/src/core/shared/primitives/PseudoRadioElement.d.ts.map +1 -1
  149. package/dist/src/core/shared/primitives/RippleElement.d.ts.map +1 -1
  150. package/dist/src/core/shared/primitives/StateLayerElement.d.ts.map +1 -1
  151. package/dist/src/datepicker/DatepickerElement.d.ts +1 -2
  152. package/dist/src/datepicker/DatepickerElement.d.ts.map +1 -1
  153. package/dist/src/dialog/DialogElement.d.ts.map +1 -1
  154. package/dist/src/divider/DividerElement.d.ts.map +1 -1
  155. package/dist/src/drawer-container/styles/DrawerContainerStyle.d.ts.map +1 -1
  156. package/dist/src/expansion-panel/ExpansionPanelElement.d.ts.map +1 -1
  157. package/dist/src/expansion-panel/styles/ExpansionHeaderStyle.d.ts.map +1 -1
  158. package/dist/src/expansion-panel/styles/ExpansionPanelStyle.d.ts.map +1 -1
  159. package/dist/src/fab-menu/FabMenuElement.d.ts.map +1 -1
  160. package/dist/src/form-field/FormFieldElement.d.ts +1 -0
  161. package/dist/src/form-field/FormFieldElement.d.ts.map +1 -1
  162. package/dist/src/menu/MenuElement.d.ts.map +1 -1
  163. package/dist/src/nav-bar/NavBarElement.d.ts.map +1 -1
  164. package/dist/src/nav-bar/NavItemElement.d.ts.map +1 -1
  165. package/dist/src/nav-menu/NavMenuElement.d.ts.map +1 -1
  166. package/dist/src/nav-menu/NavMenuItemElement.d.ts.map +1 -1
  167. package/dist/src/nav-rail/NavRailElement.d.ts.map +1 -1
  168. package/dist/src/radio-group/RadioElement.d.ts.map +1 -1
  169. package/dist/src/search/SearchViewElement.d.ts.map +1 -1
  170. package/dist/src/search/styles/SearchBarStyle.d.ts.map +1 -1
  171. package/dist/src/search/styles/SearchViewStyle.d.ts.map +1 -1
  172. package/dist/src/skeleton/SkeletonElement.d.ts +11 -1
  173. package/dist/src/skeleton/SkeletonElement.d.ts.map +1 -1
  174. package/dist/src/slide-group/SlideGroupElement.d.ts.map +1 -1
  175. package/dist/src/slider/SliderElement.d.ts.map +1 -1
  176. package/dist/src/slider/SliderThumbElement.d.ts.map +1 -1
  177. package/dist/src/snackbar/SnackbarElement.d.ts.map +1 -1
  178. package/dist/src/split-pane/SplitPaneElement.d.ts.map +1 -1
  179. package/dist/src/stepper/StepElement.d.ts.map +1 -1
  180. package/dist/src/stepper/StepPanelElement.d.ts.map +1 -1
  181. package/dist/src/stepper/StepperElement.d.ts.map +1 -1
  182. package/dist/src/switch/styles/SwitchStyle.d.ts.map +1 -1
  183. package/dist/src/switch/styles/SwitchTrackStyle.d.ts.map +1 -1
  184. package/dist/src/tabs/TabElement.d.ts.map +1 -1
  185. package/dist/src/tabs/TabPanelElement.d.ts.map +1 -1
  186. package/dist/src/tabs/TabsElement.d.ts.map +1 -1
  187. package/dist/src/toc/TocElement.d.ts.map +1 -1
  188. package/dist/src/toc/TocItemElement.d.ts.map +1 -1
  189. package/dist/src/tooltip/RichTooltipElement.d.ts.map +1 -1
  190. package/dist/src/tooltip/TooltipElement.d.ts +4 -0
  191. package/dist/src/tooltip/TooltipElement.d.ts.map +1 -1
  192. package/dist/src/tree/TreeElement.d.ts.map +1 -1
  193. package/dist/src/tree/TreeItemElement.d.ts.map +1 -1
  194. package/dist/stepper.js +3 -3
  195. package/dist/stepper.js.map +1 -1
  196. package/dist/stepper.min.js +1 -1
  197. package/dist/stepper.min.js.map +1 -1
  198. package/dist/switch.js +2 -2
  199. package/dist/switch.js.map +1 -1
  200. package/dist/switch.min.js +1 -1
  201. package/dist/switch.min.js.map +1 -1
  202. package/dist/tabs.js +3 -3
  203. package/dist/tabs.js.map +1 -1
  204. package/dist/tabs.min.js +1 -1
  205. package/dist/tabs.min.js.map +1 -1
  206. package/dist/toc.js +2 -2
  207. package/dist/toc.js.map +1 -1
  208. package/dist/toc.min.js +1 -1
  209. package/dist/toc.min.js.map +1 -1
  210. package/dist/tooltip.js +77 -38
  211. package/dist/tooltip.js.map +1 -1
  212. package/dist/tooltip.min.js +1 -1
  213. package/dist/tooltip.min.js.map +1 -1
  214. package/dist/tree.js +2 -2
  215. package/dist/tree.js.map +1 -1
  216. package/dist/tree.min.js +1 -1
  217. package/dist/tree.min.js.map +1 -1
  218. package/package.json +1 -1
package/dist/core.js CHANGED
@@ -79,6 +79,10 @@ class MonitorControllerBase {
79
79
  get targets() {
80
80
  return __classPrivateFieldGet(this, _MonitorControllerBase_targets, "f").values();
81
81
  }
82
+ /** Whether one or more targets are being monitored. */
83
+ get hasTargets() {
84
+ return __classPrivateFieldGet(this, _MonitorControllerBase_targets, "f").size > 0;
85
+ }
82
86
  /** @inheritdoc */
83
87
  hostConnected() {
84
88
  // Target defaults to host unless explicitly null.
@@ -88,8 +92,7 @@ class MonitorControllerBase {
88
92
  }
89
93
  /** @inheritdoc */
90
94
  hostDisconnected() {
91
- __classPrivateFieldGet(this, _MonitorControllerBase_targets, "f").forEach(x => this.unobserve(x));
92
- __classPrivateFieldGet(this, _MonitorControllerBase_targets, "f").clear();
95
+ this.unobserveAll();
93
96
  }
94
97
  /**
95
98
  * Starts observing the specified element.
@@ -116,9 +119,55 @@ class MonitorControllerBase {
116
119
  if (!__classPrivateFieldGet(this, _MonitorControllerBase_targets, "f").delete(target)) return;
117
120
  this._unobserve(target);
118
121
  }
122
+ /** Stops observing all targets. */
123
+ unobserveAll() {
124
+ __classPrivateFieldGet(this, _MonitorControllerBase_targets, "f").forEach(x => this.unobserve(x));
125
+ __classPrivateFieldGet(this, _MonitorControllerBase_targets, "f").clear();
126
+ }
119
127
  }
120
128
  _MonitorControllerBase_host = new WeakMap(), _MonitorControllerBase_target = new WeakMap(), _MonitorControllerBase_targets = new WeakMap();
121
129
 
130
+ var _ClickOutsideController_instances, _ClickOutsideController_callback, _ClickOutsideController_documentClickHandler, _ClickOutsideController_listening, _ClickOutsideController_handleDocumentClick;
131
+ /** A `ReactiveController` used to monitor whether the user clicks outside all observed elements. */
132
+ class ClickOutsideController extends MonitorControllerBase {
133
+ /**
134
+ * Initializes a new instance of this class.
135
+ * @param {ReactiveControllerHost & HTMLElement} host The host element to which this controller will be added.
136
+ * @param {FocusControllerOptions} options Options used to configure this controller.
137
+ */
138
+ constructor(host, options) {
139
+ super(host, options);
140
+ _ClickOutsideController_instances.add(this);
141
+ /** @private */
142
+ _ClickOutsideController_callback.set(this, void 0);
143
+ /** @private */
144
+ _ClickOutsideController_documentClickHandler.set(this, e => __classPrivateFieldGet(this, _ClickOutsideController_instances, "m", _ClickOutsideController_handleDocumentClick).call(this, e));
145
+ /** @private */
146
+ _ClickOutsideController_listening.set(this, false);
147
+ __classPrivateFieldSet(this, _ClickOutsideController_callback, options.callback, "f");
148
+ }
149
+ /** @inheritdoc */
150
+ _observe() {
151
+ if (!__classPrivateFieldGet(this, _ClickOutsideController_listening, "f")) {
152
+ document.addEventListener("click", __classPrivateFieldGet(this, _ClickOutsideController_documentClickHandler, "f"));
153
+ __classPrivateFieldSet(this, _ClickOutsideController_listening, true, "f");
154
+ }
155
+ }
156
+ /** @inheritdoc */
157
+ _unobserve() {
158
+ if (!this.hasTargets && __classPrivateFieldGet(this, _ClickOutsideController_listening, "f")) {
159
+ document.removeEventListener("click", __classPrivateFieldGet(this, _ClickOutsideController_documentClickHandler, "f"));
160
+ __classPrivateFieldSet(this, _ClickOutsideController_listening, false, "f");
161
+ }
162
+ }
163
+ }
164
+ _ClickOutsideController_callback = new WeakMap(), _ClickOutsideController_documentClickHandler = new WeakMap(), _ClickOutsideController_listening = new WeakMap(), _ClickOutsideController_instances = new WeakSet(), _ClickOutsideController_handleDocumentClick = function _ClickOutsideController_handleDocumentClick(e) {
165
+ const composedPath = e.composedPath();
166
+ if (!composedPath.some(x => x instanceof HTMLElement && this.isObserving(x))) {
167
+ __classPrivateFieldGet(this, _ClickOutsideController_callback, "f").call(this, composedPath);
168
+ }
169
+ };
170
+
122
171
  /**
123
172
  * Computes a CSS size expression (var(), %, rem, calc(), etc.) relative to the given host element.
124
173
  * @param {HTMLElement} host - The element whose coordinate system and CSS variables should be used to resolve the expression.
@@ -753,7 +802,7 @@ async function waitForUpgrade(el) {
753
802
  await Promise.resolve();
754
803
  }
755
804
 
756
- var _FocusController_instances, _FocusController_touch, _FocusController_callback, _FocusController_keyDownHandler, _FocusController_focusInHandler, _FocusController_focusOutHandler, _FocusController_touchStartHandler, _FocusController_touchEndHandler, _FocusController_hadKeydown, _FocusController_windowKeyDownHandler, _FocusController_windowPointerDownHandler, _FocusController_handleKeyDown, _FocusController_handleFocusIn, _FocusController_handleFocusOut;
805
+ var _FocusController_instances, _a, _FocusController_touch, _FocusController_callback, _FocusController_filter, _FocusController_keyDownHandler, _FocusController_focusInHandler, _FocusController_focusOutHandler, _FocusController_touchStartHandler, _FocusController_touchEndHandler, _FocusController_hadKeydown, _FocusController_handleKeyDown, _FocusController_handleFocusIn, _FocusController_handleFocusOut;
757
806
  /** A `ReactiveController` used to monitor the focused state of one or more elements. */
758
807
  class FocusController extends MonitorControllerBase {
759
808
  /**
@@ -769,6 +818,8 @@ class FocusController extends MonitorControllerBase {
769
818
  /** @private */
770
819
  _FocusController_callback.set(this, void 0);
771
820
  /** @private */
821
+ _FocusController_filter.set(this, void 0);
822
+ /** @private */
772
823
  _FocusController_keyDownHandler.set(this, e => __classPrivateFieldGet(this, _FocusController_instances, "m", _FocusController_handleKeyDown).call(this, e));
773
824
  /** @private */
774
825
  _FocusController_focusInHandler.set(this, e => __classPrivateFieldGet(this, _FocusController_instances, "m", _FocusController_handleFocusIn).call(this, e));
@@ -778,51 +829,21 @@ class FocusController extends MonitorControllerBase {
778
829
  _FocusController_touchStartHandler.set(this, () => __classPrivateFieldSet(this, _FocusController_touch, true, "f"));
779
830
  /** @private */
780
831
  _FocusController_touchEndHandler.set(this, () => __classPrivateFieldSet(this, _FocusController_touch, false, "f"));
781
- /** @private */
782
- _FocusController_hadKeydown.set(this, false);
783
- /** @private */
784
- _FocusController_windowKeyDownHandler.set(this, () => __classPrivateFieldSet(this, _FocusController_hadKeydown, true, "f"));
785
- /** @private */
786
- _FocusController_windowPointerDownHandler.set(this, () => __classPrivateFieldSet(this, _FocusController_hadKeydown, false, "f"));
787
832
  __classPrivateFieldSet(this, _FocusController_callback, options.callback, "f");
833
+ __classPrivateFieldSet(this, _FocusController_filter, options.filter, "f");
788
834
  }
789
835
  /** @inheritdoc */
790
- hostConnected() {
791
- super.hostConnected();
792
- window?.addEventListener("keydown", __classPrivateFieldGet(this, _FocusController_windowKeyDownHandler, "f"), {
793
- capture: true,
794
- passive: true
795
- });
796
- window?.addEventListener("pointerdown", __classPrivateFieldGet(this, _FocusController_windowPointerDownHandler, "f"), {
797
- capture: true
798
- });
799
- }
800
- /** @inheritdoc */
801
- hostDisconnected() {
802
- super.hostDisconnected();
803
- window?.removeEventListener("keydown", __classPrivateFieldGet(this, _FocusController_windowKeyDownHandler, "f"), {
804
- capture: true
805
- });
806
- window?.removeEventListener("pointerdown", __classPrivateFieldGet(this, _FocusController_windowPointerDownHandler, "f"), {
807
- capture: true
808
- });
809
- }
810
- /**
811
- * Starts observing the specified element.
812
- * @param {HTMLElement} target The element to start observing.
813
- */
814
836
  _observe(target) {
815
837
  target.addEventListener("keydown", __classPrivateFieldGet(this, _FocusController_keyDownHandler, "f"));
816
838
  target.addEventListener("focusin", __classPrivateFieldGet(this, _FocusController_focusInHandler, "f"));
817
839
  target.addEventListener("focusout", __classPrivateFieldGet(this, _FocusController_focusOutHandler, "f"));
818
- target.addEventListener("touchstart", __classPrivateFieldGet(this, _FocusController_touchStartHandler, "f"));
840
+ target.addEventListener("touchstart", __classPrivateFieldGet(this, _FocusController_touchStartHandler, "f"), {
841
+ passive: true
842
+ });
819
843
  target.addEventListener("touchend", __classPrivateFieldGet(this, _FocusController_touchEndHandler, "f"));
820
844
  target.addEventListener("touchcancel", __classPrivateFieldGet(this, _FocusController_touchEndHandler, "f"));
821
845
  }
822
- /**
823
- * Stops observing the specified element.
824
- * @param {HTMLElement} target The element to stop observing.
825
- */
846
+ /** @inheritdoc */
826
847
  _unobserve(target) {
827
848
  target.removeEventListener("keydown", __classPrivateFieldGet(this, _FocusController_keyDownHandler, "f"));
828
849
  target.removeEventListener("focusin", __classPrivateFieldGet(this, _FocusController_focusInHandler, "f"));
@@ -832,19 +853,37 @@ class FocusController extends MonitorControllerBase {
832
853
  target.removeEventListener("touchcancel", __classPrivateFieldGet(this, _FocusController_touchEndHandler, "f"));
833
854
  }
834
855
  }
835
- _FocusController_touch = new WeakMap(), _FocusController_callback = new WeakMap(), _FocusController_keyDownHandler = new WeakMap(), _FocusController_focusInHandler = new WeakMap(), _FocusController_focusOutHandler = new WeakMap(), _FocusController_touchStartHandler = new WeakMap(), _FocusController_touchEndHandler = new WeakMap(), _FocusController_hadKeydown = new WeakMap(), _FocusController_windowKeyDownHandler = new WeakMap(), _FocusController_windowPointerDownHandler = new WeakMap(), _FocusController_instances = new WeakSet(), _FocusController_handleKeyDown = function _FocusController_handleKeyDown(e) {
856
+ _a = FocusController, _FocusController_touch = new WeakMap(), _FocusController_callback = new WeakMap(), _FocusController_filter = new WeakMap(), _FocusController_keyDownHandler = new WeakMap(), _FocusController_focusInHandler = new WeakMap(), _FocusController_focusOutHandler = new WeakMap(), _FocusController_touchStartHandler = new WeakMap(), _FocusController_touchEndHandler = new WeakMap(), _FocusController_instances = new WeakSet(), _FocusController_handleKeyDown = function _FocusController_handleKeyDown(e) {
857
+ if (__classPrivateFieldGet(this, _FocusController_filter, "f")?.call(this, e)) return;
836
858
  const target = e.currentTarget;
837
859
  if (target.matches(":focus-within")) {
838
860
  __classPrivateFieldGet(this, _FocusController_instances, "m", _FocusController_handleFocusIn).call(this, e);
839
861
  }
840
862
  }, _FocusController_handleFocusIn = function _FocusController_handleFocusIn(e) {
863
+ if (__classPrivateFieldGet(this, _FocusController_filter, "f")?.call(this, e)) return;
841
864
  if (__classPrivateFieldGet(this, _FocusController_touch, "f")) return;
842
865
  const target = e.currentTarget;
843
- __classPrivateFieldGet(this, _FocusController_callback, "f").call(this, true, target.matches(":focus-visible") || __classPrivateFieldGet(this, _FocusController_hadKeydown, "f") || forcedColorsActive(), target);
866
+ __classPrivateFieldGet(this, _FocusController_callback, "f").call(this, true, target.matches(":focus-visible") || __classPrivateFieldGet(_a, _a, "f", _FocusController_hadKeydown) || forcedColorsActive(), target);
844
867
  }, _FocusController_handleFocusOut = function _FocusController_handleFocusOut(e) {
868
+ if (__classPrivateFieldGet(this, _FocusController_filter, "f")?.call(this, e)) return;
845
869
  if (__classPrivateFieldGet(this, _FocusController_touch, "f")) return;
846
870
  __classPrivateFieldGet(this, _FocusController_callback, "f").call(this, false, false, e.currentTarget);
847
871
  };
872
+ (() => {
873
+ if (typeof window !== "undefined") {
874
+ window.addEventListener("keydown", () => __classPrivateFieldSet(_a, _a, true, "f", _FocusController_hadKeydown), {
875
+ capture: true,
876
+ passive: true
877
+ });
878
+ window.addEventListener("pointerdown", () => __classPrivateFieldSet(_a, _a, false, "f", _FocusController_hadKeydown), {
879
+ capture: true
880
+ });
881
+ }
882
+ })();
883
+ /** @private */
884
+ _FocusController_hadKeydown = {
885
+ value: false
886
+ };
848
887
 
849
888
  var _HoverController_instances, _HoverController_callback, _HoverController_startDelays, _HoverController_endDelays, _HoverController_pointerInHandler, _HoverController_pointerLeaveHandler, _HoverController_clearDelays, _HoverController_clearStartDelay, _HoverController_clearEndDelay, _HoverController_handlePointerEnter, _HoverController_handlePointerLeave;
850
889
  /** A `ReactiveController` used to monitor the hover state of one or more elements. */
@@ -877,23 +916,18 @@ class HoverController extends MonitorControllerBase {
877
916
  __classPrivateFieldGet(this, _HoverController_instances, "m", _HoverController_clearDelays).call(this, target);
878
917
  }
879
918
  }
880
- /**
881
- * Starts observing the specified element.
882
- * @param {HTMLElement} target The element to start observing.
883
- */
919
+ /** @inheritdoc */
884
920
  _observe(target) {
885
921
  target.addEventListener("pointerenter", __classPrivateFieldGet(this, _HoverController_pointerInHandler, "f"));
886
922
  target.addEventListener("pointerleave", __classPrivateFieldGet(this, _HoverController_pointerLeaveHandler, "f"));
887
923
  target.addEventListener("touchend", __classPrivateFieldGet(this, _HoverController_pointerLeaveHandler, "f"));
888
924
  }
889
- /**
890
- * Stops observing the specified element.
891
- * @param {HTMLElement} target The element to stop observing.
892
- */
925
+ /** @inheritdoc */
893
926
  _unobserve(target) {
894
927
  target.removeEventListener("pointerenter", __classPrivateFieldGet(this, _HoverController_pointerInHandler, "f"));
895
928
  target.removeEventListener("pointerleave", __classPrivateFieldGet(this, _HoverController_pointerLeaveHandler, "f"));
896
929
  target.removeEventListener("touchend", __classPrivateFieldGet(this, _HoverController_pointerLeaveHandler, "f"));
930
+ __classPrivateFieldGet(this, _HoverController_instances, "m", _HoverController_clearDelays).call(this, target);
897
931
  }
898
932
  }
899
933
  _HoverController_callback = new WeakMap(), _HoverController_startDelays = new WeakMap(), _HoverController_endDelays = new WeakMap(), _HoverController_pointerInHandler = new WeakMap(), _HoverController_pointerLeaveHandler = new WeakMap(), _HoverController_instances = new WeakSet(), _HoverController_clearDelays = function _HoverController_clearDelays(target) {
@@ -1019,18 +1053,12 @@ class IntersectionController extends MonitorControllerBase {
1019
1053
  }
1020
1054
  __classPrivateFieldSet(this, _IntersectionController_unobservedUpdate, false, "f");
1021
1055
  }
1022
- /**
1023
- * Starts observing the specified element.
1024
- * @param {HTMLElement} target The element to start observing.
1025
- */
1056
+ /** @inheritdoc */
1026
1057
  _observe(target) {
1027
1058
  __classPrivateFieldGet(this, _IntersectionController_observer, "f")?.observe(target);
1028
1059
  __classPrivateFieldSet(this, _IntersectionController_unobservedUpdate, true, "f");
1029
1060
  }
1030
- /**
1031
- * Stops observing the specified element.
1032
- * @param {HTMLElement} target The element to stop observing.
1033
- */
1061
+ /** @inheritdoc */
1034
1062
  _unobserve(target) {
1035
1063
  __classPrivateFieldGet(this, _IntersectionController_observer, "f")?.unobserve(target);
1036
1064
  }
@@ -1063,10 +1091,7 @@ class LongPressController extends MonitorControllerBase {
1063
1091
  __classPrivateFieldSet(this, _LongPressController_callback, options.callback, "f");
1064
1092
  __classPrivateFieldSet(this, _LongPressController_threshold, options.threshold ?? 500, "f");
1065
1093
  }
1066
- /**
1067
- * Starts observing the specified element.
1068
- * @param {HTMLElement} target The element to start observing.
1069
- */
1094
+ /** @inheritdoc */
1070
1095
  _observe(target) {
1071
1096
  target.addEventListener("touchstart", __classPrivateFieldGet(this, _LongPressController_touchStartHandler, "f"), {
1072
1097
  passive: true
@@ -1074,10 +1099,7 @@ class LongPressController extends MonitorControllerBase {
1074
1099
  target.addEventListener("touchend", __classPrivateFieldGet(this, _LongPressController_touchEndOrCancelHandler, "f"));
1075
1100
  target.addEventListener("touchcancel", __classPrivateFieldGet(this, _LongPressController_touchEndOrCancelHandler, "f"));
1076
1101
  }
1077
- /**
1078
- * Stops observing the specified element.
1079
- * @param {HTMLElement} target The element to stop observing.
1080
- */
1102
+ /** @inheritdoc */
1081
1103
  _unobserve(target) {
1082
1104
  target.removeEventListener("touchstart", __classPrivateFieldGet(this, _LongPressController_touchStartHandler, "f"));
1083
1105
  target.removeEventListener("touchend", __classPrivateFieldGet(this, _LongPressController_touchEndOrCancelHandler, "f"));
@@ -1170,7 +1192,7 @@ class MutationController extends MonitorControllerBase {
1170
1192
  }
1171
1193
  _MutationController_callback = new WeakMap(), _MutationController_skipInitial = new WeakMap(), _MutationController_config = new WeakMap(), _MutationController_observer = new WeakMap(), _MutationController_unobservedUpdate = new WeakMap();
1172
1194
 
1173
- var _PressedController_instances, _PressedController_capture, _PressedController_callback, _PressedController_isPressedKey, _PressedController_pressedTargets, _PressedController_minPressedDuration, _PressedController_pointerDownHandler, _PressedController_pointerUpHandler, _PressedController_touchEndHandler, _PressedController_keyDownHandler, _PressedController_keyUpHandler, _PressedController_handlePointerDown, _PressedController_handlePointerUp, _PressedController_handleTouchEnd, _PressedController_handleKeyDown, _PressedController_handleKeyUp, _PressedController_clearPressedTargets;
1195
+ var _PressedController_instances, _PressedController_capture, _PressedController_callback, _PressedController_filter, _PressedController_isPressedKey, _PressedController_pressedTargets, _PressedController_minPressedDuration, _PressedController_pointerDownHandler, _PressedController_pointerUpHandler, _PressedController_touchEndHandler, _PressedController_keyDownHandler, _PressedController_keyUpHandler, _PressedController_handlePointerDown, _PressedController_handlePointerUp, _PressedController_handleTouchEnd, _PressedController_handleKeyDown, _PressedController_handleKeyUp, _PressedController_clearPressedTargets;
1174
1196
  /** A `ReactiveController` used to monitor the pressed state of one or more elements. */
1175
1197
  class PressedController extends MonitorControllerBase {
1176
1198
  /**
@@ -1186,6 +1208,8 @@ class PressedController extends MonitorControllerBase {
1186
1208
  /** @private */
1187
1209
  _PressedController_callback.set(this, void 0);
1188
1210
  /** @private */
1211
+ _PressedController_filter.set(this, void 0);
1212
+ /** @private */
1189
1213
  _PressedController_isPressedKey.set(this, void 0);
1190
1214
  /** @private */
1191
1215
  _PressedController_pressedTargets.set(this, new Map());
@@ -1203,6 +1227,7 @@ class PressedController extends MonitorControllerBase {
1203
1227
  _PressedController_keyUpHandler.set(this, e => __classPrivateFieldGet(this, _PressedController_instances, "m", _PressedController_handleKeyUp).call(this, e));
1204
1228
  __classPrivateFieldSet(this, _PressedController_capture, options.capture, "f");
1205
1229
  __classPrivateFieldSet(this, _PressedController_callback, options.callback, "f");
1230
+ __classPrivateFieldSet(this, _PressedController_filter, options.filter, "f");
1206
1231
  __classPrivateFieldSet(this, _PressedController_isPressedKey, options.isPressedKey, "f");
1207
1232
  __classPrivateFieldSet(this, _PressedController_minPressedDuration, options.minPressedDuration ?? 0, "f");
1208
1233
  }
@@ -1233,10 +1258,7 @@ class PressedController extends MonitorControllerBase {
1233
1258
  super.hostDisconnected();
1234
1259
  __classPrivateFieldGet(this, _PressedController_pressedTargets, "f").clear();
1235
1260
  }
1236
- /**
1237
- * Starts observing the specified element.
1238
- * @param {HTMLElement} target The element to start observing.
1239
- */
1261
+ /** @inheritdoc */
1240
1262
  _observe(target) {
1241
1263
  target.addEventListener("pointerdown", __classPrivateFieldGet(this, _PressedController_pointerDownHandler, "f"), {
1242
1264
  capture: __classPrivateFieldGet(this, _PressedController_capture, "f")
@@ -1250,10 +1272,7 @@ class PressedController extends MonitorControllerBase {
1250
1272
  });
1251
1273
  }
1252
1274
  }
1253
- /**
1254
- * Stops observing the specified element.
1255
- * @param {HTMLElement} target The element to stop observing.
1256
- */
1275
+ /** @inheritdoc */
1257
1276
  _unobserve(target) {
1258
1277
  target.removeEventListener("pointerdown", __classPrivateFieldGet(this, _PressedController_pointerDownHandler, "f"), {
1259
1278
  capture: __classPrivateFieldGet(this, _PressedController_capture, "f")
@@ -1268,7 +1287,8 @@ class PressedController extends MonitorControllerBase {
1268
1287
  }
1269
1288
  }
1270
1289
  }
1271
- _PressedController_capture = new WeakMap(), _PressedController_callback = new WeakMap(), _PressedController_isPressedKey = new WeakMap(), _PressedController_pressedTargets = new WeakMap(), _PressedController_minPressedDuration = new WeakMap(), _PressedController_pointerDownHandler = new WeakMap(), _PressedController_pointerUpHandler = new WeakMap(), _PressedController_touchEndHandler = new WeakMap(), _PressedController_keyDownHandler = new WeakMap(), _PressedController_keyUpHandler = new WeakMap(), _PressedController_instances = new WeakSet(), _PressedController_handlePointerDown = function _PressedController_handlePointerDown(e) {
1290
+ _PressedController_capture = new WeakMap(), _PressedController_callback = new WeakMap(), _PressedController_filter = new WeakMap(), _PressedController_isPressedKey = new WeakMap(), _PressedController_pressedTargets = new WeakMap(), _PressedController_minPressedDuration = new WeakMap(), _PressedController_pointerDownHandler = new WeakMap(), _PressedController_pointerUpHandler = new WeakMap(), _PressedController_touchEndHandler = new WeakMap(), _PressedController_keyDownHandler = new WeakMap(), _PressedController_keyUpHandler = new WeakMap(), _PressedController_instances = new WeakSet(), _PressedController_handlePointerDown = function _PressedController_handlePointerDown(e) {
1291
+ if (__classPrivateFieldGet(this, _PressedController_filter, "f")?.call(this, e)) return;
1272
1292
  if (e.pointerType === "mouse" && e.button > 1) return;
1273
1293
  for (const target of e.composedPath()) {
1274
1294
  if (target instanceof HTMLElement && this.isObserving(target)) {
@@ -1288,6 +1308,7 @@ _PressedController_capture = new WeakMap(), _PressedController_callback = new We
1288
1308
  }, _PressedController_handleTouchEnd = function _PressedController_handleTouchEnd(e) {
1289
1309
  __classPrivateFieldGet(this, _PressedController_instances, "m", _PressedController_clearPressedTargets).call(this, e.changedTouches[0]?.clientX ?? 0, e.changedTouches[0]?.clientY ?? 0);
1290
1310
  }, _PressedController_handleKeyDown = function _PressedController_handleKeyDown(e) {
1311
+ if (__classPrivateFieldGet(this, _PressedController_filter, "f")?.call(this, e)) return;
1291
1312
  if (e.target !== e.currentTarget) return;
1292
1313
  const target = e.currentTarget;
1293
1314
  if (__classPrivateFieldGet(this, _PressedController_isPressedKey, "f")?.call(this, e.key)) {
@@ -1382,18 +1403,12 @@ class ResizeController extends MonitorControllerBase {
1382
1403
  }
1383
1404
  __classPrivateFieldSet(this, _ResizeController_unobservedUpdate, false, "f");
1384
1405
  }
1385
- /**
1386
- * Starts observing the specified element.
1387
- * @param {HTMLElement} target The element to start observing.
1388
- */
1406
+ /** @inheritdoc */
1389
1407
  _observe(target) {
1390
1408
  __classPrivateFieldGet(this, _ResizeController_observer, "f")?.observe(target, __classPrivateFieldGet(this, _ResizeController_config, "f"));
1391
1409
  __classPrivateFieldSet(this, _ResizeController_unobservedUpdate, true, "f");
1392
1410
  }
1393
- /**
1394
- * Stops observing the specified element.
1395
- * @param {HTMLElement} target The element to stop observing.
1396
- */
1411
+ /** @inheritdoc */
1397
1412
  _unobserve(target) {
1398
1413
  __classPrivateFieldGet(this, _ResizeController_observer, "f")?.unobserve(target);
1399
1414
  }
@@ -1805,6 +1820,8 @@ function hasCustomState(element, state) {
1805
1820
  * @param {string} state The custom state to add.
1806
1821
  */
1807
1822
  function addCustomState(element, state) {
1823
+ // Avoid style recalculation when element already has state.
1824
+ if (hasCustomState(element, state)) return;
1808
1825
  // Since flushing custom state doesn't flush in Safari (affecting all iOS browsers),
1809
1826
  // a copy of custom state is retained locally so components can correctly read after write.
1810
1827
  if (_customState in element) {
@@ -4362,7 +4379,7 @@ _M3eFocusRingElement_handleFocusChange = function _M3eFocusRingElement_handleFoc
4362
4379
  }
4363
4380
  };
4364
4381
  /** The styles of the element. */
4365
- M3eFocusRingElement.styles = css`:host { display: block; position: absolute; left: 0; top: 0; right: 0; bottom: 0; pointer-events: none; border-radius: inherit; outline: none; } .outline { position: absolute; left: 0; top: 0; right: 0; bottom: 0; pointer-events: none; border-radius: inherit; z-index: 1; outline-color: ${FocusRingToken.color}; outline-width: ${FocusRingToken.thickness}; visibility: ${FocusRingToken.visibility}; } .outline.visible { outline-style: solid; } :host(:not([inward])) .outline { outline-offset: ${FocusRingToken.outwardOffset}; } :host([inward]) .outline { outline-offset: calc(${FocusRingToken.inwardOffset} - ${FocusRingToken.thickness}); } :host(:not([inward])) .outline.visible { animation: grow-shrink ${FocusRingToken.duration}; } :host([inward]) .outline.visible { animation: shrink-grow ${FocusRingToken.duration}; } @keyframes grow-shrink { 50% { outline-width: calc(${FocusRingToken.thickness} * ${FocusRingToken.growthFactor}); } } @keyframes shrink-grow { 50% { outline-offset: calc( ${FocusRingToken.inwardOffset} - calc(${FocusRingToken.thickness} * ${FocusRingToken.growthFactor}) ); outline-width: calc(${FocusRingToken.thickness} * ${FocusRingToken.growthFactor}); } } @media (prefers-reduced-motion) { :host(:not([inward])) .outline.visible, :host([inward]) .outline.visible { animation: none; } } @media (forced-colors: active) { .outline { outline-color: Highlight; } }`;
4382
+ M3eFocusRingElement.styles = css`:host { display: block; position: absolute; left: 0; top: 0; right: 0; bottom: 0; pointer-events: none; border-radius: inherit; outline: none; } .outline { contain: layout style; position: absolute; left: 0; top: 0; right: 0; bottom: 0; pointer-events: none; border-radius: inherit; z-index: 1; outline-color: ${FocusRingToken.color}; outline-width: ${FocusRingToken.thickness}; visibility: ${FocusRingToken.visibility}; } .outline.visible { outline-style: solid; } :host(:not([inward])) .outline { outline-offset: ${FocusRingToken.outwardOffset}; } :host([inward]) .outline { outline-offset: calc(${FocusRingToken.inwardOffset} - ${FocusRingToken.thickness}); } :host(:not([inward])) .outline.visible { animation: grow-shrink ${FocusRingToken.duration}; } :host([inward]) .outline.visible { animation: shrink-grow ${FocusRingToken.duration}; } @keyframes grow-shrink { 50% { outline-width: calc(${FocusRingToken.thickness} * ${FocusRingToken.growthFactor}); } } @keyframes shrink-grow { 50% { outline-offset: calc( ${FocusRingToken.inwardOffset} - calc(${FocusRingToken.thickness} * ${FocusRingToken.growthFactor}) ); outline-width: calc(${FocusRingToken.thickness} * ${FocusRingToken.growthFactor}); } } @media (prefers-reduced-motion) { :host(:not([inward])) .outline.visible, :host([inward]) .outline.visible { animation: none; } } @media (forced-colors: active) { .outline { outline-color: Highlight; } }`;
4366
4383
  __decorate([query(".outline")], M3eFocusRingElement.prototype, "_outline", void 0);
4367
4384
  __decorate([property({
4368
4385
  type: Boolean,
@@ -4424,7 +4441,7 @@ let M3ePseudoCheckboxElement = class M3ePseudoCheckboxElement extends CheckedInd
4424
4441
  }
4425
4442
  };
4426
4443
  /** The styles of the element. */
4427
- M3ePseudoCheckboxElement.styles = css`:host { display: inline-block; vertical-align: middle; width: var(--m3e-checkbox-icon-size, 1.125rem); height: var(--m3e-checkbox-icon-size, 1.125rem); border-radius: var(--m3e-checkbox-container-shape, 2px); box-sizing: border-box; flex: none; } :host(:not([checked]):not([indeterminate])) { border-width: var(--m3e-checkbox-unselected-outline-thickness, 2px); border-style: solid; } :host(:not([disabled])[checked]), :host(:not([disabled])[indeterminate]) { background-color: var(--m3e-checkbox-selected-container-color, ${DesignToken.color.primary}); color: var(--m3e-checkbox-selected-icon-color, ${DesignToken.color.onPrimary}); } :host(:not([disabled]):not([checked]):not([indeterminate])) { border-color: var(--m3e-checkbox-unselected-outline-color, ${DesignToken.color.onSurfaceVariant}); } :host([disabled]:not([checked]):not([indeterminate])) { border-color: color-mix( in srgb, var(--m3e-checkbox-unselected-disabled-outline-color, ${DesignToken.color.onSurface}) var(--m3e-checkbox-unselected-disabled-outline-opacity, 38%), transparent ); } :host([disabled][checked]), :host([disabled][indeterminate]) { background-color: color-mix( in srgb, var(--m3e-checkbox-selected-disabled-container-color, ${DesignToken.color.onSurface}) var(--m3e-checkbox-selected-disabled-container-opacity, 38%), transparent ); color: color-mix( in srgb, var(--m3e-checkbox-selected-disabled-icon-color, ${DesignToken.color.surface}) var(--m3e-checkbox-selected-disabled-icon-opacity, 100%), transparent ); } svg { pointer-events: none; } @media (forced-colors: active) { :host(:not([disabled])[checked]), :host(:not([disabled])[indeterminate]) { border-color: Highlight; background-color: Highlight; color: HighlightText; } :host(:not([disabled]):not([checked]):not([indeterminate])) { border-color: CanvasText; background: Canvas; } :host([disabled]:not([checked]):not([indeterminate])) { border-color: GrayText; background-color: Canvas; } :host([disabled][checked]), :host([disabled][indeterminate]) { background-color: GrayText; color: Canvas; } }`;
4444
+ M3ePseudoCheckboxElement.styles = css`:host { display: inline-block; vertical-align: middle; width: var(--m3e-checkbox-icon-size, 1.125rem); height: var(--m3e-checkbox-icon-size, 1.125rem); border-radius: var(--m3e-checkbox-container-shape, 2px); box-sizing: border-box; flex: none; contain: layout style paint; } :host(:not([checked]):not([indeterminate])) { border-width: var(--m3e-checkbox-unselected-outline-thickness, 2px); border-style: solid; } :host(:not([disabled])[checked]), :host(:not([disabled])[indeterminate]) { background-color: var(--m3e-checkbox-selected-container-color, ${DesignToken.color.primary}); color: var(--m3e-checkbox-selected-icon-color, ${DesignToken.color.onPrimary}); } :host(:not([disabled]):not([checked]):not([indeterminate])) { border-color: var(--m3e-checkbox-unselected-outline-color, ${DesignToken.color.onSurfaceVariant}); } :host([disabled]:not([checked]):not([indeterminate])) { border-color: color-mix( in srgb, var(--m3e-checkbox-unselected-disabled-outline-color, ${DesignToken.color.onSurface}) var(--m3e-checkbox-unselected-disabled-outline-opacity, 38%), transparent ); } :host([disabled][checked]), :host([disabled][indeterminate]) { background-color: color-mix( in srgb, var(--m3e-checkbox-selected-disabled-container-color, ${DesignToken.color.onSurface}) var(--m3e-checkbox-selected-disabled-container-opacity, 38%), transparent ); color: color-mix( in srgb, var(--m3e-checkbox-selected-disabled-icon-color, ${DesignToken.color.surface}) var(--m3e-checkbox-selected-disabled-icon-opacity, 100%), transparent ); } svg { pointer-events: none; } @media (forced-colors: active) { :host(:not([disabled])[checked]), :host(:not([disabled])[indeterminate]) { border-color: Highlight; background-color: Highlight; color: HighlightText; } :host(:not([disabled]):not([checked]):not([indeterminate])) { border-color: CanvasText; background: Canvas; } :host([disabled]:not([checked]):not([indeterminate])) { border-color: GrayText; background-color: Canvas; } :host([disabled][checked]), :host([disabled][indeterminate]) { background-color: GrayText; color: Canvas; } }`;
4428
4445
  M3ePseudoCheckboxElement = __decorate([customElement("m3e-pseudo-checkbox")], M3ePseudoCheckboxElement);
4429
4446
 
4430
4447
  /**
@@ -4462,7 +4479,7 @@ let M3ePseudoRadioElement = class M3ePseudoRadioElement extends Checked(Disabled
4462
4479
  }
4463
4480
  };
4464
4481
  /** The styles of the element. */
4465
- M3ePseudoRadioElement.styles = css`:host { display: inline-block; vertical-align: middle; box-sizing: border-box; width: var(--m3e-radio-icon-size, 1.25rem); height: var(--m3e-radio-icon-size, 1.25rem); flex: none; } .circle { fill: currentColor; } :host(:not([checked])) .circle.inner { opacity: 0; } :host(:not([checked])) { color: var(--m3e-radio-unselected-icon-color, ${DesignToken.color.onSurfaceVariant}); } :host([checked]) { color: var(--m3e-radio-selected-icon-color, ${DesignToken.color.primary}); } :host([disabled]) { color: color-mix(in srgb, var(--m3e-radio-disabled-icon-color, ${DesignToken.color.onSurface}) 38%, transparent); } @media (forced-colors: active) { :host { border-radius: 50%; } :host(:not([checked])) { color: CanvasText; background-color: Canvas; } :host([checked]) { color: HighlightText; background-color: Highlight; } :host([disabled]) { color: GrayText; background-color: Canvas; } }`;
4482
+ M3ePseudoRadioElement.styles = css`:host { display: inline-block; vertical-align: middle; box-sizing: border-box; width: var(--m3e-radio-icon-size, 1.25rem); height: var(--m3e-radio-icon-size, 1.25rem); flex: none; contain: layout style paint; } .circle { fill: currentColor; } :host(:not([checked])) .circle.inner { opacity: 0; } :host(:not([checked])) { color: var(--m3e-radio-unselected-icon-color, ${DesignToken.color.onSurfaceVariant}); } :host([checked]) { color: var(--m3e-radio-selected-icon-color, ${DesignToken.color.primary}); } :host([disabled]) { color: color-mix(in srgb, var(--m3e-radio-disabled-icon-color, ${DesignToken.color.onSurface}) 38%, transparent); } @media (forced-colors: active) { :host { border-radius: 50%; } :host(:not([checked])) { color: CanvasText; background-color: Canvas; } :host([checked]) { color: HighlightText; background-color: Highlight; } :host([disabled]) { color: GrayText; background-color: Canvas; } }`;
4466
4483
  M3ePseudoRadioElement = __decorate([customElement("m3e-pseudo-radio")], M3ePseudoRadioElement);
4467
4484
 
4468
4485
  /**
@@ -4657,7 +4674,7 @@ _M3eRippleElement_handlePressedChange = function _M3eRippleElement_handlePressed
4657
4674
  }
4658
4675
  };
4659
4676
  /** The styles of the element. */
4660
- M3eRippleElement.styles = css`:host { display: block; position: absolute; left: 0; top: 0; right: 0; bottom: 0; pointer-events: none; border-radius: inherit; } :host(:not([unbounded])) { overflow: hidden; } .ripple { display: block; position: absolute; left: 0; top: 0; right: 0; bottom: 0; pointer-events: none; transform: scale(0); border-radius: ${DesignToken.shape.corner.full}; background-color: color-mix(in srgb, ${RippleToken.color} ${RippleToken.opacity}, transparent); will-change: background-color, opacity; animation: ripple ${RippleToken.enterDuration} linear; } .ripple.persistent.pressed { transform: scale(${RippleToken.scaleFactor}); } .ripple.exit { transition: opacity ${RippleToken.exitDuration} cubic-bezier(0, 0, 0.2, 0.1); opacity: 0; } @keyframes ripple { to { transform: scale(${RippleToken.scaleFactor}); } } @media (prefers-reduced-motion) { .ripple { transform: scale(${RippleToken.scaleFactor}); animation-duration: 90ms; } .ripple.exit { transition-duration: 10ms; } } @media (forced-colors: active) { .ripple { display: none; } }`;
4677
+ M3eRippleElement.styles = css`:host { display: block; position: absolute; left: 0; top: 0; right: 0; bottom: 0; pointer-events: none; border-radius: inherit; } :host(:not([unbounded])) { overflow: hidden; } :host(:not([unbounded])) .ripple { contain: layout style paint; } :host([unbounded]) .ripple { contain: layout style; } .ripple { display: block; position: absolute; left: 0; top: 0; right: 0; bottom: 0; pointer-events: none; transform: scale(0); border-radius: ${DesignToken.shape.corner.full}; background-color: color-mix(in srgb, ${RippleToken.color} ${RippleToken.opacity}, transparent); will-change: background-color, opacity; animation: ripple ${RippleToken.enterDuration} linear; } .ripple.persistent.pressed { transform: scale(${RippleToken.scaleFactor}); } .ripple.exit { transition: opacity ${RippleToken.exitDuration} cubic-bezier(0, 0, 0.2, 0.1); opacity: 0; } @keyframes ripple { to { transform: scale(${RippleToken.scaleFactor}); } } @media (prefers-reduced-motion) { .ripple { transform: scale(${RippleToken.scaleFactor}); animation-duration: 90ms; } .ripple.exit { transition-duration: 10ms; } } @media (forced-colors: active) { .ripple { display: none; } }`;
4661
4678
  __decorate([property({
4662
4679
  type: Boolean,
4663
4680
  reflect: true
@@ -5011,7 +5028,7 @@ _M3eStateLayerElement_handleFocusChange = function _M3eStateLayerElement_handleF
5011
5028
  }
5012
5029
  };
5013
5030
  /** The styles of the element. */
5014
- M3eStateLayerElement.styles = css`:host { display: block; } :host, .layer { position: absolute; left: 0; top: 0; right: 0; bottom: 0; pointer-events: none; border-radius: inherit; } .layer { will-change: background-color; transition: ${unsafeCSS(`background-color ${StateLayerToken.duration} ${StateLayerToken.easing}`)}; } .layer.focused { background-color: color-mix(in srgb, ${StateLayerToken.focusColor} ${StateLayerToken.focusOpacity}, transparent); } .layer.hover { background-color: color-mix(in srgb, ${StateLayerToken.hoverColor} ${StateLayerToken.hoverOpacity}, transparent); } @media (prefers-reduced-motion) { .layer { transition: none; } } @media (forced-colors: active) { .layer { display: none; } }`;
5031
+ M3eStateLayerElement.styles = css`:host { display: block; } :host, .layer { position: absolute; left: 0; top: 0; right: 0; bottom: 0; pointer-events: none; border-radius: inherit; } .layer { contain: layout style paint; will-change: background-color; transition: ${unsafeCSS(`background-color ${StateLayerToken.duration} ${StateLayerToken.easing}`)}; } .layer.focused { background-color: color-mix(in srgb, ${StateLayerToken.focusColor} ${StateLayerToken.focusOpacity}, transparent); } .layer.hover { background-color: color-mix(in srgb, ${StateLayerToken.hoverColor} ${StateLayerToken.hoverOpacity}, transparent); } @media (prefers-reduced-motion) { .layer { transition: none; } } @media (forced-colors: active) { .layer { display: none; } }`;
5015
5032
  __decorate([query(".layer")], M3eStateLayerElement.prototype, "_layer", void 0);
5016
5033
  __decorate([property({
5017
5034
  type: Boolean,
@@ -5291,5 +5308,5 @@ let M3eTextOverflowElement = class M3eTextOverflowElement extends LitElement {
5291
5308
  M3eTextOverflowElement.styles = css`:host { flex: 1 1 auto; display: inline-flex; align-items: center; flex-wrap: nowrap; min-width: 0; } .base { flex: 1 1 auto; display: inline; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }`;
5292
5309
  M3eTextOverflowElement = __decorate([customElement("m3e-text-overflow")], M3eTextOverflowElement);
5293
5310
 
5294
- export { ActionElementBase, AnimationLoopController, AttachInternals, Checked, CheckedIndeterminate, ConstraintValidation, DesignToken, Dirty, Disabled, DisabledInteractive, FocusController, Focusable, FormAssociated, FormSubmitter, HoverController, HtmlFor, InertController, IntersectionController, KeyboardClick, Labelled, LinkButton, LongPressController, M3eCollapsibleElement, M3eElevationElement, M3eFocusRingElement, M3ePseudoCheckboxElement, M3ePseudoRadioElement, M3eRippleElement, M3eScrollContainerElement, M3eSlideElement, M3eStateLayerElement, M3eTextHighlightElement, M3eTextOverflowElement, MutationController, PressedController, ReadOnly, ReconnectedCallback, Required, RequiredConstraintValidation, ResizeController, Role, ScrollController, ScrollLockController, Selected, SuppressInitialAnimation, Touched, VelocityTracker, Vertical, addCustomState, checkOrSelect, computeCssSize, computeLineCount, customElement, dateConverter, debounce, defaultValue, deleteCustomState, focusWhenReady, forcedColorsActive, formValue, generateClipPaths, getScrollbarWidth, getTextContent, guid, hasAssignedNodes, hasCustomState, hasKeys, interceptProperty, internals, isAttachInternalsMixin, isCheckedIndeterminateMixin, isCheckedMixin, isCheckedOrSelected, isCheckedOrSelectedMixin, isConstraintValidationMixin, isDirtyMixin, isDisabledInteractiveMixin, isDisabledMixin, isFormAssociatedMixin, isFormSubmitterMixin, isHtmlForMixin, isLabelledMixin, isLinkButtonMixin, isReadOnlyMixin, isRequiredConstraintValidationMixin, isRequiredMixin, isSelectedMixin, isTouchedMixin, isVerticalMixin, prefersReducedMotion, registerStyleSheet, renderPseudoLink, resolveElementById, resolveFragmentUrl, resumeAnimation, safeStyleMap, scrollIntoViewIfNeeded, setCustomState, spaceSeparatedStringConverter, updateLabels, validate, waitForUpgrade };
5311
+ export { ActionElementBase, AnimationLoopController, AttachInternals, Checked, CheckedIndeterminate, ClickOutsideController, ConstraintValidation, DesignToken, Dirty, Disabled, DisabledInteractive, FocusController, Focusable, FormAssociated, FormSubmitter, HoverController, HtmlFor, InertController, IntersectionController, KeyboardClick, Labelled, LinkButton, LongPressController, M3eCollapsibleElement, M3eElevationElement, M3eFocusRingElement, M3ePseudoCheckboxElement, M3ePseudoRadioElement, M3eRippleElement, M3eScrollContainerElement, M3eSlideElement, M3eStateLayerElement, M3eTextHighlightElement, M3eTextOverflowElement, MutationController, PressedController, ReadOnly, ReconnectedCallback, Required, RequiredConstraintValidation, ResizeController, Role, ScrollController, ScrollLockController, Selected, SuppressInitialAnimation, Touched, VelocityTracker, Vertical, addCustomState, checkOrSelect, computeCssSize, computeLineCount, customElement, dateConverter, debounce, defaultValue, deleteCustomState, focusWhenReady, forcedColorsActive, formValue, generateClipPaths, getScrollbarWidth, getTextContent, guid, hasAssignedNodes, hasCustomState, hasKeys, interceptProperty, internals, isAttachInternalsMixin, isCheckedIndeterminateMixin, isCheckedMixin, isCheckedOrSelected, isCheckedOrSelectedMixin, isConstraintValidationMixin, isDirtyMixin, isDisabledInteractiveMixin, isDisabledMixin, isFormAssociatedMixin, isFormSubmitterMixin, isHtmlForMixin, isLabelledMixin, isLinkButtonMixin, isReadOnlyMixin, isRequiredConstraintValidationMixin, isRequiredMixin, isSelectedMixin, isTouchedMixin, isVerticalMixin, prefersReducedMotion, registerStyleSheet, renderPseudoLink, resolveElementById, resolveFragmentUrl, resumeAnimation, safeStyleMap, scrollIntoViewIfNeeded, setCustomState, spaceSeparatedStringConverter, updateLabels, validate, waitForUpgrade };
5295
5312
  //# sourceMappingURL=core.js.map