/** Ensures a number stays within a minimum and maximum value */ export function clamp(value: number, min: number, max: number) { const noNegativeZero = (n: number) => (Object.is(n, -0) ? 0 : n); if (value < min) { return noNegativeZero(min); } if (value > max) { return noNegativeZero(max); } return noNegativeZero(value); }