Children was incorrectly added to OwnProps/propDefs during migration,
causing useDefinition to extract it from restProps. Since neither
component consumes children directly, children should flow through
restProps to the underlying div element.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Children was in propDefs (extracted to ownProps by useDefinition) but
the component only spread restProps on a self-closing div, silently
dropping children. Now explicitly renders children from ownProps.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Address review feedback: extract MenuPopoverOwnProps shared type for
common props (placement, virtualized, maxWidth, maxHeight, style,
className). Extract menuPopoverClassNames and menuPopoverPropDefs in
definition.ts to ensure shared values stay in sync across Menu variants.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Split monolithic MenuDefinition (17 classNames) into 9 per-sub-component
definitions (Menu, MenuListBox, MenuAutocomplete, MenuAutocompleteListbox,
MenuItem, MenuListBoxItem, MenuSection, MenuSeparator, MenuEmptyState).
MenuItem color prop uses dataAttribute with default in propDefs. Defaults
for placement, virtualized, selectionMode moved to propDefs.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Split shared TagGroupDefinition into TagGroupDefinition (root) and
TagDefinition (tag sub-component). Tag's size prop now uses dataAttribute
with default in propDefs instead of manual data-size and default spreading.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Split monolithic TabsDefinition into 5 per-sub-component definitions
(Tabs, TabList, Tab, TabPanel, TabsIndicators). Each sub-component now
uses useDefinition with its own OwnProps type. Removed clsx and direct
CSS module imports from component files.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Split monolithic TableDefinition into 8 per-sub-component definitions
(TableRoot, TableHeader, TableBody, Row, Column, Cell, CellText,
CellProfile) following the established defineComponent pattern.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
The useDefinition hook renders data attributes in lowercase,
so the CSS selector `[data-startCollapsed]` no longer matched.
Updated to `[data-startcollapsed]` to restore collapsed state
styling.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
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>