- Keep explicit error when API context provider exists but v1 is not
available, only return empty holder when there is no provider at all
- Update tests in core-app-api to expect the new error message when
rendering outside a provider
- Add @backstage/core-plugin-api to changeset since it re-exports
useApiHolder
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Instead of throwing a NotImplementedError, useApiHolder now returns an
empty ApiHolder when no API context is available in the React tree.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
FieldLabel renders a div and spreads restProps onto it, but
FieldLabelProps didn't extend native div props. This meant
attributes like aria-*, data-*, role, etc. couldn't be
passed with type safety.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Container renders a div and spreads restProps onto it, but
ContainerProps didn't extend native div props. This meant
attributes like aria-*, data-*, role, etc. couldn't be
passed with type safety.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Alert renders a div and spreads restProps onto it, but
AlertProps didn't extend native div props. This meant
attributes like aria-*, data-*, role, etc. couldn't be
passed with type safety.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
The style prop was defined in ButtonLinkOwnProps but never
destructured or applied in the component, causing it to be
silently dropped. Removing it lets style flow through to the
underlying RAC Link via restProps instead.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
The style prop was defined in ButtonOwnProps but never
destructured or applied in the component, causing it to be
silently dropped. Removing it lets style flow through to the
underlying RAC Button via restProps instead.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
The style prop was defined in ButtonIconOwnProps but never
destructured or applied in the component, causing it to be
silently dropped. Removing it lets style flow through to the
underlying RAC Button via restProps instead.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
DialogBodyProps previously only extended DialogBodyOwnProps,
meaning native HTML attributes like aria-*, data-*, etc.
could not be passed to the underlying div element.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
These directories were previously only covered by the catch-all
rule, requiring review from @backstage/maintainers. Since they
fall under the Design System project area scope, assign them to
@backstage/design-system-maintainers.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Add horizontal borders and bottom margin to the icon links container
in the AboutCard to visually separate it from the card content.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Set `height: 100%` on EntityInfoCard so cards fill their grid cell,
matching the row height of sibling cards. This replaces the behavior
previously provided by `variant="gridItem"` on the old InfoCard.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
The E2E tests scaffold a new app from the create-app template,
which still passed variant="gridItem" to EntityAboutCard,
EntityUserProfileCard, and EntityGroupProfileCard after the prop
was removed.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
- Replace `as any` cast with type-safe `as Columns` in LinksGridList,
clamping column count to the valid 1–12 range
- Restore pagination (pageSize: 5) in EntityLabelsCard using the
BUI `useTable` hook
- Use translation ref for EntityLabelsCard column headers instead
of hard-coded English strings
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Remove the unused `gridSizes` prop from AboutField. Grid layout is
now owned by the parent Grid.Root in AboutContent, making this prop
unnecessary.
Update changeset with breaking change and migration guide.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Replace inline `style={{ gridColumn: '1 / -1' }}` with BUI-native
`Grid.Item colSpan` for full-width fields in AboutContent. Extract
grid columns into a shared variable used by both Grid.Root and
Grid.Item to keep them in sync.
Remove the `style` prop from AboutField that was only added to
support the inline gridColumn approach.
Signed-off-by: Johan Persson <johanopersson@gmail.com>