Instead of having a separate post-build step for CSS entry points,
the CSS bundling is now integrated directly into the Rollup build
as a plugin. This is cleaner and will enable better watch mode
support in the future.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
The UI package now uses the standard backstage-cli build, so there's
no need for separate build steps in CI workflows.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
postcss-import naturally preserves @layer declarations during bundling,
eliminating the need for custom layer parsing and restoration logic.
This simplifies the implementation while also preserving source comments.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
This adds support for CSS entry points in package exports. When a package
declares a CSS file in its exports field, the CLI will now automatically
bundle it during `backstage-cli package build` and rewrite the export
path from src/ to dist/ at publish time.
The CSS bundling uses lightningcss to resolve @import statements and
preserves @layer declarations that would otherwise be stripped during
bundling.
This allows packages like @backstage/ui to use the standard build command
instead of custom build scripts for CSS bundling.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Move @backstage/backend-defaults from dependencies to devDependencies
in all backend plugins that had it as a production dependency. None of
these plugins use it in their production source code - it's only needed
for dev servers (dev/index.ts) and test files.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Align naming convention with HomePageLayoutBlueprint and the catalog
plugin's consistent entity- prefix pattern. Also update the kind string
from 'home-widget' to 'home-page-widget' to match 'home-page-layout'.
Added interface-level JSDoc to HomePageWidgetBlueprintParams.
Signed-off-by: Adam Kunicki <kunickiaj@gmail.com>
- Update README.md to reference HomePageLayoutBlueprint instead of
deleted HomepageBlueprint, with a complete working example
- Update docs/getting-started/homepage.md with corrected blueprint name
- Fix app-next example to properly accept and render widgets via the
HomePageLayoutProps interface instead of ignoring them
Signed-off-by: Adam Kunicki <kunickiaj@gmail.com>
Reorganize the home plugin's new frontend system extensions to follow
the same pattern as the catalog plugin's EntityContentLayoutBlueprint.
Key changes:
- Widgets now attach directly to page:home instead of through an
intermediate HomepageBlueprint extension
- Add HomePageLayoutBlueprint in home-react for custom layout creation,
with a built-in default layout as fallback
- Remove compatWrapper from HomepageWidgetBlueprint (consumer
responsibility, reduced need with NFS support in old system)
- Remove HomepageCompositionRoot usage (old system artifact)
- Delete HomepageBlueprint (replaced by HomePageLayoutBlueprint)
- Update app-next example and dev harness to use new pattern
Signed-off-by: Adam Kunicki <kunickiaj@gmail.com>
Following FormFieldBlueprint pattern, bundle component and metadata
into a single comprehensive homePageWidgetDataRef instead of outputting
them separately. This addresses review feedback about outputting data
that nothing consumes.
- Create homePageWidgetDataRef in plugin-home-react
- Update HomepageWidgetBlueprint to output bundled data
- Update HomepageBlueprint to consume bundled data and extract component
- Remove unused widgetMetadataRef export
Signed-off-by: Adam Kunicki <kunickiaj@gmail.com>
Migrates home plugin to support the new frontend system architecture by
introducing extension blueprints for composable homepage functionality.
Key changes:
- Add CustomHomepageWidgetBlueprint for creating installable homepage widgets
- Add CustomHomepageBlueprint for composing pages from widget extensions
- Introduce titleExtensionDataRef for NFS title handling
This attempts to bring the home plugin up to par with other core plugins that have migrated
to the new frontend system
Signed-off-by: Adam Kunicki <kunickiaj@gmail.com>