Nav items are now automatically inferred from PageBlueprint extensions
based on their title and icon params, making NavItemBlueprint redundant.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Moved withApis to @backstage/core-compat-api and deprecated the export
in @backstage/frontend-plugin-api, pointing users to the new location.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
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
Migrated the AnalyticsImplementationBlueprint and
AnalyticsImplementationFactory from @backstage/frontend-plugin-api to
@backstage/plugin-app-react. The original exports are deprecated with
pointers to the new location.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
The `update` method used `React.JSX.Element` for the first union member
and plain `JSX.Element` for the second. These resolve to the same type
but the inconsistency within a single method signature is confusing.
Aligned both to use `JSX.Element` to match the rest of the file.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
The `defaultPath` param was a compile-time migration artifact typed to
produce an error, guiding users to use `path` instead. The migration
period is over, so this removes it from the public API surface.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Handle --alwaysPack=value and --alwaysYarnPack=value variants in the
legacy flag normalization, not just the bare flag forms.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
- Remove unnecessary optional chaining on getRoleInfo().role since it
throws for unknown roles.
- Add parameters declaration to repo start so [packages...] shows in
help output.
- Add tests verifying cleye strips Backstage flags from args before
forwarding to Jest, including legacy camelCase flag support.
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>