Add optional `loading` prop to both Button and ButtonIcon components that displays
a spinner and disables interaction while async operations are in progress.
Implementation details:
- Uses React Aria's ProgressBar with indeterminate state for spinner
- Displays RiLoader4Line icon with smooth rotation animation
- Wraps content in container with opacity transition when loading
- Accessible via aria-label "Loading" on progress indicator
- Component definitions updated with content, spinner class names and loading data attribute
Documentation:
- Added Loading examples to both Button and ButtonIcon docs showing interactive demos
- Updated props tables with loading boolean prop
- Created Storybook stories covering all variants, sizes, and with icons
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Refactored PasswordField, SearchField, and MenuAutocomplete to use a
consistent flexbox positioning approach, improving maintainability and
visual consistency.
Key changes:
- Replaced absolute positioning with flexbox layouts
- Moved border and background styling from input to wrapper
- Used grid-centered containers for icons and buttons
- Added component-specific CSS variables for item height
Signed-off-by: Johan Persson <johanopersson@gmail.com>
All components have been migrated to React Aria Components, making
the @base-ui-components/react dependency obsolete.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Enhanced the Select component with search filtering and multi-selection capabilities through new searchable, selectionMode, and searchPlaceholder props.
Breaking changes:
- The SelectProps interface now accepts a generic type parameter for selection mode
Implementation details:
- Created SelectTrigger, SelectContent, and SelectListBox components for modular composition
- Integrated react-aria's Autocomplete and SearchField for search functionality
- Added support for multiple selection mode
- Added "No results found" empty state when search returns no matches
- Improved CSS organization and updated visual styling for better consistency
- Exported Option type as public API for type safety
- Updated API reports and added comprehensive Storybook stories
- Added documentation with examples for searchable and multiple selection modes
Migration guide:
If using SelectProps type directly, update the type parameter:
```diff
- SelectProps
+ SelectProps<'single' | 'multiple'>
```
Component usage remains backward compatible - existing Select implementations require no changes.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
The Table Row component's href prop was being destructured but not
passed to the underlying ReactAriaRow component, preventing rows from
rendering as <a> elements. This blocked native browser link behaviors
like right-click "Open in new tab" and Cmd+Click.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
This PR updates the backend plugin tutorial documentation to match the current plugin template.
Previously, the tutorial referenced a /health endpoint, which does not exist in the generated backend plugin.
Signed-off-by: Ayush More <ayushmore42595@gmail.com>