UNPKG

@stihl-design-system/components

Version:

Welcome to the STIHL Design System react component library.

187 lines (186 loc) 7.43 kB
"use client"; import { jsxs as re, jsx as te } from "react/jsx-runtime"; import { useState as Y, useRef as le, useEffect as U, createElement as ce } from "react"; import { d as ae } from "./chunks/index.CgTHIF3K.js"; import { c as se } from "./chunks/index.CEyLAtio.js"; import { u as de } from "./chunks/useBreakpoint.CMOR9ZOB.js"; import { g as ue } from "./chunks/AriaLiveRegions.utils.zSFFD3SF.js"; import { v as fe, e as me, a as he } from "./chunks/Chip.CHy8cZJz.js"; import './assets/chipgroup.BGxjdSDX.css';const pe = "ds-chip-group_label--hidden_3zmt2_1", ge = "ds-chip-group_root_3zmt2_14", ne = { labelHidden: pe, root: ge }, $e = (a) => { const e = ae.c(59); let m, b, h, g, r, v, S, D, E, L, I, y; e[0] !== a ? ({ chips: m, id: h, label: g, className: b, hideLabel: S, isRemovable: D, lang: E, selectionMode: L, size: I, translations: y, onChipsChange: r, ...v } = a, e[0] = a, e[1] = m, e[2] = b, e[3] = h, e[4] = g, e[5] = r, e[6] = v, e[7] = S, e[8] = D, e[9] = E, e[10] = L, e[11] = I, e[12] = y) : (m = e[1], b = e[2], h = e[3], g = e[4], r = e[5], v = e[6], S = e[7], D = e[8], E = e[9], L = e[10], I = e[11], y = e[12]); const ie = S === void 0 ? !1 : S, d = D === void 0 ? !1 : D, q = E === void 0 ? "en" : E, u = L === void 0 ? "single" : L, x = I === void 0 ? "medium" : I; process.env.NODE_ENV !== "production" && fe({ chips: m, id: h, label: g }); const [t, w] = Y(null), [n, $] = Y(m), Z = le(null), [c, J] = Y(); let N; e[13] === Symbol.for("react.memo_cache_sentinel") ? (N = [], e[13] = N) : N = e[13]; const A = le(N); let R, _; e[14] !== m ? (R = () => { $(m); }, _ = [m], e[14] = m, e[15] = R, e[16] = _) : (R = e[15], _ = e[16]), U(R, _); let M, T; e[17] === Symbol.for("react.memo_cache_sentinel") ? (T = () => { he(); const i = () => J("keydown"), o = () => J(null), p = () => J(null); return document.addEventListener("keydown", i), document.addEventListener("mousedown", o), document.addEventListener("touchstart", p), () => { document.removeEventListener("keydown", i), document.removeEventListener("mousedown", o), document.removeEventListener("touchstart", p); }; }, M = [], e[17] = M, e[18] = T) : (M = e[17], T = e[18]), U(T, M); let z; e[19] !== t || e[20] !== c ? (z = () => { var i; t !== null && A.current[t] && c === "keydown" && ((i = A.current[t]) == null || i.focus()); }, e[19] = t, e[20] = c, e[21] = z) : z = e[21]; let B; e[22] !== t ? (B = [t], e[22] = t, e[23] = B) : B = e[23], U(z, B); let F; e[24] !== n.length || e[25] !== t || e[26] !== c ? (F = () => { c === "keydown" && t !== null && n.length > 0 && A.current.forEach((i, o) => { i && (i.tabIndex = o === t ? 0 : -1, o === t && i.focus()); }); }, e[24] = n.length, e[25] = t, e[26] = c, e[27] = F) : F = e[27]; let G; e[28] !== n ? (G = [n], e[28] = n, e[29] = G) : G = e[29], U(F, G); let k, C; if (e[30] !== n || e[31] !== t || e[32] !== c || e[33] !== d || e[34] !== r || e[35] !== u) { C = (l) => { if (t === null) return; let s = t; e: switch (l.key) { case "a": { (l.metaKey || l.ctrlKey) && (l.preventDefault(), i()); break e; } case "ArrowRight": case "ArrowDown": { l.shiftKey && u === "multiple" && !d ? (s = t + 1 > n.length - 1 ? n.length - 1 : t + 1, t !== s ? (o(t), o(s)) : n[t].isSelected || o(t)) : (s = (t + 1) % n.length, l.preventDefault()); break e; } case "ArrowLeft": case "ArrowUp": { l.shiftKey && u === "multiple" && !d ? (s = t - 1 < 0 ? 0 : t - 1, t !== s ? (o(t), o(s)) : n[0].isSelected || o(0)) : (s = (t - 1 + n.length) % n.length, l.preventDefault()); break e; } case "Enter": case " ": { if (l.preventDefault(), d) { X(s); return; } else p(s); break e; } case "Backspace": { d && X(s), l.preventDefault(); return; } default: return; } w(s); }; const i = () => { if (u !== "multiple") return; const l = n.map(be); $(l), K(`${l.length} items selected`), r && r(l); }, o = (l) => { if (d) return; const s = [...n]; s[l].disabled || (s[l].isSelected = !0, K(`${s[l].label} selected, ${s.filter(ve).length} items selected`), $(s), r && r(s)); }, p = (l) => { if (d) return; const s = [...n]; s[l].disabled || (u === "single" ? s.forEach((f, O) => { O === l ? (f.isSelected = !f.isSelected, K(`${f.label} ${f.isSelected ? "selected" : "not selected"}`)) : f.isSelected = !1; }) : u === "multiple" && (s[l].isSelected = !s[l].isSelected, K(`${s[l].label} ${s[l].isSelected ? "selected" : "not selected"}, ${s.filter(ye).length} items selected`)), $(s), r && r(s)); }, X = (l) => { var O; const s = n[l], f = n.filter((ee, oe) => oe !== l); if ($(f), K(`${s.label} removed, ${f.length} items remaining`), c === "keydown") if (f.length > 0) { const ee = Math.min(l, f.length - 1); w(ee); } else (O = Z.current) == null || O.focus(), w(null); r && r(f); }; k = (l) => { d ? X(l) : n[l].disabled || p(l); }; const K = we; e[30] = n, e[31] = t, e[32] = c, e[33] = d, e[34] = r, e[35] = u, e[36] = k, e[37] = C; } else k = e[36], C = e[37]; let H; e[38] !== t ? (H = (i) => t === null || t === i ? 0 : -1, e[38] = t, e[39] = H) : H = e[39]; const P = H, Q = de(ie); let V; e[40] !== b ? (V = se(ne.root, b), e[40] = b, e[41] = V) : V = e[41]; const W = V; let j; return e[42] !== n || e[43] !== t || e[44] !== P || e[45] !== k || e[46] !== C || e[47] !== Q || e[48] !== h || e[49] !== c || e[50] !== d || e[51] !== g || e[52] !== q || e[53] !== v || e[54] !== W || e[55] !== u || e[56] !== x || e[57] !== y ? (j = n.length === 0 ? null : /* @__PURE__ */ re("div", { children: [ /* @__PURE__ */ te("div", { id: h, className: se({ [ne.labelHidden]: Q }), children: g }), n.length > 0 && /* @__PURE__ */ te("div", { ref: Z, role: "grid", "aria-labelledby": h, "aria-multiselectable": u === "multiple", tabIndex: -1, onKeyDown: C, onFocus: () => { t === null ? (A.current[0].focus(), c === "keydown" && w(0)) : c === "keydown" && w(t); }, onBlur: () => w(null), className: W, ...v, children: n.map((i, o) => /* @__PURE__ */ ce(me, { ...i, key: `${i.id}-${o}`, groupId: h, tabIndex: P(o), onClick: (p) => { k(o), i.onClick && i.onClick(p); }, "data-focused": t === o, isRemovable: d, lang: q, selectionMode: u, size: x, translations: y, ref: (p) => { A.current[o] = p; } })) }) ] }), e[42] = n, e[43] = t, e[44] = P, e[45] = k, e[46] = C, e[47] = Q, e[48] = h, e[49] = c, e[50] = d, e[51] = g, e[52] = q, e[53] = v, e[54] = W, e[55] = u, e[56] = x, e[57] = y, e[58] = j) : j = e[58], j; }; function be(a) { return { ...a, selected: !a.disabled }; } function ve(a) { const { isSelected: e } = a; return e; } function ye(a) { const { isSelected: e } = a; return e; } function we(a) { const e = ue(); e && (e.innerText = a, setTimeout(() => { e.innerText = ""; }, 350)); } export { $e as DSChipGroup };