The unprocessed entities view is now provided as a DevTools sub-page
directly from the plugin, removing the need for manual wiring. The
standalone page is still available but disabled by default.
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
For paginated tables, always show the loading indicator since stale
data from a different page would be misleading. The loading
suppression (showing stale data during refresh) only applies to the
non-paginated table where the stale filtered results are still
meaningful.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Wrap the title + spinner in an inline-flex container for vertical
centering, and reduce the spinner to 0.8em so it doesn't affect the
overall box height.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
When filters change and a fetch is in progress but stale data is still
displayed, show a small circular spinner after the title text (e.g.
"Owned Components (5) ⟳") to indicate that updated results are being
loaded.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
The Table component replaces all data rows with a loading spinner when
isLoading is true. This caused a flash of empty table between filter
changes. Now only show the loading state when there's no data to
display yet (initial load), keeping stale results visible during
filter transitions.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
The EntityListProvider exposed entities from `outputState` (synced via
useEffect) but `loading` from `useAsyncFn`. When the async function
resolved, `loading` flipped to false one render before `outputState`
updated, causing a flash of stale data between the loading indicator
and the new results.
Use `resolvedValue` directly in the context value when available,
eliminating the extra render lag.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Generated changelog entries for @backstage/ui v0.12.0 (30 entries)
and v0.13.0 (48 entries) using the sync-changelog script.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Add all exported sub-components to the Component type union so
changelog entries referencing them are resolved correctly. Update
ChangelogComponent to accept an array of components, showing scoped
badges when filtering by multiple components. Update 13 component
pages to include their sub-components in the changelog section.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Broaden "Affected components" regex to handle all formats found in
CHANGELOG.md (bold, plain, and typo variants). Align unknown component
detection to use extraction-time tracking instead of re-parsing
stripped descriptions. Deduplicate component arrays after mapping.
Add --skip-prs flag and Grid.Item special case.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Add `react-aria`, `@react-aria/interactions`, `@react-stately/layout`,
and `@react-stately/overlays` as dependencies, and `react-stately` as a
dev dependency to `@backstage/ui`.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Updated the peer dependency ranges for `react`, `react-dom`, and
`@types/react` in `packages/ui` to require React 18+, removing the
`^17.0.0` range.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Storybook CSF4 type inference generates massive .d.ts files for stories
(e.g. Card.stories.d.ts grew to 1.4MB by inlining all React HTML/ARIA
prop types). Excluding stories from tsc saves ~18s emit time, ~142MB
memory, and prevents unnecessary .d.ts bloat in dist-types.
No production code imports stories files, so this is safe.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Removed the direct @backstage/cli-module-new devDependency from the
next-app template since it is already included transitively through
@backstage/cli-defaults.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor