@mcp-b/wc-support 0.2.18 → 0.3.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.
@@ -6,7 +6,7 @@ export declare class SigveloElement extends LitElement {
6
6
  static shadowRootOptions: ShadowRootInit;
7
7
  /**
8
8
  * Enables slot detection for a component. When enabled, named slots that have content will be automatically detected
9
- * and their names will be added to a Set in the reactive `this.slots` property.
9
+ * and their names will be added to a Set in the reactive `this.slotsWithContent` property.
10
10
  */
11
11
  static observeSlots: boolean;
12
12
  protected internals: ElementInternals;
@@ -20,6 +20,7 @@ export declare class SigveloElement extends LitElement {
20
20
  lang: string;
21
21
  constructor();
22
22
  connectedCallback(): void;
23
+ protected createRenderRoot(): HTMLElement | DocumentFragment;
23
24
  /**
24
25
  * Updates the slotsWithContent Set with currently populated slots
25
26
  */
@@ -47,6 +48,41 @@ interface WhenSlottedOptions {
47
48
  /** The base class for all Sigvelo form controls. */
48
49
  export declare abstract class SigveloFormControlElement extends SigveloElement {
49
50
  static formAssociated: boolean;
51
+ /** Whether the control itself is disabled, independently of its containing fieldset. */
52
+ abstract disabled: boolean;
53
+ /**
54
+ * Whether the control currently fails its constraints. Controls compute this alongside the flags they hand to
55
+ * `ElementInternals.setValidity()`, because "invalid" means something different for a checkbox, a slider, and a
56
+ * combobox — and a few controls deliberately report invalid without setting a platform flag.
57
+ */
58
+ protected isInvalid: boolean;
59
+ /** Whether the user has changed the value and moved on: a `change` event, a committed drag, a chosen item. */
60
+ protected hadUserInteraction: boolean;
61
+ /** Whether the control's form has been submitted while this control was invalid. */
62
+ protected wasSubmitted: boolean;
63
+ constructor();
64
+ connectedCallback(): void;
65
+ disconnectedCallback(): void;
66
+ /** The platform includes inherited fieldset state and the first-legend exception. */
67
+ protected get effectiveDisabled(): boolean;
68
+ /** @internal Called when the platform changes the control's disabled state. */
69
+ formDisabledCallback(): void;
70
+ /**
71
+ * @internal Called when the form is reset. Controls that override this to restore their own default value must call
72
+ * `super.formResetCallback()`.
73
+ */
74
+ formResetCallback(): void;
75
+ /**
76
+ * Submits the control's associated form the way pressing Enter in a native text input would, doing nothing when the
77
+ * control is not in a form.
78
+ *
79
+ * The form is submitted with its first native submit button as the submitter, because a form-associated custom
80
+ * element cannot be one yet (https://github.com/WICG/webcomponents/issues/814). A form with no native submit button
81
+ * is submitted with no submitter, which is what the platform does too.
82
+ */
83
+ protected submitAssociatedForm(): void;
84
+ private handleHostInvalid;
85
+ private syncUserValidityStates;
50
86
  /**
51
87
  * For form controls, components must implement this and set it to the element that should receive focus when
52
88
  * reporting validation errors.
@@ -1 +1 @@
1
- {"version":3,"file":"sigvelo-element.d.ts","sourceRoot":"","sources":["../../src/base/sigvelo-element.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAIvC,gDAAgD;AAChD,qBAAa,cAAe,SAAQ,UAAU;IAC5C,MAAM,CAAC,cAAc,UAAS;IAC9B,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAGtC;IAEF;;;OAGG;IACH,MAAM,CAAC,YAAY,UAAS;IAE5B,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC;IAE9B;;;OAGG;IACM,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAGvC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;;IAOzB,iBAAiB;IAsBjB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAY9B,gBAAgB;IACT,YAAY;QACjB,kDAAkD;2BAC/B,MAAM,UAAU,OAAO;QAQ1C,+EAA+E;2BAC5D,MAAM;MAGzB;IAEF;;;OAGG;IACH,SAAS,CAAC,WAAW,CACnB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;CAWxC;AAED,UAAU,kBAAkB;IAC1B;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,oDAAoD;AACpD,8BAAsB,yBAA0B,SAAQ,cAAc;IACpE,MAAM,CAAC,cAAc,UAAQ;IAE7B;;;OAGG;IACH,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,WAAW,CAAC;IAEtD,4FAA4F;IAC5F,IAAW,QAAQ,8BAGlB;IAED,4GAA4G;IAC5G,IAAW,iBAAiB,WAE3B;IAED;;;OAGG;IACI,aAAa;IAIpB;;;;OAIG;IACI,iBAAiB,CAAC,OAAO,EAAE,MAAM;IAoBxC,kGAAkG;IAClG,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC;;;;OAIG;IACI,cAAc;CAGtB"}
1
+ {"version":3,"file":"sigvelo-element.d.ts","sourceRoot":"","sources":["../../src/base/sigvelo-element.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAIvC,gDAAgD;AAChD,qBAAa,cAAe,SAAQ,UAAU;IAC5C,MAAM,CAAC,cAAc,UAAS;IAC9B,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAGtC;IAEF;;;OAGG;IACH,MAAM,CAAC,YAAY,UAAS;IAE5B,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAC/B,UAAU,EAAE,UAAU,CAAC;IAE9B;;;OAGG;IACM,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAGvC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;;IAOzB,iBAAiB;IAUjB,SAAS,CAAC,gBAAgB;IAe1B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAY9B,gBAAgB;IACT,YAAY;QACjB,kDAAkD;2BAC/B,MAAM,UAAU,OAAO;QAQ1C,+EAA+E;2BAC5D,MAAM;MAGzB;IAEF;;;OAGG;IACH,SAAS,CAAC,WAAW,CACnB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;CAWxC;AAED,UAAU,kBAAkB;IAC1B;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,oDAAoD;AACpD,8BAAsB,yBAA0B,SAAQ,cAAc;IACpE,MAAM,CAAC,cAAc,UAAQ;IAE7B,wFAAwF;IACxF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAa3B;;;;OAIG;IACM,SAAS,CAAC,SAAS,UAAS;IAErC,8GAA8G;IACrG,SAAS,CAAC,kBAAkB,UAAS;IAE9C,oFAAoF;IAC3E,SAAS,CAAC,YAAY,UAAS;;IAWxC,iBAAiB;IAKjB,oBAAoB;IAKpB,qFAAqF;IACrF,SAAS,KAAK,iBAAiB,YAE9B;IAED,+EAA+E;IAC/E,oBAAoB;IAKpB;;;OAGG;IACH,iBAAiB;IAMjB;;;;;;;OAOG;IACH,SAAS,CAAC,oBAAoB;IAgB9B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,sBAAsB;IAM9B;;;OAGG;IACH,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,WAAW,CAAC;IAEtD,4FAA4F;IAC5F,IAAW,QAAQ,8BAGlB;IAED,4GAA4G;IAC5G,IAAW,iBAAiB,WAE3B;IAED;;;OAGG;IACI,aAAa;IAIpB;;;;OAIG;IACI,iBAAiB,CAAC,OAAO,EAAE,MAAM;IAoBxC,kGAAkG;IAClG,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC;;;;OAIG;IACI,cAAc;CAGtB"}
@@ -40,13 +40,16 @@ export class SigveloElement extends LitElement {
40
40
  // If enabled, observe slots up front to prevent extra renders
41
41
  if (constructor.observeSlots) {
42
42
  this.updateSlotsWithContent();
43
- // Observe slot changes
44
- this.shadowRoot.addEventListener("slotchange", () => {
45
- this.updateSlotsWithContent();
46
- });
47
43
  }
48
- // Represent with a link to the docs for curious devs
49
- this.shadowRoot.prepend(document.createComment(` Sigvelo · https://design-system.sigvelo.com/docs/components/${stripElementPrefix(this.localName)} `));
44
+ }
45
+ createRenderRoot() {
46
+ const root = super.createRenderRoot();
47
+ if (this.constructor.observeSlots) {
48
+ root.addEventListener("slotchange", () => this.updateSlotsWithContent());
49
+ }
50
+ // Create shadow-root setup once, including when the element is reconnected.
51
+ root.prepend(document.createComment(` Sigvelo · https://design-system.sigvelo.com/docs/components/${stripElementPrefix(this.localName)} `));
52
+ return root;
50
53
  }
51
54
  /**
52
55
  * Updates the slotsWithContent Set with currently populated slots
@@ -54,8 +57,8 @@ export class SigveloElement extends LitElement {
54
57
  updateSlotsWithContent() {
55
58
  const newSlots = new Set([...this.querySelectorAll(":scope > [slot]")].map((el) => el.slot));
56
59
  // Only trigger an update if the slots have actually changed
57
- if (JSON.stringify([...newSlots].toSorted()) !==
58
- JSON.stringify([...this.slotsWithContent].toSorted())) {
60
+ if (newSlots.size !== this.slotsWithContent.size ||
61
+ [...newSlots].some((name) => !this.slotsWithContent.has(name))) {
59
62
  this.slotsWithContent = newSlots;
60
63
  }
61
64
  }
@@ -80,7 +83,7 @@ SigveloElement.shadowRootOptions = {
80
83
  };
81
84
  /**
82
85
  * Enables slot detection for a component. When enabled, named slots that have content will be automatically detected
83
- * and their names will be added to a Set in the reactive `this.slots` property.
86
+ * and their names will be added to a Set in the reactive `this.slotsWithContent` property.
84
87
  */
85
88
  SigveloElement.observeSlots = false;
86
89
  __decorate([
@@ -94,6 +97,92 @@ __decorate([
94
97
  ], SigveloElement.prototype, "lang", void 0);
95
98
  /** The base class for all Sigvelo form controls. */
96
99
  export class SigveloFormControlElement extends SigveloElement {
100
+ constructor() {
101
+ super();
102
+ //
103
+ // The user-validity lifecycle. `user-valid` and `user-invalid` stay off until the user has changed the value and
104
+ // moved on (e.g. a `change` event) or the form has been submitted, so validation styling never fires at someone who
105
+ // has not filled the form out yet. This class owns every transition between the three flags below; a control only
106
+ // reports whether it is currently invalid and when the user has interacted with it.
107
+ //
108
+ // Controls re-declare all three as their own `@state()`. That is deliberate: custom-elements-manifest does not
109
+ // resolve members inherited from another package, so a control that drops its declaration also drops the property
110
+ // from its published manifest and its generated JSX types.
111
+ //
112
+ /**
113
+ * Whether the control currently fails its constraints. Controls compute this alongside the flags they hand to
114
+ * `ElementInternals.setValidity()`, because "invalid" means something different for a checkbox, a slider, and a
115
+ * combobox — and a few controls deliberately report invalid without setting a platform flag.
116
+ */
117
+ this.isInvalid = false;
118
+ /** Whether the user has changed the value and moved on: a `change` event, a committed drag, a chosen item. */
119
+ this.hadUserInteraction = false;
120
+ /** Whether the control's form has been submitted while this control was invalid. */
121
+ this.wasSubmitted = false;
122
+ // Re-apply the user-validity states after every update. This runs as a reactive controller rather than an
123
+ // `updated()` override because controls override `updated()` freely, and a forgotten `super.updated()` would
124
+ // silently drop their validation styling.
125
+ this.addController({ hostUpdated: () => this.syncUserValidityStates() });
126
+ }
127
+ connectedCallback() {
128
+ super.connectedCallback();
129
+ this.addEventListener("invalid", this.handleHostInvalid);
130
+ }
131
+ disconnectedCallback() {
132
+ super.disconnectedCallback();
133
+ this.removeEventListener("invalid", this.handleHostInvalid);
134
+ }
135
+ /** The platform includes inherited fieldset state and the first-legend exception. */
136
+ get effectiveDisabled() {
137
+ return this.disabled || this.matches(":disabled");
138
+ }
139
+ /** @internal Called when the platform changes the control's disabled state. */
140
+ formDisabledCallback() {
141
+ this.customStates.set("disabled", this.effectiveDisabled);
142
+ this.requestUpdate();
143
+ }
144
+ /**
145
+ * @internal Called when the form is reset. Controls that override this to restore their own default value must call
146
+ * `super.formResetCallback()`.
147
+ */
148
+ formResetCallback() {
149
+ this.isInvalid = false;
150
+ this.hadUserInteraction = false;
151
+ this.wasSubmitted = false;
152
+ }
153
+ /**
154
+ * Submits the control's associated form the way pressing Enter in a native text input would, doing nothing when the
155
+ * control is not in a form.
156
+ *
157
+ * The form is submitted with its first native submit button as the submitter, because a form-associated custom
158
+ * element cannot be one yet (https://github.com/WICG/webcomponents/issues/814). A form with no native submit button
159
+ * is submitted with no submitter, which is what the platform does too.
160
+ */
161
+ submitAssociatedForm() {
162
+ const form = this.internals.form;
163
+ if (!form)
164
+ return;
165
+ // `form.elements` is a collection of plain `Element`s and really does contain more than buttons and inputs —
166
+ // `<fieldset>`, `<output>`, and this library's own form-associated elements are all in there — so `type` is only
167
+ // legible once the element is known to be one of the two that can submit.
168
+ const submitter = [...form.elements].find((element) => (element instanceof HTMLButtonElement || element instanceof HTMLInputElement) &&
169
+ element.type === "submit");
170
+ form.requestSubmit(submitter);
171
+ }
172
+ handleHostInvalid() {
173
+ //
174
+ // We need to simulate the :user-invalid state when the form is submitted. Alas, there's no way to listen to form
175
+ // submit because validation occurs before the `formdata` and `submit` events. The only way I've found to hook into
176
+ // it is by listening to the `invalid` event on the host element, which is dispatched by the browser when the form
177
+ // is submitted and the form-associated custom element is invalid.
178
+ //
179
+ this.wasSubmitted = true;
180
+ }
181
+ syncUserValidityStates() {
182
+ const shouldReport = this.hadUserInteraction || this.wasSubmitted;
183
+ this.customStates.set("user-invalid", shouldReport && this.isInvalid);
184
+ this.customStates.set("user-valid", shouldReport && !this.isInvalid);
185
+ }
97
186
  /** For form-associated elements, this returns the current validity state of the control. */
98
187
  get validity() {
99
188
  const constructor = this.constructor;
@@ -144,4 +233,13 @@ export class SigveloFormControlElement extends SigveloElement {
144
233
  }
145
234
  }
146
235
  SigveloFormControlElement.formAssociated = true;
236
+ __decorate([
237
+ state()
238
+ ], SigveloFormControlElement.prototype, "isInvalid", void 0);
239
+ __decorate([
240
+ state()
241
+ ], SigveloFormControlElement.prototype, "hadUserInteraction", void 0);
242
+ __decorate([
243
+ state()
244
+ ], SigveloFormControlElement.prototype, "wasSubmitted", void 0);
147
245
  //# sourceMappingURL=sigvelo-element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sigvelo-element.js","sourceRoot":"","sources":["../../src/base/sigvelo-element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sigvelo-element.js","sourceRoot":"","sources":["../../src/base/sigvelo-element.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-control.styles.d.ts","sourceRoot":"","sources":["../../src/styles/form-control.styles.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;;AACH,wBAwUE"}
1
+ {"version":3,"file":"form-control.styles.d.ts","sourceRoot":"","sources":["../../src/styles/form-control.styles.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;;AACH,wBAsVE"}
@@ -10,29 +10,35 @@ export default css `
10
10
  display: flex;
11
11
  flex-direction: column;
12
12
  width: 100%;
13
- gap: 0.25em;
14
- line-height: 1.25;
13
+ gap: var(--sigvelo-spacing-1);
14
+ font-family: var(--sigvelo-font-ui);
15
+ line-height: var(--sigvelo-control-line-height-md);
15
16
  }
16
17
 
17
18
  /* Sizes */
18
19
  :host([size="xs"]) {
19
20
  font-size: var(--sigvelo-control-text-xs);
21
+ line-height: var(--sigvelo-control-line-height-xs);
20
22
  }
21
23
 
22
24
  :host([size="sm"]) {
23
25
  font-size: var(--sigvelo-control-text-sm);
26
+ line-height: var(--sigvelo-control-line-height-sm);
24
27
  }
25
28
 
26
29
  :host([size="md"]) {
27
30
  font-size: var(--sigvelo-control-text-md);
31
+ line-height: var(--sigvelo-control-line-height-md);
28
32
  }
29
33
 
30
34
  :host([size="lg"]) {
31
35
  font-size: var(--sigvelo-control-text-lg);
36
+ line-height: var(--sigvelo-control-line-height-lg);
32
37
  }
33
38
 
34
39
  :host([size="xl"]) {
35
40
  font-size: var(--sigvelo-control-text-xl);
41
+ line-height: var(--sigvelo-control-line-height-xl);
36
42
  }
37
43
 
38
44
  #label {
@@ -217,9 +223,8 @@ export default css `
217
223
  color: var(--sigvelo-color-text);
218
224
 
219
225
  &:has(#text-box:focus-visible) {
220
- outline: var(--sigvelo-border-style) calc(var(--sigvelo-border-width) + 1px)
221
- var(--sigvelo-color-focus);
222
- outline-offset: calc(-1 * var(--sigvelo-border-width));
226
+ outline: var(--sigvelo-focus-ring);
227
+ outline-offset: var(--sigvelo-focus-offset);
223
228
  }
224
229
  }
225
230
 
@@ -232,15 +237,16 @@ export default css `
232
237
  background-color: var(--sigvelo-color-neutral-bg-subtle);
233
238
 
234
239
  &:has(#text-box:focus-visible) {
235
- outline: var(--sigvelo-border-style) calc(var(--sigvelo-border-width) + 1px)
236
- var(--sigvelo-color-focus);
237
- outline-offset: calc(-1 * var(--sigvelo-border-width));
240
+ outline: var(--sigvelo-focus-ring);
241
+ outline-offset: var(--sigvelo-focus-offset);
238
242
  }
239
243
  }
240
244
 
241
245
  /* Sizes */
242
246
  #visual-box.xs {
247
+ padding-inline: var(--sigvelo-control-padding-inline-xs);
243
248
  font-size: var(--sigvelo-control-text-xs);
249
+ line-height: var(--sigvelo-control-line-height-xs);
244
250
 
245
251
  #text-box {
246
252
  min-height: calc(var(--sigvelo-control-height-xs) - var(--sigvelo-border-width) * 2);
@@ -248,7 +254,9 @@ export default css `
248
254
  }
249
255
 
250
256
  #visual-box.sm {
257
+ padding-inline: var(--sigvelo-control-padding-inline-sm);
251
258
  font-size: var(--sigvelo-control-text-sm);
259
+ line-height: var(--sigvelo-control-line-height-sm);
252
260
 
253
261
  #text-box {
254
262
  min-height: calc(var(--sigvelo-control-height-sm) - var(--sigvelo-border-width) * 2);
@@ -256,7 +264,9 @@ export default css `
256
264
  }
257
265
 
258
266
  #visual-box.md {
267
+ padding-inline: var(--sigvelo-control-padding-inline-md);
259
268
  font-size: var(--sigvelo-control-text-md);
269
+ line-height: var(--sigvelo-control-line-height-md);
260
270
 
261
271
  #text-box {
262
272
  min-height: calc(var(--sigvelo-control-height-md) - var(--sigvelo-border-width) * 2);
@@ -264,7 +274,9 @@ export default css `
264
274
  }
265
275
 
266
276
  #visual-box.lg {
277
+ padding-inline: var(--sigvelo-control-padding-inline-lg);
267
278
  font-size: var(--sigvelo-control-text-lg);
279
+ line-height: var(--sigvelo-control-line-height-lg);
268
280
 
269
281
  #text-box {
270
282
  min-height: calc(var(--sigvelo-control-height-lg) - var(--sigvelo-border-width) * 2);
@@ -272,7 +284,9 @@ export default css `
272
284
  }
273
285
 
274
286
  #visual-box.xl {
287
+ padding-inline: var(--sigvelo-control-padding-inline-xl);
275
288
  font-size: var(--sigvelo-control-text-xl);
289
+ line-height: var(--sigvelo-control-line-height-xl);
276
290
 
277
291
  #text-box {
278
292
  min-height: calc(var(--sigvelo-control-height-xl) - var(--sigvelo-border-width) * 2);
@@ -1 +1 @@
1
- {"version":3,"file":"form-control.styles.js","sourceRoot":"","sources":["../../src/styles/form-control.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;;;;GAKG;AACH,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwUjB,CAAC"}
1
+ {"version":3,"file":"form-control.styles.js","sourceRoot":"","sources":["../../src/styles/form-control.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;;;;GAKG;AACH,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsVjB,CAAC"}
@@ -4,6 +4,7 @@
4
4
  * This by itself will not make the element draggable, but it provides the events and callbacks necessary to facilitate
5
5
  * dragging. Use the `clientX` and `clientY` arguments of each callback to update the UI as desired when dragging.
6
6
  *
7
+ * Pointer events provide one drag path for mouse, pen, and touch.
7
8
  * Drag functionality will be enabled as soon as the constructor is called. A `start()` and `stop()` method can be used
8
9
  * to start and stop it, if needed.
9
10
  *
@@ -22,11 +23,13 @@ export declare class DraggableElement {
22
23
  private element;
23
24
  private isActive;
24
25
  private isDragging;
26
+ private pointerId;
25
27
  private options;
26
- constructor(el: Element, options: Partial<DraggableElementOptions>);
28
+ constructor(el: HTMLElement, options: Partial<DraggableElementOptions>);
27
29
  private handleDragStart;
28
30
  private handleDragStop;
29
31
  private handleDragMove;
32
+ private releaseDrag;
30
33
  /** Start listening to drags. */
31
34
  start(): void;
32
35
  /** Stop listening to drags. */
@@ -39,7 +42,7 @@ export interface DraggableElementOptions {
39
42
  start: (clientX: number, clientY: number) => void;
40
43
  /** Runs as the user is dragging. This may execute often, so avoid expensive operations. */
41
44
  move: (clientX: number, clientY: number) => void;
42
- /** Runs when dragging ends. */
43
- stop: (clientX: number, clientY: number) => void;
45
+ /** Runs when dragging ends; canceled is true when the browser interrupts the gesture. */
46
+ stop: (clientX: number, clientY: number, canceled: boolean) => void;
44
47
  }
45
48
  //# sourceMappingURL=drag.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"drag.d.ts","sourceRoot":"","sources":["../../src/utilities/drag.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAA0B;gBAE7B,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,uBAAuB,CAAC;IAYlE,OAAO,CAAC,eAAe,CAwBrB;IAEF,OAAO,CAAC,cAAc,CAapB;IAEF,OAAO,CAAC,cAAc,CAQpB;IAEF,gCAAgC;IACzB,KAAK;IAWZ,+BAA+B;IACxB,IAAI;IAaX,0CAA0C;IACnC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO;CASjC;AAED,MAAM,WAAW,uBAAuB;IACtC,iCAAiC;IACjC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,2FAA2F;IAC3F,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,+BAA+B;IAC/B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD"}
1
+ {"version":3,"file":"drag.d.ts","sourceRoot":"","sources":["../../src/utilities/drag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,OAAO,CAA0B;gBAE7B,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,uBAAuB,CAAC;IAYtE,OAAO,CAAC,eAAe,CAYrB;IAEF,OAAO,CAAC,cAAc,CAMpB;IAEF,OAAO,CAAC,cAAc,CAQpB;IAEF,OAAO,CAAC,WAAW;IAWnB,gCAAgC;IACzB,KAAK;IAQZ,+BAA+B;IACxB,IAAI;IAMX,0CAA0C;IACnC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO;CASjC;AAED,MAAM,WAAW,uBAAuB;IACtC,iCAAiC;IACjC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,2FAA2F;IAC3F,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,yFAAyF;IACzF,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CACrE"}
@@ -1,10 +1,10 @@
1
- const supportsTouch = typeof window !== "undefined" && "ontouchstart" in window;
2
1
  /**
3
2
  * Attaches the necessary events to make an element draggable.
4
3
  *
5
4
  * This by itself will not make the element draggable, but it provides the events and callbacks necessary to facilitate
6
5
  * dragging. Use the `clientX` and `clientY` arguments of each callback to update the UI as desired when dragging.
7
6
  *
7
+ * Pointer events provide one drag path for mouse, pen, and touch.
8
8
  * Drag functionality will be enabled as soon as the constructor is called. A `start()` and `stop()` method can be used
9
9
  * to start and stop it, if needed.
10
10
  *
@@ -24,41 +24,35 @@ export class DraggableElement {
24
24
  this.isActive = false;
25
25
  this.isDragging = false;
26
26
  this.handleDragStart = (event) => {
27
- const clientX = "touches" in event ? event.touches[0].clientX : event.clientX;
28
- const clientY = "touches" in event ? event.touches[0].clientY : event.clientY;
29
- if (this.isDragging ||
30
- // Prevent right-clicks from triggering drags
31
- (!supportsTouch && event.buttons > 1)) {
27
+ if (this.isDragging || event.button !== 0 || event.isPrimary === false)
32
28
  return;
33
- }
34
29
  this.isDragging = true;
35
- // Capture pointer to prevent iframes from stealing events during drag
36
- if ("pointerId" in event) {
37
- event.target.setPointerCapture(event.pointerId);
38
- }
30
+ this.pointerId = event.pointerId;
31
+ // Synthetic events have no active pointer to capture.
32
+ if (event.isTrusted)
33
+ this.element.setPointerCapture(event.pointerId);
39
34
  document.addEventListener("pointerup", this.handleDragStop);
35
+ document.addEventListener("pointercancel", this.handleDragStop);
40
36
  document.addEventListener("pointermove", this.handleDragMove);
41
- document.addEventListener("touchend", this.handleDragStop);
42
- document.addEventListener("touchmove", this.handleDragMove);
43
- this.options.start(clientX, clientY);
37
+ this.options.start(event.clientX, event.clientY);
44
38
  };
45
39
  this.handleDragStop = (event) => {
46
- // touchend has an empty `touches` list — use changedTouches instead
47
- const clientX = "changedTouches" in event ? event.changedTouches[0].clientX : event.clientX;
48
- const clientY = "changedTouches" in event ? event.changedTouches[0].clientY : event.clientY;
49
- this.isDragging = false;
50
- document.removeEventListener("pointerup", this.handleDragStop);
51
- document.removeEventListener("pointermove", this.handleDragMove);
52
- document.removeEventListener("touchend", this.handleDragStop);
53
- document.removeEventListener("touchmove", this.handleDragMove);
54
- this.options.stop(clientX, clientY);
40
+ if (!this.isDragging || event.pointerId !== this.pointerId)
41
+ return;
42
+ this.releaseDrag();
43
+ if (this.element.isConnected) {
44
+ this.options.stop(event.clientX, event.clientY, event.type === "pointercancel");
45
+ }
55
46
  };
56
47
  this.handleDragMove = (event) => {
57
- const clientX = "touches" in event ? event.touches[0].clientX : event.clientX;
58
- const clientY = "touches" in event ? event.touches[0].clientY : event.clientY;
59
- // Prevent text selection while dragging
48
+ if (!this.isDragging || event.pointerId !== this.pointerId)
49
+ return;
50
+ if (!this.element.isConnected) {
51
+ this.stop();
52
+ return;
53
+ }
60
54
  window.getSelection()?.removeAllRanges();
61
- this.options.move(clientX, clientY);
55
+ this.options.move(event.clientX, event.clientY);
62
56
  };
63
57
  this.element = el;
64
58
  this.options = {
@@ -69,28 +63,28 @@ export class DraggableElement {
69
63
  };
70
64
  this.start();
71
65
  }
66
+ releaseDrag() {
67
+ document.removeEventListener("pointerup", this.handleDragStop);
68
+ document.removeEventListener("pointercancel", this.handleDragStop);
69
+ document.removeEventListener("pointermove", this.handleDragMove);
70
+ if (this.pointerId !== undefined && this.element.hasPointerCapture(this.pointerId)) {
71
+ this.element.releasePointerCapture(this.pointerId);
72
+ }
73
+ this.pointerId = undefined;
74
+ this.isDragging = false;
75
+ }
72
76
  /** Start listening to drags. */
73
77
  start() {
74
- if (!this.isActive) {
78
+ if (!this.isActive && this.element.isConnected) {
75
79
  this.element.addEventListener("pointerdown", this.handleDragStart);
76
- if (supportsTouch) {
77
- this.element.addEventListener("touchstart", this.handleDragStart);
78
- }
79
80
  this.isActive = true;
80
81
  }
81
82
  }
82
83
  /** Stop listening to drags. */
83
84
  stop() {
84
- document.removeEventListener("pointerup", this.handleDragStop);
85
- document.removeEventListener("pointermove", this.handleDragMove);
86
- document.removeEventListener("touchend", this.handleDragStop);
87
- document.removeEventListener("touchmove", this.handleDragMove);
85
+ this.releaseDrag();
88
86
  this.element.removeEventListener("pointerdown", this.handleDragStart);
89
- if (supportsTouch) {
90
- this.element.removeEventListener("touchstart", this.handleDragStart);
91
- }
92
87
  this.isActive = false;
93
- this.isDragging = false;
94
88
  }
95
89
  /** Starts or stops the drag listeners. */
96
90
  toggle(isActive) {
@@ -1 +1 @@
1
- {"version":3,"file":"drag.js","sourceRoot":"","sources":["../../src/utilities/drag.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drag.js","sourceRoot":"","sources":["../../src/utilities/drag.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/utilities/loader.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AA6CxE,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,aAAa,QAUlD;AAED;;GAEG;AACH,wBAAgB,UAAU,SAEzB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,iBAsDhE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,SAAO,QAgB/C"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/utilities/loader.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AA6CxE,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,aAAa,QAUlD;AAED;;GAEG;AACH,wBAAgB,UAAU,SAEzB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,iBAsDhE;AA8BD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,SAAO,QAkB/C"}
@@ -106,6 +106,17 @@ export async function discoverElements(root) {
106
106
  detail: { registered, unknown },
107
107
  }));
108
108
  }
109
+ function isTurboBeforeRender(event) {
110
+ if (!(event instanceof CustomEvent))
111
+ return false;
112
+ const detail = event.detail;
113
+ if (typeof detail !== "object" || detail === null)
114
+ return false;
115
+ return ("newBody" in detail &&
116
+ detail.newBody instanceof HTMLElement &&
117
+ "resume" in detail &&
118
+ typeof detail.resume === "function");
119
+ }
109
120
  /**
110
121
  * Many multi-page applications (MPAs) use Hotwire: Turbo to provide a SPA-like experience for users. When visiting
111
122
  * links, Turbo intercepts the click, fetches the new page, and updates metadata and content without redirecting,
@@ -122,7 +133,10 @@ export async function discoverElements(root) {
122
133
  */
123
134
  export function preventTurboFouce(timeout = 2000) {
124
135
  document.addEventListener("turbo:before-render", async (event) => {
125
- const newBody = event.detail.newBody;
136
+ // Anything else dispatched under this name is not Turbo's render, and pausing it would leave the page stuck.
137
+ if (!isTurboBeforeRender(event))
138
+ return;
139
+ const { newBody, resume } = event.detail;
126
140
  event.preventDefault();
127
141
  try {
128
142
  // Wait until all elements are registered or two seconds, whichever comes first
@@ -132,7 +146,7 @@ export function preventTurboFouce(timeout = 2000) {
132
146
  ]);
133
147
  }
134
148
  finally {
135
- event.detail.resume();
149
+ resume();
136
150
  }
137
151
  });
138
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/utilities/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/utilities/loader.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ export declare class LongPress {
28
28
  private timeout;
29
29
  private startCoords;
30
30
  private wasStarted;
31
- constructor(el: Element, options?: Partial<LongPressOptions>);
31
+ constructor(el: HTMLElement, options?: Partial<LongPressOptions>);
32
32
  private handlePress;
33
33
  private handleMove;
34
34
  private handleRelease;
@@ -64,4 +64,13 @@ export interface LongPressOptions {
64
64
  /** Whether to override certain styles that prevent touch callouts and user selection during the long press. */
65
65
  overrideStyles: boolean;
66
66
  }
67
+ declare global {
68
+ interface GlobalEventHandlersEventMap {
69
+ /**
70
+ * The name the library's own components long-press under, so that listening for one is typed like listening for
71
+ * any other Sigvelo event. `eventName` is configurable, and a caller that picks its own name is on its own.
72
+ */
73
+ "sigvelo-long-press": LongPressEvent;
74
+ }
75
+ }
67
76
  //# sourceMappingURL=long-press.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"long-press.d.ts","sourceRoot":"","sources":["../../src/utilities/long-press.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,UAAU,CAAS;gBAEf,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAmB5D,OAAO,CAAC,WAAW,CA4BjB;IAEF,OAAO,CAAC,UAAU,CAchB;IAEF,OAAO,CAAC,aAAa,CAEnB;IAEF,iDAAiD;IAC1C,KAAK;IAmBZ,gDAAgD;IACzC,IAAI;CAqBZ;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;gBAE1B,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB;CAIrF;AAED,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,oGAAoG;IACpG,aAAa,EAAE,UAAU,GAAG,YAAY,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,YAAY,EAAE,SAAS,CAAC;IACxB,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,+GAA+G;IAC/G,cAAc,EAAE,OAAO,CAAC;CACzB"}
1
+ {"version":3,"file":"long-press.d.ts","sourceRoot":"","sources":["../../src/utilities/long-press.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,UAAU,CAAS;gBAEf,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAmBhE,OAAO,CAAC,WAAW,CA+BjB;IAEF,OAAO,CAAC,UAAU,CAchB;IAEF,OAAO,CAAC,aAAa,CAQnB;IAEF,iDAAiD;IAC1C,KAAK;IAmBZ,gDAAgD;IACzC,IAAI;CAiBZ;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;gBAE1B,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB;CAIrF;AAED,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,oGAAoG;IACpG,aAAa,EAAE,UAAU,GAAG,YAAY,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,YAAY,EAAE,SAAS,CAAC;IACxB,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,+GAA+G;IAC/G,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,2BAA2B;QACnC;;;WAGG;QACH,oBAAoB,EAAE,cAAc,CAAC;KACtC;CACF"}
@@ -34,8 +34,9 @@ export class LongPress {
34
34
  return;
35
35
  }
36
36
  this.startCoords = { x, y };
37
- clearTimeout(this.timeout);
37
+ this.handleRelease();
38
38
  this.timeout = setTimeout(() => {
39
+ this.handleRelease();
39
40
  const longPressEvent = new LongPressEvent(this.options.eventName, this.options.eventOptions, {
40
41
  type: event.type === "touchstart" ? "touch" : "pointer",
41
42
  originalEvent: event,
@@ -43,11 +44,13 @@ export class LongPress {
43
44
  this.target.dispatchEvent(longPressEvent);
44
45
  }, this.options.duration);
45
46
  // Listen for movement
46
- this.target.addEventListener("touchmove", this.handleMove);
47
- this.target.addEventListener("touchend", this.handleRelease);
47
+ document.addEventListener("touchmove", this.handleMove);
48
+ document.addEventListener("touchend", this.handleRelease);
49
+ document.addEventListener("touchcancel", this.handleRelease);
48
50
  if (!this.options.ignorePointerEvents) {
49
- this.target.addEventListener("pointermove", this.handleMove);
50
- this.target.addEventListener("pointerup", this.handleRelease);
51
+ document.addEventListener("pointermove", this.handleMove);
52
+ document.addEventListener("pointerup", this.handleRelease);
53
+ document.addEventListener("pointercancel", this.handleRelease);
51
54
  }
52
55
  };
53
56
  this.handleMove = (event) => {
@@ -59,11 +62,17 @@ export class LongPress {
59
62
  // Cancel the long press if the delta is too big or 2+ finger touches
60
63
  if (deltaRoot > this.options.maxDelta ||
61
64
  (isTouchEnabled && event instanceof TouchEvent && event.touches.length > 1)) {
62
- clearTimeout(this.timeout);
65
+ this.handleRelease();
63
66
  }
64
67
  };
65
68
  this.handleRelease = () => {
66
69
  clearTimeout(this.timeout);
70
+ document.removeEventListener("touchmove", this.handleMove);
71
+ document.removeEventListener("touchend", this.handleRelease);
72
+ document.removeEventListener("touchcancel", this.handleRelease);
73
+ document.removeEventListener("pointermove", this.handleMove);
74
+ document.removeEventListener("pointerup", this.handleRelease);
75
+ document.removeEventListener("pointercancel", this.handleRelease);
67
76
  };
68
77
  this.target = el;
69
78
  this.options = {
@@ -86,7 +95,7 @@ export class LongPress {
86
95
  if (this.wasStarted)
87
96
  return;
88
97
  this.wasStarted = true;
89
- if (this.options.overrideStyles && this.target instanceof HTMLElement) {
98
+ if (this.options.overrideStyles) {
90
99
  this.target.style.setProperty("-webkit-touch-callout", "none", "important");
91
100
  this.target.style.setProperty("-webkit-user-select", "none", "important");
92
101
  this.target.style.setProperty("user-select", "none", "important");
@@ -99,20 +108,16 @@ export class LongPress {
99
108
  }
100
109
  /** Stops listening for the long press event. */
101
110
  stop() {
102
- clearTimeout(this.timeout);
111
+ this.handleRelease();
103
112
  this.wasStarted = false;
104
- if (this.options.overrideStyles && this.target instanceof HTMLElement) {
113
+ if (this.options.overrideStyles) {
105
114
  this.target.style.removeProperty("-webkit-touch-callout");
106
115
  this.target.style.removeProperty("-webkit-user-select");
107
116
  this.target.style.removeProperty("user-select");
108
117
  }
109
118
  this.target.removeEventListener("touchstart", this.handlePress);
110
- this.target.removeEventListener("touchmove", this.handleMove);
111
- this.target.removeEventListener("touchend", this.handleRelease);
112
119
  if (!this.options.ignorePointerEvents) {
113
120
  this.target.removeEventListener("pointerdown", this.handlePress);
114
- this.target.removeEventListener("pointermove", this.handleMove);
115
- this.target.removeEventListener("pointerup", this.handleRelease);
116
121
  }
117
122
  }
118
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"long-press.js","sourceRoot":"","sources":["../../src/utilities/long-press.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"long-press.js","sourceRoot":"","sources":["../../src/utilities/long-press.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,YAAY,IAAI,MAAM,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,SAAS;IAOpB,YAAY,EAAe,EAAE,OAAmC;QAFxD,eAAU,GAAG,KAAK,CAAC;QAqBnB,gBAAW,GAAG,CAAC,KAAgC,EAAE,EAAE;YACzD,MAAM,CAAC,GAAG,KAAK,YAAY,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACnF,MAAM,CAAC,GAAG,KAAK,YAAY,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAEnF,qCAAqC;YACrC,IAAI,cAAc,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9E,OAAO;YACT,CAAC;YAED,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YAE5B,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;oBAC3F,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;oBACvD,aAAa,EAAE,KAAK;iBACrB,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YAC5C,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE1B,sBAAsB;YACtB,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACxD,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1D,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAE7D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;gBACtC,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC1D,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC3D,QAAQ,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACjE,CAAC;QACH,CAAC,CAAC;QAEM,eAAU,GAAG,CAAC,KAAgC,EAAE,EAAE;YACxD,MAAM,CAAC,GAAG,KAAK,YAAY,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACnF,MAAM,CAAC,GAAG,KAAK,YAAY,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACnF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAChD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;YAE/D,qEAAqE;YACrE,IACE,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACjC,CAAC,cAAc,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAC3E,CAAC;gBACD,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;QACH,CAAC,CAAC;QAEM,kBAAa,GAAG,GAAG,EAAE;YAC3B,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3D,QAAQ,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7D,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAChE,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7D,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9D,QAAQ,CAAC,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACpE,CAAC,CAAC;QA3EA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG;YACb,SAAS,EAAE,YAAY;YACvB,YAAY,EAAE;gBACZ,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,IAAI;aACf;YACD,QAAQ,EAAE,GAAG;YACb,mBAAmB,EAAE,KAAK;YAC1B,QAAQ,EAAE,EAAE;YACZ,cAAc,EAAE,IAAI;YACpB,GAAG,OAAO;SACX,CAAC;QAEF,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IA6DD,iDAAiD;IAC1C,KAAK;QACV,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAE5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,uBAAuB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAC5E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAC1E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACpE,CAAC;QAED,sCAAsC;QACtC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAE7D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,gDAAgD;IACzC,IAAI;QACT,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAEhE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;IAGvC,YAAY,SAAiB,EAAE,YAAuB,EAAE,MAA4B;QAClF,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-b/wc-support",
3
- "version": "0.2.18",
3
+ "version": "0.3.0",
4
4
  "description": "Shared base classes, events, utilities, and styles for Sigvelo web component libraries.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -57,7 +57,7 @@
57
57
  "access": "public"
58
58
  },
59
59
  "dependencies": {
60
- "@mcp-b/design-tokens": "0.47.0"
60
+ "@mcp-b/design-tokens": "0.49.0"
61
61
  },
62
62
  "devDependencies": {
63
63
  "lit": "^3.3.3",