Fix pre-existing variant default from 'body' to 'body-medium' to match
actual CSS selectors. Add missing 'info' color to docs-ui props definition.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Make AvatarOwnProps the source of truth with inline type definitions,
and have AvatarProps extend it. This follows the established pattern
used by Button, Checkbox, and Alert components. Export AvatarOwnProps
from the package entry point.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Replace ComponentDefinition with defineComponent pattern, move CSS
module import and prop defaults into the definition, and switch the
component to useDefinition hook.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
When viewport height constrains the popover, content now scrolls
instead of overflowing.
- Menu: add flex column layout and overflow hidden to .bui-MenuInner
- Select: add overflow auto and min-height 0 to .bui-SelectList
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Initialize listeners as an eager Set to eliminate the undefined union
type and non-null assertions. Add comment explaining the change listener
algorithm.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Replace per-instance useState + matchMedia pattern with a module-level
singleton that shares 6 matchMedia listeners across all callers.
Reduces listener count from 18×N to a fixed 6.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Cleye outputs ANSI bold escape sequences around section headers
(e.g. Usage:, Flags:) unconditionally, which prevented the help
page parser from recognizing them. Strip ANSI SGR sequences from
captured output and set NO_COLOR=1 in the child environment.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Remove fragile process.stdout._handle.setBlocking calls from CLI test
commands. Revert the preload workaround in repo-tools since the root
cause is removed.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Add a --require preload that stubs process.stdout._handle when stdout is
a SyncWriteStream (file-backed). Some CLI code accesses _handle.setBlocking
directly and would crash without the stub.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Use a temp file instead of a pipe for child process stdout in
createBinRunner. Node.js uses a SyncWriteStream for regular files, so
all writes complete synchronously before process.exit() can discard them.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Use spawnSync instead of spawn for child processes in createBinRunner.
This avoids stdout data loss when child processes call process.exit()
before Node.js flushes its internal stream buffer to the pipe.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor