19202 Commits

Author SHA1 Message Date
Patrik Oldsberg f867152e8b cli: fix prepack and postpack commands CJS compat
Switch the prepack and postpack commands from using a direct
dynamic import() to the execute.loader pattern, which properly
handles CJS double-wrapping of module exports.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-02 17:33:35 +01:00
James Brooks 993a59840b Update Azure integration config visibility
Signed-off-by: James Brooks <jamesbrooks@spotify.com>
2026-03-02 15:02:39 +00:00
Johan Persson a0e4d38f4b fix(ui): use Text as="p" in Tabs stories for proper line breaks
Story description text was rendering inline without line breaks
between elements. Add as="p" to Text components so each renders
as a block-level paragraph.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-02 15:51:07 +01:00
Johan Persson d4fa5b4ee0 fix(ui): strip query params from tab href before active-state matching
Tab matchStrategy ('exact' and 'prefix') compared the raw tab href
against location.pathname, which never includes query params. This
meant tabs with query params in their href could never be matched
as active.

Extract an hrefPathname helper that strips query params and hash
fragments, and use it in both isTabActive and the segment count
computation.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-02 15:51:07 +01:00
Charles de Dreuille f2588154a2 Merge pull request #33078 from backstage/cdedreuille/ui-neutral-bg-simplification
Fix neutral hover state token
2026-03-02 13:49:01 +00:00
Charles de Dreuille 934ac03ce6 Improve SearchField + TextField look
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-02 13:44:35 +00:00
Charles de Dreuille da54fd24ef Update tokens.css
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-02 12:43:44 +00:00
Johan Persson 426edbef9c fix(repo-tools): allow excess arguments for generate-catalog-info command
Re-add `.allowExcessArguments(true)` which was dropped during
conflict resolution in the Commander v14 upgrade (PR #32583).

lint-staged passes staged file paths as extra arguments when
invoking `generate-catalog-info` via the pre-commit hook, causing
Commander v14 to reject them with "too many arguments".

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-02 11:36:02 +01:00
Patrik Oldsberg 5879bd8760 Merge pull request #33063 from backstage/rugvip/fix-entity-page-default-content-order
plugin-catalog: fix entity page default content order config name
2026-02-28 15:37:38 +01:00
Kurt King 0e7d8f9091 Refactor scheduler to use metrics service (#32992)
* Migrate scheduler metrics to MetricsService

Signed-off-by: Kurt King <kurtaking@gmail.com>

* Add missing changeset

Signed-off-by: Kurt King <kurtaking@gmail.com>

* Update API report

Signed-off-by: Kurt King <kurtaking@gmail.com>

* Release as minor with breaking change verbiage

Signed-off-by: Kurt King <kurtaking@gmail.com>

* Apply suggestion from @aramissennyeydd

Signed-off-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>

* fix prettier

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

---------

Signed-off-by: Kurt King <kurtaking@gmail.com>
Signed-off-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
Co-authored-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>
Co-authored-by: aramissennyeydd <aramis.sennyey@doordash.com>
2026-02-28 14:14:47 +00:00
Aramis Sennyey 0fbcf23714 feat: add support for OpenAPI 3.1 (#32300)
* breaking: add support for OpenAPI 3.1

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* add changeset

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* update nullable prop

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* remove more allowReserved usages

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* make changes less breaking

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>

* Apply suggestion from @aramissennyeydd

Signed-off-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>

---------

Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
Signed-off-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>
2026-02-28 09:04:02 -05:00
Patrik Oldsberg 233c33f2de Rename top-level contentOrder to defaultContentOrder in entity page config
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-28 15:03:25 +01:00
Patrik Oldsberg fbcfb392a2 Merge pull request #33057 from backstage/rugvip/fix-test-api-provider-const
frontend-test-utils: fix `TestApiPair` type inference for tuple syntax
2026-02-28 10:45:26 +01:00
Vivek Hipparkar de1d282943 chore: add changeset for scaffolder markdown list behavior fix
Signed-off-by: Vivek Hipparkar <vivekhipparkar@gmail.com>
2026-02-28 13:11:41 +05:30
Patrik Oldsberg fba2809b20 frontend-test-utils: add type tests for TestApiProvider
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-27 23:45:54 +01:00
Patrik Oldsberg 479282f38e frontend-test-utils: fix TestApiPair type inference for tuple syntax
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-27 21:23:18 +01:00
Patrik Oldsberg 56d01c7a7d test-utils: add const type parameter modifier to TestApiProvider and TestApiRegistry.from
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-27 20:22:28 +01:00
Andre Wanlin 120d425326 Fixed failing tests
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-02-27 12:50:03 -06:00
Andre Wanlin d8116c463d Latest feedback
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-02-27 12:50:03 -06:00
Andre Wanlin 5da7c6c5c2 Add check for removed config
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-02-27 12:50:02 -06:00
Andre Wanlin 527cf88a90 Integration - Removed long deprecated code
Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Fixed lock file

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Improve changesets

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Removed link

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Update .changeset/sharp-ravens-shop.md

Co-authored-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>
Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com>

Update .changeset/six-trees-carry.md

Co-authored-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>
Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com>

Update .changeset/tiny-zoos-smash.md

Co-authored-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>
Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com>

Corrected gerrit changes based on feedback

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Updated API report

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Fixed some tests

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Fixed test

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Fixed another test

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Removed parseGerritGitilesUrl

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Table clean up

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Remove from changeset

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

Changes based on feedback

Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-02-27 12:50:00 -06:00
Johan Persson 1b3dea2092 Fix ToggleButtonGroup orientation prop not reaching React Aria
orientation was listed in propDefs with dataAttribute: true, which
caused useDefinition to extract it from restProps. React Aria's
ToggleButtonGroup never received it and defaulted to horizontal.

Remove orientation from propDefs and OwnProps so it flows through
restProps to React Aria, which handles data-orientation itself.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 95702abc2b Add changesets for useDefinition migration and cleanup
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson fb5400e39b Update packages/ui api report.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson d8dbab6d17 Delete useStyles hook and legacy type definitions
All components have been migrated to useDefinition. Remove the now-unused
useStyles hook and its associated types (ComponentDefinition, ClassNamesMap,
DataAttributeValues, DataAttributesMap) from the public API.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 3f2c27a1e4 Remove children from Skeleton and Avatar propDefs
Children was incorrectly added to OwnProps/propDefs during migration,
causing useDefinition to extract it from restProps. Since neither
component consumes children directly, children should flow through
restProps to the underlying div element.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson baafd4b20f Fix Container not rendering children
Children was in propDefs (extracted to ownProps by useDefinition) but
the component only spread restProps on a self-closing div, silently
dropping children. Now explicitly renders children from ownProps.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 43b9f78080 Extract shared Menu popover classNames, propDefs, and types
Address review feedback: extract MenuPopoverOwnProps shared type for
common props (placement, virtualized, maxWidth, maxHeight, style,
className). Extract menuPopoverClassNames and menuPopoverPropDefs in
definition.ts to ensure shared values stay in sync across Menu variants.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 403496c5cb Migrate Menu component from useStyles to useDefinition
Split monolithic MenuDefinition (17 classNames) into 9 per-sub-component
definitions (Menu, MenuListBox, MenuAutocomplete, MenuAutocompleteListbox,
MenuItem, MenuListBoxItem, MenuSection, MenuSeparator, MenuEmptyState).
MenuItem color prop uses dataAttribute with default in propDefs. Defaults
for placement, virtualized, selectionMode moved to propDefs.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 36b1ac8802 Migrate TagGroup component from useStyles to useDefinition
Split shared TagGroupDefinition into TagGroupDefinition (root) and
TagDefinition (tag sub-component). Tag's size prop now uses dataAttribute
with default in propDefs instead of manual data-size and default spreading.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 66dc56c7f9 Migrate Tabs component from useStyles to useDefinition
Split monolithic TabsDefinition into 5 per-sub-component definitions
(Tabs, TabList, Tab, TabPanel, TabsIndicators). Each sub-component now
uses useDefinition with its own OwnProps type. Removed clsx and direct
CSS module imports from component files.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 4742c3f2e0 Migrate Table component from useStyles to useDefinition
Split monolithic TableDefinition into 8 per-sub-component definitions
(TableRoot, TableHeader, TableBody, Row, Column, Cell, CellText,
CellProfile) following the established defineComponent pattern.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson bd3a76eac7 Fix SearchField CSS selector to use lowercase data attribute
The useDefinition hook renders data attributes in lowercase,
so the CSS selector `[data-startCollapsed]` no longer matched.
Updated to `[data-startcollapsed]` to restore collapsed state
styling.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson a06731af67 Address review feedback for RadioGroup, Select, and TablePagination
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 1851e95930 Fix Radio displayName incorrectly set to 'RadioGroup'
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 9f4661b7c1 Update API report for RadioGroup, Select, and TablePagination migrations
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 8288e5ac85 Migrate Select component from useStyles to useDefinition
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 2e1eddf6c6 Migrate TablePagination component from useStyles to useDefinition
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson c6d4df4314 Migrate RadioGroup component from useStyles to useDefinition
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson a393ed3f17 Migrate PluginHeader component from useStyles to useDefinition
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 437ae1943d Migrate HeaderPage component from useStyles to useDefinition
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 08bc4dbcfe Migrate Dialog component from useStyles to useDefinition
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 54d5ba4cff Remove unused restProps spread from Flex and Grid components
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 8b0d2583f5 Migrate Grid component from useStyles to useDefinition
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson b303857f1e Fix isRequired not passed to React Aria field components
isRequired was consumed locally for the secondary label but never
forwarded to the underlying AriaTextField/AriaSearchField, resulting
in missing aria-required attribute and no built-in validation.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 42311e3a85 Update API report after batch migration
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 579c053270 Migrate Flex component from useStyles to useDefinition
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson e1dbf294dd Migrate Text component from useStyles to useDefinition
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson 9c5d262398 Migrate TextField component from useStyles to useDefinition
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00
Johan Persson c62ab0cf7b Migrate SearchField component from useStyles to useDefinition
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-27 17:18:03 +01:00