/** * Svelte action that applies single-line text truncation to an element * @param {HTMLElement} node * @param {{ clamp?: "end" | "front" }} params * @example * * *

...

*

...

*/ export function truncate(node, params = {}) { const prefix = "bx--text-truncate--"; function toggleClass(front = false) { const classes = [...node.classList] .filter((name) => !name.startsWith(prefix)) .join(" "); node.className = `${classes} ${prefix}${front ? "front" : "end"}`; } toggleClass(params.clamp === "front"); return { update(params) { toggleClass(params.clamp === "front"); }, }; }