UNPKG

@hoosei/voxweave-react

Version:

A customizable and interactive voice UI component for React applications

101 lines (100 loc) 2.38 kB
var p = "-"; function h(r) { var t = C(r), e = r.conflictingClassGroups, n = r.conflictingClassGroupModifiers, u = n === void 0 ? {} : n; function i(o) { var s = o.split(p); return s[0] === "" && s.length !== 1 && s.shift(), d(s, t) || g(o); } function a(o, s) { var f = e[o] || []; return s && u[o] ? [].concat(f, u[o]) : f; } return { getClassGroupId: i, getConflictingClassGroupIds: a }; } function d(r, t) { if (r.length === 0) return t.classGroupId; var e = r[0], n = t.nextPart.get(e), u = n ? d(r.slice(1), n) : void 0; if (u) return u; if (t.validators.length !== 0) { var i = r.join(p); return t.validators.find(function(a) { var o = a.validator; return o(i); })?.classGroupId; } } var c = /^\[(.+)\]$/; function g(r) { if (c.test(r)) { var t = c.exec(r)[1], e = t?.substring(0, t.indexOf(":")); if (e) return "arbitrary.." + e; } } function C(r) { var t = r.theme, e = r.prefix, n = { nextPart: /* @__PURE__ */ new Map(), validators: [] }, u = x(Object.entries(r.classGroups), e); return u.forEach(function(i) { var a = i[0], o = i[1]; v(o, n, a, t); }), n; } function v(r, t, e, n) { r.forEach(function(u) { if (typeof u == "string") { var i = u === "" ? t : l(t, u); i.classGroupId = e; return; } if (typeof u == "function") { if (G(u)) { v(u(n), t, e, n); return; } t.validators.push({ validator: u, classGroupId: e }); return; } Object.entries(u).forEach(function(a) { var o = a[0], s = a[1]; v(s, l(t, o), e, n); }); }); } function l(r, t) { var e = r; return t.split(p).forEach(function(n) { e.nextPart.has(n) || e.nextPart.set(n, { nextPart: /* @__PURE__ */ new Map(), validators: [] }), e = e.nextPart.get(n); }), e; } function G(r) { return r.isThemeGetter; } function x(r, t) { return t ? r.map(function(e) { var n = e[0], u = e[1], i = u.map(function(a) { return typeof a == "string" ? t + a : typeof a == "object" ? Object.fromEntries(Object.entries(a).map(function(o) { var s = o[0], f = o[1]; return [t + s, f]; })) : a; }); return [n, i]; }) : r; } export { C as createClassMap, h as createClassUtils }; //# sourceMappingURL=index72.js.map