@smwb/ui-solid 0.2.1 → 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.
- package/dist/assets/styles/less/components/carousel/carousel.entry.css +1 -1
- package/dist/components/dataDisplay/carousel/carousel.js +152 -138
- package/dist/components/dataDisplay/carousel/carousel.js.map +1 -1
- package/dist/components/dataDisplay/chat/chatAttachmentImage.js +17 -17
- package/dist/components/dataDisplay/chat/chatAttachmentImage.js.map +1 -1
- package/dist/components/dataDisplay/chat/chatShell.js +16 -16
- package/dist/components/dataDisplay/chat/chatShell.js.map +1 -1
- package/dist/components/dataDisplay/expansionPanel/expansionPanel.js +25 -25
- package/dist/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
- package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js +15 -15
- package/dist/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js.map +1 -1
- package/dist/components/feedBack/modal/modal.js +29 -29
- package/dist/components/feedBack/modal/modal.js.map +1 -1
- package/dist/components/inputs/datePicker/datePicker.js +43 -43
- package/dist/components/inputs/datePicker/datePicker.js.map +1 -1
- package/dist/components/inputs/dateTimePicker/dateTimePicker.js +46 -46
- package/dist/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
- package/dist/components/inputs/selectField/dropdownMenu.js +30 -30
- package/dist/components/inputs/selectField/dropdownMenu.js.map +1 -1
- package/dist/components/inputs/slider/slider.js +48 -48
- package/dist/components/inputs/slider/slider.js.map +1 -1
- package/dist/components/inputs/timePicker/timePicker.js +31 -31
- package/dist/components/inputs/timePicker/timePicker.js.map +1 -1
- package/dist/components/layout/sheet/sheet.js +29 -29
- package/dist/components/layout/sheet/sheet.js.map +1 -1
- package/dist/headless/components/dataDisplay/carousel/carousel.js +157 -143
- package/dist/headless/components/dataDisplay/carousel/carousel.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chatAttachmentImage.js +17 -17
- package/dist/headless/components/dataDisplay/chat/chatAttachmentImage.js.map +1 -1
- package/dist/headless/components/dataDisplay/chat/chatShell.js +16 -16
- package/dist/headless/components/dataDisplay/chat/chatShell.js.map +1 -1
- package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js +25 -25
- package/dist/headless/components/dataDisplay/expansionPanel/expansionPanel.js.map +1 -1
- package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js +15 -15
- package/dist/headless/components/dataDisplay/imagesList/imagesListItem/imagesListItemModal.js.map +1 -1
- package/dist/headless/components/feedBack/modal/modal.js +25 -25
- package/dist/headless/components/feedBack/modal/modal.js.map +1 -1
- package/dist/headless/components/inputs/datePicker/datePicker.js +43 -43
- package/dist/headless/components/inputs/datePicker/datePicker.js.map +1 -1
- package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js +46 -46
- package/dist/headless/components/inputs/dateTimePicker/dateTimePicker.js.map +1 -1
- package/dist/headless/components/inputs/selectField/dropdownMenu.js +30 -30
- package/dist/headless/components/inputs/selectField/dropdownMenu.js.map +1 -1
- package/dist/headless/components/inputs/slider/slider.js +90 -90
- package/dist/headless/components/inputs/slider/slider.js.map +1 -1
- package/dist/headless/components/inputs/timePicker/timePicker.js +31 -31
- package/dist/headless/components/inputs/timePicker/timePicker.js.map +1 -1
- package/dist/headless/components/layout/sheet/sheet.js +29 -29
- package/dist/headless/components/layout/sheet/sheet.js.map +1 -1
- package/dist/ssr.ssr-spec.d.ts +1 -0
- package/package.json +4 -3
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { createComponent as c, use as ce, spread as ve, mergeProps as he, insert as x, effect as R, style as K, addEventListener as
|
|
2
|
-
import { Show as P, mergeProps as
|
|
3
|
-
import
|
|
4
|
-
import { toPercent as M, coordY as
|
|
5
|
-
import { mergeRefs as
|
|
6
|
-
import { TextFieldWrapper as
|
|
7
|
-
import { TextField as
|
|
8
|
-
var
|
|
9
|
-
function
|
|
1
|
+
import { createComponent as c, use as ce, spread as ve, mergeProps as he, insert as x, effect as R, style as K, addEventListener as Te, setAttribute as l, className as be, setStyleProperty as Me, memo as Ve, isServer as fe, template as V, delegateEvents as Ce } from "solid-js/web";
|
|
2
|
+
import { Show as P, mergeProps as ge, splitProps as we, createSignal as Z, onMount as xe, onCleanup as re, For as ne } from "solid-js";
|
|
3
|
+
import ie from "clsx";
|
|
4
|
+
import { toPercent as M, coordY as _e, rescale as se, coordX as pe } from "./utils.js";
|
|
5
|
+
import { mergeRefs as ye } from "../../../primitives/mergeRefs.js";
|
|
6
|
+
import { TextFieldWrapper as ke } from "../textField/textFieldWrapper.js";
|
|
7
|
+
import { TextField as Se } from "../textField/textField.js";
|
|
8
|
+
var $e = /* @__PURE__ */ V("<span class=smwb-slider__marks aria-hidden=true>"), ze = /* @__PURE__ */ V("<div class=smwb-slider__container><span><span class=smwb-slider__rail></span><span class=smwb-slider__track>"), Ee = /* @__PURE__ */ V("<span class=smwb-slider__mark-label>"), Le = /* @__PURE__ */ V("<span class=smwb-slider__mark>"), De = /* @__PURE__ */ V("<span><input class=smwb-slider__input type=range>"), Pe = /* @__PURE__ */ V("<span class=smwb-slider__ticks>"), Re = /* @__PURE__ */ V("<span class=smwb-slider__thumb-tooltip>"), Fe = /* @__PURE__ */ V("<div class=smwb-slider__container><span><span class=smwb-slider__rail></span><span class=smwb-slider__track></span><span><input data-testid=slider-input class=smwb-slider__input type=range readonly>"), Be = /* @__PURE__ */ V("<span class=smwb-slider__tick>");
|
|
9
|
+
function Ae(v, C, e, F) {
|
|
10
10
|
if (!v) return [];
|
|
11
11
|
if (Array.isArray(v)) return v;
|
|
12
12
|
const E = F && F > 0 ? F : (e - C) / 10, B = [];
|
|
@@ -16,67 +16,67 @@ function Le(v, C, e, F) {
|
|
|
16
16
|
});
|
|
17
17
|
return B;
|
|
18
18
|
}
|
|
19
|
-
function
|
|
20
|
-
const C =
|
|
19
|
+
function Xe(v) {
|
|
20
|
+
const C = ge({
|
|
21
21
|
min: 0,
|
|
22
22
|
max: 100,
|
|
23
23
|
disabled: !1,
|
|
24
24
|
size: "medium",
|
|
25
25
|
color: "primary",
|
|
26
26
|
orientation: "horizontal"
|
|
27
|
-
}, v), [e, F] =
|
|
28
|
-
const n = Array.isArray(
|
|
27
|
+
}, v), [e, F] = we(C, ["defaultValue", "value", "onChange", "min", "max", "name", "disabled", "class", "step", "label", "helperText", "error", "size", "color", "orientation", "marks", "getAriaValueText", "aria-label", "range", "variant", "valueField", "withTicks", "ref"]), E = () => e.orientation === "vertical", B = (i) => {
|
|
28
|
+
const n = Array.isArray(i) ? i : [e.min, e.max], m = Math.min(n[0] ?? e.min, n[1] ?? e.max), b = Math.max(n[0] ?? e.min, n[1] ?? e.max);
|
|
29
29
|
return [m, b];
|
|
30
30
|
}, d = e.value !== void 0, [ee, W] = Z(B(e.defaultValue)), g = () => d ? B(e.value) : ee();
|
|
31
31
|
let X, Y = 0, I = !1;
|
|
32
|
-
const S = () =>
|
|
32
|
+
const S = () => Ae(e.marks, e.min, e.max, e.step), z = (i) => {
|
|
33
33
|
const n = X?.getBoundingClientRect();
|
|
34
34
|
if (!n) return e.min;
|
|
35
35
|
if (E()) {
|
|
36
|
-
const b =
|
|
36
|
+
const b = _e(i) - n.top;
|
|
37
37
|
return se(n.height - b, [0, n.height], [e.min, e.max], {
|
|
38
38
|
step: e.step
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
const m =
|
|
41
|
+
const m = pe(i) - n.left;
|
|
42
42
|
return se(m, [0, n.width], [e.min, e.max], {
|
|
43
43
|
step: e.step
|
|
44
44
|
});
|
|
45
|
-
},
|
|
46
|
-
const m = Math.min(
|
|
45
|
+
}, ae = (i, n) => {
|
|
46
|
+
const m = Math.min(i[0], i[1]), b = Math.max(i[0], i[1]), w = [Math.max(e.min, m), Math.min(e.max, b)];
|
|
47
47
|
d || W(w), e.onChange?.(n, w, v);
|
|
48
|
-
}, N = (
|
|
48
|
+
}, N = (i, n) => {
|
|
49
49
|
const m = g(), b = [m[0], m[1]];
|
|
50
|
-
b[Y] = Math.max(e.min, Math.min(e.max,
|
|
51
|
-
}, _ = (
|
|
50
|
+
b[Y] = Math.max(e.min, Math.min(e.max, i)), ae(b, n);
|
|
51
|
+
}, _ = (i) => {
|
|
52
52
|
const n = g();
|
|
53
|
-
Y = Math.abs(
|
|
54
|
-
}, L = (
|
|
55
|
-
I && (
|
|
53
|
+
Y = Math.abs(i - n[0]) <= Math.abs(i - n[1]) ? 0 : 1;
|
|
54
|
+
}, L = (i) => {
|
|
55
|
+
I && (i.preventDefault(), N(z(i), i));
|
|
56
56
|
}, h = () => {
|
|
57
|
-
I = !1, document.removeEventListener("mousemove", L), document.removeEventListener("mouseup", h), document.removeEventListener("touchmove", L), document.removeEventListener("touchend", h);
|
|
58
|
-
}, D = (
|
|
59
|
-
if (e.disabled ||
|
|
60
|
-
const n = z(
|
|
61
|
-
_(n), I = !0, N(n,
|
|
62
|
-
}, U = (
|
|
57
|
+
I = !1, !fe && (document.removeEventListener("mousemove", L), document.removeEventListener("mouseup", h), document.removeEventListener("touchmove", L), document.removeEventListener("touchend", h));
|
|
58
|
+
}, D = (i) => {
|
|
59
|
+
if (e.disabled || i.button !== 0) return;
|
|
60
|
+
const n = z(i);
|
|
61
|
+
_(n), I = !0, N(n, i), document.addEventListener("mousemove", L), document.addEventListener("mouseup", h);
|
|
62
|
+
}, U = (i) => {
|
|
63
63
|
if (e.disabled) return;
|
|
64
|
-
const n = z(
|
|
65
|
-
_(n), I = !0, N(n,
|
|
64
|
+
const n = z(i);
|
|
65
|
+
_(n), I = !0, N(n, i), document.addEventListener("touchmove", L), document.addEventListener("touchend", h);
|
|
66
66
|
};
|
|
67
|
-
|
|
67
|
+
xe(() => {
|
|
68
68
|
X && (X.addEventListener("touchstart", U), re(() => X?.removeEventListener("touchstart", U)));
|
|
69
69
|
}), re(h);
|
|
70
|
-
const H = (
|
|
70
|
+
const H = (i) => (n) => {
|
|
71
71
|
if (e.disabled) return;
|
|
72
72
|
const m = e.step && e.step > 0 ? e.step : 1, b = g();
|
|
73
73
|
let w = null;
|
|
74
|
-
n.key === "ArrowLeft" || n.key === "ArrowDown" ? w = b[
|
|
75
|
-
}, te = () =>
|
|
74
|
+
n.key === "ArrowLeft" || n.key === "ArrowDown" ? w = b[i] - m : n.key === "ArrowRight" || n.key === "ArrowUp" ? w = b[i] + m : n.key === "Home" ? w = e.min : n.key === "End" && (w = e.max), w !== null && (n.preventDefault(), Y = i, N(w, n));
|
|
75
|
+
}, te = () => ie("smwb-slider", "smwb-slider--range", e.class, {
|
|
76
76
|
"smwb-slider--disabled": e.disabled,
|
|
77
77
|
"smwb-slider--vertical": E()
|
|
78
78
|
}, e.size !== "medium" && `smwb-slider_size-${e.size}`, e.color !== "primary" && `smwb-slider_color-${e.color}`);
|
|
79
|
-
return c(
|
|
79
|
+
return c(ke, {
|
|
80
80
|
get label() {
|
|
81
81
|
return e.label;
|
|
82
82
|
},
|
|
@@ -92,9 +92,9 @@ function Be(v) {
|
|
|
92
92
|
fullWidth: !0,
|
|
93
93
|
shrink: !0,
|
|
94
94
|
get children() {
|
|
95
|
-
var
|
|
95
|
+
var i = ze(), n = i.firstChild, m = n.firstChild, b = m.nextSibling;
|
|
96
96
|
n.$$mousedown = D;
|
|
97
|
-
var w =
|
|
97
|
+
var w = ye(e.ref, (o) => X = o);
|
|
98
98
|
return typeof w == "function" && ce(w, n), ve(n, he({
|
|
99
99
|
get class() {
|
|
100
100
|
return te();
|
|
@@ -104,19 +104,19 @@ function Be(v) {
|
|
|
104
104
|
return S().length > 0;
|
|
105
105
|
},
|
|
106
106
|
get children() {
|
|
107
|
-
var o =
|
|
107
|
+
var o = $e();
|
|
108
108
|
return x(o, c(ne, {
|
|
109
109
|
get each() {
|
|
110
110
|
return S();
|
|
111
111
|
},
|
|
112
112
|
children: (f) => (() => {
|
|
113
|
-
var s =
|
|
113
|
+
var s = Le();
|
|
114
114
|
return x(s, c(P, {
|
|
115
115
|
get when() {
|
|
116
116
|
return f.label != null;
|
|
117
117
|
},
|
|
118
118
|
get children() {
|
|
119
|
-
var t =
|
|
119
|
+
var t = Ee();
|
|
120
120
|
return x(t, () => f.label), t;
|
|
121
121
|
}
|
|
122
122
|
})), R((t) => K(s, E() ? {
|
|
@@ -130,15 +130,15 @@ function Be(v) {
|
|
|
130
130
|
}), m), x(n, c(ne, {
|
|
131
131
|
each: [0, 1],
|
|
132
132
|
children: (o) => (() => {
|
|
133
|
-
var f =
|
|
134
|
-
return
|
|
133
|
+
var f = De(), s = f.firstChild;
|
|
134
|
+
return Te(s, "keydown", H(o), !0), s.addEventListener("change", () => {
|
|
135
135
|
}), l(s, "data-testid", `slider-input-${o}`), R((t) => {
|
|
136
|
-
var
|
|
136
|
+
var a = ie("smwb-slider__thumb", `smwb-slider__thumb--${o === 0 ? "start" : "end"}`), p = E() ? {
|
|
137
137
|
bottom: `${M(g()[o], e.min, e.max)}%`
|
|
138
138
|
} : {
|
|
139
139
|
left: `${M(g()[o], e.min, e.max)}%`
|
|
140
140
|
}, y = e.min, k = e.max, u = e.step, j = e.name ? `${e.name}[${o}]` : void 0, r = e.disabled, $ = e.disabled ? -1 : 0, A = e["aria-label"] ? `${e["aria-label"]} ${o === 0 ? "minimum" : "maximum"}` : void 0, T = e.orientation, q = g()[o], G = o === 0 ? e.min : g()[0], J = o === 0 ? g()[1] : e.max, O = e.getAriaValueText ? e.getAriaValueText(g()[o]) : void 0, Q = e.disabled || void 0;
|
|
141
|
-
return
|
|
141
|
+
return a !== t.e && be(f, t.e = a), t.t = K(f, p, t.t), y !== t.a && l(s, "min", t.a = y), k !== t.o && l(s, "max", t.o = k), u !== t.i && l(s, "step", t.i = u), j !== t.n && l(s, "name", t.n = j), r !== t.s && (s.disabled = t.s = r), $ !== t.h && l(s, "tabindex", t.h = $), A !== t.r && l(s, "aria-label", t.r = A), T !== t.d && l(s, "aria-orientation", t.d = T), q !== t.l && l(s, "aria-valuenow", t.l = q), G !== t.u && l(s, "aria-valuemin", t.u = G), J !== t.c && l(s, "aria-valuemax", t.c = J), O !== t.w && l(s, "aria-valuetext", t.w = O), Q !== t.m && l(s, "aria-disabled", t.m = Q), t;
|
|
142
142
|
}, {
|
|
143
143
|
e: void 0,
|
|
144
144
|
t: void 0,
|
|
@@ -158,20 +158,20 @@ function Be(v) {
|
|
|
158
158
|
}), R(() => s.value = g()[o]), f;
|
|
159
159
|
})()
|
|
160
160
|
}), null), R((o) => K(b, (() => {
|
|
161
|
-
const f = M(g()[0], e.min, e.max), s = M(g()[1], e.min, e.max), t = `${Math.min(f, s)}%`,
|
|
161
|
+
const f = M(g()[0], e.min, e.max), s = M(g()[1], e.min, e.max), t = `${Math.min(f, s)}%`, a = `${Math.abs(s - f)}%`;
|
|
162
162
|
return E() ? {
|
|
163
163
|
bottom: t,
|
|
164
|
-
height:
|
|
164
|
+
height: a
|
|
165
165
|
} : {
|
|
166
166
|
left: t,
|
|
167
|
-
width:
|
|
167
|
+
width: a
|
|
168
168
|
};
|
|
169
|
-
})(), o)),
|
|
169
|
+
})(), o)), i;
|
|
170
170
|
}
|
|
171
171
|
});
|
|
172
172
|
}
|
|
173
|
-
function
|
|
174
|
-
const C =
|
|
173
|
+
function Ye(v) {
|
|
174
|
+
const C = ge({
|
|
175
175
|
min: 0,
|
|
176
176
|
max: 100,
|
|
177
177
|
disabled: !1,
|
|
@@ -179,45 +179,45 @@ function Xe(v) {
|
|
|
179
179
|
size: "medium",
|
|
180
180
|
color: "primary",
|
|
181
181
|
orientation: "horizontal"
|
|
182
|
-
}, v), [e, F] =
|
|
182
|
+
}, v), [e, F] = we(C, ["defaultValue", "value", "onChange", "min", "max", "name", "disabled", "class", "step", "variant", "valueField", "withTicks", "label", "helperText", "error", "size", "color", "orientation", "marks", "range", "getAriaValueText", "aria-label", "ref"]), E = typeof e.defaultValue == "number" ? e.defaultValue : void 0, B = () => typeof e.value == "number" ? e.value : void 0, d = () => e.orientation === "vertical", ee = typeof e.value == "number", W = () => e.variant === "discrete", [g, X] = Z(E ?? e.min), [Y, I] = Z(!1), [S, z] = Z(!1), [ae, N] = Z(!1);
|
|
183
183
|
let _, L = !1;
|
|
184
|
-
const h = () => ee ? B() : g(), D = (t,
|
|
185
|
-
t < e.min || t > e.max || (ee || X(t), e.onChange?.(
|
|
186
|
-
}, U = (t,
|
|
184
|
+
const h = () => ee ? B() : g(), D = (t, a) => {
|
|
185
|
+
t < e.min || t > e.max || (ee || X(t), e.onChange?.(a, t, v));
|
|
186
|
+
}, U = (t, a) => se(t, [0, a], [e.min, e.max], {
|
|
187
187
|
step: e.step
|
|
188
188
|
}), H = (t) => {
|
|
189
189
|
if (!L || !_) return;
|
|
190
|
-
const
|
|
190
|
+
const a = _.getBoundingClientRect(), p = pe(t), y = _e(t), k = d() ? a.height - (y - a.top) : p - a.left, u = U(k, d() ? a.height : a.width);
|
|
191
191
|
S() || z(!0), h() !== u && (Y() || I(!0), D(u, t));
|
|
192
192
|
}, te = () => {
|
|
193
|
-
document.removeEventListener("mousemove", H), document.removeEventListener("mouseup",
|
|
194
|
-
},
|
|
193
|
+
fe || (document.removeEventListener("mousemove", H), document.removeEventListener("mouseup", i), document.removeEventListener("touchmove", H), document.removeEventListener("touchend", i));
|
|
194
|
+
}, i = () => {
|
|
195
195
|
L = !1, Y() && I(!1), S() && z(!1), te();
|
|
196
196
|
}, n = (t) => {
|
|
197
197
|
if (e.disabled || t.button !== 0 || !_) return;
|
|
198
198
|
L = !0;
|
|
199
|
-
const
|
|
200
|
-
S() || z(!0), D(y, t), document.addEventListener("mousemove", H), document.addEventListener("mouseup",
|
|
199
|
+
const a = _.getBoundingClientRect(), p = d() ? a.height - (t.clientY - a.top) : t.clientX - a.left, y = U(p, d() ? a.height : a.width);
|
|
200
|
+
S() || z(!0), D(y, t), document.addEventListener("mousemove", H), document.addEventListener("mouseup", i);
|
|
201
201
|
}, m = (t) => {
|
|
202
202
|
if (e.disabled || !_) return;
|
|
203
203
|
L = !0;
|
|
204
|
-
const
|
|
204
|
+
const a = _.getBoundingClientRect(), p = t.changedTouches?.[0];
|
|
205
205
|
if (!p) return;
|
|
206
|
-
const y = d() ?
|
|
207
|
-
S() || z(!0), D(k, t), document.addEventListener("touchmove", H), document.addEventListener("touchend",
|
|
206
|
+
const y = d() ? a.height - (p.clientY - a.top) : p.clientX - a.left, k = U(y, d() ? a.height : a.width);
|
|
207
|
+
S() || z(!0), D(k, t), document.addEventListener("touchmove", H), document.addEventListener("touchend", i);
|
|
208
208
|
};
|
|
209
|
-
|
|
209
|
+
xe(() => {
|
|
210
210
|
_ && (_.addEventListener("touchstart", m), re(() => _?.removeEventListener("touchstart", m)));
|
|
211
211
|
}), re(te);
|
|
212
212
|
const b = (t) => {
|
|
213
|
-
!
|
|
214
|
-
}, w = () =>
|
|
213
|
+
!ae() || e.disabled || ((t.key === "ArrowLeft" || t.key === "ArrowDown") && D(h() - (e.step || 1), t), (t.key === "ArrowRight" || t.key === "ArrowUp") && D(h() + (e.step || 1), t));
|
|
214
|
+
}, w = () => ie("smwb-slider", e.class, {
|
|
215
215
|
"smwb-slider--disabled": e.disabled,
|
|
216
216
|
"smwb-slider--dragging": Y(),
|
|
217
217
|
"smwb-slider--discrete": W(),
|
|
218
218
|
"smwb-slider--vertical": d()
|
|
219
|
-
}, e.size !== "medium" && `smwb-slider_size-${e.size}`, e.color !== "primary" && `smwb-slider_color-${e.color}`), o = () => `${M(h(), e.min, e.max)}%`, f = () =>
|
|
220
|
-
return c(
|
|
219
|
+
}, e.size !== "medium" && `smwb-slider_size-${e.size}`, e.color !== "primary" && `smwb-slider_color-${e.color}`), o = () => `${M(h(), e.min, e.max)}%`, f = () => Ae(e.marks, e.min, e.max, e.step), s = () => Array(Math.round(e.max / (e.step || 1)) + 1).fill(1);
|
|
220
|
+
return c(ke, {
|
|
221
221
|
get label() {
|
|
222
222
|
return e.label;
|
|
223
223
|
},
|
|
@@ -233,47 +233,47 @@ function Xe(v) {
|
|
|
233
233
|
fullWidth: !0,
|
|
234
234
|
shrink: !0,
|
|
235
235
|
get children() {
|
|
236
|
-
var t =
|
|
237
|
-
|
|
238
|
-
var j =
|
|
239
|
-
return typeof j == "function" && ce(j,
|
|
236
|
+
var t = Fe(), a = t.firstChild, p = a.firstChild, y = p.nextSibling, k = y.nextSibling, u = k.firstChild;
|
|
237
|
+
a.addEventListener("blur", () => N(!1)), a.addEventListener("focus", () => N(!0)), a.$$mousedown = n;
|
|
238
|
+
var j = ye(e.ref, (r) => _ = r);
|
|
239
|
+
return typeof j == "function" && ce(j, a), a.$$keydown = b, ve(a, he({
|
|
240
240
|
get class() {
|
|
241
241
|
return w();
|
|
242
242
|
},
|
|
243
243
|
get tabindex() {
|
|
244
244
|
return e.disabled ? -1 : 0;
|
|
245
245
|
}
|
|
246
|
-
}, F), !1, !0), x(
|
|
246
|
+
}, F), !1, !0), x(a, c(P, {
|
|
247
247
|
get when() {
|
|
248
248
|
return e.withTicks;
|
|
249
249
|
},
|
|
250
250
|
get children() {
|
|
251
|
-
var r =
|
|
251
|
+
var r = Pe();
|
|
252
252
|
return x(r, c(ne, {
|
|
253
253
|
get each() {
|
|
254
254
|
return s();
|
|
255
255
|
},
|
|
256
|
-
children: () =>
|
|
257
|
-
})), R(($) =>
|
|
256
|
+
children: () => Be()
|
|
257
|
+
})), R(($) => Me(r, "gap", `${e.step}`)), r;
|
|
258
258
|
}
|
|
259
|
-
}), p), x(
|
|
259
|
+
}), p), x(a, c(P, {
|
|
260
260
|
get when() {
|
|
261
261
|
return f().length > 0;
|
|
262
262
|
},
|
|
263
263
|
get children() {
|
|
264
|
-
var r =
|
|
264
|
+
var r = $e();
|
|
265
265
|
return x(r, c(ne, {
|
|
266
266
|
get each() {
|
|
267
267
|
return f();
|
|
268
268
|
},
|
|
269
269
|
children: ($) => (() => {
|
|
270
|
-
var A =
|
|
270
|
+
var A = Le();
|
|
271
271
|
return x(A, c(P, {
|
|
272
272
|
get when() {
|
|
273
273
|
return $.label != null;
|
|
274
274
|
},
|
|
275
275
|
get children() {
|
|
276
|
-
var T =
|
|
276
|
+
var T = Ee();
|
|
277
277
|
return x(T, () => $.label), T;
|
|
278
278
|
}
|
|
279
279
|
})), R((T) => K(A, d() ? {
|
|
@@ -289,15 +289,15 @@ function Xe(v) {
|
|
|
289
289
|
return W();
|
|
290
290
|
},
|
|
291
291
|
get children() {
|
|
292
|
-
var r =
|
|
292
|
+
var r = Re();
|
|
293
293
|
return x(r, () => Math.round(h())), r;
|
|
294
294
|
}
|
|
295
295
|
}), u), x(t, c(P, {
|
|
296
296
|
get when() {
|
|
297
|
-
return
|
|
297
|
+
return Ve(() => !!e.valueField)() && W();
|
|
298
298
|
},
|
|
299
299
|
get children() {
|
|
300
|
-
return c(
|
|
300
|
+
return c(Se, {
|
|
301
301
|
type: "number",
|
|
302
302
|
get value() {
|
|
303
303
|
return h();
|
|
@@ -311,7 +311,7 @@ function Xe(v) {
|
|
|
311
311
|
height: o()
|
|
312
312
|
} : {
|
|
313
313
|
width: o()
|
|
314
|
-
}, A =
|
|
314
|
+
}, A = ie("smwb-slider__thumb", {
|
|
315
315
|
"smwb-slider__thumb--active": S(),
|
|
316
316
|
"smwb-slider__thumb--discrete": W()
|
|
317
317
|
}), T = d() ? {
|
|
@@ -338,20 +338,20 @@ function Xe(v) {
|
|
|
338
338
|
}
|
|
339
339
|
});
|
|
340
340
|
}
|
|
341
|
-
function
|
|
341
|
+
function qe(v) {
|
|
342
342
|
const C = v.range === !0 || Array.isArray(v.value) || Array.isArray(v.defaultValue);
|
|
343
343
|
return c(P, {
|
|
344
344
|
when: C,
|
|
345
345
|
get fallback() {
|
|
346
|
-
return c(
|
|
346
|
+
return c(Ye, v);
|
|
347
347
|
},
|
|
348
348
|
get children() {
|
|
349
|
-
return c(
|
|
349
|
+
return c(Xe, v);
|
|
350
350
|
}
|
|
351
351
|
});
|
|
352
352
|
}
|
|
353
|
-
|
|
353
|
+
Ce(["mousedown", "keydown"]);
|
|
354
354
|
export {
|
|
355
|
-
|
|
355
|
+
qe as Slider
|
|
356
356
|
};
|
|
357
357
|
//# sourceMappingURL=slider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.js","sources":["../../../../../src/components/inputs/slider/slider.tsx"],"sourcesContent":["import { type JSX, For, Show, createSignal, mergeProps, onCleanup, onMount, splitProps } from \"solid-js\";\nimport cn from \"clsx\";\nimport { rescale, toPercent, coordX, coordY } from \"./utils\";\nimport { TextField, TextFieldWrapper } from \"../textField\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport type SliderValue = number | [number, number];\n\nexport interface SliderMark {\n value: number;\n label?: JSX.Element;\n}\n\nexport interface SliderProps extends Omit<JSX.HTMLAttributes<HTMLSpanElement>, \"onChange\"> {\n value?: SliderValue;\n onChange?: (event: Event, value: SliderValue, data: SliderProps) => void;\n min?: number;\n max?: number;\n step?: number;\n name?: string;\n defaultValue?: SliderValue;\n disabled?: boolean;\n variant?: \"continuous\" | \"discrete\";\n valueField?: boolean;\n withTicks?: boolean;\n label?: string;\n helperText?: JSX.Element;\n error?: boolean;\n size?: \"small\" | \"medium\" | \"large\";\n color?: \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n /** Enables a two-thumb range slider (value becomes `[number, number]`). */\n range?: boolean;\n orientation?: \"horizontal\" | \"vertical\";\n marks?: boolean | SliderMark[];\n \"aria-label\"?: string;\n getAriaValueText?: (value: number) => string;\n ref?: Ref<HTMLSpanElement>;\n}\n\nfunction resolveMarks(marks: boolean | SliderMark[] | undefined, min: number, max: number, step?: number): SliderMark[] {\n if (!marks) return [];\n if (Array.isArray(marks)) return marks;\n const s = step && step > 0 ? step : (max - min) / 10;\n const result: SliderMark[] = [];\n for (let v = min; v <= max + 1e-9; v += s) {\n result.push({ value: Math.round(v * 1e6) / 1e6 });\n }\n return result;\n}\n\nfunction RangeSlider(props: SliderProps): JSX.Element {\n const merged = mergeProps(\n { min: 0, max: 100, disabled: false, size: \"medium\" as const, color: \"primary\" as const, orientation: \"horizontal\" as const },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"defaultValue\",\n \"value\",\n \"onChange\",\n \"min\",\n \"max\",\n \"name\",\n \"disabled\",\n \"class\",\n \"step\",\n \"label\",\n \"helperText\",\n \"error\",\n \"size\",\n \"color\",\n \"orientation\",\n \"marks\",\n \"getAriaValueText\",\n \"aria-label\",\n \"range\",\n \"variant\",\n \"valueField\",\n \"withTicks\",\n \"ref\",\n ]);\n\n const isVertical = (): boolean => local.orientation === \"vertical\";\n const normalize = (v: SliderValue | undefined): [number, number] => {\n const arr = Array.isArray(v) ? v : [local.min, local.max];\n const lo = Math.min(arr[0] ?? local.min, arr[1] ?? local.max);\n const hi = Math.max(arr[0] ?? local.min, arr[1] ?? local.max);\n return [lo, hi];\n };\n\n const isControlled = local.value !== undefined;\n const [valueState, setValueState] = createSignal<[number, number]>(normalize(local.defaultValue));\n const value = (): [number, number] => (isControlled ? normalize(local.value) : valueState());\n\n let containerEl: HTMLSpanElement | undefined;\n let activeThumb: 0 | 1 = 0;\n let isPressed = false;\n\n const markList = (): SliderMark[] => resolveMarks(local.marks, local.min, local.max, local.step);\n\n const positionToValue = (event: MouseEvent | TouchEvent): number => {\n const rect = containerEl?.getBoundingClientRect();\n if (!rect) return local.min;\n if (isVertical()) {\n const y = coordY(event) - rect.top;\n return rescale(rect.height - y, [0, rect.height], [local.min, local.max], { step: local.step });\n }\n const x = coordX(event) - rect.left;\n return rescale(x, [0, rect.width], [local.min, local.max], { step: local.step });\n };\n\n const commit = (next: [number, number], event: Event): void => {\n const lo = Math.min(next[0], next[1]);\n const hi = Math.max(next[0], next[1]);\n const clamped: [number, number] = [Math.max(local.min, lo), Math.min(local.max, hi)];\n if (!isControlled) setValueState(clamped);\n local.onChange?.(event, clamped, props);\n };\n\n const moveThumb = (raw: number, event: Event): void => {\n const current = value();\n const next: [number, number] = [current[0], current[1]];\n next[activeThumb] = Math.max(local.min, Math.min(local.max, raw));\n commit(next, event);\n };\n\n const pickThumb = (raw: number): void => {\n const current = value();\n activeThumb = Math.abs(raw - current[0]) <= Math.abs(raw - current[1]) ? 0 : 1;\n };\n\n const onMouseMove = (event: MouseEvent | TouchEvent): void => {\n if (!isPressed) return;\n event.preventDefault();\n moveThumb(positionToValue(event), event);\n };\n const onMouseEnd = (): void => {\n isPressed = false;\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseEnd);\n document.removeEventListener(\"touchmove\", onMouseMove);\n document.removeEventListener(\"touchend\", onMouseEnd);\n };\n const onMouseDown: JSX.EventHandler<HTMLSpanElement, MouseEvent> = (event) => {\n if (local.disabled || event.button !== 0) return;\n const raw = positionToValue(event);\n pickThumb(raw);\n isPressed = true;\n moveThumb(raw, event);\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseEnd);\n };\n const onTouchStartNative = (event: TouchEvent): void => {\n if (local.disabled) return;\n const raw = positionToValue(event);\n pickThumb(raw);\n isPressed = true;\n moveThumb(raw, event);\n document.addEventListener(\"touchmove\", onMouseMove);\n document.addEventListener(\"touchend\", onMouseEnd);\n };\n\n onMount(() => {\n if (!containerEl) return;\n containerEl.addEventListener(\"touchstart\", onTouchStartNative);\n onCleanup(() => containerEl?.removeEventListener(\"touchstart\", onTouchStartNative));\n });\n onCleanup(onMouseEnd);\n\n const onThumbKeyDown = (idx: 0 | 1): JSX.EventHandler<HTMLInputElement, KeyboardEvent> => (event) => {\n if (local.disabled) return;\n const delta = local.step && local.step > 0 ? local.step : 1;\n const current = value();\n let next: number | null = null;\n if (event.key === \"ArrowLeft\" || event.key === \"ArrowDown\") next = current[idx] - delta;\n else if (event.key === \"ArrowRight\" || event.key === \"ArrowUp\") next = current[idx] + delta;\n else if (event.key === \"Home\") next = local.min;\n else if (event.key === \"End\") next = local.max;\n if (next !== null) {\n event.preventDefault();\n activeThumb = idx;\n moveThumb(next, event);\n }\n };\n\n const classes = (): string =>\n cn(\"smwb-slider\", \"smwb-slider--range\", local.class, {\n \"smwb-slider--disabled\": local.disabled,\n \"smwb-slider--vertical\": isVertical(),\n }, local.size !== \"medium\" && `smwb-slider_size-${local.size}`, local.color !== \"primary\" && `smwb-slider_color-${local.color}`);\n\n return (\n <TextFieldWrapper label={local.label} helperText={local.helperText} disabled={local.disabled} error={local.error} fullWidth shrink>\n <div class=\"smwb-slider__container\">\n <span ref={mergeRefs(local.ref, (el) => (containerEl = el as HTMLSpanElement))} onMouseDown={onMouseDown} class={classes()} {...rest}>\n <Show when={markList().length > 0}>\n <span class=\"smwb-slider__marks\" aria-hidden=\"true\">\n <For each={markList()}>\n {(m) => (\n <span class=\"smwb-slider__mark\" style={isVertical() ? { bottom: `${toPercent(m.value, local.min, local.max)}%` } : { left: `${toPercent(m.value, local.min, local.max)}%` }}>\n <Show when={m.label != null}>\n <span class=\"smwb-slider__mark-label\">{m.label}</span>\n </Show>\n </span>\n )}\n </For>\n </span>\n </Show>\n <span class=\"smwb-slider__rail\" />\n <span\n class=\"smwb-slider__track\"\n style={(() => {\n const p0 = toPercent(value()[0], local.min, local.max);\n const p1 = toPercent(value()[1], local.min, local.max);\n const startPct = `${Math.min(p0, p1)}%`;\n const spanPct = `${Math.abs(p1 - p0)}%`;\n return isVertical() ? { bottom: startPct, height: spanPct } : { left: startPct, width: spanPct };\n })()}\n />\n <For each={[0, 1] as const}>\n {(idx) => (\n <span\n class={cn(\"smwb-slider__thumb\", `smwb-slider__thumb--${idx === 0 ? \"start\" : \"end\"}`)}\n style={isVertical() ? { bottom: `${toPercent(value()[idx], local.min, local.max)}%` } : { left: `${toPercent(value()[idx], local.min, local.max)}%` }}\n >\n <input\n data-testid={`slider-input-${idx}`}\n class=\"smwb-slider__input\"\n type=\"range\"\n min={local.min}\n max={local.max}\n step={local.step}\n name={local.name ? `${local.name}[${idx}]` : undefined}\n value={value()[idx]}\n disabled={local.disabled}\n onChange={() => undefined}\n onKeyDown={onThumbKeyDown(idx)}\n tabindex={local.disabled ? -1 : 0}\n aria-label={local[\"aria-label\"] ? `${local[\"aria-label\"]} ${idx === 0 ? \"minimum\" : \"maximum\"}` : undefined}\n aria-orientation={local.orientation}\n aria-valuenow={value()[idx]}\n aria-valuemin={idx === 0 ? local.min : value()[0]}\n aria-valuemax={idx === 0 ? value()[1] : local.max}\n aria-valuetext={local.getAriaValueText ? local.getAriaValueText(value()[idx]) : undefined}\n aria-disabled={local.disabled || undefined}\n />\n </span>\n )}\n </For>\n </span>\n </div>\n </TextFieldWrapper>\n );\n}\n\nfunction SingleSlider(props: SliderProps): JSX.Element {\n const merged = mergeProps(\n {\n min: 0,\n max: 100,\n disabled: false,\n variant: \"continuous\" as const,\n size: \"medium\" as const,\n color: \"primary\" as const,\n orientation: \"horizontal\" as const,\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"defaultValue\",\n \"value\",\n \"onChange\",\n \"min\",\n \"max\",\n \"name\",\n \"disabled\",\n \"class\",\n \"step\",\n \"variant\",\n \"valueField\",\n \"withTicks\",\n \"label\",\n \"helperText\",\n \"error\",\n \"size\",\n \"color\",\n \"orientation\",\n \"marks\",\n \"range\",\n \"getAriaValueText\",\n \"aria-label\",\n \"ref\",\n ]);\n\n const singleDefault = typeof local.defaultValue === \"number\" ? local.defaultValue : undefined;\n const singleValue = (): number | undefined => (typeof local.value === \"number\" ? local.value : undefined);\n const isVertical = (): boolean => local.orientation === \"vertical\";\n const isControlled = typeof local.value === \"number\";\n const isDiscrete = (): boolean => local.variant === \"discrete\";\n\n const [valueState, setValueState] = createSignal<number>(singleDefault ?? local.min);\n const [isDragging, setIsDragging] = createSignal(false);\n const [isActive, setIsActive] = createSignal(false);\n const [isFocused, setIsFocused] = createSignal(false);\n\n let containerEl: HTMLSpanElement | undefined;\n let isPressed = false;\n const value = (): number => (isControlled ? (singleValue() as number) : valueState());\n\n const updateValue = (next: number, event: Event): void => {\n if (next < local.min || next > local.max) return;\n if (!isControlled) setValueState(next);\n local.onChange?.(event, next, props);\n };\n\n const offsetToValue = (absolute: number, containerSize: number): number =>\n rescale(absolute, [0, containerSize], [local.min, local.max], { step: local.step });\n\n const onMouseMove = (event: MouseEvent | TouchEvent): void => {\n if (!isPressed || !containerEl) return;\n const rect = containerEl.getBoundingClientRect();\n const clientX = coordX(event);\n const clientY = coordY(event);\n const absolute = isVertical() ? rect.height - (clientY - rect.top) : clientX - rect.left;\n const next = offsetToValue(absolute, isVertical() ? rect.height : rect.width);\n if (!isActive()) setIsActive(true);\n if (value() === next) return;\n if (!isDragging()) setIsDragging(true);\n updateValue(next, event);\n };\n const removeListeners = (): void => {\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseEnd);\n document.removeEventListener(\"touchmove\", onMouseMove);\n document.removeEventListener(\"touchend\", onMouseEnd);\n };\n const onMouseEnd = (): void => {\n isPressed = false;\n if (isDragging()) setIsDragging(false);\n if (isActive()) setIsActive(false);\n removeListeners();\n };\n const onMouseDown: JSX.EventHandler<HTMLSpanElement, MouseEvent> = (event) => {\n if (local.disabled || event.button !== 0 || !containerEl) return;\n isPressed = true;\n const rect = containerEl.getBoundingClientRect();\n const absolute = isVertical() ? rect.height - (event.clientY - rect.top) : event.clientX - rect.left;\n const next = offsetToValue(absolute, isVertical() ? rect.height : rect.width);\n if (!isActive()) setIsActive(true);\n updateValue(next, event);\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseEnd);\n };\n const onTouchStartNative = (event: TouchEvent): void => {\n if (local.disabled || !containerEl) return;\n isPressed = true;\n const rect = containerEl.getBoundingClientRect();\n const touch = event.changedTouches?.[0];\n if (!touch) return;\n const absolute = isVertical() ? rect.height - (touch.clientY - rect.top) : touch.clientX - rect.left;\n const next = offsetToValue(absolute, isVertical() ? rect.height : rect.width);\n if (!isActive()) setIsActive(true);\n updateValue(next, event);\n document.addEventListener(\"touchmove\", onMouseMove);\n document.addEventListener(\"touchend\", onMouseEnd);\n };\n\n onMount(() => {\n if (!containerEl) return;\n containerEl.addEventListener(\"touchstart\", onTouchStartNative);\n onCleanup(() => containerEl?.removeEventListener(\"touchstart\", onTouchStartNative));\n });\n onCleanup(removeListeners);\n\n const handleArrows: JSX.EventHandler<HTMLSpanElement, KeyboardEvent> = (event) => {\n if (!isFocused() || local.disabled) return;\n if (event.key === \"ArrowLeft\" || event.key === \"ArrowDown\") updateValue(value() - (local.step || 1), event);\n if (event.key === \"ArrowRight\" || event.key === \"ArrowUp\") updateValue(value() + (local.step || 1), event);\n };\n\n const classes = (): string =>\n cn(\"smwb-slider\", local.class, {\n \"smwb-slider--disabled\": local.disabled,\n \"smwb-slider--dragging\": isDragging(),\n \"smwb-slider--discrete\": isDiscrete(),\n \"smwb-slider--vertical\": isVertical(),\n }, local.size !== \"medium\" && `smwb-slider_size-${local.size}`, local.color !== \"primary\" && `smwb-slider_color-${local.color}`);\n\n const pct = (): string => `${toPercent(value(), local.min, local.max)}%`;\n const markList = (): SliderMark[] => resolveMarks(local.marks, local.min, local.max, local.step);\n const ticks = (): number[] => Array(Math.round(local.max / (local.step || 1)) + 1).fill(1) as number[];\n\n return (\n <TextFieldWrapper label={local.label} helperText={local.helperText} disabled={local.disabled} error={local.error} fullWidth shrink>\n <div class=\"smwb-slider__container\">\n <span\n onKeyDown={handleArrows}\n ref={mergeRefs(local.ref, (el) => (containerEl = el as HTMLSpanElement))}\n onMouseDown={onMouseDown}\n class={classes()}\n tabindex={local.disabled ? -1 : 0}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n {...rest}\n >\n <Show when={local.withTicks}>\n <span class=\"smwb-slider__ticks\" style={{ gap: `${local.step}` }}>\n <For each={ticks()}>{() => <span class=\"smwb-slider__tick\" />}</For>\n </span>\n </Show>\n <Show when={markList().length > 0}>\n <span class=\"smwb-slider__marks\" aria-hidden=\"true\">\n <For each={markList()}>\n {(m) => (\n <span class=\"smwb-slider__mark\" style={isVertical() ? { bottom: `${toPercent(m.value, local.min, local.max)}%` } : { left: `${toPercent(m.value, local.min, local.max)}%` }}>\n <Show when={m.label != null}>\n <span class=\"smwb-slider__mark-label\">{m.label}</span>\n </Show>\n </span>\n )}\n </For>\n </span>\n </Show>\n <span class=\"smwb-slider__rail\" />\n <span class=\"smwb-slider__track\" style={isVertical() ? { height: pct() } : { width: pct() }} />\n <span\n class={cn(\"smwb-slider__thumb\", { \"smwb-slider__thumb--active\": isActive(), \"smwb-slider__thumb--discrete\": isDiscrete() })}\n style={isVertical() ? { bottom: pct() } : { left: pct() }}\n >\n <Show when={isDiscrete()}>\n <span class=\"smwb-slider__thumb-tooltip\">{Math.round(value())}</span>\n </Show>\n <input\n data-testid=\"slider-input\"\n class=\"smwb-slider__input\"\n type=\"range\"\n min={local.min}\n max={local.max}\n name={local.name}\n value={value()}\n readonly\n aria-label={local[\"aria-label\"]}\n aria-orientation={local.orientation}\n aria-valuenow={value()}\n aria-valuemin={local.min}\n aria-valuemax={local.max}\n aria-valuetext={local.getAriaValueText ? local.getAriaValueText(value()) : undefined}\n aria-disabled={local.disabled || undefined}\n />\n </span>\n </span>\n <Show when={local.valueField && isDiscrete()}>\n <TextField\n type=\"number\"\n value={value()}\n onChange={(event) => updateValue(+event.currentTarget.value, event)}\n variant=\"filled\"\n />\n </Show>\n </div>\n </TextFieldWrapper>\n );\n}\n\nexport function Slider(props: SliderProps): JSX.Element {\n const isRangeMode = props.range === true || Array.isArray(props.value) || Array.isArray(props.defaultValue);\n return (\n <Show when={isRangeMode} fallback={<SingleSlider {...props} />}>\n <RangeSlider {...props} />\n </Show>\n );\n}\n\nexport default Slider;\n"],"names":["resolveMarks","marks","min","max","step","Array","isArray","s","result","v","push","value","Math","round","RangeSlider","props","merged","mergeProps","disabled","size","color","orientation","local","rest","splitProps","isVertical","normalize","arr","lo","hi","isControlled","undefined","valueState","setValueState","createSignal","defaultValue","containerEl","activeThumb","isPressed","markList","positionToValue","event","rect","getBoundingClientRect","y","coordY","top","rescale","height","x","coordX","left","width","commit","next","clamped","onChange","moveThumb","raw","current","pickThumb","abs","onMouseMove","preventDefault","onMouseEnd","document","removeEventListener","onMouseDown","button","addEventListener","onTouchStartNative","onMount","onCleanup","onThumbKeyDown","idx","delta","key","classes","cn","class","_$createComponent","TextFieldWrapper","label","helperText","error","fullWidth","shrink","children","_el$","_tmpl$2","_el$2","firstChild","_el$4","_el$5","nextSibling","$$mousedown","_ref$","mergeRefs","ref","el","_$use","_$spread","_$mergeProps","_$insert","Show","when","length","_el$3","_tmpl$","For","each","m","_el$6","_tmpl$4","_el$7","_tmpl$3","_$effect","_$p","_$style","bottom","toPercent","_el$8","_tmpl$5","_el$9","_$addEventListener","_$setAttribute","_p$","_v$","_v$2","_v$3","_v$4","_v$5","_v$6","name","_v$7","_v$8","_v$9","_v$0","_v$1","_v$10","_v$11","_v$12","getAriaValueText","_v$13","e","_$className","t","a","o","i","n","h","r","d","l","u","c","w","p0","p1","startPct","spanPct","SingleSlider","variant","singleDefault","singleValue","isDiscrete","isDragging","setIsDragging","isActive","setIsActive","isFocused","setIsFocused","updateValue","offsetToValue","absolute","containerSize","clientX","clientY","removeListeners","touch","changedTouches","handleArrows","pct","ticks","fill","_el$0","_tmpl$8","_el$1","_el$12","_el$13","_el$14","_el$16","_ref$2","$$keydown","tabindex","withTicks","_el$10","_tmpl$6","_tmpl$9","_$setStyleProperty","_el$11","_el$18","_el$19","_el$15","_tmpl$7","_$memo","valueField","TextField","type","currentTarget","_v$14","_v$15","_v$16","_v$17","_v$18","_v$19","_v$20","_v$21","_v$22","_v$23","_v$24","_v$25","_v$26","Slider","isRangeMode","range","fallback","_$delegateEvents"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slider.js","sources":["../../../../../src/components/inputs/slider/slider.tsx"],"sourcesContent":["import { type JSX, For, Show, createSignal, mergeProps, onCleanup, onMount, splitProps } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nimport cn from \"clsx\";\nimport { rescale, toPercent, coordX, coordY } from \"./utils\";\nimport { TextField, TextFieldWrapper } from \"../textField\";\nimport { mergeRefs, type Ref } from \"../../../primitives/mergeRefs\";\n\nexport type SliderValue = number | [number, number];\n\nexport interface SliderMark {\n value: number;\n label?: JSX.Element;\n}\n\nexport interface SliderProps extends Omit<JSX.HTMLAttributes<HTMLSpanElement>, \"onChange\"> {\n value?: SliderValue;\n onChange?: (event: Event, value: SliderValue, data: SliderProps) => void;\n min?: number;\n max?: number;\n step?: number;\n name?: string;\n defaultValue?: SliderValue;\n disabled?: boolean;\n variant?: \"continuous\" | \"discrete\";\n valueField?: boolean;\n withTicks?: boolean;\n label?: string;\n helperText?: JSX.Element;\n error?: boolean;\n size?: \"small\" | \"medium\" | \"large\";\n color?: \"primary\" | \"secondary\" | \"error\" | \"success\" | \"warning\" | \"info\";\n /** Enables a two-thumb range slider (value becomes `[number, number]`). */\n range?: boolean;\n orientation?: \"horizontal\" | \"vertical\";\n marks?: boolean | SliderMark[];\n \"aria-label\"?: string;\n getAriaValueText?: (value: number) => string;\n ref?: Ref<HTMLSpanElement>;\n}\n\nfunction resolveMarks(marks: boolean | SliderMark[] | undefined, min: number, max: number, step?: number): SliderMark[] {\n if (!marks) return [];\n if (Array.isArray(marks)) return marks;\n const s = step && step > 0 ? step : (max - min) / 10;\n const result: SliderMark[] = [];\n for (let v = min; v <= max + 1e-9; v += s) {\n result.push({ value: Math.round(v * 1e6) / 1e6 });\n }\n return result;\n}\n\nfunction RangeSlider(props: SliderProps): JSX.Element {\n const merged = mergeProps(\n { min: 0, max: 100, disabled: false, size: \"medium\" as const, color: \"primary\" as const, orientation: \"horizontal\" as const },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"defaultValue\",\n \"value\",\n \"onChange\",\n \"min\",\n \"max\",\n \"name\",\n \"disabled\",\n \"class\",\n \"step\",\n \"label\",\n \"helperText\",\n \"error\",\n \"size\",\n \"color\",\n \"orientation\",\n \"marks\",\n \"getAriaValueText\",\n \"aria-label\",\n \"range\",\n \"variant\",\n \"valueField\",\n \"withTicks\",\n \"ref\",\n ]);\n\n const isVertical = (): boolean => local.orientation === \"vertical\";\n const normalize = (v: SliderValue | undefined): [number, number] => {\n const arr = Array.isArray(v) ? v : [local.min, local.max];\n const lo = Math.min(arr[0] ?? local.min, arr[1] ?? local.max);\n const hi = Math.max(arr[0] ?? local.min, arr[1] ?? local.max);\n return [lo, hi];\n };\n\n const isControlled = local.value !== undefined;\n const [valueState, setValueState] = createSignal<[number, number]>(normalize(local.defaultValue));\n const value = (): [number, number] => (isControlled ? normalize(local.value) : valueState());\n\n let containerEl: HTMLSpanElement | undefined;\n let activeThumb: 0 | 1 = 0;\n let isPressed = false;\n\n const markList = (): SliderMark[] => resolveMarks(local.marks, local.min, local.max, local.step);\n\n const positionToValue = (event: MouseEvent | TouchEvent): number => {\n const rect = containerEl?.getBoundingClientRect();\n if (!rect) return local.min;\n if (isVertical()) {\n const y = coordY(event) - rect.top;\n return rescale(rect.height - y, [0, rect.height], [local.min, local.max], { step: local.step });\n }\n const x = coordX(event) - rect.left;\n return rescale(x, [0, rect.width], [local.min, local.max], { step: local.step });\n };\n\n const commit = (next: [number, number], event: Event): void => {\n const lo = Math.min(next[0], next[1]);\n const hi = Math.max(next[0], next[1]);\n const clamped: [number, number] = [Math.max(local.min, lo), Math.min(local.max, hi)];\n if (!isControlled) setValueState(clamped);\n local.onChange?.(event, clamped, props);\n };\n\n const moveThumb = (raw: number, event: Event): void => {\n const current = value();\n const next: [number, number] = [current[0], current[1]];\n next[activeThumb] = Math.max(local.min, Math.min(local.max, raw));\n commit(next, event);\n };\n\n const pickThumb = (raw: number): void => {\n const current = value();\n activeThumb = Math.abs(raw - current[0]) <= Math.abs(raw - current[1]) ? 0 : 1;\n };\n\n const onMouseMove = (event: MouseEvent | TouchEvent): void => {\n if (!isPressed) return;\n event.preventDefault();\n moveThumb(positionToValue(event), event);\n };\n const onMouseEnd = (): void => {\n isPressed = false;\n // Registered as a body-scope onCleanup, which Solid also runs when the SSR\n // root is disposed — guard the document access so it never runs server-side.\n if (isServer) return;\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseEnd);\n document.removeEventListener(\"touchmove\", onMouseMove);\n document.removeEventListener(\"touchend\", onMouseEnd);\n };\n const onMouseDown: JSX.EventHandler<HTMLSpanElement, MouseEvent> = (event) => {\n if (local.disabled || event.button !== 0) return;\n const raw = positionToValue(event);\n pickThumb(raw);\n isPressed = true;\n moveThumb(raw, event);\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseEnd);\n };\n const onTouchStartNative = (event: TouchEvent): void => {\n if (local.disabled) return;\n const raw = positionToValue(event);\n pickThumb(raw);\n isPressed = true;\n moveThumb(raw, event);\n document.addEventListener(\"touchmove\", onMouseMove);\n document.addEventListener(\"touchend\", onMouseEnd);\n };\n\n onMount(() => {\n if (!containerEl) return;\n containerEl.addEventListener(\"touchstart\", onTouchStartNative);\n onCleanup(() => containerEl?.removeEventListener(\"touchstart\", onTouchStartNative));\n });\n onCleanup(onMouseEnd);\n\n const onThumbKeyDown = (idx: 0 | 1): JSX.EventHandler<HTMLInputElement, KeyboardEvent> => (event) => {\n if (local.disabled) return;\n const delta = local.step && local.step > 0 ? local.step : 1;\n const current = value();\n let next: number | null = null;\n if (event.key === \"ArrowLeft\" || event.key === \"ArrowDown\") next = current[idx] - delta;\n else if (event.key === \"ArrowRight\" || event.key === \"ArrowUp\") next = current[idx] + delta;\n else if (event.key === \"Home\") next = local.min;\n else if (event.key === \"End\") next = local.max;\n if (next !== null) {\n event.preventDefault();\n activeThumb = idx;\n moveThumb(next, event);\n }\n };\n\n const classes = (): string =>\n cn(\"smwb-slider\", \"smwb-slider--range\", local.class, {\n \"smwb-slider--disabled\": local.disabled,\n \"smwb-slider--vertical\": isVertical(),\n }, local.size !== \"medium\" && `smwb-slider_size-${local.size}`, local.color !== \"primary\" && `smwb-slider_color-${local.color}`);\n\n return (\n <TextFieldWrapper label={local.label} helperText={local.helperText} disabled={local.disabled} error={local.error} fullWidth shrink>\n <div class=\"smwb-slider__container\">\n <span ref={mergeRefs(local.ref, (el) => (containerEl = el as HTMLSpanElement))} onMouseDown={onMouseDown} class={classes()} {...rest}>\n <Show when={markList().length > 0}>\n <span class=\"smwb-slider__marks\" aria-hidden=\"true\">\n <For each={markList()}>\n {(m) => (\n <span class=\"smwb-slider__mark\" style={isVertical() ? { bottom: `${toPercent(m.value, local.min, local.max)}%` } : { left: `${toPercent(m.value, local.min, local.max)}%` }}>\n <Show when={m.label != null}>\n <span class=\"smwb-slider__mark-label\">{m.label}</span>\n </Show>\n </span>\n )}\n </For>\n </span>\n </Show>\n <span class=\"smwb-slider__rail\" />\n <span\n class=\"smwb-slider__track\"\n style={(() => {\n const p0 = toPercent(value()[0], local.min, local.max);\n const p1 = toPercent(value()[1], local.min, local.max);\n const startPct = `${Math.min(p0, p1)}%`;\n const spanPct = `${Math.abs(p1 - p0)}%`;\n return isVertical() ? { bottom: startPct, height: spanPct } : { left: startPct, width: spanPct };\n })()}\n />\n <For each={[0, 1] as const}>\n {(idx) => (\n <span\n class={cn(\"smwb-slider__thumb\", `smwb-slider__thumb--${idx === 0 ? \"start\" : \"end\"}`)}\n style={isVertical() ? { bottom: `${toPercent(value()[idx], local.min, local.max)}%` } : { left: `${toPercent(value()[idx], local.min, local.max)}%` }}\n >\n <input\n data-testid={`slider-input-${idx}`}\n class=\"smwb-slider__input\"\n type=\"range\"\n min={local.min}\n max={local.max}\n step={local.step}\n name={local.name ? `${local.name}[${idx}]` : undefined}\n value={value()[idx]}\n disabled={local.disabled}\n onChange={() => undefined}\n onKeyDown={onThumbKeyDown(idx)}\n tabindex={local.disabled ? -1 : 0}\n aria-label={local[\"aria-label\"] ? `${local[\"aria-label\"]} ${idx === 0 ? \"minimum\" : \"maximum\"}` : undefined}\n aria-orientation={local.orientation}\n aria-valuenow={value()[idx]}\n aria-valuemin={idx === 0 ? local.min : value()[0]}\n aria-valuemax={idx === 0 ? value()[1] : local.max}\n aria-valuetext={local.getAriaValueText ? local.getAriaValueText(value()[idx]) : undefined}\n aria-disabled={local.disabled || undefined}\n />\n </span>\n )}\n </For>\n </span>\n </div>\n </TextFieldWrapper>\n );\n}\n\nfunction SingleSlider(props: SliderProps): JSX.Element {\n const merged = mergeProps(\n {\n min: 0,\n max: 100,\n disabled: false,\n variant: \"continuous\" as const,\n size: \"medium\" as const,\n color: \"primary\" as const,\n orientation: \"horizontal\" as const,\n },\n props\n );\n const [local, rest] = splitProps(merged, [\n \"defaultValue\",\n \"value\",\n \"onChange\",\n \"min\",\n \"max\",\n \"name\",\n \"disabled\",\n \"class\",\n \"step\",\n \"variant\",\n \"valueField\",\n \"withTicks\",\n \"label\",\n \"helperText\",\n \"error\",\n \"size\",\n \"color\",\n \"orientation\",\n \"marks\",\n \"range\",\n \"getAriaValueText\",\n \"aria-label\",\n \"ref\",\n ]);\n\n const singleDefault = typeof local.defaultValue === \"number\" ? local.defaultValue : undefined;\n const singleValue = (): number | undefined => (typeof local.value === \"number\" ? local.value : undefined);\n const isVertical = (): boolean => local.orientation === \"vertical\";\n const isControlled = typeof local.value === \"number\";\n const isDiscrete = (): boolean => local.variant === \"discrete\";\n\n const [valueState, setValueState] = createSignal<number>(singleDefault ?? local.min);\n const [isDragging, setIsDragging] = createSignal(false);\n const [isActive, setIsActive] = createSignal(false);\n const [isFocused, setIsFocused] = createSignal(false);\n\n let containerEl: HTMLSpanElement | undefined;\n let isPressed = false;\n const value = (): number => (isControlled ? (singleValue() as number) : valueState());\n\n const updateValue = (next: number, event: Event): void => {\n if (next < local.min || next > local.max) return;\n if (!isControlled) setValueState(next);\n local.onChange?.(event, next, props);\n };\n\n const offsetToValue = (absolute: number, containerSize: number): number =>\n rescale(absolute, [0, containerSize], [local.min, local.max], { step: local.step });\n\n const onMouseMove = (event: MouseEvent | TouchEvent): void => {\n if (!isPressed || !containerEl) return;\n const rect = containerEl.getBoundingClientRect();\n const clientX = coordX(event);\n const clientY = coordY(event);\n const absolute = isVertical() ? rect.height - (clientY - rect.top) : clientX - rect.left;\n const next = offsetToValue(absolute, isVertical() ? rect.height : rect.width);\n if (!isActive()) setIsActive(true);\n if (value() === next) return;\n if (!isDragging()) setIsDragging(true);\n updateValue(next, event);\n };\n const removeListeners = (): void => {\n // Registered as a body-scope onCleanup, which Solid also runs when the SSR\n // root is disposed — guard the document access so it never runs server-side.\n if (isServer) return;\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseEnd);\n document.removeEventListener(\"touchmove\", onMouseMove);\n document.removeEventListener(\"touchend\", onMouseEnd);\n };\n const onMouseEnd = (): void => {\n isPressed = false;\n if (isDragging()) setIsDragging(false);\n if (isActive()) setIsActive(false);\n removeListeners();\n };\n const onMouseDown: JSX.EventHandler<HTMLSpanElement, MouseEvent> = (event) => {\n if (local.disabled || event.button !== 0 || !containerEl) return;\n isPressed = true;\n const rect = containerEl.getBoundingClientRect();\n const absolute = isVertical() ? rect.height - (event.clientY - rect.top) : event.clientX - rect.left;\n const next = offsetToValue(absolute, isVertical() ? rect.height : rect.width);\n if (!isActive()) setIsActive(true);\n updateValue(next, event);\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseEnd);\n };\n const onTouchStartNative = (event: TouchEvent): void => {\n if (local.disabled || !containerEl) return;\n isPressed = true;\n const rect = containerEl.getBoundingClientRect();\n const touch = event.changedTouches?.[0];\n if (!touch) return;\n const absolute = isVertical() ? rect.height - (touch.clientY - rect.top) : touch.clientX - rect.left;\n const next = offsetToValue(absolute, isVertical() ? rect.height : rect.width);\n if (!isActive()) setIsActive(true);\n updateValue(next, event);\n document.addEventListener(\"touchmove\", onMouseMove);\n document.addEventListener(\"touchend\", onMouseEnd);\n };\n\n onMount(() => {\n if (!containerEl) return;\n containerEl.addEventListener(\"touchstart\", onTouchStartNative);\n onCleanup(() => containerEl?.removeEventListener(\"touchstart\", onTouchStartNative));\n });\n onCleanup(removeListeners);\n\n const handleArrows: JSX.EventHandler<HTMLSpanElement, KeyboardEvent> = (event) => {\n if (!isFocused() || local.disabled) return;\n if (event.key === \"ArrowLeft\" || event.key === \"ArrowDown\") updateValue(value() - (local.step || 1), event);\n if (event.key === \"ArrowRight\" || event.key === \"ArrowUp\") updateValue(value() + (local.step || 1), event);\n };\n\n const classes = (): string =>\n cn(\"smwb-slider\", local.class, {\n \"smwb-slider--disabled\": local.disabled,\n \"smwb-slider--dragging\": isDragging(),\n \"smwb-slider--discrete\": isDiscrete(),\n \"smwb-slider--vertical\": isVertical(),\n }, local.size !== \"medium\" && `smwb-slider_size-${local.size}`, local.color !== \"primary\" && `smwb-slider_color-${local.color}`);\n\n const pct = (): string => `${toPercent(value(), local.min, local.max)}%`;\n const markList = (): SliderMark[] => resolveMarks(local.marks, local.min, local.max, local.step);\n const ticks = (): number[] => Array(Math.round(local.max / (local.step || 1)) + 1).fill(1) as number[];\n\n return (\n <TextFieldWrapper label={local.label} helperText={local.helperText} disabled={local.disabled} error={local.error} fullWidth shrink>\n <div class=\"smwb-slider__container\">\n <span\n onKeyDown={handleArrows}\n ref={mergeRefs(local.ref, (el) => (containerEl = el as HTMLSpanElement))}\n onMouseDown={onMouseDown}\n class={classes()}\n tabindex={local.disabled ? -1 : 0}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n {...rest}\n >\n <Show when={local.withTicks}>\n <span class=\"smwb-slider__ticks\" style={{ gap: `${local.step}` }}>\n <For each={ticks()}>{() => <span class=\"smwb-slider__tick\" />}</For>\n </span>\n </Show>\n <Show when={markList().length > 0}>\n <span class=\"smwb-slider__marks\" aria-hidden=\"true\">\n <For each={markList()}>\n {(m) => (\n <span class=\"smwb-slider__mark\" style={isVertical() ? { bottom: `${toPercent(m.value, local.min, local.max)}%` } : { left: `${toPercent(m.value, local.min, local.max)}%` }}>\n <Show when={m.label != null}>\n <span class=\"smwb-slider__mark-label\">{m.label}</span>\n </Show>\n </span>\n )}\n </For>\n </span>\n </Show>\n <span class=\"smwb-slider__rail\" />\n <span class=\"smwb-slider__track\" style={isVertical() ? { height: pct() } : { width: pct() }} />\n <span\n class={cn(\"smwb-slider__thumb\", { \"smwb-slider__thumb--active\": isActive(), \"smwb-slider__thumb--discrete\": isDiscrete() })}\n style={isVertical() ? { bottom: pct() } : { left: pct() }}\n >\n <Show when={isDiscrete()}>\n <span class=\"smwb-slider__thumb-tooltip\">{Math.round(value())}</span>\n </Show>\n <input\n data-testid=\"slider-input\"\n class=\"smwb-slider__input\"\n type=\"range\"\n min={local.min}\n max={local.max}\n name={local.name}\n value={value()}\n readonly\n aria-label={local[\"aria-label\"]}\n aria-orientation={local.orientation}\n aria-valuenow={value()}\n aria-valuemin={local.min}\n aria-valuemax={local.max}\n aria-valuetext={local.getAriaValueText ? local.getAriaValueText(value()) : undefined}\n aria-disabled={local.disabled || undefined}\n />\n </span>\n </span>\n <Show when={local.valueField && isDiscrete()}>\n <TextField\n type=\"number\"\n value={value()}\n onChange={(event) => updateValue(+event.currentTarget.value, event)}\n variant=\"filled\"\n />\n </Show>\n </div>\n </TextFieldWrapper>\n );\n}\n\nexport function Slider(props: SliderProps): JSX.Element {\n const isRangeMode = props.range === true || Array.isArray(props.value) || Array.isArray(props.defaultValue);\n return (\n <Show when={isRangeMode} fallback={<SingleSlider {...props} />}>\n <RangeSlider {...props} />\n </Show>\n );\n}\n\nexport default Slider;\n"],"names":["resolveMarks","marks","min","max","step","Array","isArray","s","result","v","push","value","Math","round","RangeSlider","props","merged","mergeProps","disabled","size","color","orientation","local","rest","splitProps","isVertical","normalize","arr","lo","hi","isControlled","undefined","valueState","setValueState","createSignal","defaultValue","containerEl","activeThumb","isPressed","markList","positionToValue","event","rect","getBoundingClientRect","y","coordY","top","rescale","height","x","coordX","left","width","commit","next","clamped","onChange","moveThumb","raw","current","pickThumb","abs","onMouseMove","preventDefault","onMouseEnd","isServer","document","removeEventListener","onMouseDown","button","addEventListener","onTouchStartNative","onMount","onCleanup","onThumbKeyDown","idx","delta","key","classes","cn","class","_$createComponent","TextFieldWrapper","label","helperText","error","fullWidth","shrink","children","_el$","_tmpl$2","_el$2","firstChild","_el$4","_el$5","nextSibling","$$mousedown","_ref$","mergeRefs","ref","el","_$use","_$spread","_$mergeProps","_$insert","Show","when","length","_el$3","_tmpl$","For","each","m","_el$6","_tmpl$4","_el$7","_tmpl$3","_$effect","_$p","_$style","bottom","toPercent","_el$8","_tmpl$5","_el$9","_$addEventListener","_$setAttribute","_p$","_v$","_v$2","_v$3","_v$4","_v$5","_v$6","name","_v$7","_v$8","_v$9","_v$0","_v$1","_v$10","_v$11","_v$12","getAriaValueText","_v$13","e","_$className","t","a","o","i","n","h","r","d","l","u","c","w","p0","p1","startPct","spanPct","SingleSlider","variant","singleDefault","singleValue","isDiscrete","isDragging","setIsDragging","isActive","setIsActive","isFocused","setIsFocused","updateValue","offsetToValue","absolute","containerSize","clientX","clientY","removeListeners","touch","changedTouches","handleArrows","pct","ticks","fill","_el$0","_tmpl$8","_el$1","_el$12","_el$13","_el$14","_el$16","_ref$2","$$keydown","tabindex","withTicks","_el$10","_tmpl$6","_tmpl$9","_$setStyleProperty","_el$11","_el$18","_el$19","_el$15","_tmpl$7","_$memo","valueField","TextField","type","currentTarget","_v$14","_v$15","_v$16","_v$17","_v$18","_v$19","_v$20","_v$21","_v$22","_v$23","_v$24","_v$25","_v$26","Slider","isRangeMode","range","fallback","_$delegateEvents"],"mappings":"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"}
|