range — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited range (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Slider components for single value or dual-handle range selection. Draggable handles with tooltip display using Framer Motion.
import { RangeSingle, RangeDouble } from 'reablocks';Both RangeSingle and RangeDouble share these base props:
| Prop | Type | Default | Description | |
|---|---|---|---|---|
min | number | — | Minimum value | |
max | number | — | Maximum value | |
step | number | 1 | Step increment | |
disabled | boolean | — | Disable the slider | |
valueDisplay | `'always' \ | 'hover'` | 'hover' | When to show value tooltip |
valueFormat | (value: number) => string | toLocaleString | Format displayed value | |
style | CSSProperties | — | Inline styles | |
className | string | — | Container CSS classes | |
handleClassName | string | — | Handle CSS classes | |
theme | RangeTheme | — | Per-instance theme override |
Single-handle slider. Value is a single number.
| Prop | Type | Default | Description |
|---|---|---|---|
value | number | — | Current value |
showHighlight | boolean | false | Show filled track from min to value |
onChange | (value: number) => void | — | Value change handler |
const [value, setValue] = useState(50);
<RangeSingle min={0} max={100} value={value} onChange={setValue} />
<RangeSingle min={0} max={100} value={value} onChange={setValue} showHighlight />Dual-handle slider for selecting a range. Value is a [number, number] tuple.
| Prop | Type | Default | Description |
|---|---|---|---|
value | [number, number] | — | Current range [min, max] |
onChange | (value: [number, number]) => void | — | Range change handler |
const [range, setRange] = useState<[number, number]>([20, 80]);
<RangeDouble min={0} max={100} value={range} onChange={setRange} />The two handles maintain a minimum distance of step between them.
interface RangeTheme {
base: string; // Track container (relative, w-full, h-0.5, bg)
drag: string; // Handle (absolute, rounded-full, positioned)
disabled: string; // Disabled state
inputWrapper: {
base: string; // Handle inner (cursor-pointer, rounded, bg, shadow)
disabled: string; // Disabled handle
};
rangeHighlight: {
base: string; // Filled track segment
disabled: string;
};
input: string; // Hidden range input (offscreen)
tooltip: string; // Value tooltip (absolute, positioned above)
}~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.