@m3e/core 1.0.0-rc.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -429,7 +429,7 @@ class MutationController extends MonitorControllerBase {
429
429
  }
430
430
  _MutationController_host = new WeakMap(), _MutationController_callback = new WeakMap(), _MutationController_skipInitial = new WeakMap(), _MutationController_config = new WeakMap(), _MutationController_observer = new WeakMap(), _MutationController_unobservedUpdate = new WeakMap();
431
431
 
432
- var _PressedController_instances, _PressedController_capture, _PressedController_callback, _PressedController_isPressedKey, _PressedController_pressedTargets, _PressedController_minPressedDuration, _PressedController_pointerDownHandler, _PressedController_pointerUpHandler, _PressedController_keyDownHandler, _PressedController_keyUpHandler, _PressedController_handlePointerDown, _PressedController_handlePointerUp, _PressedController_handleKeyDown, _PressedController_handleKeyUp;
432
+ 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;
433
433
  /** A `ReactiveController` used to monitor the pressed state of one or more elements. */
434
434
  class PressedController extends MonitorControllerBase {
435
435
  /**
@@ -447,6 +447,7 @@ class PressedController extends MonitorControllerBase {
447
447
  /** @private */ _PressedController_minPressedDuration.set(this, void 0);
448
448
  /** @private */ _PressedController_pointerDownHandler.set(this, (e) => __classPrivateFieldGet(this, _PressedController_instances, "m", _PressedController_handlePointerDown).call(this, e));
449
449
  /** @private */ _PressedController_pointerUpHandler.set(this, (e) => __classPrivateFieldGet(this, _PressedController_instances, "m", _PressedController_handlePointerUp).call(this, e));
450
+ /** @private */ _PressedController_touchEndHandler.set(this, (e) => __classPrivateFieldGet(this, _PressedController_instances, "m", _PressedController_handleTouchEnd).call(this, e));
450
451
  /** @private */ _PressedController_keyDownHandler.set(this, (e) => __classPrivateFieldGet(this, _PressedController_instances, "m", _PressedController_handleKeyDown).call(this, e));
451
452
  /** @private */ _PressedController_keyUpHandler.set(this, (e) => __classPrivateFieldGet(this, _PressedController_instances, "m", _PressedController_handleKeyUp).call(this, e));
452
453
  __classPrivateFieldSet(this, _PressedController_capture, options.capture, "f");
@@ -457,11 +458,15 @@ class PressedController extends MonitorControllerBase {
457
458
  /** @inheritdoc */
458
459
  hostConnected() {
459
460
  document.addEventListener("pointerup", __classPrivateFieldGet(this, _PressedController_pointerUpHandler, "f"), { capture: __classPrivateFieldGet(this, _PressedController_capture, "f") });
461
+ document.addEventListener("touchend", __classPrivateFieldGet(this, _PressedController_touchEndHandler, "f"), { capture: __classPrivateFieldGet(this, _PressedController_capture, "f") });
462
+ document.addEventListener("touchcancel", __classPrivateFieldGet(this, _PressedController_touchEndHandler, "f"), { capture: __classPrivateFieldGet(this, _PressedController_capture, "f") });
460
463
  super.hostConnected();
461
464
  }
462
465
  /** @inheritdoc */
463
466
  hostDisconnected() {
464
467
  document.removeEventListener("pointerup", __classPrivateFieldGet(this, _PressedController_pointerUpHandler, "f"), { capture: __classPrivateFieldGet(this, _PressedController_capture, "f") });
468
+ document.addEventListener("touchend", __classPrivateFieldGet(this, _PressedController_touchEndHandler, "f"), { capture: __classPrivateFieldGet(this, _PressedController_capture, "f") });
469
+ document.addEventListener("touchcancel", __classPrivateFieldGet(this, _PressedController_touchEndHandler, "f"), { capture: __classPrivateFieldGet(this, _PressedController_capture, "f") });
465
470
  super.hostDisconnected();
466
471
  __classPrivateFieldGet(this, _PressedController_pressedTargets, "f").clear();
467
472
  }
@@ -488,7 +493,7 @@ class PressedController extends MonitorControllerBase {
488
493
  }
489
494
  }
490
495
  }
491
- _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_keyDownHandler = new WeakMap(), _PressedController_keyUpHandler = new WeakMap(), _PressedController_instances = new WeakSet(), _PressedController_handlePointerDown = function _PressedController_handlePointerDown(e) {
496
+ _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) {
492
497
  if (e.pointerType === "mouse" && e.button > 1)
493
498
  return;
494
499
  for (const target of e.composedPath()) {
@@ -518,6 +523,22 @@ _PressedController_capture = new WeakMap(), _PressedController_callback = new We
518
523
  __classPrivateFieldGet(this, _PressedController_callback, "f").call(this, false, { x, y }, target);
519
524
  }
520
525
  }
526
+ }, _PressedController_handleTouchEnd = function _PressedController_handleTouchEnd(e) {
527
+ const x = e.touches[0]?.clientX ?? 0;
528
+ const y = e.touches[0]?.clientY ?? 0;
529
+ for (const target of __classPrivateFieldGet(this, _PressedController_pressedTargets, "f").keys()) {
530
+ const remainingTime = __classPrivateFieldGet(this, _PressedController_minPressedDuration, "f") - (performance.now() - __classPrivateFieldGet(this, _PressedController_pressedTargets, "f").get(target));
531
+ if (remainingTime > 0) {
532
+ setTimeout(() => {
533
+ __classPrivateFieldGet(this, _PressedController_pressedTargets, "f").delete(target);
534
+ __classPrivateFieldGet(this, _PressedController_callback, "f").call(this, false, { x, y }, target);
535
+ }, remainingTime);
536
+ }
537
+ else {
538
+ __classPrivateFieldGet(this, _PressedController_pressedTargets, "f").delete(target);
539
+ __classPrivateFieldGet(this, _PressedController_callback, "f").call(this, false, { x, y }, target);
540
+ }
541
+ }
521
542
  }, _PressedController_handleKeyDown = function _PressedController_handleKeyDown(e) {
522
543
  if (e.target !== e.currentTarget)
523
544
  return;
@@ -984,10 +1005,17 @@ function Selected(base) {
984
1005
  if (this.role === "button") {
985
1006
  this.ariaPressed = `${this.selected}`;
986
1007
  this.ariaSelected = null;
1008
+ this.ariaChecked = null;
1009
+ }
1010
+ else if (this.role === "radio") {
1011
+ this.ariaChecked = `${this.selected}`;
1012
+ this.ariaSelected = null;
1013
+ this.ariaPressed = null;
987
1014
  }
988
1015
  else if (this.role && this.role !== "none" && this.role !== "presentation") {
989
1016
  this.ariaSelected = `${this.selected}`;
990
1017
  this.ariaPressed = null;
1018
+ this.ariaChecked = null;
991
1019
  }
992
1020
  }
993
1021
  }
@@ -1118,12 +1146,12 @@ function Touched(base) {
1118
1146
  connectedCallback() {
1119
1147
  this.markAsUntouched();
1120
1148
  super.connectedCallback();
1121
- this.addEventListener("focusout", this[_eventHandler$1]);
1149
+ this.addEventListener("focusout", this[_eventHandler$1], { capture: true });
1122
1150
  }
1123
1151
  /** @inheritdoc */
1124
1152
  disconnectedCallback() {
1125
1153
  super.disconnectedCallback();
1126
- this.removeEventListener("focusout", this[_eventHandler$1]);
1154
+ this.removeEventListener("focusout", this[_eventHandler$1], { capture: true });
1127
1155
  }
1128
1156
  /** Marks the element as touched. */
1129
1157
  markAsTouched() {
@@ -1875,6 +1903,8 @@ function DisabledInteractive(base) {
1875
1903
  return _DisabledInteractiveMixin;
1876
1904
  }
1877
1905
 
1906
+ /** A symbol through which to update labels to reflect a control's current state. */
1907
+ const updateLabels = Symbol("updateLabels");
1878
1908
  /**
1879
1909
  * Determines whether a value is a `LabelledMixin`.
1880
1910
  * @param {unknown} value The value to test.
@@ -1883,7 +1913,6 @@ function DisabledInteractive(base) {
1883
1913
  function isLabelledMixin(value) {
1884
1914
  return hasKeys(value, "labels") && isAttachInternalsMixin(value);
1885
1915
  }
1886
- const _updateLabels = Symbol("_updateLabels");
1887
1916
  const _eventHandler = Symbol("_eventHandler");
1888
1917
  /**
1889
1918
  * Mixin to augment an element with support for labelling.
@@ -1899,7 +1928,7 @@ function Labelled(base) {
1899
1928
  /** @private */
1900
1929
  this[_a] = (e) => {
1901
1930
  if (!e.defaultPrevented) {
1902
- this[_updateLabels]();
1931
+ this[updateLabels]();
1903
1932
  }
1904
1933
  };
1905
1934
  }
@@ -1922,18 +1951,19 @@ function Labelled(base) {
1922
1951
  /** @inheritdoc */
1923
1952
  update(changedProperties) {
1924
1953
  super.update(changedProperties);
1925
- this[_updateLabels]();
1954
+ this[updateLabels]();
1926
1955
  }
1927
- /** @private */
1928
- [(_a = _eventHandler, _updateLabels)]() {
1956
+ /** @internal */
1957
+ [(_a = _eventHandler, updateLabels)]() {
1929
1958
  const focusable = this.hasAttribute("tabindex");
1930
1959
  const disabled = (isDisabledMixin(this) && this.disabled) || (isDisabledInteractiveMixin(this) && this.disabledInteractive);
1931
- for (const label of this.labels) {
1960
+ const invalid = isTouchedMixin(this) && this.touched && (this.ariaInvalid || this.classList.contains("-invalid"));
1961
+ for (const label of this.labels ?? []) {
1932
1962
  label.style.userSelect = focusable ? "none" : "";
1933
- label.style.cursor = !disabled ? "pointer" : "";
1963
+ label.style.cursor = !disabled && focusable ? "pointer" : "";
1934
1964
  label.style.color = disabled
1935
1965
  ? `color-mix(in srgb, ${DesignToken.color.onSurface} 38%, transparent)`
1936
- : isTouchedMixin(this) && this.touched && this.ariaInvalid
1966
+ : invalid
1937
1967
  ? `${DesignToken.color.error}`
1938
1968
  : "";
1939
1969
  }
@@ -2170,6 +2200,9 @@ function ConstraintValidation(base) {
2170
2200
  this[internals].setValidity(validity, validityMessage);
2171
2201
  this.ariaInvalid = invalid ? "true" : null;
2172
2202
  this.classList.toggle("-invalid", invalid === true);
2203
+ if (isLabelledMixin(this)) {
2204
+ this[updateLabels]?.();
2205
+ }
2173
2206
  }
2174
2207
  }
2175
2208
  __ConstraintValidation_getNativeMessage = function __ConstraintValidation_getNativeMessage(flags) {
@@ -4722,5 +4755,5 @@ M3eTextHighlightElement = M3eTextHighlightElement_1 = __decorate([
4722
4755
  t$2("m3e-text-highlight")
4723
4756
  ], M3eTextHighlightElement);
4724
4757
 
4725
- export { AttachInternals, Checked, CheckedIndeterminate, ConstraintValidation, DesignToken, Dirty, Disabled, DisabledInteractive, EventAttribute, FocusController, Focusable, FormAssociated, FormSubmitter, HoverController, HtmlFor, IntersectionController, KeyboardClick, Labelled, LinkButton, LongPressController, M3eCollapsibleElement, M3eElevationElement, M3eFocusRingElement, M3ePseudoCheckboxElement, M3ePseudoRadioElement, M3eRippleElement, M3eScrollContainerElement, M3eSlide, M3eStateLayerElement, M3eTextHighlightElement, M3eTextOverflowElement, MutationController, PressedController, ReadOnly, Required, RequiredConstraintValidation, ResizeController, Role, ScrollController, Selected, Touched, Vertical, checkOrSelect, debounce, defaultValue, formValue, getTextContent, guid, hasAssignedNodes, hasKeys, internals, isAttachInternalsMixin, isCheckedIndeterminateMixin, isCheckedMixin, isCheckedOrSelected, isCheckedOrSelectedMixin, isConstraintValidationMixin, isDirtyMixin, isDisabledInteractiveMixin, isDisabledMixin, isFormAssociatedMixin, isFormSubmitterMixin, isHtmlForMixin, isLabelledMixin, isLinkButtonMixin, isReadOnlyMixin, isRequiredConstraintValidationMixin, isRequiredMixin, isSelectedMixin, isTouchedMixin, isVerticalMixin, prefersReducedMotion, renderPseudoLink, safeStyleMap, scrollIntoViewIfNeeded, validate };
4758
+ export { AttachInternals, Checked, CheckedIndeterminate, ConstraintValidation, DesignToken, Dirty, Disabled, DisabledInteractive, EventAttribute, FocusController, Focusable, FormAssociated, FormSubmitter, HoverController, HtmlFor, IntersectionController, KeyboardClick, Labelled, LinkButton, LongPressController, M3eCollapsibleElement, M3eElevationElement, M3eFocusRingElement, M3ePseudoCheckboxElement, M3ePseudoRadioElement, M3eRippleElement, M3eScrollContainerElement, M3eSlide, M3eStateLayerElement, M3eTextHighlightElement, M3eTextOverflowElement, MutationController, PressedController, ReadOnly, Required, RequiredConstraintValidation, ResizeController, Role, ScrollController, Selected, Touched, Vertical, checkOrSelect, debounce, defaultValue, formValue, getTextContent, guid, hasAssignedNodes, hasKeys, internals, isAttachInternalsMixin, isCheckedIndeterminateMixin, isCheckedMixin, isCheckedOrSelected, isCheckedOrSelectedMixin, isConstraintValidationMixin, isDirtyMixin, isDisabledInteractiveMixin, isDisabledMixin, isFormAssociatedMixin, isFormSubmitterMixin, isHtmlForMixin, isLabelledMixin, isLinkButtonMixin, isReadOnlyMixin, isRequiredConstraintValidationMixin, isRequiredMixin, isSelectedMixin, isTouchedMixin, isVerticalMixin, prefersReducedMotion, renderPseudoLink, safeStyleMap, scrollIntoViewIfNeeded, updateLabels, validate };
4726
4759
  //# sourceMappingURL=index.js.map