When the selected tab uses an aliased group ID, resolve it through
the alias map so the MUI Tabs selection indicator matches the
rendered group key.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Add documentation for the new group aliases and contentOrder options
to the catalog customization guide.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Keep ungrouped tabs in their natural order and only apply content
ordering within actual groups. Rename the contentOrder prop back to
defaultContentOrder to clarify its scope.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
- Rename 'alpha' to 'title' for content order enum value
- Inline EntityContentGroupDefinition type into EntityContentGroupDefinitions
- Rename defaultContentOrder prop to contentOrder
- Apply content ordering to ungrouped tabs as well
- Fix no-nested-ternary lint error
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Add two new configuration features for entity page groups:
- Group alias IDs: groups can declare aliases so that content targeting
an aliased group ID is included in the aliasing group
- Configurable content ordering: a new contentOrder option (alpha/natural)
controls how content items within each group are sorted, with support
for both a page-level default and per-group overrides. The new default
is alpha (alphabetical by title).
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
The paths-ignore for microsite/** was also skipping CI for changes to
microsite/data/plugins/, which is where the plugin directory YAML files
live. This meant the verify plugin directory step never ran for the
files it was supposed to validate.
Switch from paths-ignore to paths with negation so that microsite/data/
changes still trigger CI while other microsite changes remain excluded.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
The shared dependency key `@mui/material/styles/` (with trailing slash) caused
module resolution failures because MUI's package.json exports map only defines
`./styles`, not `./styles/`. This resulted in errors like:
Package subpath './styles/' is not defined by "exports" in
@mui/material/package.json
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Move `getHasYarnPlugin` and `SuccessCache` from `@backstage/cli` internal
modules to `@backstage/cli-node` as public exports, making them available
for reuse by other CLI tooling.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
The file was moved from maintenance to build on master, so the
cross-module import is no longer needed.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Split the shared loadCliConfig function into two separate implementations
to remove the cross-module dependency from build to config.
The build module's version keeps the watch/streaming capability needed by
the dev server, while the config module's version is simplified to
one-shot loading since no config commands need watching.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Add separate breaking changeset for the removal of `migrate package-exports`,
and fix a pre-existing bug where the restore assignments in
`createScriptOptionsParser` were swapped.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Move typeDistProject.ts into the build module, duplicate optionsParser.ts
into build and lint modules, inline configOption in the build module,
and simplify the deprecated migrate package-exports command to remove
cross-module dependencies.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
The entity page tab groups were rendered in extension tree order rather
than respecting the order defined in the groups configuration. This
sorts the rendered groups based on the key order from groupDefinitions.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Corrected capitalization of 'A Resource' at the beginning of the sentence (as it is a proper noun)
Signed-off-by: Rinke Hoekstra <RinkeHoekstra@users.noreply.github.com>
These are CLI framework infrastructure files that belong alongside
createCliPlugin and CliInitializer rather than in the general lib/
directory.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Move the `package clean`, `package prepack`, `package postpack`, and
`repo clean` commands from the internal maintenance module to the build
module, along with the publishing preflight check utility.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>