ProtectednameDisplay name
Protected OptionaliconOptional leading icon (inline SVG string, rail-style).
ProtectedparentParent folder (null for root GUI)
ProtectedcontrollersChild controllers
ProtectedfoldersChild folders
ProtectedchildrenDOM element for children
OptionaldomDOM element for folder (if not root) - can be overridden in subclasses
PrivateisOpen/closed state
PrivatedefaultDefault open/close state for new folders
ProtectedeventEvent manager for cleanup
PrivatecreateCreate folder DOM structure
PrivateupdateUpdate open state for a specific element (used during construction)
Add a controller for a property
Auto-detects controller type based on value type and arguments
Target object
Property name
Optionalarg1: number | string[] | Record<string, any>
Min value OR options array/object
Optionalarg2: number
Max value (if arg1 is min)
Optionalarg3: number
Step value (if arg1 and arg2 are min/max)
Created controller
Add a nested folder
Folder name
Optionalicon: string
Optional leading icon (inline SVG string, rail-style)
Created folder
Get all controllers recursively (including nested folders)
Array of all controllers
Open the folder
this (for chaining)
Close the folder
this (for chaining)
Show the folder
this (for chaining)
Hide the folder
this (for chaining)
PrivateupdateUpdate DOM to reflect open/closed state
ProtecteddisposeDispose all controllers and folders
Create a folder