Fixed client-side navigation by wrapping container components
(not individual items) in RouterProvider. Components now
conditionally provide routing context only when children have
internal hrefs.
Changes:
- Added createRoutingRegistration factory for reusable routing
registration pattern
- Refactored Menu, MenuAutocomplete to use RoutingProvider
- Refactored TagGroup, Tag to use RoutingProvider
- Refactored Tabs, Tab with RoutedTabEffects for URL-based
tab selection
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Introduced InternalLinkProvider component that conditionally wraps
children in RouterProvider only when an internal href is present.
This allows Link, ButtonLink, and Row components to render without
requiring a Router context when used with external or no hrefs.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Migrates ButtonIcon and ButtonLink to use the useDefinition hook
with fully independent styling. Each component now has its own
complete CSS, types, and definition without sharing internals
with Button.
- ButtonIcon: Add complete styles, use defineComponent with
ButtonIconOwnProps, extend LeafSurfaceProps
- ButtonLink: Add new CSS module with complete styles, use
defineComponent with ButtonLinkOwnProps, extend LeafSurfaceProps
- Update API report
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Adds shared prop types for surface-aware components and type-level
validation to ensure proper surface prop declarations.
- Add `LeafSurfaceProps` and `ContainerSurfaceProps` shared types
- Add `SurfacePropsConstraint` type that errors if `surface: 'leaf'`
is set but `onSurface` is missing from props (and vice versa for
container components)
- Update Button to extend `LeafSurfaceProps` instead of declaring
`onSurface` manually
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Comprehensive rewrite of the Table component documentation including:
- Updated prop definitions with JSX descriptions
- New interactive examples for sorting, search, pagination, selection
- Expanded code snippets covering all major use cases
- Added custom row and primitives examples
- Improved MDX structure and styling
Signed-off-by: Johan Persson <johanopersson@gmail.com>
- Add ReactAriaLink component for linking to React Aria docs
- Make PropsTable columns configurable
- Improve Chip styling to support multiline content
- Allow ReactNode in PropDef descriptions
Signed-off-by: Johan Persson <johanopersson@gmail.com>
React Aria's Collection component injects an `id` prop into rendered
children. When children were wrapped in Fragment, this caused
"Invalid prop `id` supplied to `React.Fragment`" errors on render.
BREAKING CHANGE: The `cell` and `header` properties in `ColumnConfig`
now return `ReactElement` instead of `ReactNode`. Cell and header
functions that return non-element values must be updated to always
return a valid element.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Updated the `ScheduledTasksContent` component to provide better visual
feedback when a user lacks permission to run a task. A new
`CreateNotAllowed` component displays a disabled block icon with a
tooltip instead of the default error behavior.
Signed-off-by: Yash Oswal <yoswal@redhat.com>