@agencecinq/slider 6.0.0 → 6.0.1

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.
@@ -3,7 +3,10 @@ import { ActiveThumb } from './types.js';
3
3
  export declare const ratioFromValue: (value: number, min: number, max: number) => number;
4
4
  /** Value from semantic ratio. */
5
5
  export declare const valueFromRatio: (ratio: number, min: number, max: number) => number;
6
- /** Snap a value to the nearest step within `[min, max]`. */
6
+ /**
7
+ * Snap a value to the nearest step within `[min, max]`.
8
+ * Rounded to the precision of `min` and `step`, so `0.1` steps give `4.2`, not `4.199999999999999`.
9
+ */
7
10
  export declare const snapToStep: (value: number, min: number, max: number, step: number) => number;
8
11
  /** Single-thumb track length. */
9
12
  export declare const singleTrackLength: (railLength: number, thumbSize: number) => number;
@@ -1 +1 @@
1
- {"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../src/geometry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wDAAwD;AACxD,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,EACb,KAAK,MAAM,EACX,KAAK,MAAM,KACV,MAGF,CAAC;AAEF,iCAAiC;AACjC,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,EACb,KAAK,MAAM,EACX,KAAK,MAAM,KACV,MAAmC,CAAC;AAEvC,4DAA4D;AAC5D,eAAO,MAAM,UAAU,GACrB,OAAO,MAAM,EACb,KAAK,MAAM,EACX,KAAK,MAAM,EACX,MAAM,MAAM,KACX,MAOF,CAAC;AAEF,iCAAiC;AACjC,eAAO,MAAM,iBAAiB,GAC5B,YAAY,MAAM,EAClB,WAAW,MAAM,KAChB,MAA6C,CAAC;AAEjD,6CAA6C;AAC7C,eAAO,MAAM,gBAAgB,GAC3B,YAAY,MAAM,EAClB,WAAW,MAAM,KAChB,MAAiD,CAAC;AAoBrD,6DAA6D;AAC7D,eAAO,MAAM,gBAAgB,GAC3B,aAAa,MAAM,EACnB,MAAM,OAAO,EACb,WAAW,MAAM,EACjB,KAAK,OAAO,EACZ,UAAU,OAAO,KAChB,MAaF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,aAAa,MAAM,EACnB,MAAM,OAAO,EACb,OAAO,WAAW,EAClB,MAAM,MAAM,EACZ,MAAM,MAAM,EACZ,OAAO,MAAM,EACb,WAAW,MAAM,EACjB,KAAK,OAAO,EACZ,UAAU,OAAO,KAChB,MAaF,CAAC"}
1
+ {"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../src/geometry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wDAAwD;AACxD,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,EACb,KAAK,MAAM,EACX,KAAK,MAAM,KACV,MAGF,CAAC;AAEF,iCAAiC;AACjC,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,EACb,KAAK,MAAM,EACX,KAAK,MAAM,KACV,MAAmC,CAAC;AAMvC;;;GAGG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,MAAM,EACb,KAAK,MAAM,EACX,KAAK,MAAM,EACX,MAAM,MAAM,KACX,MASF,CAAC;AAEF,iCAAiC;AACjC,eAAO,MAAM,iBAAiB,GAC5B,YAAY,MAAM,EAClB,WAAW,MAAM,KAChB,MAA6C,CAAC;AAEjD,6CAA6C;AAC7C,eAAO,MAAM,gBAAgB,GAC3B,YAAY,MAAM,EAClB,WAAW,MAAM,KAChB,MAAiD,CAAC;AAoBrD,6DAA6D;AAC7D,eAAO,MAAM,gBAAgB,GAC3B,aAAa,MAAM,EACnB,MAAM,OAAO,EACb,WAAW,MAAM,EACjB,KAAK,OAAO,EACZ,UAAU,OAAO,KAChB,MAaF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,aAAa,MAAM,EACnB,MAAM,OAAO,EACb,OAAO,WAAW,EAClB,MAAM,MAAM,EACZ,MAAM,MAAM,EACZ,OAAO,MAAM,EACb,WAAW,MAAM,EACjB,KAAK,OAAO,EACZ,UAAU,OAAO,KAChB,MAcF,CAAC"}
package/dist/index.js CHANGED
@@ -5,14 +5,25 @@ var e = {
5
5
  DRAWER_CLOSE: "drawer:close",
6
6
  DRAWER_OPEN: "drawer:open",
7
7
  DRAWER_TOGGLE: "drawer:toggle",
8
+ SHEET_BEFORE_CLOSE: "sheet:before-close",
9
+ SHEET_BEFORE_OPEN: "sheet:before-open",
10
+ SHEET_CLOSE: "sheet:close",
11
+ SHEET_OPEN: "sheet:open",
12
+ SHEET_TOGGLE: "sheet:toggle",
8
13
  MODAL_BEFORE_CLOSE: "modal:before-close",
9
14
  MODAL_BEFORE_OPEN: "modal:before-open",
10
15
  MODAL_CLOSE: "modal:close",
11
16
  MODAL_OPEN: "modal:open",
12
17
  MODAL_TOGGLE: "modal:toggle",
13
18
  SPINBUTTON_CHANGE: "spinbutton:change",
19
+ TOAST_OPEN: "toast:open",
20
+ TOAST_CLOSE: "toast:close",
14
21
  DISCLOSURE_BUTTON_OPEN: "disclosure-button:open",
15
22
  DISCLOSURE_BUTTON_CLOSE: "disclosure-button:close",
23
+ DRILLDOWN_OPEN: "drilldown:open",
24
+ DRILLDOWN_CLOSE: "drilldown:close",
25
+ DROPZONE_CHANGE: "dropzone:change",
26
+ DROPZONE_REJECT: "dropzone:reject",
16
27
  SWITCH_ACTIVATE: "switch:activate",
17
28
  SWITCH_DEACTIVATE: "switch:deactivate",
18
29
  ACCORDION_OPEN: "accordion:open",
@@ -24,6 +35,9 @@ var e = {
24
35
  COMBOBOX_EMPTY: "combobox:empty",
25
36
  WINDOWSPLITTER_CHANGE: "windowsplitter:change",
26
37
  SLIDER_CHANGE: "slider:change",
38
+ SNAKE_EAT: "snake:eat",
39
+ SNAKE_OVER: "snake:over",
40
+ SNAKE_REPLAY: "snake:replay",
27
41
  CALENDAR_CHANGE: "calendar:change",
28
42
  TABS_BEFORE_ACTIVATE: "tabs:before-activate",
29
43
  TABS_ACTIVATE: "tabs:activate",
@@ -55,15 +69,19 @@ i.hasAttribute("data-debug"), window.addEventListener("pointermove", r(({ x: e,
55
69
  var o = (e, t, n) => Math.min(Math.max(e, t), n), s = (e, t, n) => {
56
70
  let r = n - t;
57
71
  return r > 0 ? (e - t) / r : 0;
58
- }, c = (e, t, n) => t + e * (n - t), l = (e, t, n, r) => o(r <= 0 ? e : t + Math.round((e - t) / r) * r, t, n), u = (e, t) => Math.max(0, e - t), d = (e, t) => Math.max(0, e - 2 * t), f = (e, t, n, r) => r || n ? e === "min" ? t : 0 : e === "max" ? t : 0, p = (e, t, n, r, i) => {
59
- let a = i ? t.height : t.width, s = i ? t.top : t.left, c = u(a, n);
72
+ }, c = (e, t, n) => t + e * (n - t), l = (e) => e.toString().split(".")[1]?.length ?? 0, u = (e, t, n, r) => {
73
+ if (r <= 0) return o(e, t, n);
74
+ let i = t + Math.round((e - t) / r) * r, a = Math.max(l(t), l(r));
75
+ return o(Number(i.toFixed(a)), t, n);
76
+ }, d = (e, t) => Math.max(0, e - t), f = (e, t) => Math.max(0, e - 2 * t), p = (e, t, n, r) => r || n ? e === "min" ? t : 0 : e === "max" ? t : 0, m = (e, t, n, r, i) => {
77
+ let a = i ? t.height : t.width, s = i ? t.top : t.left, c = d(a, n);
60
78
  if (c <= 0) return 0;
61
79
  let l = o((e - s - n / 2) / c, 0, 1);
62
80
  return i || r ? 1 - l : l;
63
- }, m = (e, t, n, r, i, a, s, c, l) => {
64
- let u = f(n, s, c, l), d = o(e - (l ? t.top : t.left) - u, 0, a), p = a > 0 ? d / a : 0, m = i - r;
65
- return Math.round(l || c ? i - m * p : r + m * p);
66
- }, h = class {
81
+ }, h = (e, t, n, r, i, a, s, c, l) => {
82
+ let u = p(n, s, c, l), d = o(e - (l ? t.top : t.left) - u, 0, a), f = a > 0 ? d / a : 0, m = i - r;
83
+ return l || c ? i - m * f : r + m * f;
84
+ }, g = class {
67
85
  #e;
68
86
  #t;
69
87
  #n;
@@ -118,7 +136,7 @@ var o = (e, t, n) => Math.min(Math.max(e, t), n), s = (e, t, n) => {
118
136
  static isEnd(e) {
119
137
  return e === "End";
120
138
  }
121
- }, g = class extends HTMLElement {
139
+ }, _ = class extends HTMLElement {
122
140
  static observedAttributes = ["data-step", "data-page"];
123
141
  step = 1;
124
142
  page = 10;
@@ -205,7 +223,7 @@ var o = (e, t, n) => Math.min(Math.max(e, t), n), s = (e, t, n) => {
205
223
  get offset() {
206
224
  return this.#n?.offset ?? 0;
207
225
  }
208
- }, _ = class extends g {
226
+ }, v = class extends _ {
209
227
  $thumb = null;
210
228
  get orientation() {
211
229
  return this.$thumb?.getAttribute("aria-orientation") ?? null;
@@ -237,12 +255,12 @@ var o = (e, t, n) => Math.min(Math.max(e, t), n), s = (e, t, n) => {
237
255
  this.#e(this.value, !1);
238
256
  }
239
257
  setValue(e, t = {}) {
240
- let { emit: n = !0 } = t, r = l(e, this.min, this.max, this.step);
258
+ let { emit: n = !0 } = t, r = u(e, this.min, this.max, this.step);
241
259
  this.#e(r, n);
242
260
  }
243
261
  valueFromPointer(e, t) {
244
- let { clientY: n, clientX: r } = e, i = this.getBoundingClientRect(), { min: a, max: o } = this, { offsetHeight: s, offsetWidth: l } = t, u = this.isVertical, d = p((u ? n : r) + this.offset, i, u ? s : l, this.isRtl, u);
245
- return Math.round(c(d, a, o));
262
+ let { clientY: n, clientX: r } = e, i = this.getBoundingClientRect(), { min: a, max: o } = this, { offsetHeight: s, offsetWidth: l } = t, u = this.isVertical;
263
+ return c(m((u ? n : r) + this.offset, i, u ? s : l, this.isRtl, u), a, o);
246
264
  }
247
265
  commitPointerValue(e, t) {
248
266
  this.setValue(this.valueFromPointer(e, t));
@@ -250,15 +268,15 @@ var o = (e, t, n) => Math.min(Math.max(e, t), n), s = (e, t, n) => {
250
268
  onKeydown(e) {
251
269
  if (!this.$thumb) return;
252
270
  let { key: t } = e;
253
- if (h.isHome(t)) {
271
+ if (g.isHome(t)) {
254
272
  e.preventDefault(), this.setValue(this.min);
255
273
  return;
256
274
  }
257
- if (h.isEnd(t)) {
275
+ if (g.isEnd(t)) {
258
276
  e.preventDefault(), this.setValue(this.max);
259
277
  return;
260
278
  }
261
- let n = new h(this.step, this.page, this.isRtl, this.isVertical).delta(t);
279
+ let n = new g(this.step, this.page, this.isRtl, this.isVertical).delta(t);
262
280
  if (!n) return;
263
281
  let { preventDefault: r, delta: i } = n;
264
282
  r && e.preventDefault(), i !== 0 && this.setValue(this.value + i);
@@ -273,10 +291,10 @@ var o = (e, t, n) => Math.min(Math.max(e, t), n), s = (e, t, n) => {
273
291
  }, { cancelable: !1 });
274
292
  }
275
293
  };
276
- customElements.get("cinq-slider") || customElements.define("cinq-slider", _);
294
+ customElements.get("cinq-slider") || customElements.define("cinq-slider", v);
277
295
  //#endregion
278
296
  //#region src/slider-range.ts
279
- var v = class extends g {
297
+ var y = class extends _ {
280
298
  $max = null;
281
299
  $min = null;
282
300
  #e = "min";
@@ -323,7 +341,7 @@ var v = class extends g {
323
341
  }
324
342
  valueFromPointer(e, t) {
325
343
  let { clientY: n, clientX: r } = e, { offsetHeight: i, offsetWidth: a } = t, o = t === this.$min ? "min" : "max", s = this.isVertical ? i : a;
326
- return m(this.isVertical ? n + this.offset : r + this.offset, this.getBoundingClientRect(), o, this.#t, this.#n, this.#i(s), s, this.isRtl, this.isVertical);
344
+ return h(this.isVertical ? n + this.offset : r + this.offset, this.getBoundingClientRect(), o, this.#t, this.#n, this.#i(s), s, this.isRtl, this.isVertical);
327
345
  }
328
346
  commitPointerValue(e, t) {
329
347
  let n = this.valueFromPointer(e, t);
@@ -338,19 +356,19 @@ var v = class extends g {
338
356
  if (!t) return;
339
357
  this.#e = t;
340
358
  let { key: n } = e, r = t === "min" ? this.min : this.max;
341
- if (h.isHome(n)) {
359
+ if (g.isHome(n)) {
342
360
  e.preventDefault();
343
361
  let n = t === "min" ? this.#t : this.min;
344
362
  t === "min" ? this.setValues(n, this.max, { active: "min" }) : this.setValues(this.min, n, { active: "max" });
345
363
  return;
346
364
  }
347
- if (h.isEnd(n)) {
365
+ if (g.isEnd(n)) {
348
366
  e.preventDefault();
349
367
  let n = t === "max" ? this.#n : this.max;
350
368
  t === "min" ? this.setValues(n, this.max, { active: "min" }) : this.setValues(this.min, n, { active: "max" });
351
369
  return;
352
370
  }
353
- let i = new h(this.step, this.page, this.isRtl, this.isVertical).delta(n);
371
+ let i = new g(this.step, this.page, this.isRtl, this.isVertical).delta(n);
354
372
  if (!i) return;
355
373
  let { delta: a } = i;
356
374
  if (a !== 0) {
@@ -365,23 +383,23 @@ var v = class extends g {
365
383
  return e === this.$min ? "min" : e === this.$max ? "max" : null;
366
384
  }
367
385
  #i(e) {
368
- return d(this.isVertical ? this.clientHeight : this.clientWidth, e);
386
+ return f(this.isVertical ? this.clientHeight : this.clientWidth, e);
369
387
  }
370
388
  #a(n, r, i, a) {
371
389
  if (!this.$min || !this.$max) return;
372
- let o = this.#t, c = this.#n, u = l(n, o, c, this.step), d = l(r, o, c, this.step);
373
- i === "min" ? u = Math.min(u, d) : d = Math.max(d, u), this.#e = i, this.setAttribute("data-active", i), this.$min.setAttribute("aria-valuenow", String(u)), this.$max.setAttribute("aria-valuenow", String(d)), this.$min.setAttribute("aria-valuemax", String(d)), this.$max.setAttribute("aria-valuemin", String(u)), this.setValuetext(this.$min, u), this.setValuetext(this.$max, d);
374
- let f = s(u, o, c), p = s(d, o, c);
375
- if (this.style.setProperty("--min", String(u)), this.style.setProperty("--max", String(d)), this.style.setProperty("--min-ratio", String(f)), this.style.setProperty("--max-ratio", String(p)), u === d ? this.setAttribute("data-collapsed", "") : this.removeAttribute("data-collapsed"), a) {
390
+ let o = this.#t, c = this.#n, l = u(n, o, c, this.step), d = u(r, o, c, this.step);
391
+ i === "min" ? l = Math.min(l, d) : d = Math.max(d, l), this.#e = i, this.setAttribute("data-active", i), this.$min.setAttribute("aria-valuenow", String(l)), this.$max.setAttribute("aria-valuenow", String(d)), this.$min.setAttribute("aria-valuemax", String(d)), this.$max.setAttribute("aria-valuemin", String(l)), this.setValuetext(this.$min, l), this.setValuetext(this.$max, d);
392
+ let f = s(l, o, c), p = s(d, o, c);
393
+ if (this.style.setProperty("--min", String(l)), this.style.setProperty("--max", String(d)), this.style.setProperty("--min-ratio", String(f)), this.style.setProperty("--max-ratio", String(p)), l === d ? this.setAttribute("data-collapsed", "") : this.removeAttribute("data-collapsed"), a) {
376
394
  let n = i === "min" ? this.$min : this.$max;
377
395
  t(this, e.SLIDER_CHANGE, {
378
- min: u,
396
+ min: l,
379
397
  max: d,
380
398
  $thumb: n
381
399
  }, { cancelable: !1 });
382
400
  }
383
401
  }
384
402
  };
385
- customElements.get("cinq-slider-range") || customElements.define("cinq-slider-range", v);
403
+ customElements.get("cinq-slider-range") || customElements.define("cinq-slider-range", y);
386
404
  //#endregion
387
- export { _ as Slider, v as SliderRange };
405
+ export { v as Slider, y as SliderRange };
@@ -1 +1 @@
1
- {"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../src/slider.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;;;GAOG;AACH,qBAAa,MAAO,SAAQ,UAAU;;IACpC,sCAAsC;IACtC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAQ;IAElC,wDAAwD;IACxD,IAAI,WAAW,IAAI,MAAM,GAAG,IAAI,CAE/B;IAED,iDAAiD;IACjD,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,iDAAiD;IACjD,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,mDAAmD;IACnD,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,yDAAyD;IACzD,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,8CAA8C;IAC9C,IAAI,IAAI,IAAI;IAiBZ,4DAA4D;IAC5D,OAAO,IAAI,IAAI;IAUf,SAAS,CAAC,aAAa,IAAI,IAAI;IAM/B,oEAAoE;IACpE,SAAS,CAAC,IAAI,IAAI,IAAI;IAItB,qFAAqF;IACrF,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI;IAM5D,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM;IAmB5E,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAI5E,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;CAgEhD"}
1
+ {"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../src/slider.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;;;GAOG;AACH,qBAAa,MAAO,SAAQ,UAAU;;IACpC,sCAAsC;IACtC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAQ;IAElC,wDAAwD;IACxD,IAAI,WAAW,IAAI,MAAM,GAAG,IAAI,CAE/B;IAED,iDAAiD;IACjD,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,iDAAiD;IACjD,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,mDAAmD;IACnD,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,yDAAyD;IACzD,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,8CAA8C;IAC9C,IAAI,IAAI,IAAI;IAiBZ,4DAA4D;IAC5D,OAAO,IAAI,IAAI;IAUf,SAAS,CAAC,aAAa,IAAI,IAAI;IAM/B,oEAAoE;IACpE,SAAS,CAAC,IAAI,IAAI,IAAI;IAItB,qFAAqF;IACrF,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI;IAM5D,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM;IAoB5E,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAI5E,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;CAgEhD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agencecinq/slider",
3
- "version": "6.0.0",
3
+ "version": "6.0.1",
4
4
  "description": "Accessible, WAI-ARIA slider as a lightweight Web Component.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -28,8 +28,8 @@
28
28
  "devDependencies": {
29
29
  "vite": "^8.2.0",
30
30
  "vite-plugin-dts": "^5.0.3",
31
- "vitest": "^3.2.4",
32
- "@agencecinq/utils": "7.2.0"
31
+ "vitest": "^4.1.11",
32
+ "@agencecinq/utils": "7.9.0"
33
33
  },
34
34
  "publishConfig": {
35
35
  "access": "public"