@sps-woodland/buttons 8.29.1 → 8.29.2
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/lib/index.js +213 -205
- package/lib/index.umd.cjs +12 -4
- package/lib/style.css +1 -1
- package/package.json +5 -5
package/lib/index.js
CHANGED
@@ -21,30 +21,30 @@ function Ye(e, t) {
|
|
21
21
|
if (e === t) return e;
|
22
22
|
let r = fe.get(e);
|
23
23
|
if (r)
|
24
|
-
return r.forEach((
|
24
|
+
return r.forEach((i) => i(t)), t;
|
25
25
|
let o = fe.get(t);
|
26
|
-
return o ? (o.forEach((
|
26
|
+
return o ? (o.forEach((i) => i(e)), e) : t;
|
27
27
|
}
|
28
28
|
function xe(...e) {
|
29
29
|
return (...t) => {
|
30
30
|
for (let r of e) typeof r == "function" && r(...t);
|
31
31
|
};
|
32
32
|
}
|
33
|
-
const
|
33
|
+
const K = (e) => {
|
34
34
|
var t;
|
35
35
|
return (t = e == null ? void 0 : e.ownerDocument) !== null && t !== void 0 ? t : document;
|
36
|
-
},
|
36
|
+
}, ae = (e) => e && "window" in e && e.window === e ? e : K(e).defaultView || window;
|
37
37
|
function Se(e) {
|
38
38
|
var t, r, o = "";
|
39
39
|
if (typeof e == "string" || typeof e == "number") o += e;
|
40
40
|
else if (typeof e == "object") if (Array.isArray(e)) {
|
41
|
-
var
|
42
|
-
for (t = 0; t <
|
41
|
+
var i = e.length;
|
42
|
+
for (t = 0; t < i; t++) e[t] && (r = Se(e[t])) && (o && (o += " "), o += r);
|
43
43
|
} else for (r in e) e[r] && (o && (o += " "), o += r);
|
44
44
|
return o;
|
45
45
|
}
|
46
46
|
function je() {
|
47
|
-
for (var e, t, r = 0, o = "",
|
47
|
+
for (var e, t, r = 0, o = "", i = arguments.length; r < i; r++) (e = arguments[r]) && (t = Se(e)) && (o && (o += " "), o += t);
|
48
48
|
return o;
|
49
49
|
}
|
50
50
|
function V(...e) {
|
@@ -53,12 +53,12 @@ function V(...e) {
|
|
53
53
|
};
|
54
54
|
for (let r = 1; r < e.length; r++) {
|
55
55
|
let o = e[r];
|
56
|
-
for (let
|
57
|
-
let
|
58
|
-
typeof
|
59
|
-
|
60
|
-
65 &&
|
61
|
-
90 ? t[
|
56
|
+
for (let i in o) {
|
57
|
+
let p = t[i], u = o[i];
|
58
|
+
typeof p == "function" && typeof u == "function" && // This is a lot faster than a regex.
|
59
|
+
i[0] === "o" && i[1] === "n" && i.charCodeAt(2) >= /* 'A' */
|
60
|
+
65 && i.charCodeAt(2) <= /* 'Z' */
|
61
|
+
90 ? t[i] = xe(p, u) : (i === "className" || i === "UNSAFE_className") && typeof p == "string" && typeof u == "string" ? t[i] = je(p, u) : i === "id" && p && u ? t.id = Ye(p, u) : t[i] = u !== void 0 ? u : p;
|
62
62
|
}
|
63
63
|
}
|
64
64
|
return t;
|
@@ -80,9 +80,9 @@ const Xe = /* @__PURE__ */ new Set([
|
|
80
80
|
"referrerPolicy"
|
81
81
|
]), Je = /^(data-.*)$/;
|
82
82
|
function Qe(e, t = {}) {
|
83
|
-
let { labelable: r, isLink: o, propNames:
|
84
|
-
for (const u in e) Object.prototype.hasOwnProperty.call(e, u) && (Xe.has(u) || r && ze.has(u) || o && qe.has(u) ||
|
85
|
-
return
|
83
|
+
let { labelable: r, isLink: o, propNames: i } = t, p = {};
|
84
|
+
for (const u in e) Object.prototype.hasOwnProperty.call(e, u) && (Xe.has(u) || r && ze.has(u) || o && qe.has(u) || i != null && i.has(u) || Je.test(u)) && (p[u] = e[u]);
|
85
|
+
return p;
|
86
86
|
}
|
87
87
|
function R(e) {
|
88
88
|
if (Ze()) e.focus({
|
@@ -130,46 +130,46 @@ function te(e) {
|
|
130
130
|
var t;
|
131
131
|
return typeof window > "u" || window.navigator == null ? !1 : ((t = window.navigator.userAgentData) === null || t === void 0 ? void 0 : t.brands.some((r) => e.test(r.brand))) || e.test(window.navigator.userAgent);
|
132
132
|
}
|
133
|
-
function
|
133
|
+
function pe(e) {
|
134
134
|
var t;
|
135
135
|
return typeof window < "u" && window.navigator != null ? e.test(((t = window.navigator.userAgentData) === null || t === void 0 ? void 0 : t.platform) || window.navigator.platform) : !1;
|
136
136
|
}
|
137
|
-
function
|
137
|
+
function I(e) {
|
138
138
|
let t = null;
|
139
139
|
return () => (t == null && (t = e()), t);
|
140
140
|
}
|
141
|
-
const Q =
|
142
|
-
return
|
143
|
-
}), nt =
|
144
|
-
return
|
145
|
-
}),
|
146
|
-
return
|
141
|
+
const Q = I(function() {
|
142
|
+
return pe(/^Mac/i);
|
143
|
+
}), nt = I(function() {
|
144
|
+
return pe(/^iPhone/i);
|
145
|
+
}), Oe = I(function() {
|
146
|
+
return pe(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.
|
147
147
|
Q() && navigator.maxTouchPoints > 1;
|
148
|
-
}),
|
149
|
-
return nt() ||
|
150
|
-
}), ot =
|
148
|
+
}), Ne = I(function() {
|
149
|
+
return nt() || Oe();
|
150
|
+
}), ot = I(function() {
|
151
151
|
return te(/AppleWebKit/i) && !rt();
|
152
|
-
}), rt =
|
152
|
+
}), rt = I(function() {
|
153
153
|
return te(/Chrome/i);
|
154
|
-
}),
|
154
|
+
}), De = I(function() {
|
155
155
|
return te(/Android/i);
|
156
|
-
}), st =
|
156
|
+
}), st = I(function() {
|
157
157
|
return te(/Firefox/i);
|
158
158
|
});
|
159
159
|
function G(e, t, r = !0) {
|
160
|
-
var o,
|
161
|
-
let { metaKey:
|
162
|
-
st() && (!((
|
163
|
-
let v = ot() && Q() && !
|
160
|
+
var o, i;
|
161
|
+
let { metaKey: p, ctrlKey: u, altKey: d, shiftKey: m } = t;
|
162
|
+
st() && (!((i = window.event) === null || i === void 0 || (o = i.type) === null || o === void 0) && o.startsWith("key")) && e.target === "_blank" && (Q() ? p = !0 : u = !0);
|
163
|
+
let v = ot() && Q() && !Oe() ? new KeyboardEvent("keydown", {
|
164
164
|
keyIdentifier: "Enter",
|
165
|
-
metaKey:
|
165
|
+
metaKey: p,
|
166
166
|
ctrlKey: u,
|
167
|
-
altKey:
|
167
|
+
altKey: d,
|
168
168
|
shiftKey: m
|
169
169
|
}) : new MouseEvent("click", {
|
170
|
-
metaKey:
|
170
|
+
metaKey: p,
|
171
171
|
ctrlKey: u,
|
172
|
-
altKey:
|
172
|
+
altKey: d,
|
173
173
|
shiftKey: m,
|
174
174
|
bubbles: !0,
|
175
175
|
cancelable: !0
|
@@ -185,44 +185,44 @@ function me() {
|
|
185
185
|
}
|
186
186
|
let t = (o) => {
|
187
187
|
if (!e(o) || !o.target) return;
|
188
|
-
let
|
189
|
-
|
188
|
+
let i = F.get(o.target);
|
189
|
+
i || (i = /* @__PURE__ */ new Set(), F.set(o.target, i), o.target.addEventListener("transitioncancel", r, {
|
190
190
|
once: !0
|
191
|
-
})),
|
191
|
+
})), i.add(o.propertyName);
|
192
192
|
}, r = (o) => {
|
193
193
|
if (!e(o) || !o.target) return;
|
194
|
-
let
|
195
|
-
if (
|
196
|
-
for (let
|
194
|
+
let i = F.get(o.target);
|
195
|
+
if (i && (i.delete(o.propertyName), i.size === 0 && (o.target.removeEventListener("transitioncancel", r), F.delete(o.target)), F.size === 0)) {
|
196
|
+
for (let p of le) p();
|
197
197
|
le.clear();
|
198
198
|
}
|
199
199
|
};
|
200
200
|
document.body.addEventListener("transitionrun", t), document.body.addEventListener("transitionend", r);
|
201
201
|
}
|
202
202
|
typeof document < "u" && (document.readyState !== "loading" ? me() : document.addEventListener("DOMContentLoaded", me));
|
203
|
-
function
|
203
|
+
function it(e) {
|
204
204
|
requestAnimationFrame(() => {
|
205
205
|
F.size === 0 ? e() : le.add(e);
|
206
206
|
});
|
207
207
|
}
|
208
|
-
function
|
209
|
-
let e = ee(/* @__PURE__ */ new Map()), t = z((
|
210
|
-
let m =
|
208
|
+
function at() {
|
209
|
+
let e = ee(/* @__PURE__ */ new Map()), t = z((i, p, u, d) => {
|
210
|
+
let m = d != null && d.once ? (...v) => {
|
211
211
|
e.current.delete(u), u(...v);
|
212
212
|
} : u;
|
213
213
|
e.current.set(u, {
|
214
|
-
type:
|
215
|
-
eventTarget:
|
214
|
+
type: p,
|
215
|
+
eventTarget: i,
|
216
216
|
fn: m,
|
217
|
-
options:
|
218
|
-
}),
|
219
|
-
}, []), r = z((
|
217
|
+
options: d
|
218
|
+
}), i.addEventListener(p, u, d);
|
219
|
+
}, []), r = z((i, p, u, d) => {
|
220
220
|
var m;
|
221
221
|
let v = ((m = e.current.get(u)) === null || m === void 0 ? void 0 : m.fn) || u;
|
222
|
-
|
222
|
+
i.removeEventListener(p, v, d), e.current.delete(u);
|
223
223
|
}, []), o = z(() => {
|
224
|
-
e.current.forEach((
|
225
|
-
r(
|
224
|
+
e.current.forEach((i, p) => {
|
225
|
+
r(i.eventTarget, i.type, p, i.options);
|
226
226
|
});
|
227
227
|
}, [
|
228
228
|
r
|
@@ -244,28 +244,28 @@ function lt(e, t) {
|
|
244
244
|
});
|
245
245
|
}
|
246
246
|
function _e(e) {
|
247
|
-
return e.mozInputSource === 0 && e.isTrusted ? !0 :
|
247
|
+
return e.mozInputSource === 0 && e.isTrusted ? !0 : De() && e.pointerType ? e.type === "click" && e.buttons === 1 : e.detail === 0 && !e.pointerType;
|
248
248
|
}
|
249
249
|
function ut(e) {
|
250
|
-
return !
|
250
|
+
return !De() && e.width === 0 && e.height === 0 || e.width === 1 && e.height === 1 && e.pressure === 0 && e.detail === 0 && e.pointerType === "mouse";
|
251
251
|
}
|
252
252
|
let U = "default", ue = "", q = /* @__PURE__ */ new WeakMap();
|
253
253
|
function be(e) {
|
254
|
-
if (
|
254
|
+
if (Ne()) {
|
255
255
|
if (U === "default") {
|
256
|
-
const t =
|
256
|
+
const t = K(e);
|
257
257
|
ue = t.documentElement.style.webkitUserSelect, t.documentElement.style.webkitUserSelect = "none";
|
258
258
|
}
|
259
259
|
U = "disabled";
|
260
260
|
} else (e instanceof HTMLElement || e instanceof SVGElement) && (q.set(e, e.style.userSelect), e.style.userSelect = "none");
|
261
261
|
}
|
262
262
|
function Y(e) {
|
263
|
-
if (
|
263
|
+
if (Ne()) {
|
264
264
|
if (U !== "disabled") return;
|
265
265
|
U = "restoring", setTimeout(() => {
|
266
|
-
|
266
|
+
it(() => {
|
267
267
|
if (U === "restoring") {
|
268
|
-
const t =
|
268
|
+
const t = K(e);
|
269
269
|
t.documentElement.style.webkitUserSelect === "none" && (t.documentElement.style.webkitUserSelect = ue || ""), ue = "", U = "default";
|
270
270
|
}
|
271
271
|
});
|
@@ -283,20 +283,20 @@ Ce.displayName = "PressResponderContext";
|
|
283
283
|
function ct(e, t) {
|
284
284
|
return t.get ? t.get.call(e) : t.value;
|
285
285
|
}
|
286
|
-
function
|
286
|
+
function Ae(e, t, r) {
|
287
287
|
if (!t.has(e)) throw new TypeError("attempted to " + r + " private field on non-instance");
|
288
288
|
return t.get(e);
|
289
289
|
}
|
290
|
-
function
|
291
|
-
var r =
|
290
|
+
function pt(e, t) {
|
291
|
+
var r = Ae(e, t, "get");
|
292
292
|
return ct(e, r);
|
293
293
|
}
|
294
|
-
function
|
294
|
+
function dt(e, t) {
|
295
295
|
if (t.has(e))
|
296
296
|
throw new TypeError("Cannot initialize the same private elements twice on an object");
|
297
297
|
}
|
298
298
|
function ft(e, t, r) {
|
299
|
-
|
299
|
+
dt(e, t), t.set(e, r);
|
300
300
|
}
|
301
301
|
function mt(e, t, r) {
|
302
302
|
if (t.set) t.set.call(e, r);
|
@@ -307,7 +307,7 @@ function mt(e, t, r) {
|
|
307
307
|
}
|
308
308
|
}
|
309
309
|
function ge(e, t, r) {
|
310
|
-
var o =
|
310
|
+
var o = Ae(e, t, "set");
|
311
311
|
return mt(e, o, r), r;
|
312
312
|
}
|
313
313
|
function _t(e) {
|
@@ -324,18 +324,18 @@ class X {
|
|
324
324
|
ge(this, j, !1);
|
325
325
|
}
|
326
326
|
get shouldStopPropagation() {
|
327
|
-
return
|
327
|
+
return pt(this, j);
|
328
328
|
}
|
329
|
-
constructor(t, r, o,
|
329
|
+
constructor(t, r, o, i) {
|
330
330
|
ft(this, j, {
|
331
331
|
writable: !0,
|
332
332
|
value: void 0
|
333
333
|
}), ge(this, j, !0);
|
334
|
-
var
|
335
|
-
let u = (
|
336
|
-
const
|
334
|
+
var p;
|
335
|
+
let u = (p = i == null ? void 0 : i.target) !== null && p !== void 0 ? p : o.currentTarget;
|
336
|
+
const d = u == null ? void 0 : u.getBoundingClientRect();
|
337
337
|
let m, v = 0, b, E = null;
|
338
|
-
o.clientX != null && o.clientY != null && (b = o.clientX, E = o.clientY),
|
338
|
+
o.clientX != null && o.clientY != null && (b = o.clientX, E = o.clientY), d && (b != null && E != null ? (m = b - d.left, v = E - d.top) : (m = d.width / 2, v = d.height / 2)), this.type = t, this.pointerType = r, this.target = o.currentTarget, this.shiftKey = o.shiftKey, this.metaKey = o.metaKey, this.ctrlKey = o.ctrlKey, this.altKey = o.altKey, this.x = m, this.y = v;
|
339
339
|
}
|
340
340
|
}
|
341
341
|
const ve = Symbol("linkClicked");
|
@@ -344,10 +344,10 @@ function bt(e) {
|
|
344
344
|
onPress: t,
|
345
345
|
onPressChange: r,
|
346
346
|
onPressStart: o,
|
347
|
-
onPressEnd:
|
348
|
-
onPressUp:
|
347
|
+
onPressEnd: i,
|
348
|
+
onPressUp: p,
|
349
349
|
isDisabled: u,
|
350
|
-
isPressed:
|
350
|
+
isPressed: d,
|
351
351
|
preventFocusOnPress: m,
|
352
352
|
shouldCancelOnPointerExit: v,
|
353
353
|
allowTextSelectionOnPress: b,
|
@@ -364,7 +364,7 @@ function bt(e) {
|
|
364
364
|
target: null,
|
365
365
|
isOverTarget: !1,
|
366
366
|
pointerType: null
|
367
|
-
}), { addGlobalListener: T, removeAllGlobalListeners: S } =
|
367
|
+
}), { addGlobalListener: T, removeAllGlobalListeners: S } = at(), B = H((n, f) => {
|
368
368
|
let P = w.current;
|
369
369
|
if (u || P.didFirePressStart) return !1;
|
370
370
|
let l = !0;
|
@@ -378,29 +378,29 @@ function bt(e) {
|
|
378
378
|
if (!l.didFirePressStart) return !1;
|
379
379
|
l.ignoreClickAfterPress = !0, l.didFirePressStart = !1, l.isTriggeringEvent = !0;
|
380
380
|
let h = !0;
|
381
|
-
if (
|
381
|
+
if (i) {
|
382
382
|
let s = new X("pressend", f, n);
|
383
|
-
|
383
|
+
i(s), h = s.shouldStopPropagation;
|
384
384
|
}
|
385
385
|
if (r && r(!1), $(!1), t && P && !u) {
|
386
386
|
let s = new X("press", f, n);
|
387
387
|
t(s), h && (h = s.shouldStopPropagation);
|
388
388
|
}
|
389
389
|
return l.isTriggeringEvent = !1, h;
|
390
|
-
}),
|
390
|
+
}), N = H((n, f) => {
|
391
391
|
let P = w.current;
|
392
392
|
if (u) return !1;
|
393
|
-
if (
|
393
|
+
if (p) {
|
394
394
|
P.isTriggeringEvent = !0;
|
395
395
|
let l = new X("pressup", f, n);
|
396
|
-
return
|
396
|
+
return p(l), P.isTriggeringEvent = !1, l.shouldStopPropagation;
|
397
397
|
}
|
398
398
|
return !0;
|
399
|
-
}),
|
399
|
+
}), O = H((n) => {
|
400
400
|
let f = w.current;
|
401
401
|
f.isPressed && f.target && (f.isOverTarget && f.pointerType != null && k(C(f.target, n), f.pointerType, !1), f.isPressed = !1, f.isOverTarget = !1, f.activePointerId = null, f.pointerType = null, S(), b || Y(f.target));
|
402
|
-
}),
|
403
|
-
v &&
|
402
|
+
}), L = H((n) => {
|
403
|
+
v && O(n);
|
404
404
|
}), oe = Be(() => {
|
405
405
|
let n = w.current, f = {
|
406
406
|
onKeyDown(l) {
|
@@ -410,10 +410,10 @@ function bt(e) {
|
|
410
410
|
let s = !0;
|
411
411
|
if (!n.isPressed && !l.repeat) {
|
412
412
|
n.target = l.currentTarget, n.isPressed = !0, s = B(l, "keyboard");
|
413
|
-
let g = l.currentTarget,
|
414
|
-
re(
|
413
|
+
let g = l.currentTarget, a = (D) => {
|
414
|
+
re(D, g) && !D.repeat && g.contains(D.target) && n.target && N(C(n.target, D), "keyboard");
|
415
415
|
};
|
416
|
-
T(
|
416
|
+
T(K(l.currentTarget), "keyup", xe(a, P), !0);
|
417
417
|
}
|
418
418
|
s && l.stopPropagation(), l.metaKey && Q() && ((h = n.metaKeyEvents) === null || h === void 0 || h.set(l.key, l.nativeEvent));
|
419
419
|
} else l.key === "Meta" && (n.metaKeyEvents = /* @__PURE__ */ new Map());
|
@@ -423,8 +423,8 @@ function bt(e) {
|
|
423
423
|
let h = !0;
|
424
424
|
if (u && l.preventDefault(), !n.ignoreClickAfterPress && !n.ignoreEmulatedMouseEvents && !n.isPressed && (n.pointerType === "virtual" || _e(l.nativeEvent))) {
|
425
425
|
!u && !m && R(l.currentTarget);
|
426
|
-
let s = B(l, "virtual"), g =
|
427
|
-
h = s && g &&
|
426
|
+
let s = B(l, "virtual"), g = N(l, "virtual"), a = k(l, "virtual");
|
427
|
+
h = s && g && a;
|
428
428
|
}
|
429
429
|
n.ignoreEmulatedMouseEvents = !1, n.ignoreClickAfterPress = !1, h && l.stopPropagation();
|
430
430
|
}
|
@@ -434,43 +434,43 @@ function bt(e) {
|
|
434
434
|
if (n.isPressed && n.target && re(l, n.target)) {
|
435
435
|
var s;
|
436
436
|
ye(l.target, l.key) && l.preventDefault();
|
437
|
-
let
|
438
|
-
k(C(n.target, l), "keyboard", n.target.contains(
|
437
|
+
let a = l.target;
|
438
|
+
k(C(n.target, l), "keyboard", n.target.contains(a)), S(), l.key !== "Enter" && de(n.target) && n.target.contains(a) && !l[ve] && (l[ve] = !0, G(n.target, l, !1)), n.isPressed = !1, (s = n.metaKeyEvents) === null || s === void 0 || s.delete(l.key);
|
439
439
|
} else if (l.key === "Meta" && (!((h = n.metaKeyEvents) === null || h === void 0) && h.size)) {
|
440
440
|
var g;
|
441
|
-
let
|
441
|
+
let a = n.metaKeyEvents;
|
442
442
|
n.metaKeyEvents = void 0;
|
443
|
-
for (let
|
443
|
+
for (let D of a.values()) (g = n.target) === null || g === void 0 || g.dispatchEvent(new KeyboardEvent("keyup", D));
|
444
444
|
}
|
445
445
|
};
|
446
446
|
if (typeof PointerEvent < "u") {
|
447
|
-
f.onPointerDown = (
|
448
|
-
if (
|
449
|
-
if (ut(
|
447
|
+
f.onPointerDown = (a) => {
|
448
|
+
if (a.button !== 0 || !a.currentTarget.contains(a.target)) return;
|
449
|
+
if (ut(a.nativeEvent)) {
|
450
450
|
n.pointerType = "virtual";
|
451
451
|
return;
|
452
452
|
}
|
453
|
-
se(
|
454
|
-
let
|
455
|
-
n.isPressed || (n.isPressed = !0, n.isOverTarget = !0, n.activePointerId =
|
456
|
-
}, f.onMouseDown = (
|
457
|
-
|
458
|
-
}, f.onPointerUp = (
|
459
|
-
!
|
453
|
+
se(a.currentTarget) && a.preventDefault(), n.pointerType = a.pointerType;
|
454
|
+
let D = !0;
|
455
|
+
n.isPressed || (n.isPressed = !0, n.isOverTarget = !0, n.activePointerId = a.pointerId, n.target = a.currentTarget, !u && !m && R(a.currentTarget), b || be(n.target), D = B(a, n.pointerType), T(K(a.currentTarget), "pointermove", l, !1), T(K(a.currentTarget), "pointerup", h, !1), T(K(a.currentTarget), "pointercancel", g, !1)), D && a.stopPropagation();
|
456
|
+
}, f.onMouseDown = (a) => {
|
457
|
+
a.currentTarget.contains(a.target) && a.button === 0 && (se(a.currentTarget) && a.preventDefault(), a.stopPropagation());
|
458
|
+
}, f.onPointerUp = (a) => {
|
459
|
+
!a.currentTarget.contains(a.target) || n.pointerType === "virtual" || a.button === 0 && M(a, a.currentTarget) && N(a, n.pointerType || a.pointerType);
|
460
460
|
};
|
461
|
-
let l = (
|
462
|
-
|
463
|
-
}, h = (
|
464
|
-
|
461
|
+
let l = (a) => {
|
462
|
+
a.pointerId === n.activePointerId && (n.target && M(a, n.target) ? !n.isOverTarget && n.pointerType != null && (n.isOverTarget = !0, B(C(n.target, a), n.pointerType)) : n.target && n.isOverTarget && n.pointerType != null && (n.isOverTarget = !1, k(C(n.target, a), n.pointerType, !1), L(a)));
|
463
|
+
}, h = (a) => {
|
464
|
+
a.pointerId === n.activePointerId && n.isPressed && a.button === 0 && n.target && (M(a, n.target) && n.pointerType != null ? k(C(n.target, a), n.pointerType) : n.isOverTarget && n.pointerType != null && k(C(n.target, a), n.pointerType, !1), n.isPressed = !1, n.isOverTarget = !1, n.activePointerId = null, n.pointerType = null, S(), b || Y(n.target), "ontouchend" in n.target && a.pointerType !== "mouse" && T(n.target, "touchend", s, {
|
465
465
|
once: !0
|
466
466
|
}));
|
467
|
-
}, s = (
|
468
|
-
|
469
|
-
}, g = (
|
470
|
-
|
467
|
+
}, s = (a) => {
|
468
|
+
Ke(a.target) && a.preventDefault();
|
469
|
+
}, g = (a) => {
|
470
|
+
O(a);
|
471
471
|
};
|
472
|
-
f.onDragStart = (
|
473
|
-
|
472
|
+
f.onDragStart = (a) => {
|
473
|
+
a.currentTarget.contains(a.target) && O(a);
|
474
474
|
};
|
475
475
|
} else {
|
476
476
|
f.onMouseDown = (s) => {
|
@@ -479,7 +479,7 @@ function bt(e) {
|
|
479
479
|
s.stopPropagation();
|
480
480
|
return;
|
481
481
|
}
|
482
|
-
n.isPressed = !0, n.isOverTarget = !0, n.target = s.currentTarget, n.pointerType = _e(s.nativeEvent) ? "virtual" : "mouse", !u && !m && R(s.currentTarget), B(s, n.pointerType) && s.stopPropagation(), T(
|
482
|
+
n.isPressed = !0, n.isOverTarget = !0, n.target = s.currentTarget, n.pointerType = _e(s.nativeEvent) ? "virtual" : "mouse", !u && !m && R(s.currentTarget), B(s, n.pointerType) && s.stopPropagation(), T(K(s.currentTarget), "mouseup", l, !1);
|
483
483
|
}, f.onMouseEnter = (s) => {
|
484
484
|
if (!s.currentTarget.contains(s.target)) return;
|
485
485
|
let g = !0;
|
@@ -487,9 +487,9 @@ function bt(e) {
|
|
487
487
|
}, f.onMouseLeave = (s) => {
|
488
488
|
if (!s.currentTarget.contains(s.target)) return;
|
489
489
|
let g = !0;
|
490
|
-
n.isPressed && !n.ignoreEmulatedMouseEvents && n.pointerType != null && (n.isOverTarget = !1, g = k(s, n.pointerType, !1),
|
490
|
+
n.isPressed && !n.ignoreEmulatedMouseEvents && n.pointerType != null && (n.isOverTarget = !1, g = k(s, n.pointerType, !1), L(s)), g && s.stopPropagation();
|
491
491
|
}, f.onMouseUp = (s) => {
|
492
|
-
s.currentTarget.contains(s.target) && !n.ignoreEmulatedMouseEvents && s.button === 0 &&
|
492
|
+
s.currentTarget.contains(s.target) && !n.ignoreEmulatedMouseEvents && s.button === 0 && N(s, n.pointerType || "mouse");
|
493
493
|
};
|
494
494
|
let l = (s) => {
|
495
495
|
if (s.button === 0) {
|
@@ -504,28 +504,28 @@ function bt(e) {
|
|
504
504
|
if (!s.currentTarget.contains(s.target)) return;
|
505
505
|
let g = gt(s.nativeEvent);
|
506
506
|
if (!g) return;
|
507
|
-
n.activePointerId = g.identifier, n.ignoreEmulatedMouseEvents = !0, n.isOverTarget = !0, n.isPressed = !0, n.target = s.currentTarget, n.pointerType = "touch", !u && !m && R(s.currentTarget), b || be(n.target), B(
|
507
|
+
n.activePointerId = g.identifier, n.ignoreEmulatedMouseEvents = !0, n.isOverTarget = !0, n.isPressed = !0, n.target = s.currentTarget, n.pointerType = "touch", !u && !m && R(s.currentTarget), b || be(n.target), B(A(n.target, s), n.pointerType) && s.stopPropagation(), T(ae(s.currentTarget), "scroll", h, !0);
|
508
508
|
}, f.onTouchMove = (s) => {
|
509
509
|
if (!s.currentTarget.contains(s.target)) return;
|
510
510
|
if (!n.isPressed) {
|
511
511
|
s.stopPropagation();
|
512
512
|
return;
|
513
513
|
}
|
514
|
-
let g = he(s.nativeEvent, n.activePointerId),
|
515
|
-
g && M(g, s.currentTarget) ? !n.isOverTarget && n.pointerType != null && (n.isOverTarget = !0,
|
514
|
+
let g = he(s.nativeEvent, n.activePointerId), a = !0;
|
515
|
+
g && M(g, s.currentTarget) ? !n.isOverTarget && n.pointerType != null && (n.isOverTarget = !0, a = B(A(n.target, s), n.pointerType)) : n.isOverTarget && n.pointerType != null && (n.isOverTarget = !1, a = k(A(n.target, s), n.pointerType, !1), L(A(n.target, s))), a && s.stopPropagation();
|
516
516
|
}, f.onTouchEnd = (s) => {
|
517
517
|
if (!s.currentTarget.contains(s.target)) return;
|
518
518
|
if (!n.isPressed) {
|
519
519
|
s.stopPropagation();
|
520
520
|
return;
|
521
521
|
}
|
522
|
-
let g = he(s.nativeEvent, n.activePointerId),
|
523
|
-
g && M(g, s.currentTarget) && n.pointerType != null ? (
|
522
|
+
let g = he(s.nativeEvent, n.activePointerId), a = !0;
|
523
|
+
g && M(g, s.currentTarget) && n.pointerType != null ? (N(A(n.target, s), n.pointerType), a = k(A(n.target, s), n.pointerType)) : n.isOverTarget && n.pointerType != null && (a = k(A(n.target, s), n.pointerType, !1)), a && s.stopPropagation(), n.isPressed = !1, n.activePointerId = null, n.isOverTarget = !1, n.ignoreEmulatedMouseEvents = !0, n.target && !b && Y(n.target), S();
|
524
524
|
}, f.onTouchCancel = (s) => {
|
525
|
-
s.currentTarget.contains(s.target) && (s.stopPropagation(), n.isPressed &&
|
525
|
+
s.currentTarget.contains(s.target) && (s.stopPropagation(), n.isPressed && O(A(n.target, s)));
|
526
526
|
};
|
527
527
|
let h = (s) => {
|
528
|
-
n.isPressed && s.target.contains(n.target) &&
|
528
|
+
n.isPressed && s.target.contains(n.target) && O({
|
529
529
|
currentTarget: n.target,
|
530
530
|
shiftKey: !1,
|
531
531
|
ctrlKey: !1,
|
@@ -534,7 +534,7 @@ function bt(e) {
|
|
534
534
|
});
|
535
535
|
};
|
536
536
|
f.onDragStart = (s) => {
|
537
|
-
s.currentTarget.contains(s.target) &&
|
537
|
+
s.currentTarget.contains(s.target) && O(s);
|
538
538
|
};
|
539
539
|
}
|
540
540
|
return f;
|
@@ -544,11 +544,11 @@ function bt(e) {
|
|
544
544
|
m,
|
545
545
|
S,
|
546
546
|
b,
|
547
|
-
|
548
|
-
|
547
|
+
O,
|
548
|
+
L,
|
549
549
|
k,
|
550
550
|
B,
|
551
|
-
|
551
|
+
N
|
552
552
|
]);
|
553
553
|
return J(() => () => {
|
554
554
|
var n;
|
@@ -556,17 +556,17 @@ function bt(e) {
|
|
556
556
|
}, [
|
557
557
|
b
|
558
558
|
]), {
|
559
|
-
isPressed:
|
559
|
+
isPressed: d || _,
|
560
560
|
pressProps: V(x, oe)
|
561
561
|
};
|
562
562
|
}
|
563
|
-
function
|
563
|
+
function de(e) {
|
564
564
|
return e.tagName === "A" && e.hasAttribute("href");
|
565
565
|
}
|
566
566
|
function re(e, t) {
|
567
|
-
const { key: r, code: o } = e,
|
568
|
-
return (r === "Enter" || r === " " || r === "Spacebar" || o === "Space") && !(
|
569
|
-
!((
|
567
|
+
const { key: r, code: o } = e, i = t, p = i.getAttribute("role");
|
568
|
+
return (r === "Enter" || r === " " || r === "Spacebar" || o === "Space") && !(i instanceof ae(i).HTMLInputElement && !Ie(i, r) || i instanceof ae(i).HTMLTextAreaElement || i.isContentEditable) && // Links should only trigger with Enter key
|
569
|
+
!((p === "link" || !p && de(i)) && r !== "Enter");
|
570
570
|
}
|
571
571
|
function gt(e) {
|
572
572
|
const { targetTouches: t } = e;
|
@@ -575,12 +575,12 @@ function gt(e) {
|
|
575
575
|
function he(e, t) {
|
576
576
|
const r = e.changedTouches;
|
577
577
|
for (let o = 0; o < r.length; o++) {
|
578
|
-
const
|
579
|
-
if (
|
578
|
+
const i = r[o];
|
579
|
+
if (i.identifier === t) return i;
|
580
580
|
}
|
581
581
|
return null;
|
582
582
|
}
|
583
|
-
function
|
583
|
+
function A(e, t) {
|
584
584
|
let r = 0, o = 0;
|
585
585
|
return t.targetTouches && t.targetTouches.length === 1 && (r = t.targetTouches[0].clientX, o = t.targetTouches[0].clientY), {
|
586
586
|
currentTarget: e,
|
@@ -623,11 +623,11 @@ function M(e, t) {
|
|
623
623
|
function se(e) {
|
624
624
|
return !(e instanceof HTMLElement) || !e.hasAttribute("draggable");
|
625
625
|
}
|
626
|
-
function
|
627
|
-
return e instanceof HTMLInputElement ? !1 : e instanceof HTMLButtonElement ? e.type !== "submit" && e.type !== "reset" : !
|
626
|
+
function Ke(e) {
|
627
|
+
return e instanceof HTMLInputElement ? !1 : e instanceof HTMLButtonElement ? e.type !== "submit" && e.type !== "reset" : !de(e);
|
628
628
|
}
|
629
629
|
function ye(e, t) {
|
630
|
-
return e instanceof HTMLInputElement ? !
|
630
|
+
return e instanceof HTMLInputElement ? !Ie(e, t) : Ke(e);
|
631
631
|
}
|
632
632
|
const yt = /* @__PURE__ */ new Set([
|
633
633
|
"checkbox",
|
@@ -640,10 +640,10 @@ const yt = /* @__PURE__ */ new Set([
|
|
640
640
|
"submit",
|
641
641
|
"reset"
|
642
642
|
]);
|
643
|
-
function
|
643
|
+
function Ie(e, t) {
|
644
644
|
return e.type === "checkbox" || e.type === "radio" ? t === " " : yt.has(e.type);
|
645
645
|
}
|
646
|
-
let Z = !1,
|
646
|
+
let Z = !1, ie = 0;
|
647
647
|
function ce() {
|
648
648
|
Z = !0, setTimeout(() => {
|
649
649
|
Z = !1;
|
@@ -654,12 +654,12 @@ function ke(e) {
|
|
654
654
|
}
|
655
655
|
function kt() {
|
656
656
|
if (!(typeof document > "u"))
|
657
|
-
return typeof PointerEvent < "u" ? document.addEventListener("pointerup", ke) : document.addEventListener("touchend", ce),
|
658
|
-
|
657
|
+
return typeof PointerEvent < "u" ? document.addEventListener("pointerup", ke) : document.addEventListener("touchend", ce), ie++, () => {
|
658
|
+
ie--, !(ie > 0) && (typeof PointerEvent < "u" ? document.removeEventListener("pointerup", ke) : document.removeEventListener("touchend", ce));
|
659
659
|
};
|
660
660
|
}
|
661
661
|
function wt(e) {
|
662
|
-
let { onHoverStart: t, onHoverChange: r, onHoverEnd: o, isDisabled:
|
662
|
+
let { onHoverStart: t, onHoverChange: r, onHoverEnd: o, isDisabled: i } = e, [p, u] = $e(!1), d = ee({
|
663
663
|
isHovered: !1,
|
664
664
|
ignoreEmulatedMouseEvents: !1,
|
665
665
|
pointerType: "",
|
@@ -668,17 +668,17 @@ function wt(e) {
|
|
668
668
|
J(kt, []);
|
669
669
|
let { hoverProps: m, triggerHoverEnd: v } = Be(() => {
|
670
670
|
let b = (_, $) => {
|
671
|
-
if (
|
672
|
-
|
671
|
+
if (d.pointerType = $, i || $ === "touch" || d.isHovered || !_.currentTarget.contains(_.target)) return;
|
672
|
+
d.isHovered = !0;
|
673
673
|
let w = _.currentTarget;
|
674
|
-
|
674
|
+
d.target = w, t && t({
|
675
675
|
type: "hoverstart",
|
676
676
|
target: w,
|
677
677
|
pointerType: $
|
678
678
|
}), r && r(!0), u(!0);
|
679
679
|
}, E = (_, $) => {
|
680
|
-
if (
|
681
|
-
|
680
|
+
if (d.pointerType = "", d.target = null, $ === "touch" || !d.isHovered) return;
|
681
|
+
d.isHovered = !1;
|
682
682
|
let w = _.currentTarget;
|
683
683
|
o && o({
|
684
684
|
type: "hoverend",
|
@@ -689,13 +689,13 @@ function wt(e) {
|
|
689
689
|
return typeof PointerEvent < "u" ? (x.onPointerEnter = (_) => {
|
690
690
|
Z && _.pointerType === "mouse" || b(_, _.pointerType);
|
691
691
|
}, x.onPointerLeave = (_) => {
|
692
|
-
!
|
692
|
+
!i && _.currentTarget.contains(_.target) && E(_, _.pointerType);
|
693
693
|
}) : (x.onTouchStart = () => {
|
694
|
-
|
694
|
+
d.ignoreEmulatedMouseEvents = !0;
|
695
695
|
}, x.onMouseEnter = (_) => {
|
696
|
-
!
|
696
|
+
!d.ignoreEmulatedMouseEvents && !Z && b(_, "mouse"), d.ignoreEmulatedMouseEvents = !1;
|
697
697
|
}, x.onMouseLeave = (_) => {
|
698
|
-
!
|
698
|
+
!i && _.currentTarget.contains(_.target) && E(_, "mouse");
|
699
699
|
}), {
|
700
700
|
hoverProps: x,
|
701
701
|
triggerHoverEnd: E
|
@@ -704,28 +704,28 @@ function wt(e) {
|
|
704
704
|
t,
|
705
705
|
r,
|
706
706
|
o,
|
707
|
-
|
708
|
-
|
707
|
+
i,
|
708
|
+
d
|
709
709
|
]);
|
710
710
|
return J(() => {
|
711
|
-
|
712
|
-
currentTarget:
|
713
|
-
},
|
711
|
+
i && v({
|
712
|
+
currentTarget: d.target
|
713
|
+
}, d.pointerType);
|
714
714
|
}, [
|
715
|
-
|
715
|
+
i
|
716
716
|
]), {
|
717
717
|
hoverProps: m,
|
718
|
-
isHovered:
|
718
|
+
isHovered: p
|
719
719
|
};
|
720
720
|
}
|
721
721
|
function Tt(e, t) {
|
722
722
|
let {
|
723
723
|
elementType: r = "button",
|
724
724
|
isDisabled: o,
|
725
|
-
onPress:
|
726
|
-
onPressStart:
|
725
|
+
onPress: i,
|
726
|
+
onPressStart: p,
|
727
727
|
onPressEnd: u,
|
728
|
-
onPressUp:
|
728
|
+
onPressUp: d,
|
729
729
|
onPressChange: m,
|
730
730
|
preventFocusOnPress: v,
|
731
731
|
allowFocusWhenDisabled: b,
|
@@ -750,28 +750,28 @@ function Tt(e, t) {
|
|
750
750
|
rel: r === "a" ? $ : void 0
|
751
751
|
};
|
752
752
|
let { pressProps: S, isPressed: B } = bt({
|
753
|
-
onPressStart:
|
753
|
+
onPressStart: p,
|
754
754
|
onPressEnd: u,
|
755
755
|
onPressChange: m,
|
756
|
-
onPress:
|
757
|
-
onPressUp:
|
756
|
+
onPress: i,
|
757
|
+
onPressUp: d,
|
758
758
|
isDisabled: o,
|
759
759
|
preventFocusOnPress: v,
|
760
760
|
ref: t
|
761
761
|
}), { focusableProps: k } = Ge(e, t);
|
762
762
|
b && (k.tabIndex = o ? -1 : k.tabIndex);
|
763
|
-
let
|
763
|
+
let N = V(k, S, Qe(e, {
|
764
764
|
labelable: !0
|
765
765
|
}));
|
766
766
|
return {
|
767
767
|
isPressed: B,
|
768
|
-
buttonProps: V(T,
|
768
|
+
buttonProps: V(T, N, {
|
769
769
|
"aria-haspopup": e["aria-haspopup"],
|
770
770
|
"aria-expanded": e["aria-expanded"],
|
771
771
|
"aria-controls": e["aria-controls"],
|
772
772
|
"aria-pressed": e["aria-pressed"],
|
773
|
-
onClick: (
|
774
|
-
E && (E(
|
773
|
+
onClick: (O) => {
|
774
|
+
E && (E(O), console.warn("onClick is deprecated, please use onPress"));
|
775
775
|
}
|
776
776
|
})
|
777
777
|
};
|
@@ -788,8 +788,8 @@ function we(e, t) {
|
|
788
788
|
var r = Object.keys(e);
|
789
789
|
if (Object.getOwnPropertySymbols) {
|
790
790
|
var o = Object.getOwnPropertySymbols(e);
|
791
|
-
t && (o = o.filter(function(
|
792
|
-
return Object.getOwnPropertyDescriptor(e,
|
791
|
+
t && (o = o.filter(function(i) {
|
792
|
+
return Object.getOwnPropertyDescriptor(e, i).enumerable;
|
793
793
|
})), r.push.apply(r, o);
|
794
794
|
}
|
795
795
|
return r;
|
@@ -807,21 +807,21 @@ function Te(e) {
|
|
807
807
|
}
|
808
808
|
var $t = (e, t, r) => {
|
809
809
|
for (var o of Object.keys(e)) {
|
810
|
-
var
|
811
|
-
if (e[o] !== ((
|
810
|
+
var i;
|
811
|
+
if (e[o] !== ((i = t[o]) !== null && i !== void 0 ? i : r[o]))
|
812
812
|
return !1;
|
813
813
|
}
|
814
814
|
return !0;
|
815
815
|
}, ne = (e) => (t) => {
|
816
816
|
var r = e.defaultClassName, o = Te(Te({}, e.defaultVariants), t);
|
817
|
-
for (var
|
818
|
-
var
|
817
|
+
for (var i in o) {
|
818
|
+
var p, u = (p = o[i]) !== null && p !== void 0 ? p : e.defaultVariants[i];
|
819
819
|
if (u != null) {
|
820
|
-
var
|
821
|
-
typeof
|
820
|
+
var d = u;
|
821
|
+
typeof d == "boolean" && (d = d === !0 ? "true" : "false");
|
822
822
|
var m = (
|
823
823
|
// @ts-expect-error
|
824
|
-
e.variantClassNames[
|
824
|
+
e.variantClassNames[i][d]
|
825
825
|
);
|
826
826
|
m && (r += " " + m);
|
827
827
|
}
|
@@ -829,17 +829,17 @@ var $t = (e, t, r) => {
|
|
829
829
|
for (var [v, b] of e.compoundVariants)
|
830
830
|
$t(v, o, e.defaultVariants) && (r += " " + b);
|
831
831
|
return r;
|
832
|
-
}, Bt = ne({ defaultClassName: "pkg_sps-
|
833
|
-
const
|
832
|
+
}, Bt = ne({ defaultClassName: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy0", variantClassNames: { disabled: { true: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy1", false: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy2" }, kind: { default: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy3", link: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy4", confirm: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy5", delete: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy6", key: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy7", icon: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy8" }, spinning: { true: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy9", false: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxya" } }, defaultVariants: { disabled: !1, kind: "default", spinning: !1 }, compoundVariants: [[{ kind: "icon", spinning: !0 }, "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyb"], [{ kind: "default", spinning: !0 }, "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyc"], [{ kind: "confirm", spinning: !0 }, "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyd"], [{ kind: "delete", spinning: !0 }, "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxye"], [{ kind: "key", spinning: !0 }, "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyf"], [{ disabled: !0, spinning: !1 }, "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyg"], [{ kind: "link", disabled: !0 }, "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyh"]] }), Pt = ne({ defaultClassName: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyi", variantClassNames: { disabled: { true: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyj", false: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyk" }, kind: { icon: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyl", default: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxym", delete: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyn", key: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyo", confirm: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyp", link: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyq" }, spinning: { true: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyr", false: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxys" } }, defaultVariants: { disabled: !1, kind: "default", spinning: !1 }, compoundVariants: [] }), xt = ne({ defaultClassName: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyt", variantClassNames: { spinning: { true: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyu", false: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyv" }, kind: { icon: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyw", default: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyx", delete: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyy", key: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyz", confirm: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy10", link: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy11" } }, defaultVariants: { spinning: !1 }, compoundVariants: [] }), St = "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy12", Ot = ne({ defaultClassName: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy13", variantClassNames: { spinning: { true: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy14", false: "pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy15" } }, defaultVariants: { spinning: !1 }, compoundVariants: [] });
|
833
|
+
const Le = c.forwardRef(
|
834
834
|
({
|
835
835
|
as: e,
|
836
836
|
onClick: t,
|
837
837
|
onPress: r,
|
838
838
|
children: o,
|
839
|
-
className:
|
840
|
-
isDisabled:
|
839
|
+
className: i,
|
840
|
+
isDisabled: p,
|
841
841
|
disabled: u,
|
842
|
-
href:
|
842
|
+
href: d,
|
843
843
|
icon: m,
|
844
844
|
kind: v = "default",
|
845
845
|
spinning: b,
|
@@ -847,20 +847,20 @@ const Ae = c.forwardRef(
|
|
847
847
|
title: x,
|
848
848
|
..._
|
849
849
|
}, $) => {
|
850
|
-
const w = e ?? (
|
850
|
+
const w = e ?? (d ? "a" : "button"), T = {
|
851
851
|
onPress: r ?? t,
|
852
852
|
// the button element should be disabled if the button is marked as disabled or spinning
|
853
|
-
isDisabled: u ??
|
853
|
+
isDisabled: u ?? p ?? b,
|
854
854
|
..._
|
855
|
-
}, { "data-testid": S } = _, B = c.useRef(null), k = $ || B, { buttonProps:
|
855
|
+
}, { "data-testid": S } = _, B = c.useRef(null), k = $ || B, { buttonProps: N } = Tt(
|
856
856
|
T,
|
857
857
|
k
|
858
|
-
), { hoverProps:
|
859
|
-
...V(oe,
|
858
|
+
), { hoverProps: O } = wt({ isDisabled: T.isDisabled }), { type: L, ...oe } = N, n = {
|
859
|
+
...V(oe, O),
|
860
860
|
ref: k,
|
861
861
|
title: x,
|
862
|
-
className:
|
863
|
-
...
|
862
|
+
className: d ? xt({ spinning: b, kind: v }) : Pt({ disabled: p || u, kind: v, spinning: b }),
|
863
|
+
...d ? { href: d } : { type: L },
|
864
864
|
..._
|
865
865
|
}, { t: f } = c.useContext(Fe), P = m && /* @__PURE__ */ c.createElement(
|
866
866
|
Ve,
|
@@ -877,7 +877,7 @@ const Ae = c.forwardRef(
|
|
877
877
|
Ue,
|
878
878
|
{
|
879
879
|
color: l,
|
880
|
-
className:
|
880
|
+
className: Ot({ spinning: b }),
|
881
881
|
title: E || f("design-system:button.spinningTitle", { defaultValue: "Loading..." }),
|
882
882
|
"data-testid": `${S}__spinner`
|
883
883
|
}
|
@@ -887,18 +887,18 @@ const Ae = c.forwardRef(
|
|
887
887
|
{
|
888
888
|
className: He(
|
889
889
|
Bt({
|
890
|
-
disabled:
|
890
|
+
disabled: p || u,
|
891
891
|
kind: v,
|
892
892
|
spinning: b
|
893
893
|
}),
|
894
|
-
|
894
|
+
i
|
895
895
|
)
|
896
896
|
},
|
897
897
|
/* @__PURE__ */ c.createElement(w, { ...n }, P, o ? /* @__PURE__ */ c.createElement("span", null, o) : "", h)
|
898
898
|
));
|
899
899
|
}
|
900
900
|
);
|
901
|
-
Re.set(
|
901
|
+
Re.set(Le, {
|
902
902
|
name: "Button",
|
903
903
|
props: {
|
904
904
|
disabled: "boolean",
|
@@ -921,8 +921,8 @@ Re.set(Ae, {
|
|
921
921
|
},
|
922
922
|
panellable: !0
|
923
923
|
});
|
924
|
-
const
|
925
|
-
components: [
|
924
|
+
const Nt = {
|
925
|
+
components: [Le],
|
926
926
|
description: () => /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("div", { className: "sps-body-14" }, "Buttons are used to initiate events or actions. The labels and/or icons describe what the button will do."), /* @__PURE__ */ c.createElement("br", null), /* @__PURE__ */ c.createElement("h5", null, "Variants"), /* @__PURE__ */ c.createElement("div", { className: "sps-body-14" }, /* @__PURE__ */ c.createElement("span", { className: "sps-text-semibold" }, "Default: "), "For tertiary actions or actions of lower importance on a page."), /* @__PURE__ */ c.createElement("div", { className: "sps-body-14" }, /* @__PURE__ */ c.createElement("span", { className: "sps-text-semibold" }, "Key: "), "For primary or important actions on a page."), /* @__PURE__ */ c.createElement("div", { className: "sps-body-14" }, /* @__PURE__ */ c.createElement("span", { className: "sps-text-semibold" }, "Confirm: "), "For the main call to action on a page. There should only be one Confirm button per screen."), /* @__PURE__ */ c.createElement("div", { className: "sps-body-14" }, /* @__PURE__ */ c.createElement("span", { className: "sps-text-semibold" }, "Delete: "), "For deleting information or another destructive action. These should always be paired with a Delete Confirmation Modal."), /* @__PURE__ */ c.createElement("div", { className: "sps-body-14" }, /* @__PURE__ */ c.createElement("span", { className: "sps-text-semibold" }, "Disabled: "), "For actions that are not permitted in a particular state. These can be accompanied by a Tooltip on hover describing why it’s disabled."), /* @__PURE__ */ c.createElement("div", { className: "sps-body-14" }, /* @__PURE__ */ c.createElement("span", { className: "sps-text-semibold" }, "With an Icon: "), "For further illustrating the action. Example: Pencil icon in an Edit button. There can also be Icon Buttons without text.")),
|
927
927
|
examples: {
|
928
928
|
basic: {
|
@@ -1134,23 +1134,26 @@ const Dt = {
|
|
1134
1134
|
function Component() {
|
1135
1135
|
return (
|
1136
1136
|
<>
|
1137
|
-
<SpsSplitButton className="mr-1 mb-1" label="Default" />
|
1137
|
+
<SpsSplitButton className="mr-1 mb-1" label="Default" options={[[{ label: "Option A" }, () => console.log("Option A")]]} />
|
1138
1138
|
<SpsSplitButton
|
1139
1139
|
className="mr-1 mb-1"
|
1140
1140
|
kind={ButtonKind.KEY}
|
1141
1141
|
label="Key"
|
1142
|
+
options={[[{ label: "Option A" }, () => console.log("Option A")]]}
|
1142
1143
|
/>
|
1143
1144
|
<SpsSplitButton
|
1144
1145
|
className="mr-1 mb-1"
|
1145
1146
|
kind={ButtonKind.CONFIRM}
|
1146
1147
|
label="Confirm"
|
1148
|
+
options={[[{ label: "Option A" }, () => console.log("Option A")]]}
|
1147
1149
|
/>
|
1148
1150
|
<SpsSplitButton
|
1149
1151
|
className="mr-1 mb-1"
|
1150
1152
|
kind={ButtonKind.DELETE}
|
1151
1153
|
label="Delete"
|
1154
|
+
options={[[{ label: "Option A" }, () => console.log("Option A")]]}
|
1152
1155
|
/>
|
1153
|
-
<SpsSplitButton className="mr-1 mb-1" disabled label="Disabled" />
|
1156
|
+
<SpsSplitButton className="mr-1 mb-1" options={[[{ label: "Option A" }, () => console.log("Option A")]]} disabled label="Disabled" />
|
1154
1157
|
</>
|
1155
1158
|
)
|
1156
1159
|
}
|
@@ -1168,30 +1171,35 @@ const Dt = {
|
|
1168
1171
|
className="mr-1 mb-1"
|
1169
1172
|
icon={SpsIcon.PLUS_SIGN}
|
1170
1173
|
label="Default"
|
1174
|
+
options={[[{ label: "Option A" }, () => console.log("Option A")]]}
|
1171
1175
|
/>
|
1172
1176
|
<SpsSplitButton
|
1173
1177
|
className="mr-1 mb-1"
|
1174
1178
|
icon={SpsIcon.PLUS_SIGN}
|
1175
1179
|
kind={ButtonKind.KEY}
|
1176
1180
|
label="Key"
|
1181
|
+
options={[[{ label: "Option A" }, () => console.log("Option A")]]}
|
1177
1182
|
/>
|
1178
1183
|
<SpsSplitButton
|
1179
1184
|
className="mr-1 mb-1"
|
1180
1185
|
icon={SpsIcon.PLUS_SIGN}
|
1181
1186
|
kind={ButtonKind.CONFIRM}
|
1182
1187
|
label="Confirm"
|
1188
|
+
options={[[{ label: "Option A" }, () => console.log("Option A")]]}
|
1183
1189
|
/>
|
1184
1190
|
<SpsSplitButton
|
1185
1191
|
className="mr-1 mb-1"
|
1186
1192
|
icon={SpsIcon.PLUS_SIGN}
|
1187
1193
|
kind={ButtonKind.DELETE}
|
1188
1194
|
label="Delete"
|
1195
|
+
options={[[{ label: "Option A" }, () => console.log("Option A")]]}
|
1189
1196
|
/>
|
1190
1197
|
<SpsSplitButton
|
1191
1198
|
className="mr-1 mb-1"
|
1192
1199
|
icon={SpsIcon.PLUS_SIGN}
|
1193
1200
|
disabled
|
1194
1201
|
label="Disabled"
|
1202
|
+
options={[[{ label: "Option A" }, () => console.log("Option A")]]}
|
1195
1203
|
/>
|
1196
1204
|
</>
|
1197
1205
|
)
|
@@ -1485,10 +1493,10 @@ const Dt = {
|
|
1485
1493
|
}
|
1486
1494
|
}
|
1487
1495
|
}
|
1488
|
-
},
|
1489
|
-
Buttons:
|
1496
|
+
}, It = {
|
1497
|
+
Buttons: Nt
|
1490
1498
|
};
|
1491
1499
|
export {
|
1492
|
-
|
1493
|
-
|
1500
|
+
Le as Button,
|
1501
|
+
It as MANIFEST
|
1494
1502
|
};
|
package/lib/index.umd.cjs
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
(function(N,v){typeof exports=="object"&&typeof module<"u"?v(exports,require("react"),require("@sps-woodland/core"),require("@react-aria/focus"),require("@spscommerce/utils")):typeof define=="function"&&define.amd?define(["exports","react","@sps-woodland/core","@react-aria/focus","@spscommerce/utils"],v):(N=typeof globalThis<"u"?globalThis:N||self,v(N.Buttons={},N.React,N.core,N.focus,N.utils))})(this,function(N,v,G,me,k){"use strict";function Le(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const c=Le(v),_e=typeof document<"u"?v.useLayoutEffect:()=>{};function W(e){const t=v.useRef(null);return _e(()=>{t.current=e},[e]),v.useCallback((...r)=>{const o=t.current;return o==null?void 0:o(...r)},[])}let be=new Map;function Ae(e,t){if(e===t)return e;let r=be.get(e);if(r)return r.forEach(a=>a(t)),t;let o=be.get(t);return o?(o.forEach(a=>a(e)),e):t}function ge(...e){return(...t)=>{for(let r of e)typeof r=="function"&&r(...t)}}const L=e=>{var t;return(t=e==null?void 0:e.ownerDocument)!==null&&t!==void 0?t:document},oe=e=>e&&"window"in e&&e.window===e?e:L(e).defaultView||window;function ve(e){var t,r,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(r=ve(e[t]))&&(o&&(o+=" "),o+=r)}else for(r in e)e[r]&&(o&&(o+=" "),o+=r);return o}function Me(){for(var e,t,r=0,o="",a=arguments.length;r<a;r++)(e=arguments[r])&&(t=ve(e))&&(o&&(o+=" "),o+=t);return o}function j(...e){let t={...e[0]};for(let r=1;r<e.length;r++){let o=e[r];for(let a in o){let d=t[a],u=o[a];typeof d=="function"&&typeof u=="function"&&a[0]==="o"&&a[1]==="n"&&a.charCodeAt(2)>=65&&a.charCodeAt(2)<=90?t[a]=ge(d,u):(a==="className"||a==="UNSAFE_className")&&typeof d=="string"&&typeof u=="string"?t[a]=Me(d,u):a==="id"&&d&&u?t.id=Ae(d,u):t[a]=u!==void 0?u:d}}return t}const Fe=new Set(["id"]),Ue=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),He=new Set(["href","hrefLang","target","rel","download","ping","referrerPolicy"]),Ve=/^(data-.*)$/;function Ge(e,t={}){let{labelable:r,isLink:o,propNames:a}=t,d={};for(const u in e)Object.prototype.hasOwnProperty.call(e,u)&&(Fe.has(u)||r&&Ue.has(u)||o&&He.has(u)||a!=null&&a.has(u)||Ve.test(u))&&(d[u]=e[u]);return d}function Y(e){if(We())e.focus({preventScroll:!0});else{let t=je(e);e.focus(),Ye(t)}}let X=null;function We(){if(X==null){X=!1;try{document.createElement("div").focus({get preventScroll(){return X=!0,!0}})}catch{}}return X}function je(e){let t=e.parentNode,r=[],o=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==o;)(t.offsetHeight<t.scrollHeight||t.offsetWidth<t.scrollWidth)&&r.push({element:t,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),t=t.parentNode;return o instanceof HTMLElement&&r.push({element:o,scrollTop:o.scrollTop,scrollLeft:o.scrollLeft}),r}function Ye(e){for(let{element:t,scrollTop:r,scrollLeft:o}of e)t.scrollTop=r,t.scrollLeft=o}function q(e){var t;return typeof window>"u"||window.navigator==null?!1:((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.brands.some(r=>e.test(r.brand)))||e.test(window.navigator.userAgent)}function re(e){var t;return typeof window<"u"&&window.navigator!=null?e.test(((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.platform)||window.navigator.platform):!1}function A(e){let t=null;return()=>(t==null&&(t=e()),t)}const z=A(function(){return re(/^Mac/i)}),Re=A(function(){return re(/^iPhone/i)}),he=A(function(){return re(/^iPad/i)||z()&&navigator.maxTouchPoints>1}),ye=A(function(){return Re()||he()}),Xe=A(function(){return q(/AppleWebKit/i)&&!qe()}),qe=A(function(){return q(/Chrome/i)}),ke=A(function(){return q(/Android/i)}),ze=A(function(){return q(/Firefox/i)});function R(e,t,r=!0){var o,a;let{metaKey:d,ctrlKey:u,altKey:p,shiftKey:m}=t;ze()&&(!((a=window.event)===null||a===void 0||(o=a.type)===null||o===void 0)&&o.startsWith("key"))&&e.target==="_blank"&&(z()?d=!0:u=!0);let h=Xe()&&z()&&!he()?new KeyboardEvent("keydown",{keyIdentifier:"Enter",metaKey:d,ctrlKey:u,altKey:p,shiftKey:m}):new MouseEvent("click",{metaKey:d,ctrlKey:u,altKey:p,shiftKey:m,bubbles:!0,cancelable:!0});R.isOpening=r,Y(e),e.dispatchEvent(h),R.isOpening=!1}R.isOpening=!1;let F=new Map,se=new Set;function we(){if(typeof window>"u")return;function e(o){return"propertyName"in o}let t=o=>{if(!e(o)||!o.target)return;let a=F.get(o.target);a||(a=new Set,F.set(o.target,a),o.target.addEventListener("transitioncancel",r,{once:!0})),a.add(o.propertyName)},r=o=>{if(!e(o)||!o.target)return;let a=F.get(o.target);if(a&&(a.delete(o.propertyName),a.size===0&&(o.target.removeEventListener("transitioncancel",r),F.delete(o.target)),F.size===0)){for(let d of se)d();se.clear()}};document.body.addEventListener("transitionrun",t),document.body.addEventListener("transitionend",r)}typeof document<"u"&&(document.readyState!=="loading"?we():document.addEventListener("DOMContentLoaded",we));function Je(e){requestAnimationFrame(()=>{F.size===0?e():se.add(e)})}function Qe(){let e=v.useRef(new Map),t=v.useCallback((a,d,u,p)=>{let m=p!=null&&p.once?(...h)=>{e.current.delete(u),u(...h)}:u;e.current.set(u,{type:d,eventTarget:a,fn:m,options:p}),a.addEventListener(d,u,p)},[]),r=v.useCallback((a,d,u,p)=>{var m;let h=((m=e.current.get(u))===null||m===void 0?void 0:m.fn)||u;a.removeEventListener(d,h,p),e.current.delete(u)},[]),o=v.useCallback(()=>{e.current.forEach((a,d)=>{r(a.eventTarget,a.type,d,a.options)})},[r]);return v.useEffect(()=>o,[o]),{addGlobalListener:t,removeGlobalListener:r,removeAllGlobalListeners:o}}function Ze(e,t){_e(()=>{if(e&&e.ref&&t)return e.ref.current=t.current,()=>{e.ref&&(e.ref.current=null)}})}function Te(e){return e.mozInputSource===0&&e.isTrusted?!0:ke()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function et(e){return!ke()&&e.width===0&&e.height===0||e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType==="mouse"}let U="default",ae="",J=new WeakMap;function Ee(e){if(ye()){if(U==="default"){const t=L(e);ae=t.documentElement.style.webkitUserSelect,t.documentElement.style.webkitUserSelect="none"}U="disabled"}else(e instanceof HTMLElement||e instanceof SVGElement)&&(J.set(e,e.style.userSelect),e.style.userSelect="none")}function Q(e){if(ye()){if(U!=="disabled")return;U="restoring",setTimeout(()=>{Je(()=>{if(U==="restoring"){const t=L(e);t.documentElement.style.webkitUserSelect==="none"&&(t.documentElement.style.webkitUserSelect=ae||""),ae="",U="default"}})},300)}else if((e instanceof HTMLElement||e instanceof SVGElement)&&e&&J.has(e)){let t=J.get(e);e.style.userSelect==="none"&&(e.style.userSelect=t),e.getAttribute("style")===""&&e.removeAttribute("style"),J.delete(e)}}const Be=v.createContext({register:()=>{}});Be.displayName="PressResponderContext";function tt(e,t){return t.get?t.get.call(e):t.value}function $e(e,t,r){if(!t.has(e))throw new TypeError("attempted to "+r+" private field on non-instance");return t.get(e)}function nt(e,t){var r=$e(e,t,"get");return tt(e,r)}function ot(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function rt(e,t,r){ot(e,t),t.set(e,r)}function st(e,t,r){if(t.set)t.set.call(e,r);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=r}}function Pe(e,t,r){var o=$e(e,t,"set");return st(e,o,r),r}function at(e){let t=v.useContext(Be);if(t){let{register:r,...o}=t;e=j(o,e),r()}return Ze(t,e.ref),e}var Z=new WeakMap;class ee{continuePropagation(){Pe(this,Z,!1)}get shouldStopPropagation(){return nt(this,Z)}constructor(t,r,o,a){rt(this,Z,{writable:!0,value:void 0}),Pe(this,Z,!0);var d;let u=(d=a==null?void 0:a.target)!==null&&d!==void 0?d:o.currentTarget;const p=u==null?void 0:u.getBoundingClientRect();let m,h=0,b,B=null;o.clientX!=null&&o.clientY!=null&&(b=o.clientX,B=o.clientY),p&&(b!=null&&B!=null?(m=b-p.left,h=B-p.top):(m=p.width/2,h=p.height/2)),this.type=t,this.pointerType=r,this.target=o.currentTarget,this.shiftKey=o.shiftKey,this.metaKey=o.metaKey,this.ctrlKey=o.ctrlKey,this.altKey=o.altKey,this.x=m,this.y=h}}const xe=Symbol("linkClicked");function it(e){let{onPress:t,onPressChange:r,onPressStart:o,onPressEnd:a,onPressUp:d,isDisabled:u,isPressed:p,preventFocusOnPress:m,shouldCancelOnPointerExit:h,allowTextSelectionOnPress:b,ref:B,...S}=at(e),[_,$]=v.useState(!1),T=v.useRef({isPressed:!1,ignoreEmulatedMouseEvents:!1,ignoreClickAfterPress:!1,didFirePressStart:!1,isTriggeringEvent:!1,activePointerId:null,target:null,isOverTarget:!1,pointerType:null}),{addGlobalListener:E,removeAllGlobalListeners:O}=Qe(),P=W((n,f)=>{let x=T.current;if(u||x.didFirePressStart)return!1;let l=!0;if(x.isTriggeringEvent=!0,o){let y=new ee("pressstart",f,n);o(y),l=y.shouldStopPropagation}return r&&r(!0),x.isTriggeringEvent=!1,x.didFirePressStart=!0,$(!0),l}),w=W((n,f,x=!0)=>{let l=T.current;if(!l.didFirePressStart)return!1;l.ignoreClickAfterPress=!0,l.didFirePressStart=!1,l.isTriggeringEvent=!0;let y=!0;if(a){let s=new ee("pressend",f,n);a(s),y=s.shouldStopPropagation}if(r&&r(!1),$(!1),t&&x&&!u){let s=new ee("press",f,n);t(s),y&&(y=s.shouldStopPropagation)}return l.isTriggeringEvent=!1,y}),C=W((n,f)=>{let x=T.current;if(u)return!1;if(d){x.isTriggeringEvent=!0;let l=new ee("pressup",f,n);return d(l),x.isTriggeringEvent=!1,l.shouldStopPropagation}return!0}),D=W(n=>{let f=T.current;f.isPressed&&f.target&&(f.isOverTarget&&f.pointerType!=null&&w(K(f.target,n),f.pointerType,!1),f.isPressed=!1,f.isOverTarget=!1,f.activePointerId=null,f.pointerType=null,O(),b||Q(f.target))}),V=W(n=>{h&&D(n)}),fe=v.useMemo(()=>{let n=T.current,f={onKeyDown(l){if(le(l.nativeEvent,l.currentTarget)&&l.currentTarget.contains(l.target)){var y;Oe(l.target,l.key)&&l.preventDefault();let s=!0;if(!n.isPressed&&!l.repeat){n.target=l.currentTarget,n.isPressed=!0,s=P(l,"keyboard");let g=l.currentTarget,i=I=>{le(I,g)&&!I.repeat&&g.contains(I.target)&&n.target&&C(K(n.target,I),"keyboard")};E(L(l.currentTarget),"keyup",ge(i,x),!0)}s&&l.stopPropagation(),l.metaKey&&z()&&((y=n.metaKeyEvents)===null||y===void 0||y.set(l.key,l.nativeEvent))}else l.key==="Meta"&&(n.metaKeyEvents=new Map)},onClick(l){if(!(l&&!l.currentTarget.contains(l.target))&&l&&l.button===0&&!n.isTriggeringEvent&&!R.isOpening){let y=!0;if(u&&l.preventDefault(),!n.ignoreClickAfterPress&&!n.ignoreEmulatedMouseEvents&&!n.isPressed&&(n.pointerType==="virtual"||Te(l.nativeEvent))){!u&&!m&&Y(l.currentTarget);let s=P(l,"virtual"),g=C(l,"virtual"),i=w(l,"virtual");y=s&&g&&i}n.ignoreEmulatedMouseEvents=!1,n.ignoreClickAfterPress=!1,y&&l.stopPropagation()}}},x=l=>{var y;if(n.isPressed&&n.target&&le(l,n.target)){var s;Oe(l.target,l.key)&&l.preventDefault();let i=l.target;w(K(n.target,l),"keyboard",n.target.contains(i)),O(),l.key!=="Enter"&&ie(n.target)&&n.target.contains(i)&&!l[xe]&&(l[xe]=!0,R(n.target,l,!1)),n.isPressed=!1,(s=n.metaKeyEvents)===null||s===void 0||s.delete(l.key)}else if(l.key==="Meta"&&(!((y=n.metaKeyEvents)===null||y===void 0)&&y.size)){var g;let i=n.metaKeyEvents;n.metaKeyEvents=void 0;for(let I of i.values())(g=n.target)===null||g===void 0||g.dispatchEvent(new KeyboardEvent("keyup",I))}};if(typeof PointerEvent<"u"){f.onPointerDown=i=>{if(i.button!==0||!i.currentTarget.contains(i.target))return;if(et(i.nativeEvent)){n.pointerType="virtual";return}ue(i.currentTarget)&&i.preventDefault(),n.pointerType=i.pointerType;let I=!0;n.isPressed||(n.isPressed=!0,n.isOverTarget=!0,n.activePointerId=i.pointerId,n.target=i.currentTarget,!u&&!m&&Y(i.currentTarget),b||Ee(n.target),I=P(i,n.pointerType),E(L(i.currentTarget),"pointermove",l,!1),E(L(i.currentTarget),"pointerup",y,!1),E(L(i.currentTarget),"pointercancel",g,!1)),I&&i.stopPropagation()},f.onMouseDown=i=>{i.currentTarget.contains(i.target)&&i.button===0&&(ue(i.currentTarget)&&i.preventDefault(),i.stopPropagation())},f.onPointerUp=i=>{!i.currentTarget.contains(i.target)||n.pointerType==="virtual"||i.button===0&&H(i,i.currentTarget)&&C(i,n.pointerType||i.pointerType)};let l=i=>{i.pointerId===n.activePointerId&&(n.target&&H(i,n.target)?!n.isOverTarget&&n.pointerType!=null&&(n.isOverTarget=!0,P(K(n.target,i),n.pointerType)):n.target&&n.isOverTarget&&n.pointerType!=null&&(n.isOverTarget=!1,w(K(n.target,i),n.pointerType,!1),V(i)))},y=i=>{i.pointerId===n.activePointerId&&n.isPressed&&i.button===0&&n.target&&(H(i,n.target)&&n.pointerType!=null?w(K(n.target,i),n.pointerType):n.isOverTarget&&n.pointerType!=null&&w(K(n.target,i),n.pointerType,!1),n.isPressed=!1,n.isOverTarget=!1,n.activePointerId=null,n.pointerType=null,O(),b||Q(n.target),"ontouchend"in n.target&&i.pointerType!=="mouse"&&E(n.target,"touchend",s,{once:!0}))},s=i=>{Ne(i.target)&&i.preventDefault()},g=i=>{D(i)};f.onDragStart=i=>{i.currentTarget.contains(i.target)&&D(i)}}else{f.onMouseDown=s=>{if(s.button!==0||!s.currentTarget.contains(s.target))return;if(ue(s.currentTarget)&&s.preventDefault(),n.ignoreEmulatedMouseEvents){s.stopPropagation();return}n.isPressed=!0,n.isOverTarget=!0,n.target=s.currentTarget,n.pointerType=Te(s.nativeEvent)?"virtual":"mouse",!u&&!m&&Y(s.currentTarget),P(s,n.pointerType)&&s.stopPropagation(),E(L(s.currentTarget),"mouseup",l,!1)},f.onMouseEnter=s=>{if(!s.currentTarget.contains(s.target))return;let g=!0;n.isPressed&&!n.ignoreEmulatedMouseEvents&&n.pointerType!=null&&(n.isOverTarget=!0,g=P(s,n.pointerType)),g&&s.stopPropagation()},f.onMouseLeave=s=>{if(!s.currentTarget.contains(s.target))return;let g=!0;n.isPressed&&!n.ignoreEmulatedMouseEvents&&n.pointerType!=null&&(n.isOverTarget=!1,g=w(s,n.pointerType,!1),V(s)),g&&s.stopPropagation()},f.onMouseUp=s=>{s.currentTarget.contains(s.target)&&!n.ignoreEmulatedMouseEvents&&s.button===0&&C(s,n.pointerType||"mouse")};let l=s=>{if(s.button===0){if(n.isPressed=!1,O(),n.ignoreEmulatedMouseEvents){n.ignoreEmulatedMouseEvents=!1;return}n.target&&H(s,n.target)&&n.pointerType!=null?w(K(n.target,s),n.pointerType):n.target&&n.isOverTarget&&n.pointerType!=null&&w(K(n.target,s),n.pointerType,!1),n.isOverTarget=!1}};f.onTouchStart=s=>{if(!s.currentTarget.contains(s.target))return;let g=lt(s.nativeEvent);if(!g)return;n.activePointerId=g.identifier,n.ignoreEmulatedMouseEvents=!0,n.isOverTarget=!0,n.isPressed=!0,n.target=s.currentTarget,n.pointerType="touch",!u&&!m&&Y(s.currentTarget),b||Ee(n.target),P(M(n.target,s),n.pointerType)&&s.stopPropagation(),E(oe(s.currentTarget),"scroll",y,!0)},f.onTouchMove=s=>{if(!s.currentTarget.contains(s.target))return;if(!n.isPressed){s.stopPropagation();return}let g=Se(s.nativeEvent,n.activePointerId),i=!0;g&&H(g,s.currentTarget)?!n.isOverTarget&&n.pointerType!=null&&(n.isOverTarget=!0,i=P(M(n.target,s),n.pointerType)):n.isOverTarget&&n.pointerType!=null&&(n.isOverTarget=!1,i=w(M(n.target,s),n.pointerType,!1),V(M(n.target,s))),i&&s.stopPropagation()},f.onTouchEnd=s=>{if(!s.currentTarget.contains(s.target))return;if(!n.isPressed){s.stopPropagation();return}let g=Se(s.nativeEvent,n.activePointerId),i=!0;g&&H(g,s.currentTarget)&&n.pointerType!=null?(C(M(n.target,s),n.pointerType),i=w(M(n.target,s),n.pointerType)):n.isOverTarget&&n.pointerType!=null&&(i=w(M(n.target,s),n.pointerType,!1)),i&&s.stopPropagation(),n.isPressed=!1,n.activePointerId=null,n.isOverTarget=!1,n.ignoreEmulatedMouseEvents=!0,n.target&&!b&&Q(n.target),O()},f.onTouchCancel=s=>{s.currentTarget.contains(s.target)&&(s.stopPropagation(),n.isPressed&&D(M(n.target,s)))};let y=s=>{n.isPressed&&s.target.contains(n.target)&&D({currentTarget:n.target,shiftKey:!1,ctrlKey:!1,metaKey:!1,altKey:!1})};f.onDragStart=s=>{s.currentTarget.contains(s.target)&&D(s)}}return f},[E,u,m,O,b,D,V,w,P,C]);return v.useEffect(()=>()=>{var n;b||Q((n=T.current.target)!==null&&n!==void 0?n:void 0)},[b]),{isPressed:p||_,pressProps:j(S,fe)}}function ie(e){return e.tagName==="A"&&e.hasAttribute("href")}function le(e,t){const{key:r,code:o}=e,a=t,d=a.getAttribute("role");return(r==="Enter"||r===" "||r==="Spacebar"||o==="Space")&&!(a instanceof oe(a).HTMLInputElement&&!De(a,r)||a instanceof oe(a).HTMLTextAreaElement||a.isContentEditable)&&!((d==="link"||!d&&ie(a))&&r!=="Enter")}function lt(e){const{targetTouches:t}=e;return t.length>0?t[0]:null}function Se(e,t){const r=e.changedTouches;for(let o=0;o<r.length;o++){const a=r[o];if(a.identifier===t)return a}return null}function M(e,t){let r=0,o=0;return t.targetTouches&&t.targetTouches.length===1&&(r=t.targetTouches[0].clientX,o=t.targetTouches[0].clientY),{currentTarget:e,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,metaKey:t.metaKey,altKey:t.altKey,clientX:r,clientY:o}}function K(e,t){let r=t.clientX,o=t.clientY;return{currentTarget:e,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,metaKey:t.metaKey,altKey:t.altKey,clientX:r,clientY:o}}function ut(e){let t=0,r=0;return e.width!==void 0?t=e.width/2:e.radiusX!==void 0&&(t=e.radiusX),e.height!==void 0?r=e.height/2:e.radiusY!==void 0&&(r=e.radiusY),{top:e.clientY-r,right:e.clientX+t,bottom:e.clientY+r,left:e.clientX-t}}function ct(e,t){return!(e.left>t.right||t.left>e.right||e.top>t.bottom||t.top>e.bottom)}function H(e,t){let r=t.getBoundingClientRect(),o=ut(e);return ct(r,o)}function ue(e){return!(e instanceof HTMLElement)||!e.hasAttribute("draggable")}function Ne(e){return e instanceof HTMLInputElement?!1:e instanceof HTMLButtonElement?e.type!=="submit"&&e.type!=="reset":!ie(e)}function Oe(e,t){return e instanceof HTMLInputElement?!De(e,t):Ne(e)}const dt=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function De(e,t){return e.type==="checkbox"||e.type==="radio"?t===" ":dt.has(e.type)}let te=!1,ce=0;function de(){te=!0,setTimeout(()=>{te=!1},50)}function Ce(e){e.pointerType==="touch"&&de()}function pt(){if(!(typeof document>"u"))return typeof PointerEvent<"u"?document.addEventListener("pointerup",Ce):document.addEventListener("touchend",de),ce++,()=>{ce--,!(ce>0)&&(typeof PointerEvent<"u"?document.removeEventListener("pointerup",Ce):document.removeEventListener("touchend",de))}}function ft(e){let{onHoverStart:t,onHoverChange:r,onHoverEnd:o,isDisabled:a}=e,[d,u]=v.useState(!1),p=v.useRef({isHovered:!1,ignoreEmulatedMouseEvents:!1,pointerType:"",target:null}).current;v.useEffect(pt,[]);let{hoverProps:m,triggerHoverEnd:h}=v.useMemo(()=>{let b=(_,$)=>{if(p.pointerType=$,a||$==="touch"||p.isHovered||!_.currentTarget.contains(_.target))return;p.isHovered=!0;let T=_.currentTarget;p.target=T,t&&t({type:"hoverstart",target:T,pointerType:$}),r&&r(!0),u(!0)},B=(_,$)=>{if(p.pointerType="",p.target=null,$==="touch"||!p.isHovered)return;p.isHovered=!1;let T=_.currentTarget;o&&o({type:"hoverend",target:T,pointerType:$}),r&&r(!1),u(!1)},S={};return typeof PointerEvent<"u"?(S.onPointerEnter=_=>{te&&_.pointerType==="mouse"||b(_,_.pointerType)},S.onPointerLeave=_=>{!a&&_.currentTarget.contains(_.target)&&B(_,_.pointerType)}):(S.onTouchStart=()=>{p.ignoreEmulatedMouseEvents=!0},S.onMouseEnter=_=>{!p.ignoreEmulatedMouseEvents&&!te&&b(_,"mouse"),p.ignoreEmulatedMouseEvents=!1},S.onMouseLeave=_=>{!a&&_.currentTarget.contains(_.target)&&B(_,"mouse")}),{hoverProps:S,triggerHoverEnd:B}},[t,r,o,a,p]);return v.useEffect(()=>{a&&h({currentTarget:p.target},p.pointerType)},[a]),{hoverProps:m,isHovered:d}}function mt(e,t){let{elementType:r="button",isDisabled:o,onPress:a,onPressStart:d,onPressEnd:u,onPressUp:p,onPressChange:m,preventFocusOnPress:h,allowFocusWhenDisabled:b,onClick:B,href:S,target:_,rel:$,type:T="button"}=e,E;r==="button"?E={type:T,disabled:o}:E={role:"button",tabIndex:o?void 0:0,href:r==="a"&&o?void 0:S,target:r==="a"?_:void 0,type:r==="input"?T:void 0,disabled:r==="input"?o:void 0,"aria-disabled":!o||r==="input"?void 0:o,rel:r==="a"?$:void 0};let{pressProps:O,isPressed:P}=it({onPressStart:d,onPressEnd:u,onPressChange:m,onPress:a,onPressUp:p,isDisabled:o,preventFocusOnPress:h,ref:t}),{focusableProps:w}=me.useFocusable(e,t);b&&(w.tabIndex=o?-1:w.tabIndex);let C=j(w,O,Ge(e,{labelable:!0}));return{isPressed:P,buttonProps:j(E,C,{"aria-haspopup":e["aria-haspopup"],"aria-expanded":e["aria-expanded"],"aria-controls":e["aria-controls"],"aria-pressed":e["aria-pressed"],onClick:D=>{B&&(B(D),console.warn("onClick is deprecated, please use onPress"))}})}}function _t(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ke(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,o)}return r}function Ie(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ke(Object(r),!0).forEach(function(o){_t(e,o,r[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ke(Object(r)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(r,o))})}return e}var bt=(e,t,r)=>{for(var o of Object.keys(e)){var a;if(e[o]!==((a=t[o])!==null&&a!==void 0?a:r[o]))return!1}return!0},ne=e=>t=>{var r=e.defaultClassName,o=Ie(Ie({},e.defaultVariants),t);for(var a in o){var d,u=(d=o[a])!==null&&d!==void 0?d:e.defaultVariants[a];if(u!=null){var p=u;typeof p=="boolean"&&(p=p===!0?"true":"false");var m=e.variantClassNames[a][p];m&&(r+=" "+m)}}for(var[h,b]of e.compoundVariants)bt(h,o,e.defaultVariants)&&(r+=" "+b);return r},gt=ne({defaultClassName:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxy0",variantClassNames:{disabled:{true:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxy1",false:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxy2"},kind:{default:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxy3",link:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxy4",confirm:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxy5",delete:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxy6",key:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxy7",icon:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxy8"},spinning:{true:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxy9",false:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxya"}},defaultVariants:{disabled:!1,kind:"default",spinning:!1},compoundVariants:[[{kind:"icon",spinning:!0},"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyb"],[{kind:"default",spinning:!0},"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyc"],[{kind:"confirm",spinning:!0},"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyd"],[{kind:"delete",spinning:!0},"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxye"],[{kind:"key",spinning:!0},"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyf"],[{disabled:!0,spinning:!1},"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyg"],[{kind:"link",disabled:!0},"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyh"]]}),vt=ne({defaultClassName:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyi",variantClassNames:{disabled:{true:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyj",false:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyk"},kind:{icon:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyl",default:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxym",delete:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyn",key:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyo",confirm:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyp",link:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyq"},spinning:{true:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyr",false:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxys"}},defaultVariants:{disabled:!1,kind:"default",spinning:!1},compoundVariants:[]}),ht=ne({defaultClassName:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyt",variantClassNames:{spinning:{true:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyu",false:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyv"},kind:{icon:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyw",default:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyx",delete:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyy",key:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxyz",confirm:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxy10",link:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxy11"}},defaultVariants:{spinning:!1},compoundVariants:[]}),yt="pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxy12",kt=ne({defaultClassName:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxy13",variantClassNames:{spinning:{true:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxy14",false:"pkg_sps-woodland_buttons__version_8_29_1__hash_125pcxy15"}},defaultVariants:{spinning:!1},compoundVariants:[]});const pe=c.forwardRef(({as:e,onClick:t,onPress:r,children:o,className:a,isDisabled:d,disabled:u,href:p,icon:m,kind:h="default",spinning:b,spinningTitle:B,title:S,..._},$)=>{const T=e??(p?"a":"button"),E={onPress:r??t,isDisabled:u??d??b,..._},{"data-testid":O}=_,P=c.useRef(null),w=$||P,{buttonProps:C}=mt(E,w),{hoverProps:D}=ft({isDisabled:E.isDisabled}),{type:V,...fe}=C,n={...j(fe,D),ref:w,title:S,className:p?ht({spinning:b,kind:h}):vt({disabled:d||u,kind:h,spinning:b}),...p?{href:p}:{type:V},..._},{t:f}=c.useContext(G.I18nContext),x=m&&c.createElement(G.Icon,{className:yt,icon:m,"aria-hidden":"true","data-testid":`${O}__${m}-icon`});let l;h==="default"||h==="icon"||h==="link"?l="dark":l="light";const y=b&&c.createElement(G.Spinner,{color:l,className:kt({spinning:b}),title:B||f("design-system:button.spinningTitle",{defaultValue:"Loading..."}),"data-testid":`${O}__spinner`});return c.createElement(me.FocusRing,null,c.createElement("div",{className:G.cl(gt({disabled:d||u,kind:h,spinning:b}),a)},c.createElement(T,{...n},x,o?c.createElement("span",null,o):"",y)))});G.Metadata.set(pe,{name:"Button",props:{disabled:"boolean",href:"string",icon:"IconName",kind:{type:'"default" | "link" | "icon" | "confirm" | "delete" | "key"',default:'"default"'},spinning:"boolean",spinningTitle:"string",type:{type:'"button" | "submit"',default:'"button"'},as:"button | a",onClick:"() => void",onPress:"() => void",children:"ReactNode",className:"string",isDisabled:"boolean",style:"CSSProperties"},panellable:!0});const wt={Buttons:{components:[pe],description:()=>c.createElement(c.Fragment,null,c.createElement("div",{className:"sps-body-14"},"Buttons are used to initiate events or actions. The labels and/or icons describe what the button will do."),c.createElement("br",null),c.createElement("h5",null,"Variants"),c.createElement("div",{className:"sps-body-14"},c.createElement("span",{className:"sps-text-semibold"},"Default: "),"For tertiary actions or actions of lower importance on a page."),c.createElement("div",{className:"sps-body-14"},c.createElement("span",{className:"sps-text-semibold"},"Key: "),"For primary or important actions on a page."),c.createElement("div",{className:"sps-body-14"},c.createElement("span",{className:"sps-text-semibold"},"Confirm: "),"For the main call to action on a page. There should only be one Confirm button per screen."),c.createElement("div",{className:"sps-body-14"},c.createElement("span",{className:"sps-text-semibold"},"Delete: "),"For deleting information or another destructive action. These should always be paired with a Delete Confirmation Modal."),c.createElement("div",{className:"sps-body-14"},c.createElement("span",{className:"sps-text-semibold"},"Disabled: "),"For actions that are not permitted in a particular state. These can be accompanied by a Tooltip on hover describing why it’s disabled."),c.createElement("div",{className:"sps-body-14"},c.createElement("span",{className:"sps-text-semibold"},"With an Icon: "),"For further illustrating the action. Example: Pencil icon in an Edit button. There can also be Icon Buttons without text.")),examples:{basic:{label:"Basic Buttons",description:({NavigateTo:e})=>c.createElement(c.Fragment,null,c.createElement("p",null,"The most common type of button that can be used in most cases. Example: Basic Buttons in a ",c.createElement(e,{to:"modals"},"Modal"),".")),examples:{withoutIcons:{description:"Without Icons",react:k.code`
|
1
|
+
(function(O,v){typeof exports=="object"&&typeof module<"u"?v(exports,require("react"),require("@sps-woodland/core"),require("@react-aria/focus"),require("@spscommerce/utils")):typeof define=="function"&&define.amd?define(["exports","react","@sps-woodland/core","@react-aria/focus","@spscommerce/utils"],v):(O=typeof globalThis<"u"?globalThis:O||self,v(O.Buttons={},O.React,O.core,O.focus,O.utils))})(this,function(O,v,G,me,k){"use strict";function Ie(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const c=Ie(v),_e=typeof document<"u"?v.useLayoutEffect:()=>{};function W(e){const t=v.useRef(null);return _e(()=>{t.current=e},[e]),v.useCallback((...r)=>{const o=t.current;return o==null?void 0:o(...r)},[])}let be=new Map;function Le(e,t){if(e===t)return e;let r=be.get(e);if(r)return r.forEach(i=>i(t)),t;let o=be.get(t);return o?(o.forEach(i=>i(e)),e):t}function ge(...e){return(...t)=>{for(let r of e)typeof r=="function"&&r(...t)}}const I=e=>{var t;return(t=e==null?void 0:e.ownerDocument)!==null&&t!==void 0?t:document},oe=e=>e&&"window"in e&&e.window===e?e:I(e).defaultView||window;function ve(e){var t,r,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(r=ve(e[t]))&&(o&&(o+=" "),o+=r)}else for(r in e)e[r]&&(o&&(o+=" "),o+=r);return o}function Me(){for(var e,t,r=0,o="",i=arguments.length;r<i;r++)(e=arguments[r])&&(t=ve(e))&&(o&&(o+=" "),o+=t);return o}function j(...e){let t={...e[0]};for(let r=1;r<e.length;r++){let o=e[r];for(let i in o){let d=t[i],u=o[i];typeof d=="function"&&typeof u=="function"&&i[0]==="o"&&i[1]==="n"&&i.charCodeAt(2)>=65&&i.charCodeAt(2)<=90?t[i]=ge(d,u):(i==="className"||i==="UNSAFE_className")&&typeof d=="string"&&typeof u=="string"?t[i]=Me(d,u):i==="id"&&d&&u?t.id=Le(d,u):t[i]=u!==void 0?u:d}}return t}const Fe=new Set(["id"]),Ue=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),He=new Set(["href","hrefLang","target","rel","download","ping","referrerPolicy"]),Ve=/^(data-.*)$/;function Ge(e,t={}){let{labelable:r,isLink:o,propNames:i}=t,d={};for(const u in e)Object.prototype.hasOwnProperty.call(e,u)&&(Fe.has(u)||r&&Ue.has(u)||o&&He.has(u)||i!=null&&i.has(u)||Ve.test(u))&&(d[u]=e[u]);return d}function Y(e){if(We())e.focus({preventScroll:!0});else{let t=je(e);e.focus(),Ye(t)}}let X=null;function We(){if(X==null){X=!1;try{document.createElement("div").focus({get preventScroll(){return X=!0,!0}})}catch{}}return X}function je(e){let t=e.parentNode,r=[],o=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==o;)(t.offsetHeight<t.scrollHeight||t.offsetWidth<t.scrollWidth)&&r.push({element:t,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),t=t.parentNode;return o instanceof HTMLElement&&r.push({element:o,scrollTop:o.scrollTop,scrollLeft:o.scrollLeft}),r}function Ye(e){for(let{element:t,scrollTop:r,scrollLeft:o}of e)t.scrollTop=r,t.scrollLeft=o}function q(e){var t;return typeof window>"u"||window.navigator==null?!1:((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.brands.some(r=>e.test(r.brand)))||e.test(window.navigator.userAgent)}function re(e){var t;return typeof window<"u"&&window.navigator!=null?e.test(((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.platform)||window.navigator.platform):!1}function L(e){let t=null;return()=>(t==null&&(t=e()),t)}const z=L(function(){return re(/^Mac/i)}),Re=L(function(){return re(/^iPhone/i)}),he=L(function(){return re(/^iPad/i)||z()&&navigator.maxTouchPoints>1}),ye=L(function(){return Re()||he()}),Xe=L(function(){return q(/AppleWebKit/i)&&!qe()}),qe=L(function(){return q(/Chrome/i)}),ke=L(function(){return q(/Android/i)}),ze=L(function(){return q(/Firefox/i)});function R(e,t,r=!0){var o,i;let{metaKey:d,ctrlKey:u,altKey:p,shiftKey:m}=t;ze()&&(!((i=window.event)===null||i===void 0||(o=i.type)===null||o===void 0)&&o.startsWith("key"))&&e.target==="_blank"&&(z()?d=!0:u=!0);let h=Xe()&&z()&&!he()?new KeyboardEvent("keydown",{keyIdentifier:"Enter",metaKey:d,ctrlKey:u,altKey:p,shiftKey:m}):new MouseEvent("click",{metaKey:d,ctrlKey:u,altKey:p,shiftKey:m,bubbles:!0,cancelable:!0});R.isOpening=r,Y(e),e.dispatchEvent(h),R.isOpening=!1}R.isOpening=!1;let F=new Map,se=new Set;function we(){if(typeof window>"u")return;function e(o){return"propertyName"in o}let t=o=>{if(!e(o)||!o.target)return;let i=F.get(o.target);i||(i=new Set,F.set(o.target,i),o.target.addEventListener("transitioncancel",r,{once:!0})),i.add(o.propertyName)},r=o=>{if(!e(o)||!o.target)return;let i=F.get(o.target);if(i&&(i.delete(o.propertyName),i.size===0&&(o.target.removeEventListener("transitioncancel",r),F.delete(o.target)),F.size===0)){for(let d of se)d();se.clear()}};document.body.addEventListener("transitionrun",t),document.body.addEventListener("transitionend",r)}typeof document<"u"&&(document.readyState!=="loading"?we():document.addEventListener("DOMContentLoaded",we));function Je(e){requestAnimationFrame(()=>{F.size===0?e():se.add(e)})}function Qe(){let e=v.useRef(new Map),t=v.useCallback((i,d,u,p)=>{let m=p!=null&&p.once?(...h)=>{e.current.delete(u),u(...h)}:u;e.current.set(u,{type:d,eventTarget:i,fn:m,options:p}),i.addEventListener(d,u,p)},[]),r=v.useCallback((i,d,u,p)=>{var m;let h=((m=e.current.get(u))===null||m===void 0?void 0:m.fn)||u;i.removeEventListener(d,h,p),e.current.delete(u)},[]),o=v.useCallback(()=>{e.current.forEach((i,d)=>{r(i.eventTarget,i.type,d,i.options)})},[r]);return v.useEffect(()=>o,[o]),{addGlobalListener:t,removeGlobalListener:r,removeAllGlobalListeners:o}}function Ze(e,t){_e(()=>{if(e&&e.ref&&t)return e.ref.current=t.current,()=>{e.ref&&(e.ref.current=null)}})}function Te(e){return e.mozInputSource===0&&e.isTrusted?!0:ke()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function et(e){return!ke()&&e.width===0&&e.height===0||e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType==="mouse"}let U="default",ie="",J=new WeakMap;function Ee(e){if(ye()){if(U==="default"){const t=I(e);ie=t.documentElement.style.webkitUserSelect,t.documentElement.style.webkitUserSelect="none"}U="disabled"}else(e instanceof HTMLElement||e instanceof SVGElement)&&(J.set(e,e.style.userSelect),e.style.userSelect="none")}function Q(e){if(ye()){if(U!=="disabled")return;U="restoring",setTimeout(()=>{Je(()=>{if(U==="restoring"){const t=I(e);t.documentElement.style.webkitUserSelect==="none"&&(t.documentElement.style.webkitUserSelect=ie||""),ie="",U="default"}})},300)}else if((e instanceof HTMLElement||e instanceof SVGElement)&&e&&J.has(e)){let t=J.get(e);e.style.userSelect==="none"&&(e.style.userSelect=t),e.getAttribute("style")===""&&e.removeAttribute("style"),J.delete(e)}}const Be=v.createContext({register:()=>{}});Be.displayName="PressResponderContext";function tt(e,t){return t.get?t.get.call(e):t.value}function $e(e,t,r){if(!t.has(e))throw new TypeError("attempted to "+r+" private field on non-instance");return t.get(e)}function nt(e,t){var r=$e(e,t,"get");return tt(e,r)}function ot(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function rt(e,t,r){ot(e,t),t.set(e,r)}function st(e,t,r){if(t.set)t.set.call(e,r);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=r}}function Pe(e,t,r){var o=$e(e,t,"set");return st(e,o,r),r}function it(e){let t=v.useContext(Be);if(t){let{register:r,...o}=t;e=j(o,e),r()}return Ze(t,e.ref),e}var Z=new WeakMap;class ee{continuePropagation(){Pe(this,Z,!1)}get shouldStopPropagation(){return nt(this,Z)}constructor(t,r,o,i){rt(this,Z,{writable:!0,value:void 0}),Pe(this,Z,!0);var d;let u=(d=i==null?void 0:i.target)!==null&&d!==void 0?d:o.currentTarget;const p=u==null?void 0:u.getBoundingClientRect();let m,h=0,b,B=null;o.clientX!=null&&o.clientY!=null&&(b=o.clientX,B=o.clientY),p&&(b!=null&&B!=null?(m=b-p.left,h=B-p.top):(m=p.width/2,h=p.height/2)),this.type=t,this.pointerType=r,this.target=o.currentTarget,this.shiftKey=o.shiftKey,this.metaKey=o.metaKey,this.ctrlKey=o.ctrlKey,this.altKey=o.altKey,this.x=m,this.y=h}}const xe=Symbol("linkClicked");function at(e){let{onPress:t,onPressChange:r,onPressStart:o,onPressEnd:i,onPressUp:d,isDisabled:u,isPressed:p,preventFocusOnPress:m,shouldCancelOnPointerExit:h,allowTextSelectionOnPress:b,ref:B,...S}=it(e),[_,$]=v.useState(!1),T=v.useRef({isPressed:!1,ignoreEmulatedMouseEvents:!1,ignoreClickAfterPress:!1,didFirePressStart:!1,isTriggeringEvent:!1,activePointerId:null,target:null,isOverTarget:!1,pointerType:null}),{addGlobalListener:E,removeAllGlobalListeners:N}=Qe(),P=W((n,f)=>{let x=T.current;if(u||x.didFirePressStart)return!1;let l=!0;if(x.isTriggeringEvent=!0,o){let y=new ee("pressstart",f,n);o(y),l=y.shouldStopPropagation}return r&&r(!0),x.isTriggeringEvent=!1,x.didFirePressStart=!0,$(!0),l}),w=W((n,f,x=!0)=>{let l=T.current;if(!l.didFirePressStart)return!1;l.ignoreClickAfterPress=!0,l.didFirePressStart=!1,l.isTriggeringEvent=!0;let y=!0;if(i){let s=new ee("pressend",f,n);i(s),y=s.shouldStopPropagation}if(r&&r(!1),$(!1),t&&x&&!u){let s=new ee("press",f,n);t(s),y&&(y=s.shouldStopPropagation)}return l.isTriggeringEvent=!1,y}),C=W((n,f)=>{let x=T.current;if(u)return!1;if(d){x.isTriggeringEvent=!0;let l=new ee("pressup",f,n);return d(l),x.isTriggeringEvent=!1,l.shouldStopPropagation}return!0}),D=W(n=>{let f=T.current;f.isPressed&&f.target&&(f.isOverTarget&&f.pointerType!=null&&w(A(f.target,n),f.pointerType,!1),f.isPressed=!1,f.isOverTarget=!1,f.activePointerId=null,f.pointerType=null,N(),b||Q(f.target))}),V=W(n=>{h&&D(n)}),fe=v.useMemo(()=>{let n=T.current,f={onKeyDown(l){if(le(l.nativeEvent,l.currentTarget)&&l.currentTarget.contains(l.target)){var y;Ne(l.target,l.key)&&l.preventDefault();let s=!0;if(!n.isPressed&&!l.repeat){n.target=l.currentTarget,n.isPressed=!0,s=P(l,"keyboard");let g=l.currentTarget,a=K=>{le(K,g)&&!K.repeat&&g.contains(K.target)&&n.target&&C(A(n.target,K),"keyboard")};E(I(l.currentTarget),"keyup",ge(a,x),!0)}s&&l.stopPropagation(),l.metaKey&&z()&&((y=n.metaKeyEvents)===null||y===void 0||y.set(l.key,l.nativeEvent))}else l.key==="Meta"&&(n.metaKeyEvents=new Map)},onClick(l){if(!(l&&!l.currentTarget.contains(l.target))&&l&&l.button===0&&!n.isTriggeringEvent&&!R.isOpening){let y=!0;if(u&&l.preventDefault(),!n.ignoreClickAfterPress&&!n.ignoreEmulatedMouseEvents&&!n.isPressed&&(n.pointerType==="virtual"||Te(l.nativeEvent))){!u&&!m&&Y(l.currentTarget);let s=P(l,"virtual"),g=C(l,"virtual"),a=w(l,"virtual");y=s&&g&&a}n.ignoreEmulatedMouseEvents=!1,n.ignoreClickAfterPress=!1,y&&l.stopPropagation()}}},x=l=>{var y;if(n.isPressed&&n.target&&le(l,n.target)){var s;Ne(l.target,l.key)&&l.preventDefault();let a=l.target;w(A(n.target,l),"keyboard",n.target.contains(a)),N(),l.key!=="Enter"&&ae(n.target)&&n.target.contains(a)&&!l[xe]&&(l[xe]=!0,R(n.target,l,!1)),n.isPressed=!1,(s=n.metaKeyEvents)===null||s===void 0||s.delete(l.key)}else if(l.key==="Meta"&&(!((y=n.metaKeyEvents)===null||y===void 0)&&y.size)){var g;let a=n.metaKeyEvents;n.metaKeyEvents=void 0;for(let K of a.values())(g=n.target)===null||g===void 0||g.dispatchEvent(new KeyboardEvent("keyup",K))}};if(typeof PointerEvent<"u"){f.onPointerDown=a=>{if(a.button!==0||!a.currentTarget.contains(a.target))return;if(et(a.nativeEvent)){n.pointerType="virtual";return}ue(a.currentTarget)&&a.preventDefault(),n.pointerType=a.pointerType;let K=!0;n.isPressed||(n.isPressed=!0,n.isOverTarget=!0,n.activePointerId=a.pointerId,n.target=a.currentTarget,!u&&!m&&Y(a.currentTarget),b||Ee(n.target),K=P(a,n.pointerType),E(I(a.currentTarget),"pointermove",l,!1),E(I(a.currentTarget),"pointerup",y,!1),E(I(a.currentTarget),"pointercancel",g,!1)),K&&a.stopPropagation()},f.onMouseDown=a=>{a.currentTarget.contains(a.target)&&a.button===0&&(ue(a.currentTarget)&&a.preventDefault(),a.stopPropagation())},f.onPointerUp=a=>{!a.currentTarget.contains(a.target)||n.pointerType==="virtual"||a.button===0&&H(a,a.currentTarget)&&C(a,n.pointerType||a.pointerType)};let l=a=>{a.pointerId===n.activePointerId&&(n.target&&H(a,n.target)?!n.isOverTarget&&n.pointerType!=null&&(n.isOverTarget=!0,P(A(n.target,a),n.pointerType)):n.target&&n.isOverTarget&&n.pointerType!=null&&(n.isOverTarget=!1,w(A(n.target,a),n.pointerType,!1),V(a)))},y=a=>{a.pointerId===n.activePointerId&&n.isPressed&&a.button===0&&n.target&&(H(a,n.target)&&n.pointerType!=null?w(A(n.target,a),n.pointerType):n.isOverTarget&&n.pointerType!=null&&w(A(n.target,a),n.pointerType,!1),n.isPressed=!1,n.isOverTarget=!1,n.activePointerId=null,n.pointerType=null,N(),b||Q(n.target),"ontouchend"in n.target&&a.pointerType!=="mouse"&&E(n.target,"touchend",s,{once:!0}))},s=a=>{Oe(a.target)&&a.preventDefault()},g=a=>{D(a)};f.onDragStart=a=>{a.currentTarget.contains(a.target)&&D(a)}}else{f.onMouseDown=s=>{if(s.button!==0||!s.currentTarget.contains(s.target))return;if(ue(s.currentTarget)&&s.preventDefault(),n.ignoreEmulatedMouseEvents){s.stopPropagation();return}n.isPressed=!0,n.isOverTarget=!0,n.target=s.currentTarget,n.pointerType=Te(s.nativeEvent)?"virtual":"mouse",!u&&!m&&Y(s.currentTarget),P(s,n.pointerType)&&s.stopPropagation(),E(I(s.currentTarget),"mouseup",l,!1)},f.onMouseEnter=s=>{if(!s.currentTarget.contains(s.target))return;let g=!0;n.isPressed&&!n.ignoreEmulatedMouseEvents&&n.pointerType!=null&&(n.isOverTarget=!0,g=P(s,n.pointerType)),g&&s.stopPropagation()},f.onMouseLeave=s=>{if(!s.currentTarget.contains(s.target))return;let g=!0;n.isPressed&&!n.ignoreEmulatedMouseEvents&&n.pointerType!=null&&(n.isOverTarget=!1,g=w(s,n.pointerType,!1),V(s)),g&&s.stopPropagation()},f.onMouseUp=s=>{s.currentTarget.contains(s.target)&&!n.ignoreEmulatedMouseEvents&&s.button===0&&C(s,n.pointerType||"mouse")};let l=s=>{if(s.button===0){if(n.isPressed=!1,N(),n.ignoreEmulatedMouseEvents){n.ignoreEmulatedMouseEvents=!1;return}n.target&&H(s,n.target)&&n.pointerType!=null?w(A(n.target,s),n.pointerType):n.target&&n.isOverTarget&&n.pointerType!=null&&w(A(n.target,s),n.pointerType,!1),n.isOverTarget=!1}};f.onTouchStart=s=>{if(!s.currentTarget.contains(s.target))return;let g=lt(s.nativeEvent);if(!g)return;n.activePointerId=g.identifier,n.ignoreEmulatedMouseEvents=!0,n.isOverTarget=!0,n.isPressed=!0,n.target=s.currentTarget,n.pointerType="touch",!u&&!m&&Y(s.currentTarget),b||Ee(n.target),P(M(n.target,s),n.pointerType)&&s.stopPropagation(),E(oe(s.currentTarget),"scroll",y,!0)},f.onTouchMove=s=>{if(!s.currentTarget.contains(s.target))return;if(!n.isPressed){s.stopPropagation();return}let g=Se(s.nativeEvent,n.activePointerId),a=!0;g&&H(g,s.currentTarget)?!n.isOverTarget&&n.pointerType!=null&&(n.isOverTarget=!0,a=P(M(n.target,s),n.pointerType)):n.isOverTarget&&n.pointerType!=null&&(n.isOverTarget=!1,a=w(M(n.target,s),n.pointerType,!1),V(M(n.target,s))),a&&s.stopPropagation()},f.onTouchEnd=s=>{if(!s.currentTarget.contains(s.target))return;if(!n.isPressed){s.stopPropagation();return}let g=Se(s.nativeEvent,n.activePointerId),a=!0;g&&H(g,s.currentTarget)&&n.pointerType!=null?(C(M(n.target,s),n.pointerType),a=w(M(n.target,s),n.pointerType)):n.isOverTarget&&n.pointerType!=null&&(a=w(M(n.target,s),n.pointerType,!1)),a&&s.stopPropagation(),n.isPressed=!1,n.activePointerId=null,n.isOverTarget=!1,n.ignoreEmulatedMouseEvents=!0,n.target&&!b&&Q(n.target),N()},f.onTouchCancel=s=>{s.currentTarget.contains(s.target)&&(s.stopPropagation(),n.isPressed&&D(M(n.target,s)))};let y=s=>{n.isPressed&&s.target.contains(n.target)&&D({currentTarget:n.target,shiftKey:!1,ctrlKey:!1,metaKey:!1,altKey:!1})};f.onDragStart=s=>{s.currentTarget.contains(s.target)&&D(s)}}return f},[E,u,m,N,b,D,V,w,P,C]);return v.useEffect(()=>()=>{var n;b||Q((n=T.current.target)!==null&&n!==void 0?n:void 0)},[b]),{isPressed:p||_,pressProps:j(S,fe)}}function ae(e){return e.tagName==="A"&&e.hasAttribute("href")}function le(e,t){const{key:r,code:o}=e,i=t,d=i.getAttribute("role");return(r==="Enter"||r===" "||r==="Spacebar"||o==="Space")&&!(i instanceof oe(i).HTMLInputElement&&!De(i,r)||i instanceof oe(i).HTMLTextAreaElement||i.isContentEditable)&&!((d==="link"||!d&&ae(i))&&r!=="Enter")}function lt(e){const{targetTouches:t}=e;return t.length>0?t[0]:null}function Se(e,t){const r=e.changedTouches;for(let o=0;o<r.length;o++){const i=r[o];if(i.identifier===t)return i}return null}function M(e,t){let r=0,o=0;return t.targetTouches&&t.targetTouches.length===1&&(r=t.targetTouches[0].clientX,o=t.targetTouches[0].clientY),{currentTarget:e,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,metaKey:t.metaKey,altKey:t.altKey,clientX:r,clientY:o}}function A(e,t){let r=t.clientX,o=t.clientY;return{currentTarget:e,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,metaKey:t.metaKey,altKey:t.altKey,clientX:r,clientY:o}}function ut(e){let t=0,r=0;return e.width!==void 0?t=e.width/2:e.radiusX!==void 0&&(t=e.radiusX),e.height!==void 0?r=e.height/2:e.radiusY!==void 0&&(r=e.radiusY),{top:e.clientY-r,right:e.clientX+t,bottom:e.clientY+r,left:e.clientX-t}}function ct(e,t){return!(e.left>t.right||t.left>e.right||e.top>t.bottom||t.top>e.bottom)}function H(e,t){let r=t.getBoundingClientRect(),o=ut(e);return ct(r,o)}function ue(e){return!(e instanceof HTMLElement)||!e.hasAttribute("draggable")}function Oe(e){return e instanceof HTMLInputElement?!1:e instanceof HTMLButtonElement?e.type!=="submit"&&e.type!=="reset":!ae(e)}function Ne(e,t){return e instanceof HTMLInputElement?!De(e,t):Oe(e)}const dt=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function De(e,t){return e.type==="checkbox"||e.type==="radio"?t===" ":dt.has(e.type)}let te=!1,ce=0;function de(){te=!0,setTimeout(()=>{te=!1},50)}function Ce(e){e.pointerType==="touch"&&de()}function pt(){if(!(typeof document>"u"))return typeof PointerEvent<"u"?document.addEventListener("pointerup",Ce):document.addEventListener("touchend",de),ce++,()=>{ce--,!(ce>0)&&(typeof PointerEvent<"u"?document.removeEventListener("pointerup",Ce):document.removeEventListener("touchend",de))}}function ft(e){let{onHoverStart:t,onHoverChange:r,onHoverEnd:o,isDisabled:i}=e,[d,u]=v.useState(!1),p=v.useRef({isHovered:!1,ignoreEmulatedMouseEvents:!1,pointerType:"",target:null}).current;v.useEffect(pt,[]);let{hoverProps:m,triggerHoverEnd:h}=v.useMemo(()=>{let b=(_,$)=>{if(p.pointerType=$,i||$==="touch"||p.isHovered||!_.currentTarget.contains(_.target))return;p.isHovered=!0;let T=_.currentTarget;p.target=T,t&&t({type:"hoverstart",target:T,pointerType:$}),r&&r(!0),u(!0)},B=(_,$)=>{if(p.pointerType="",p.target=null,$==="touch"||!p.isHovered)return;p.isHovered=!1;let T=_.currentTarget;o&&o({type:"hoverend",target:T,pointerType:$}),r&&r(!1),u(!1)},S={};return typeof PointerEvent<"u"?(S.onPointerEnter=_=>{te&&_.pointerType==="mouse"||b(_,_.pointerType)},S.onPointerLeave=_=>{!i&&_.currentTarget.contains(_.target)&&B(_,_.pointerType)}):(S.onTouchStart=()=>{p.ignoreEmulatedMouseEvents=!0},S.onMouseEnter=_=>{!p.ignoreEmulatedMouseEvents&&!te&&b(_,"mouse"),p.ignoreEmulatedMouseEvents=!1},S.onMouseLeave=_=>{!i&&_.currentTarget.contains(_.target)&&B(_,"mouse")}),{hoverProps:S,triggerHoverEnd:B}},[t,r,o,i,p]);return v.useEffect(()=>{i&&h({currentTarget:p.target},p.pointerType)},[i]),{hoverProps:m,isHovered:d}}function mt(e,t){let{elementType:r="button",isDisabled:o,onPress:i,onPressStart:d,onPressEnd:u,onPressUp:p,onPressChange:m,preventFocusOnPress:h,allowFocusWhenDisabled:b,onClick:B,href:S,target:_,rel:$,type:T="button"}=e,E;r==="button"?E={type:T,disabled:o}:E={role:"button",tabIndex:o?void 0:0,href:r==="a"&&o?void 0:S,target:r==="a"?_:void 0,type:r==="input"?T:void 0,disabled:r==="input"?o:void 0,"aria-disabled":!o||r==="input"?void 0:o,rel:r==="a"?$:void 0};let{pressProps:N,isPressed:P}=at({onPressStart:d,onPressEnd:u,onPressChange:m,onPress:i,onPressUp:p,isDisabled:o,preventFocusOnPress:h,ref:t}),{focusableProps:w}=me.useFocusable(e,t);b&&(w.tabIndex=o?-1:w.tabIndex);let C=j(w,N,Ge(e,{labelable:!0}));return{isPressed:P,buttonProps:j(E,C,{"aria-haspopup":e["aria-haspopup"],"aria-expanded":e["aria-expanded"],"aria-controls":e["aria-controls"],"aria-pressed":e["aria-pressed"],onClick:D=>{B&&(B(D),console.warn("onClick is deprecated, please use onPress"))}})}}function _t(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ae(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,o)}return r}function Ke(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ae(Object(r),!0).forEach(function(o){_t(e,o,r[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ae(Object(r)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(r,o))})}return e}var bt=(e,t,r)=>{for(var o of Object.keys(e)){var i;if(e[o]!==((i=t[o])!==null&&i!==void 0?i:r[o]))return!1}return!0},ne=e=>t=>{var r=e.defaultClassName,o=Ke(Ke({},e.defaultVariants),t);for(var i in o){var d,u=(d=o[i])!==null&&d!==void 0?d:e.defaultVariants[i];if(u!=null){var p=u;typeof p=="boolean"&&(p=p===!0?"true":"false");var m=e.variantClassNames[i][p];m&&(r+=" "+m)}}for(var[h,b]of e.compoundVariants)bt(h,o,e.defaultVariants)&&(r+=" "+b);return r},gt=ne({defaultClassName:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy0",variantClassNames:{disabled:{true:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy1",false:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy2"},kind:{default:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy3",link:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy4",confirm:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy5",delete:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy6",key:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy7",icon:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy8"},spinning:{true:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy9",false:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxya"}},defaultVariants:{disabled:!1,kind:"default",spinning:!1},compoundVariants:[[{kind:"icon",spinning:!0},"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyb"],[{kind:"default",spinning:!0},"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyc"],[{kind:"confirm",spinning:!0},"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyd"],[{kind:"delete",spinning:!0},"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxye"],[{kind:"key",spinning:!0},"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyf"],[{disabled:!0,spinning:!1},"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyg"],[{kind:"link",disabled:!0},"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyh"]]}),vt=ne({defaultClassName:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyi",variantClassNames:{disabled:{true:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyj",false:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyk"},kind:{icon:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyl",default:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxym",delete:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyn",key:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyo",confirm:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyp",link:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyq"},spinning:{true:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyr",false:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxys"}},defaultVariants:{disabled:!1,kind:"default",spinning:!1},compoundVariants:[]}),ht=ne({defaultClassName:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyt",variantClassNames:{spinning:{true:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyu",false:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyv"},kind:{icon:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyw",default:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyx",delete:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyy",key:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyz",confirm:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy10",link:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy11"}},defaultVariants:{spinning:!1},compoundVariants:[]}),yt="pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy12",kt=ne({defaultClassName:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy13",variantClassNames:{spinning:{true:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy14",false:"pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy15"}},defaultVariants:{spinning:!1},compoundVariants:[]});const pe=c.forwardRef(({as:e,onClick:t,onPress:r,children:o,className:i,isDisabled:d,disabled:u,href:p,icon:m,kind:h="default",spinning:b,spinningTitle:B,title:S,..._},$)=>{const T=e??(p?"a":"button"),E={onPress:r??t,isDisabled:u??d??b,..._},{"data-testid":N}=_,P=c.useRef(null),w=$||P,{buttonProps:C}=mt(E,w),{hoverProps:D}=ft({isDisabled:E.isDisabled}),{type:V,...fe}=C,n={...j(fe,D),ref:w,title:S,className:p?ht({spinning:b,kind:h}):vt({disabled:d||u,kind:h,spinning:b}),...p?{href:p}:{type:V},..._},{t:f}=c.useContext(G.I18nContext),x=m&&c.createElement(G.Icon,{className:yt,icon:m,"aria-hidden":"true","data-testid":`${N}__${m}-icon`});let l;h==="default"||h==="icon"||h==="link"?l="dark":l="light";const y=b&&c.createElement(G.Spinner,{color:l,className:kt({spinning:b}),title:B||f("design-system:button.spinningTitle",{defaultValue:"Loading..."}),"data-testid":`${N}__spinner`});return c.createElement(me.FocusRing,null,c.createElement("div",{className:G.cl(gt({disabled:d||u,kind:h,spinning:b}),i)},c.createElement(T,{...n},x,o?c.createElement("span",null,o):"",y)))});G.Metadata.set(pe,{name:"Button",props:{disabled:"boolean",href:"string",icon:"IconName",kind:{type:'"default" | "link" | "icon" | "confirm" | "delete" | "key"',default:'"default"'},spinning:"boolean",spinningTitle:"string",type:{type:'"button" | "submit"',default:'"button"'},as:"button | a",onClick:"() => void",onPress:"() => void",children:"ReactNode",className:"string",isDisabled:"boolean",style:"CSSProperties"},panellable:!0});const wt={Buttons:{components:[pe],description:()=>c.createElement(c.Fragment,null,c.createElement("div",{className:"sps-body-14"},"Buttons are used to initiate events or actions. The labels and/or icons describe what the button will do."),c.createElement("br",null),c.createElement("h5",null,"Variants"),c.createElement("div",{className:"sps-body-14"},c.createElement("span",{className:"sps-text-semibold"},"Default: "),"For tertiary actions or actions of lower importance on a page."),c.createElement("div",{className:"sps-body-14"},c.createElement("span",{className:"sps-text-semibold"},"Key: "),"For primary or important actions on a page."),c.createElement("div",{className:"sps-body-14"},c.createElement("span",{className:"sps-text-semibold"},"Confirm: "),"For the main call to action on a page. There should only be one Confirm button per screen."),c.createElement("div",{className:"sps-body-14"},c.createElement("span",{className:"sps-text-semibold"},"Delete: "),"For deleting information or another destructive action. These should always be paired with a Delete Confirmation Modal."),c.createElement("div",{className:"sps-body-14"},c.createElement("span",{className:"sps-text-semibold"},"Disabled: "),"For actions that are not permitted in a particular state. These can be accompanied by a Tooltip on hover describing why it’s disabled."),c.createElement("div",{className:"sps-body-14"},c.createElement("span",{className:"sps-text-semibold"},"With an Icon: "),"For further illustrating the action. Example: Pencil icon in an Edit button. There can also be Icon Buttons without text.")),examples:{basic:{label:"Basic Buttons",description:({NavigateTo:e})=>c.createElement(c.Fragment,null,c.createElement("p",null,"The most common type of button that can be used in most cases. Example: Basic Buttons in a ",c.createElement(e,{to:"modals"},"Modal"),".")),examples:{withoutIcons:{description:"Without Icons",react:k.code`
|
2
2
|
import { Button } from "@sps-woodland/buttons";
|
3
3
|
import { sprinkles } from "@sps-woodland/tokens";
|
4
4
|
|
@@ -165,23 +165,26 @@
|
|
165
165
|
function Component() {
|
166
166
|
return (
|
167
167
|
<>
|
168
|
-
<SpsSplitButton className="mr-1 mb-1" label="Default" />
|
168
|
+
<SpsSplitButton className="mr-1 mb-1" label="Default" options={[[{ label: "Option A" }, () => console.log("Option A")]]} />
|
169
169
|
<SpsSplitButton
|
170
170
|
className="mr-1 mb-1"
|
171
171
|
kind={ButtonKind.KEY}
|
172
172
|
label="Key"
|
173
|
+
options={[[{ label: "Option A" }, () => console.log("Option A")]]}
|
173
174
|
/>
|
174
175
|
<SpsSplitButton
|
175
176
|
className="mr-1 mb-1"
|
176
177
|
kind={ButtonKind.CONFIRM}
|
177
178
|
label="Confirm"
|
179
|
+
options={[[{ label: "Option A" }, () => console.log("Option A")]]}
|
178
180
|
/>
|
179
181
|
<SpsSplitButton
|
180
182
|
className="mr-1 mb-1"
|
181
183
|
kind={ButtonKind.DELETE}
|
182
184
|
label="Delete"
|
185
|
+
options={[[{ label: "Option A" }, () => console.log("Option A")]]}
|
183
186
|
/>
|
184
|
-
<SpsSplitButton className="mr-1 mb-1" disabled label="Disabled" />
|
187
|
+
<SpsSplitButton className="mr-1 mb-1" options={[[{ label: "Option A" }, () => console.log("Option A")]]} disabled label="Disabled" />
|
185
188
|
</>
|
186
189
|
)
|
187
190
|
}
|
@@ -195,30 +198,35 @@
|
|
195
198
|
className="mr-1 mb-1"
|
196
199
|
icon={SpsIcon.PLUS_SIGN}
|
197
200
|
label="Default"
|
201
|
+
options={[[{ label: "Option A" }, () => console.log("Option A")]]}
|
198
202
|
/>
|
199
203
|
<SpsSplitButton
|
200
204
|
className="mr-1 mb-1"
|
201
205
|
icon={SpsIcon.PLUS_SIGN}
|
202
206
|
kind={ButtonKind.KEY}
|
203
207
|
label="Key"
|
208
|
+
options={[[{ label: "Option A" }, () => console.log("Option A")]]}
|
204
209
|
/>
|
205
210
|
<SpsSplitButton
|
206
211
|
className="mr-1 mb-1"
|
207
212
|
icon={SpsIcon.PLUS_SIGN}
|
208
213
|
kind={ButtonKind.CONFIRM}
|
209
214
|
label="Confirm"
|
215
|
+
options={[[{ label: "Option A" }, () => console.log("Option A")]]}
|
210
216
|
/>
|
211
217
|
<SpsSplitButton
|
212
218
|
className="mr-1 mb-1"
|
213
219
|
icon={SpsIcon.PLUS_SIGN}
|
214
220
|
kind={ButtonKind.DELETE}
|
215
221
|
label="Delete"
|
222
|
+
options={[[{ label: "Option A" }, () => console.log("Option A")]]}
|
216
223
|
/>
|
217
224
|
<SpsSplitButton
|
218
225
|
className="mr-1 mb-1"
|
219
226
|
icon={SpsIcon.PLUS_SIGN}
|
220
227
|
disabled
|
221
228
|
label="Disabled"
|
229
|
+
options={[[{ label: "Option A" }, () => console.log("Option A")]]}
|
222
230
|
/>
|
223
231
|
</>
|
224
232
|
)
|
@@ -423,4 +431,4 @@
|
|
423
431
|
</>
|
424
432
|
)
|
425
433
|
}
|
426
|
-
`}}}}}};
|
434
|
+
`}}}}}};O.Button=pe,O.MANIFEST=wt,Object.defineProperty(O,Symbol.toStringTag,{value:"Module"})});
|
package/lib/style.css
CHANGED
@@ -1 +1 @@
|
|
1
|
-
.pkg_sps-
|
1
|
+
.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy0{border-width:.0625rem;border-style:solid;border-radius:.25rem;cursor:pointer;display:inline-block;font-size:.75rem;font-weight:600;line-height:.875rem;padding:0;position:relative}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy3{background:#e9e9ea;border-color:#d2d4d4;color:#4b5356}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy3:hover{background:#d2d4d4}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy4{background:none transparent;border:0;color:#027db8}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy4:hover{background:none transparent;color:#08638d;text-decoration:none}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy5{background:#027db8;border-color:#08638d;color:#fff}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy5:hover{background:#08638d}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy6{background:#de012e;border-color:#a30d2d;color:#fff}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy6:hover{background:#a30d2d}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy7{background:#4b5356;border-color:#1f282c;color:#fff}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy7:hover{background:#1f282c}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy8{background:transparent;border-color:transparent;color:#4b5356}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy8:hover{background-color:#d2d4d4;border-color:#d2d4d4}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy9{color:transparent!important;cursor:not-allowed}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyb{background:#e9e9ea;border-color:#d2d4d4}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyb:hover,.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyc:hover{background:#e9e9ea}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyd:hover{background:#027db8}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxye:hover{background:#de012e}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyf:hover{background:#4b5356}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyg{background:#fff!important;border-color:#d2d4d4!important;color:#717779!important;cursor:not-allowed}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyg:hover{background:#fff}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyh{background:none transparent!important}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyi{background:none transparent;border:0 none;color:inherit;display:block;font-size:inherit;font-weight:inherit;margin:0;text-decoration:none;padding:.5rem 1rem}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyi:hover{text-decoration:none}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyj{cursor:not-allowed!important}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyl{padding:.25rem .5rem}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyq{padding-top:.5rem;padding-bottom:.5rem;padding-right:0;padding-left:0}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyr{cursor:not-allowed!important}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyt{background:none transparent;border:0 none;color:inherit;cursor:inherit;display:block;font-size:inherit;font-weight:inherit;margin:0;padding:.5rem 1rem;text-decoration:none}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyt:hover{text-decoration:none;color:inherit}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyu{cursor:not-allowed}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxyw{padding:.25rem .5rem}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy11{padding-top:.5rem;padding-bottom:.5rem;padding-right:0;padding-left:0}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy12{line-height:0!important;position:relative}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy12:before{font-size:.875rem;line-height:0;position:relative;top:.125rem}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy12:not(:last-child){margin-right:.5rem}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy13{left:50%;margin:-.875rem -.4375rem;position:absolute}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy14{cursor:not-allowed;display:inline}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy15{display:none}.pkg_sps-woodland_buttons__version_8_29_2__hash_125pcxy13>i{border-width:.125rem;height:.875rem;width:.875rem}
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@sps-woodland/buttons",
|
3
3
|
"description": "SPS Woodland Design System button components",
|
4
|
-
"version": "8.29.
|
4
|
+
"version": "8.29.2",
|
5
5
|
"author": "SPS Commerce",
|
6
6
|
"license": "UNLICENSED",
|
7
7
|
"repository": "https://github.com/SPSCommerce/woodland/tree/main/packages/@sps-woodland/buttons",
|
@@ -30,8 +30,8 @@
|
|
30
30
|
"@spscommerce/utils": "^7.0.0",
|
31
31
|
"react": "^16.9.0",
|
32
32
|
"react-dom": "^16.9.0",
|
33
|
-
"@sps-woodland/core": "8.29.
|
34
|
-
"@sps-woodland/tokens": "8.29.
|
33
|
+
"@sps-woodland/core": "8.29.2",
|
34
|
+
"@sps-woodland/tokens": "8.29.2"
|
35
35
|
},
|
36
36
|
"devDependencies": {
|
37
37
|
"@react-aria/button": "^3.3.5",
|
@@ -42,8 +42,8 @@
|
|
42
42
|
"@vanilla-extract/recipes": "^0.2.5",
|
43
43
|
"react": "^16.9.0",
|
44
44
|
"react-dom": "^16.9.0",
|
45
|
-
"@sps-woodland/core": "8.29.
|
46
|
-
"@sps-woodland/tokens": "8.29.
|
45
|
+
"@sps-woodland/core": "8.29.2",
|
46
|
+
"@sps-woodland/tokens": "8.29.2"
|
47
47
|
},
|
48
48
|
"dependencies": {
|
49
49
|
"@react-aria/button": "^3.7.0",
|