Move the branch verification to a separate step right after checkout,
and gate all subsequent steps on its output. Removes the redundant
branch check from inside the changeset generation script.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
All lockfiles in the repo use Yarn 4, so use `yarn --cwd <dir> dedupe`
uniformly instead of npx yarn-deduplicate for subdirectories.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Each step sets an output only if it actually modified files. The
dedupe step checks git diff after running to avoid staging unchanged
lockfiles. A final step commits and pushes only if either step
made changes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Only dedupe each lockfile if it was actually changed by Dependabot.
Covers root (Yarn 4) and docs-ui/microsite (Yarn Classic) lockfiles.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
* refactor(ui): rename CardOverlay to CardTrigger
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* refactor(ui): replace Card overlay with visually-hidden trigger and focus ring
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* feat(ui): implement hybrid click delegation for interactive cards
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* docs(ui): add story for interactive scrollable card
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* chore: add changeset for interactive card scroll fix
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* fix(ui): fix bottom scroll shadow showing when CardBody has no overflow
The reversed scroll-driven animation used `both` fill mode, causing the
backwards fill to show opacity: 1 when no scroll timeline was active.
Replace with two stacked animations using `forwards` fill only.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* docs(ui): update InteractiveScrollable story to use onPress
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* style: format Card.module.css
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* fix(ui): guard against Text node target in Card click handler
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* feat(ui): render Card as article element for better semantics
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* chore(ui): update API report
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* fix(ui): prevent synthetic click from double-bubbling and exclude onClick from Card types
Signed-off-by: Johan Persson <johanopersson@gmail.com>
---------
Signed-off-by: Johan Persson <johanopersson@gmail.com>
- 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>
Deprecate all standalone mock API exports in favor of the `mockApis`
namespace. This includes the mock classes, their option types, and
the `ErrorWithContext` type. Inline option types into the `mockApis`
function signatures to avoid dependence on the deprecated types.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor