Trim needless comments and fix the picker width

Remove comments that only restate the code, keeping the section banners
and the notes that carry a reason, a measured fact or an external
contract.

ButtonOptions.width claimed to be a fixed width but only set minWidth,
so the Graph and Texture pickers grew with the name they showed. It is
now what it promises, with a separate minWidth for the buttons that have
two forms. Narrow buttons shrink their padding, otherwise a 24px icon
button had 8px left for its glyph and truncate dropped it entirely.

__gm.labelsDropped() guards that class: the overflow guard only saw text
that was too wide, never a label truncated to nothing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
rootandClaude Opus 5 committed 2026-09-08 15:52:05 +02:00
1 parent f16801aef3
commit 4d84231b9f
115 files changed
+707 -1564

No files matched your search

+6 -12
View File
@@ -12,11 +12,8 @@ export function centreY(containerHeight: number, itemHeight: number): number {
export const NUMBER_DECIMALS = 3;
/**
* Display text for a number. Always shows `decimals` places, so a value can never *look* like
* a whole number when it is not: precision used to follow the field's step, which hid the
* decimals that dragging in the viewport or a graph node had put into the value. Fields whose
* value is integral by nature (a pixel index, a count) pass 0 and are exact all the same.
* A value that rounds to zero never carries a minus sign.
* Always shows `decimals` places, so a value can never look whole when it is not. A value that
* rounds to zero never carries a minus sign.
*/
export function formatNumber(value: number, decimals = NUMBER_DECIMALS): string {
const zero = (0).toFixed(decimals);
@@ -25,11 +22,9 @@ export function formatNumber(value: number, decimals = NUMBER_DECIMALS): string
}
/**
* Rounds `value` onto the grid of `stepSize`, so scrubbing a field lands on clean values:
* with step 1 on whole numbers, with step 0.1 on tenths. Needed because neither input is
* whole – the pointer delta comes in fractional device pixels (a 150 % display yields
* thirds) and the starting value may already be fractional from a viewport drag.
* The `toFixed` pass removes binary-float noise (0.1 × 3 = 0.30000000000000004).
* Rounds `value` onto the grid of `stepSize`, so scrubbing lands on clean values even though
* pointer deltas are fractional. The `toFixed` pass removes binary-float noise (0.1 × 3 =
* 0.30000000000000004).
*/
export function snapToStep(value: number, stepSize: number): number {
if (!(stepSize > 0) || !Number.isFinite(value)) return value;
@@ -38,8 +33,7 @@ export function snapToStep(value: number, stepSize: number): number {
/**
* Zoom multiplier for one wheel event. Exponential, so scrolling up and back down by the same
* amount lands exactly where it started. The caller clamps the result into its own range –
* the scene view and the graph editor allow very different zoom levels.
* amount lands exactly where it started. The caller clamps into its own range.
*/
export function zoomFactor(deltaY: number): number {
return Math.exp(-deltaY * 0.0015);