@achs/webkit
Version:
Conjunto de componentes de UI con el estilo del Sistema de Diseño ACHS (Asociación Chilena de Seguridad), para reutilizar de forma transversal en las aplicaciones web de ACHS. Construido con **React 19**, **TypeScript** y **Vite**, con soporte para las
57 lines (56 loc) • 1.41 kB
JavaScript
import { jsxs as N, jsx as o } from "react/jsx-runtime";
import a from "./LoadingDots.module.scss.mjs";
const A = ({
size: n = 8,
color: e,
// si viene, domina sobre el tema
themeColor: d = "primary",
dotCount: i = 3,
gap: p = 6,
duration: r = 900,
amplitude: m = 6,
ariaLabel: s = "Cargando…",
inline: c = !0,
muted: y = !1,
className: u,
style: f,
...h
}) => {
const t = Math.max(1, Math.floor(i)), x = Array.from({ length: t }, (g, l) => `${l * r / t}ms`), $ = {
"--ld-size": `${n}px`,
"--ld-gap": `${p}px`,
"--ld-duration": `${r}ms`,
"--ld-amplitude": `${m}px`,
// si el caller pasa `color`, pisa el valor temático
...e ? { "--ld-color": e } : null,
...f
};
return /* @__PURE__ */ N(
"div",
{
className: [
a.wrapper,
c ? a.inline : "",
y ? a.muted : "",
u || ""
].filter(Boolean).join(" "),
role: "status",
"aria-live": "polite",
"aria-label": s,
style: $,
"data-color": d,
...h,
children: [
Array.from({ length: t }).map((g, l) => {
const j = { "--ld-delay": x[l] };
return /* @__PURE__ */ o("span", { className: a.dot, style: j, "aria-hidden": "true" }, `dot-${l}`);
}),
/* @__PURE__ */ o("span", { className: a.srOnly, children: s })
]
}
);
};
export {
A as LoadingDots,
A as default
};