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

+4 -8
View File
@@ -1,4 +1,3 @@
/** What the server made of an uploaded image; the payload a texture asset is built from. */
export interface UploadedTexture {
/** Content-addressed name in `data/textures/`: `{sha256}.{png|jpg|webp|gif}` (see `isTextureFile`). */
file: string;
@@ -7,7 +6,6 @@ export interface UploadedTexture {
bytes: number;
}
/** One stored image as the server lists it. */
export interface StoredTexture {
file: string;
bytes: number;
@@ -15,15 +13,13 @@ export interface StoredTexture {
}
/**
* Upload boundary for images, the counterpart of `ProjectStore`. The editor only talks to this
* interface. An upload is raw bytes rather than a multipart form: name, size and format are
* derived from the image itself on the server, so there is nothing else to send.
* An upload is raw bytes rather than a multipart form: name, size and format are derived from the
* image itself on the server, so there is nothing else to send.
*/
export interface TextureStore {
/**
* Stores an image and returns its file name and pixel size. `type` only fills the
* Content-Type header – the server trusts the bytes, not the label – and uploading the same
* picture twice yields the same file, because the name is the hash of its content.
* `type` only fills the Content-Type header – the server trusts the bytes, not the label – and
* uploading the same picture twice yields the same file, the hash of its content.
*/
upload(bytes: Blob | ArrayBuffer, type: string): Promise<UploadedTexture>;
list(): Promise<StoredTexture[]>;