isRequired was consumed locally for the secondary label but never
forwarded to the underlying AriaTextField/AriaSearchField, resulting
in missing aria-required attribute and no built-in validation.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
- Add label to PasswordFieldOwnProps and propDefs
- Remove Omit<FieldLabelProps, ...> from PasswordFieldProps
- Move useDefinition call to top of component
- Access aria-label/aria-labelledby from restProps instead of props
Signed-off-by: Johan Persson <johanopersson@gmail.com>
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