@charcuterie/ui 3.8.0 → 3.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,85 @@
1
+ import type { IntentName } from "@charcuterie/tokens";
2
+ import type { ComponentPropsWithRef, ReactNode } from "react";
3
+ export type SliderSize = "lg" | "md" | "sm";
4
+ export type SliderProps = Omit<ComponentPropsWithRef<"div">, "children" | "defaultValue" | "onChange"> & {
5
+ intent?: IntentName;
6
+ isDisabled?: boolean;
7
+ isLabelVisible?: boolean;
8
+ /**
9
+ * Read-only in the `aria-readonly` sense: focusable, full contrast,
10
+ * announced as unchangeable. A media scrubber for a stream with no
11
+ * seekable range is this, not `isDisabled` — the position is still
12
+ * worth reading.
13
+ */
14
+ isReadOnly?: boolean;
15
+ isValueShown?: boolean;
16
+ /** Required. A slider with no name is an unlabelled number. */
17
+ label: string;
18
+ /**
19
+ * PageUp / PageDown. Defaults to ten steps, which is the APG's
20
+ * suggestion and the only sensible answer that does not need the
21
+ * caller to know the range.
22
+ */
23
+ largeStep?: number;
24
+ max?: number;
25
+ min?: number;
26
+ /**
27
+ * Fires on every movement — each arrow key, and each pointer sample
28
+ * while dragging. Use it to paint. See `onChangeEnd` for committing.
29
+ */
30
+ onChange?: (value: number) => void;
31
+ /**
32
+ * Fires once, when the interaction ends: pointer release, or key up.
33
+ *
34
+ * This exists because the expensive consumer of a slider is almost
35
+ * never the paint. A seek scrubber that issued its network call from
36
+ * `onChange` would send one request per pointer sample and arrive at
37
+ * the right offset last, after a queue of stale ones.
38
+ */
39
+ onChangeEnd?: (value: number) => void;
40
+ size?: SliderSize;
41
+ step?: number;
42
+ value?: number;
43
+ /**
44
+ * How the value reads aloud and, when `isValueShown`, on screen.
45
+ * Without it a scrubber announces "1274", which is a number of
46
+ * seconds nobody has.
47
+ */
48
+ valueFormat?: (value: number) => string;
49
+ };
50
+ /**
51
+ * A single-value range control: the thing `<input type="range">` is,
52
+ * without the OS painting it.
53
+ *
54
+ * The fleet had no way to ask for a value along a range, so QueuePilot's
55
+ * Now-playing bar could not have a scrubber
56
+ * ([decision](../../../../docs/decisions/2026-08-22-the-slider-is-a-div-with-role-slider-not-an-input-range.md)).
57
+ * `ProgressBar` looks like the answer and is not: it is output, it takes
58
+ * no input, and `role="progressbar"` tells assistive technology exactly
59
+ * that.
60
+ *
61
+ * ## Why a `div` and not `<input type="range">`
62
+ *
63
+ * The same reason `Select` is deprecated. A range input's thumb and
64
+ * track are UA pseudo-elements — `::-webkit-slider-thumb`,
65
+ * `::-moz-range-track` — and they are not one surface: the two engines
66
+ * disagree about which of them the track's fill even belongs to, so a
67
+ * token-styled range is two stylesheets that drift. Windows paints its
68
+ * own. `role="slider"` on a focusable `div` is the APG's own pattern,
69
+ * gets the same AT support, and every pixel of it is ours.
70
+ *
71
+ * ## Drag does not commit
72
+ *
73
+ * `onChange` fires per movement, `onChangeEnd` once on release. Both are
74
+ * optional and the component is fully controlled through `value`, so a
75
+ * caller that wants the simple thing passes `onChange` alone and a
76
+ * caller with a network call behind it splits them.
77
+ *
78
+ * While dragging, the component holds the value locally and paints from
79
+ * that rather than from the `value` prop. Without it a controlled
80
+ * scrubber whose owner only commits `onChangeEnd` would render the thumb
81
+ * pinned under the finger at the old position — the drag would look
82
+ * broken while behaving correctly.
83
+ */
84
+ export declare const Slider: ({ className, intent, isDisabled, isLabelVisible, isReadOnly, isValueShown, label, largeStep, max, min, onChange, onChangeEnd, size, step, value, valueFormat, ...divProps }: SliderProps) => ReactNode;
85
+ //# sourceMappingURL=Slider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../../src/Slider/Slider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EACV,qBAAqB,EAGrB,SAAS,EACV,MAAM,OAAO,CAAA;AAgBd,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAE3C,MAAM,MAAM,WAAW,GAAG,IAAI,CAC5B,qBAAqB,CAAC,KAAK,CAAC,EAC5B,UAAU,GAAG,cAAc,GAAG,UAAU,CACzC,GAAG;IACF,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;CACxC,CAAA;AAqBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,MAAM,GAAI,6KAkBpB,WAAW,KAAG,SAyQhB,CAAA"}
@@ -0,0 +1,193 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useUniqueId } from "@charcuterie/logic";
3
+ import { useRef, useState } from "react";
4
+ import { FOCUS_RING_CLASS, INTENT_SOLID_FILL_CLASS, } from "../intentStyles.js";
5
+ import { toClassName } from "../toClassName.js";
6
+ import { VisuallyHidden } from "../VisuallyHidden/VisuallyHidden.js";
7
+ import { clampToRange, fromFraction, snapToStep, toPercent, } from "./sliderValue.js";
8
+ const TRACK_SIZE_CLASS = {
9
+ sm: "h-1",
10
+ md: "h-2",
11
+ lg: "h-3",
12
+ };
13
+ const THUMB_SIZE_CLASS = {
14
+ sm: "size-3",
15
+ md: "size-4",
16
+ lg: "size-5",
17
+ };
18
+ /** Half of each `THUMB_SIZE_CLASS`, as the inline-start pull-back. */
19
+ const THUMB_OFFSET = {
20
+ sm: "-0.375rem",
21
+ md: "-0.5rem",
22
+ lg: "-0.625rem",
23
+ };
24
+ /**
25
+ * A single-value range control: the thing `<input type="range">` is,
26
+ * without the OS painting it.
27
+ *
28
+ * The fleet had no way to ask for a value along a range, so QueuePilot's
29
+ * Now-playing bar could not have a scrubber
30
+ * ([decision](../../../../docs/decisions/2026-08-22-the-slider-is-a-div-with-role-slider-not-an-input-range.md)).
31
+ * `ProgressBar` looks like the answer and is not: it is output, it takes
32
+ * no input, and `role="progressbar"` tells assistive technology exactly
33
+ * that.
34
+ *
35
+ * ## Why a `div` and not `<input type="range">`
36
+ *
37
+ * The same reason `Select` is deprecated. A range input's thumb and
38
+ * track are UA pseudo-elements — `::-webkit-slider-thumb`,
39
+ * `::-moz-range-track` — and they are not one surface: the two engines
40
+ * disagree about which of them the track's fill even belongs to, so a
41
+ * token-styled range is two stylesheets that drift. Windows paints its
42
+ * own. `role="slider"` on a focusable `div` is the APG's own pattern,
43
+ * gets the same AT support, and every pixel of it is ours.
44
+ *
45
+ * ## Drag does not commit
46
+ *
47
+ * `onChange` fires per movement, `onChangeEnd` once on release. Both are
48
+ * optional and the component is fully controlled through `value`, so a
49
+ * caller that wants the simple thing passes `onChange` alone and a
50
+ * caller with a network call behind it splits them.
51
+ *
52
+ * While dragging, the component holds the value locally and paints from
53
+ * that rather than from the `value` prop. Without it a controlled
54
+ * scrubber whose owner only commits `onChangeEnd` would render the thumb
55
+ * pinned under the finger at the old position — the drag would look
56
+ * broken while behaving correctly.
57
+ */
58
+ export const Slider = ({ className, intent = "accent", isDisabled = false, isLabelVisible = false, isReadOnly = false, isValueShown = false, label, largeStep, max = 100, min = 0, onChange, onChangeEnd, size = "md", step = 1, value = 0, valueFormat, ...divProps }) => {
59
+ const labelId = useUniqueId();
60
+ const trackRef = useRef(null);
61
+ // Null means "not dragging" — distinct from a drag that happens to
62
+ // sit at 0, which a bare number could not express.
63
+ const [draggedValue, setDraggedValue] = useState(null);
64
+ const isInert = isDisabled || isReadOnly;
65
+ const committed = snapToStep(value, min, max, step);
66
+ const shown = draggedValue ?? committed;
67
+ const percent = toPercent(shown, min, max);
68
+ const bigStep = largeStep == null
69
+ ? (Math.max(min, max) - Math.min(min, max)) / 10
70
+ : largeStep;
71
+ const emit = (next, isEnd) => {
72
+ if (next !== shown)
73
+ onChange?.(next);
74
+ if (isEnd) {
75
+ setDraggedValue(null);
76
+ onChangeEnd?.(next);
77
+ return;
78
+ }
79
+ setDraggedValue(next);
80
+ };
81
+ /** The value the pointer at `clientX` is pointing at. */
82
+ const valueAt = (clientX) => {
83
+ const track = trackRef.current;
84
+ if (!track)
85
+ return shown;
86
+ const box = track.getBoundingClientRect();
87
+ if (box.width <= 0)
88
+ return shown;
89
+ // `left`/`right` here are physical, from the layout box, and stay
90
+ // physical on purpose — `isRtl` is what turns them into a value.
91
+ // The logical-properties rule is about `className`, not geometry.
92
+ const fraction = (clientX - box.left) / box.width;
93
+ const isRtl = getComputedStyle(track).direction === "rtl";
94
+ return fromFraction(fraction, min, max, step, isRtl);
95
+ };
96
+ const onPointerDown = (event) => {
97
+ if (isInert || event.button !== 0)
98
+ return;
99
+ // Capture on the TRACK, so a drag that leaves the element vertically
100
+ // (a thumb dragged off the bar, which is most of them) keeps
101
+ // reporting instead of stopping dead at the boundary.
102
+ event.currentTarget.setPointerCapture(event.pointerId);
103
+ event.currentTarget.focus();
104
+ emit(valueAt(event.clientX), false);
105
+ };
106
+ const onPointerMove = (event) => {
107
+ if (isInert || draggedValue == null)
108
+ return;
109
+ emit(valueAt(event.clientX), false);
110
+ };
111
+ const onPointerUp = (event) => {
112
+ if (isInert || draggedValue == null)
113
+ return;
114
+ event.currentTarget.releasePointerCapture(event.pointerId);
115
+ emit(valueAt(event.clientX), true);
116
+ };
117
+ const onKeyDown = (event) => {
118
+ if (isInert)
119
+ return;
120
+ // Home/End are absolute; the rest are relative. `null` means the key
121
+ // is not ours and the event goes on its way — scrolling with the
122
+ // arrows off a focused slider is not something to swallow silently,
123
+ // but a slider that ignores its own arrow keys is worse.
124
+ const next = (() => {
125
+ switch (event.key) {
126
+ case "ArrowDown":
127
+ case "ArrowLeft":
128
+ return shown - step;
129
+ case "ArrowRight":
130
+ case "ArrowUp":
131
+ return shown + step;
132
+ case "End":
133
+ return Math.max(min, max);
134
+ case "Home":
135
+ return Math.min(min, max);
136
+ case "PageDown":
137
+ return shown - bigStep;
138
+ case "PageUp":
139
+ return shown + bigStep;
140
+ default:
141
+ return null;
142
+ }
143
+ })();
144
+ if (next == null)
145
+ return;
146
+ event.preventDefault();
147
+ // Keys commit immediately. A key press is a discrete interaction —
148
+ // there is no release to wait for the way a drag has one, and an
149
+ // arrow key that only committed on `keyup` would feel lagged.
150
+ emit(snapToStep(next, min, max, step), true);
151
+ };
152
+ const valueText = valueFormat?.(clampToRange(shown, min, max));
153
+ return (_jsxs("div", { ...divProps, className: toClassName("flex flex-col gap-1",
154
+ // A definite floor, because the root has no intrinsic width of
155
+ // its own: the track is `w-full` and the label is the only
156
+ // content, so a slider with no visible label in a shrink-to-fit
157
+ // parent (`items-start`, an inline-flex row) collapses to the
158
+ // width of the thumb. Every gate passed on exactly that —
159
+ // `role`, ARIA, keyboard and axe are all correct on a control
160
+ // 16px wide. `<input type="range">` has an intrinsic default
161
+ // width for the same reason; this is ours.
162
+ "min-w-40", className), children: [isLabelVisible || isValueShown ? (_jsxs("div", { className: "flex items-baseline justify-between gap-2 text-sm", children: [isLabelVisible ? (_jsx("span", { className: "text-content-secondary", id: labelId, children: label })) : (_jsx(VisuallyHidden, { id: labelId, children: label })), isValueShown ? (_jsx("span", { className: "text-content-muted tabular-nums", children: valueText ?? shown })) : null] })) : (_jsx(VisuallyHidden, { id: labelId, children: label })), _jsxs("div", { "aria-disabled": isDisabled || undefined, "aria-labelledby": labelId, "aria-orientation": "horizontal", "aria-readonly": isReadOnly || undefined, "aria-valuemax": Math.max(min, max), "aria-valuemin": Math.min(min, max), "aria-valuenow": shown, "aria-valuetext": valueText, className: toClassName("relative flex w-full touch-none items-center rounded-full",
163
+ // The hit area is the row, which is taller than the bar: a
164
+ // 2px track is not a pointer target, and a finger is 44px.
165
+ "min-h-(--control-height-sm) cursor-pointer", FOCUS_RING_CLASS,
166
+ // NOT `ARIA_DISABLED_CLASS`. That constant paints a
167
+ // box-shaped control — `bg-surface-sunken` plus a border —
168
+ // which is right for `ButtonLink` and wrong here: a slider's
169
+ // visible body is a 2px track inside a 40px hit row, so the
170
+ // sunken fill lands on the whole row and draws a grey
171
+ // rectangle nothing else in the component has. Every gate
172
+ // passed on it; the screenshot is what showed it.
173
+ //
174
+ // `pointer-events-none` is the half that carries over, and it
175
+ // is load-bearing rather than cosmetic: without a real
176
+ // `:disabled` the hover rules still match.
177
+ isDisabled
178
+ ? "pointer-events-none opacity-55"
179
+ : "", isReadOnly ? "cursor-default" : ""), onKeyDown: onKeyDown, onPointerCancel: onPointerUp, onPointerDown: onPointerDown, onPointerMove: onPointerMove, onPointerUp: onPointerUp, ref: trackRef, role: "slider", tabIndex: isDisabled ? -1 : 0, children: [_jsx("span", { className: toClassName("w-full overflow-hidden rounded-full bg-surface-sunken", TRACK_SIZE_CLASS[size]), children: _jsx("span", { className: toClassName("block h-full rounded-full", INTENT_SOLID_FILL_CLASS[intent]), style: { inlineSize: `${percent}%` } }) }), _jsx("span", { "aria-hidden": "true", className: toClassName("absolute rounded-full border-2 border-surface-raised shadow-sm", THUMB_SIZE_CLASS[size], INTENT_SOLID_FILL_CLASS[intent]),
180
+ // Pulled back by half its own width so it sits ON the
181
+ // position rather than starting at it, which is what keeps
182
+ // 100% from hanging off the end of the track.
183
+ //
184
+ // `margin-inline-start`, not `translate: -50%`. `translate`
185
+ // is physical, so in RTL it would shift the thumb the wrong
186
+ // way and 0% would hang off the start edge — the one bug a
187
+ // logical `inset-inline-start` looks like it already solved.
188
+ style: {
189
+ insetInlineStart: `${percent}%`,
190
+ marginInlineStart: THUMB_OFFSET[size],
191
+ } })] })] }));
192
+ };
193
+ //# sourceMappingURL=Slider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slider.js","sourceRoot":"","sources":["../../src/Slider/Slider.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * The arithmetic behind `Slider`, kept out of the component so it can be
3
+ * tested in the node project rather than driven through a pointer.
4
+ *
5
+ * Every function here is total: a caller may pass a `NaN`, a reversed
6
+ * range or a zero step, and the answer is still a number inside the
7
+ * range. A slider that renders a thumb at `NaN%` is invisible, and the
8
+ * DOM says nothing about it.
9
+ */
10
+ /** `value` forced into `[min, max]`, whichever way round they arrive. */
11
+ export declare const clampToRange: (value: number, min: number, max: number) => number;
12
+ /**
13
+ * `value` snapped to the nearest `min + n * step`, then clamped.
14
+ *
15
+ * Anchored on `min` rather than on zero, which is the difference
16
+ * between a 0–100 slider (where both agree) and a 7–19 one stepping by
17
+ * 4: anchored on zero its reachable values are 8, 12, 16 and neither
18
+ * end of its own range is one of them.
19
+ *
20
+ * A non-positive or non-finite `step` means "continuous" and snaps
21
+ * nothing — it must not divide by zero and hand back `NaN`.
22
+ */
23
+ export declare const snapToStep: (value: number, min: number, max: number, step: number) => number;
24
+ /**
25
+ * `value` rounded to as many decimals as `step` has.
26
+ *
27
+ * `Number.EPSILON` scaling is deliberately not used — the input here is
28
+ * always already a multiple of `step` give or take float drift, so the
29
+ * decimal count of `step` is exactly the precision that can be real.
30
+ */
31
+ export declare const roundToStepPrecision: (value: number, step: number) => number;
32
+ /**
33
+ * Where the thumb sits, 0–100, for `inline-size` / `inset-inline-start`.
34
+ *
35
+ * A zero-width range is 0% rather than `NaN`: `min === max` is a
36
+ * degenerate but legal slider (a single-valued one), and it should
37
+ * paint at the start instead of disappearing.
38
+ */
39
+ export declare const toPercent: (value: number, min: number, max: number) => number;
40
+ /**
41
+ * The value a pointer at `fraction` (0–1 along the track) is asking for.
42
+ *
43
+ * `isRtl` inverts it. The caller measures with `getBoundingClientRect()`,
44
+ * which is physical and knows nothing about writing direction, so a
45
+ * right-to-left slider would otherwise run backwards.
46
+ */
47
+ export declare const fromFraction: (fraction: number, min: number, max: number, step: number, isRtl?: boolean) => number;
48
+ //# sourceMappingURL=sliderValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sliderValue.d.ts","sourceRoot":"","sources":["../../src/Slider/sliderValue.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,yEAAyE;AACzE,eAAO,MAAM,YAAY,GACvB,OAAO,MAAM,EACb,KAAK,MAAM,EACX,KAAK,MAAM,KACV,MAWF,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,MAAM,EACb,KAAK,MAAM,EACX,KAAK,MAAM,EACX,MAAM,MAAM,KACX,MAmBF,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,OAAO,MAAM,EACb,MAAM,MAAM,KACX,MAgBF,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GACpB,OAAO,MAAM,EACb,KAAK,MAAM,EACX,KAAK,MAAM,KACV,MAYF,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GACvB,UAAU,MAAM,EAChB,KAAK,MAAM,EACX,KAAK,MAAM,EACX,MAAM,MAAM,EACZ,eAAa,KACZ,MAiBF,CAAA"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * The arithmetic behind `Slider`, kept out of the component so it can be
3
+ * tested in the node project rather than driven through a pointer.
4
+ *
5
+ * Every function here is total: a caller may pass a `NaN`, a reversed
6
+ * range or a zero step, and the answer is still a number inside the
7
+ * range. A slider that renders a thumb at `NaN%` is invisible, and the
8
+ * DOM says nothing about it.
9
+ */
10
+ /** `value` forced into `[min, max]`, whichever way round they arrive. */
11
+ export const clampToRange = (value, min, max) => {
12
+ const low = Math.min(min, max);
13
+ const high = Math.max(min, max);
14
+ // NaN only. An infinity is an ORDERED value and clamps like any
15
+ // other — `Math.min`/`Math.max` already put it at the right end, and
16
+ // sending +Infinity to the floor would be the wrong end of the range.
17
+ if (Number.isNaN(value))
18
+ return low;
19
+ return Math.min(high, Math.max(low, value));
20
+ };
21
+ /**
22
+ * `value` snapped to the nearest `min + n * step`, then clamped.
23
+ *
24
+ * Anchored on `min` rather than on zero, which is the difference
25
+ * between a 0–100 slider (where both agree) and a 7–19 one stepping by
26
+ * 4: anchored on zero its reachable values are 8, 12, 16 and neither
27
+ * end of its own range is one of them.
28
+ *
29
+ * A non-positive or non-finite `step` means "continuous" and snaps
30
+ * nothing — it must not divide by zero and hand back `NaN`.
31
+ */
32
+ export const snapToStep = (value, min, max, step) => {
33
+ const clamped = clampToRange(value, min, max);
34
+ if (!Number.isFinite(step) || step <= 0)
35
+ return clamped;
36
+ const low = Math.min(min, max);
37
+ const snapped = low + Math.round((clamped - low) / step) * step;
38
+ // Re-clamp: the last step can land past `max` when the range is not
39
+ // a whole number of steps (0–10 by 3 snaps 10 to 9, but 0–10 by 4
40
+ // would snap 10 to 12 without this).
41
+ const bounded = clampToRange(snapped, min, max);
42
+ // Float steps accumulate: 0.1 * 3 is 0.30000000000000004, and that
43
+ // reaches `aria-valuenow` and the visible value both. Round to the
44
+ // decimals the step itself declares.
45
+ return roundToStepPrecision(bounded, step);
46
+ };
47
+ /**
48
+ * `value` rounded to as many decimals as `step` has.
49
+ *
50
+ * `Number.EPSILON` scaling is deliberately not used — the input here is
51
+ * always already a multiple of `step` give or take float drift, so the
52
+ * decimal count of `step` is exactly the precision that can be real.
53
+ */
54
+ export const roundToStepPrecision = (value, step) => {
55
+ if (!Number.isFinite(step) || step <= 0)
56
+ return value;
57
+ const text = String(step);
58
+ // An exponential step ("1e-7") has no visible decimal point, so
59
+ // `split(".")` would report zero decimals and round it to an integer.
60
+ if (text.includes("e") || text.includes("E"))
61
+ return value;
62
+ const decimals = text.split(".")[1]?.length ?? 0;
63
+ if (decimals === 0)
64
+ return Math.round(value);
65
+ const scale = 10 ** decimals;
66
+ return Math.round(value * scale) / scale;
67
+ };
68
+ /**
69
+ * Where the thumb sits, 0–100, for `inline-size` / `inset-inline-start`.
70
+ *
71
+ * A zero-width range is 0% rather than `NaN`: `min === max` is a
72
+ * degenerate but legal slider (a single-valued one), and it should
73
+ * paint at the start instead of disappearing.
74
+ */
75
+ export const toPercent = (value, min, max) => {
76
+ const low = Math.min(min, max);
77
+ const high = Math.max(min, max);
78
+ const span = high - low;
79
+ if (span <= 0)
80
+ return 0;
81
+ return (((clampToRange(value, low, high) - low) / span) * 100);
82
+ };
83
+ /**
84
+ * The value a pointer at `fraction` (0–1 along the track) is asking for.
85
+ *
86
+ * `isRtl` inverts it. The caller measures with `getBoundingClientRect()`,
87
+ * which is physical and knows nothing about writing direction, so a
88
+ * right-to-left slider would otherwise run backwards.
89
+ */
90
+ export const fromFraction = (fraction, min, max, step, isRtl = false) => {
91
+ const safe = Number.isFinite(fraction) ? fraction : 0;
92
+ const bounded = Math.min(1, Math.max(0, safe));
93
+ const along = isRtl ? 1 - bounded : bounded;
94
+ const low = Math.min(min, max);
95
+ const high = Math.max(min, max);
96
+ return snapToStep(low + along * (high - low), min, max, step);
97
+ };
98
+ //# sourceMappingURL=sliderValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sliderValue.js","sourceRoot":"","sources":["../../src/Slider/sliderValue.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -141,6 +141,8 @@ export type { ShellProps } from "./Shell/Shell.tsx";
141
141
  export { Shell } from "./Shell/Shell.tsx";
142
142
  export type { SkeletonProps, SkeletonShape, } from "./Skeleton/Skeleton.tsx";
143
143
  export { Skeleton } from "./Skeleton/Skeleton.tsx";
144
+ export type { SliderProps, SliderSize, } from "./Slider/Slider.tsx";
145
+ export { Slider } from "./Slider/Slider.tsx";
144
146
  export type { SortableTableHeaderProps, SortDirection, } from "./SortableTableHeader/SortableTableHeader.tsx";
145
147
  export { SortableTableHeader } from "./SortableTableHeader/SortableTableHeader.tsx";
146
148
  export type { SpinnerProps } from "./Spinner/Spinner.tsx";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -86,6 +86,7 @@ export { SegmentedControl } from "./SegmentedControl/SegmentedControl.js";
86
86
  export { Select } from "./Select/Select.js";
87
87
  export { Shell } from "./Shell/Shell.js";
88
88
  export { Skeleton } from "./Skeleton/Skeleton.js";
89
+ export { Slider } from "./Slider/Slider.js";
89
90
  export { SortableTableHeader } from "./SortableTableHeader/SortableTableHeader.js";
90
91
  export { Spinner } from "./Spinner/Spinner.js";
91
92
  export { Stepper } from "./Stepper/Stepper.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@charcuterie/ui",
3
- "version": "3.8.0",
3
+ "version": "3.9.0",
4
4
  "description": "The Charcuterie components. Tokens for look, @charcuterie/logic for state, ARIA that agents can actually drive.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -53,7 +53,7 @@
53
53
  "typecheck": "tsc --noEmit"
54
54
  },
55
55
  "dependencies": {
56
- "@charcuterie/logic": "2.0.0",
56
+ "@charcuterie/logic": "2.1.0",
57
57
  "@charcuterie/tokens": "1.6.0",
58
58
  "@floating-ui/react": "^0.27.20",
59
59
  "@tanstack/react-virtual": "^3.13.12",
@@ -0,0 +1,78 @@
1
+ import { Canvas, Controls, Meta } from "@storybook/addon-docs/blocks";
2
+
3
+ import * as SliderStories from "./Slider.stories";
4
+
5
+ <Meta of={SliderStories} />
6
+
7
+ # Slider
8
+
9
+ A single-value range control: what `<input type="range">` is, without the OS painting it.
10
+
11
+ The fleet had no way to ask for a value along a range, so QueuePilot's Now-playing bar
12
+ could not have a scrubber and the choice was a native range input or a hand-rolled one in
13
+ a single app. `ProgressBar` looks like the answer and is not — it is **output**, it takes
14
+ no input, and `role="progressbar"` tells assistive technology exactly that.
15
+
16
+ <Canvas of={SliderStories.Default} />
17
+
18
+ ## Props
19
+
20
+ <Controls />
21
+
22
+ ## Why a `div` and not `<input type="range">`
23
+
24
+ The same reason [`Select` is deprecated](?path=/docs/components-controls-select--docs).
25
+
26
+ A range input's thumb and track are UA pseudo-elements — `::-webkit-slider-thumb`,
27
+ `::-moz-range-track` — and they are not one surface: the two engines disagree about which
28
+ of them the filled portion even belongs to, so a token-styled range is two stylesheets that
29
+ drift apart. Windows paints its own regardless.
30
+
31
+ `role="slider"` on a focusable `div` is the APG's own pattern, gets the same AT support, and
32
+ every pixel of it is ours.
33
+
34
+ ## The role, the tab stop and the pointer target are all the track
35
+
36
+ Putting them on the thumb is what a hand-rolled slider usually does, because the thumb is
37
+ the part that looks draggable. It gives the widget a 16px box: a press on the bar does
38
+ nothing, and a Playwright bounding box is the handle rather than the control.
39
+
40
+ The hit area is a row taller than the bar, because a 2px track is not a pointer target.
41
+
42
+ ## Drag does not commit
43
+
44
+ `onChange` fires on every movement — each arrow key, each pointer sample. `onChangeEnd`
45
+ fires once, on release or key up.
46
+
47
+ This split exists because the expensive consumer of a slider is almost never the paint. A
48
+ seek scrubber issuing its network call from `onChange` would send one request per pointer
49
+ sample and arrive at the right offset **last**, behind a queue of stale ones.
50
+
51
+ While a drag is in flight the component paints from its own local value rather than from
52
+ the `value` prop. Without that, a controlled slider whose owner only commits on
53
+ `onChangeEnd` would render the thumb pinned at the old position under the finger — the drag
54
+ would look broken while behaving correctly.
55
+
56
+ <Canvas of={SliderStories.Interactive} />
57
+
58
+ ## Read-only is not disabled
59
+
60
+ A read-only slider keeps full contrast and stays focusable, so its value is still readable
61
+ and still reachable by a screen reader. A live stream's position is this: the number
62
+ matters and seeking is not offered.
63
+
64
+ <Canvas of={SliderStories.AllStates} />
65
+
66
+ ## The arithmetic is a tested pure function
67
+
68
+ `sliderValue.ts`, in the node project. Steps anchor on `min` rather than on zero — a 7–19
69
+ range stepping by 4 anchored on zero can reach 8, 12 and 16, and neither end of its own
70
+ range is one of them. A snap never escapes the range, a float step does not accumulate
71
+ drift into `aria-valuenow`, and a `NaN` cannot reach the style attribute, where it would
72
+ render `inline-size: NaN%` and paint nothing with no error.
73
+
74
+ `fromFraction` takes an `isRtl` flag because `getBoundingClientRect()` is physical and knows
75
+ nothing about writing direction — without it a right-to-left slider runs backwards under the
76
+ pointer while its keyboard path stays correct.
77
+
78
+ <Canvas of={SliderStories.AllVariants} />