Commit Graph

73442 Commits

Author SHA1 Message Date
Charles de Dreuille 33ea7fb301 docs(ui): update Header docs with tags, description, and metadata props
Add new props to the Header API reference and examples on ui.backstage.io.
Also adds deprecated badge support to the shared PropsTable component so
the breadcrumbs prop is visually marked as deprecated.

Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
Made-with: Cursor
2026-04-19 09:54:19 +02:00
Charles de Dreuille c96e2b3445 feat(ui): add description, tags, and metadata props to Header
Add three new props to the Header component:
- `tags`: renders a row of text/link items above the title, separated by
  3×3px circle dividers
- `description`: renders a markdown string below the title with inline
  link support via react-markdown
- `metadata`: renders key-value pairs below the description with 20px gaps

Also deprecates the `breadcrumbs` prop for future removal.

Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
Made-with: Cursor
2026-04-19 09:48:56 +02:00
Charles de Dreuille 3e9f20340a fix(ui): improve DateRangePicker accessibility and fix docs link
- Add aria-label="Open calendar" and aria-hidden on icon for the calendar trigger button
- Add aria-hidden on nav button icons (React Aria provides built-in labels for prev/next slots)
- Update React Aria docs link to react-aria.adobe.com format

Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
Made-with: Cursor
2026-04-19 07:36:48 +02:00
Charles de Dreuille dc17c01a53 Update page.mdx
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-04-19 07:33:10 +02:00
Charles de Dreuille d676565abb fix(ui): refine DateRangePicker calendar button styling
- Fixed size: 1.5rem (small), 2rem (medium) in rem units
- No padding, flex-centered icon
- Inset focus ring using 1px box-shadow with --bui-ring token
- Border radius bumped to radius-2
- Medium size padding-inline-end reduced to space-1

Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
Made-with: Cursor
2026-04-19 06:59:06 +02:00
Charles de Dreuille b6d52bdb7d chore: dedupe yarn.lock
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
Made-with: Cursor
2026-04-19 06:45:32 +02:00
Charles de Dreuille f221068ab9 fix(ui): use BUI Popover and add unavailable dates story in DateRangePicker
- Switch DateRangePicker to use the BUI Popover component (with hideArrow)
  instead of the raw react-aria-components Popover
- Add WithUnavailableDates story showing isDateUnavailable with weekends
  blocked and non-contiguous ranges disallowed (default behaviour)

Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
Made-with: Cursor
2026-04-19 06:38:47 +02:00
Charles de Dreuille ff68a57b14 Update report.api.md
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-04-19 06:38:21 +02:00
Charles de Dreuille 20a5de0605 Fix styles
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-04-19 06:38:21 +02:00
Charles de Dreuille 401916d55b feat(ui): add DateRangePicker component
Adds a new DateRangePicker component to @backstage/ui built on React Aria,
featuring a custom field group with two DateInput fields and a calendar
trigger, a RangeCalendar popover with proper range selection visuals
(solid circles for start/end, transparent solid fill for in-range cells
with row-boundary rounding), and full BUI token usage including bg
consumer auto-increment. Includes Storybook stories and a docs-ui page.

Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
Made-with: Cursor
2026-04-19 06:38:19 +02:00
Fredrik Adelöw 83ac69be86 Fix ListTaskPage test to match simplified OwnerEntityColumn
Update assertions to expect the entity presentation short ref (e.g.
'foo') instead of the old catalog-resolved display name (e.g.
'BackUser'), and remove now-unused entity fixtures and catalog API
mocking.

Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-18 22:50:30 +02:00
Fredrik Adelöw 415e30b489 Add changeset
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-18 22:33:41 +02:00
Fredrik Adelöw 8341f98940 Simplify OwnerEntityColumn to use EntityRefLink directly
Remove the catalog API lookup and manual title resolution. The
EntityRefLink already uses the entity presentation API to resolve
display names, so the component only needs the entity ref string.

This removes unused imports of useApi, useAsync, catalogApiRef,
parseEntityRef, and UserEntity.

Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-18 22:32:54 +02:00
Fredrik Adelöw 89d324840c fix(scheduler): handle setTimeout overflow for long sleep durations
Node.js setTimeout uses a 32-bit signed integer for the delay, so
values larger than 2^31-1 ms (~24.8 days) cause the callback to fire
immediately. Fix by chunking the wait into segments of at most 2^30 ms.

Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-18 15:30:07 +02:00
MT Lewis 0912de3a25 ui: transform number to px in basis utility prop
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-17 17:52:23 +01:00
MT Lewis 68d1725113 ui: style overrides take higher precedence than utility styles in Box
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-17 17:47:46 +01:00
MT Lewis ea220e9a9d ui: document FlexItemProps
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-17 17:47:29 +01:00
MT Lewis 62cc936894 ui: fix organization of .changeset/funny-areas-rescue.md
Co-authored-by: Johan Persson <johanopersson@gmail.com>
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-17 17:46:04 +01:00
Johan Persson c3ca20c864 patches: add entry for #33984
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-04-17 14:18:22 +02:00
Johan Persson c6fc76f532 fix(ui): prevent hidden Tabs tree from stomping active indicator opacity
React Aria's `CollectionBuilder` renders `TabList`'s children into both a
hidden collection-building tree and the real DOM. The hidden instance of
`TabsIndicators` sits outside the `TabListStateContext` provider, so its
`state` is `null` — causing its `updateCSSVariables` effect to hit the
`else` branch and write `--active-tab-opacity: 0` to the `tabsRef` DOM
element that the real instance also writes to. Under the right render
ordering, this hidden write lands after the real instance's `opacity: 1`
and makes the active indicator disappear on uncontrolled Tabs.

Guard `updateCSSVariables` with an early return when `state == null` so
the hidden instance never writes to the shared DOM element.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-04-17 14:18:22 +02:00
Patrik Oldsberg 64b186f465 Merge pull request #33962 from backstage/rugvip/remove-unused-getgithubintegrationconfig
catalog-import: 🧹
2026-04-17 13:07:27 +02:00
Patrik Oldsberg 4247ab84e1 Merge pull request #33961 from backstage/remove-unused-task-settings-v1
backend-defaults: 🧹
2026-04-17 13:07:16 +02:00
Patrik Oldsberg 49401e530a Merge pull request #33960 from backstage/rugvip/remove-unused-signin-type-aliases
core-components: remove unused onSignInFailure and onSignInStarted type aliases
2026-04-17 13:07:07 +02:00
Patrik Oldsberg b645fc7c41 Merge pull request #33959 from backstage/rugvip/remove-orphan-mock-auth-connector
core-app-api: 🧹
2026-04-17 13:06:57 +02:00
Fredrik Adelöw ab0460715b Merge pull request #33982 from backstage/freben/preee
enter prerelease mode
2026-04-17 12:59:00 +02:00
Patrik Oldsberg 4ce14da5b9 Merge pull request #33981 from backstage/rugvip/add-patches-entry-33975
patches: add entry for #33975
2026-04-17 12:58:08 +02:00
Fredrik Adelöw f9bfb91778 enter prerelease mode
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-04-17 12:45:55 +02:00
Patrik Oldsberg eee19e9c2f Add patch entry for PR #33975
Adds a .patches entry to include the React Aria dependency range
clamping fix in the next patch release.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-17 12:29:36 +02:00
Johan Persson e2d9831352 fix: clamp React Aria dependency ranges to patch-only updates
Changed version ranges for react-aria, react-aria-components, and
react-stately from `^` (minor) to `~` (patch) across all consuming
packages to prevent unintended minor version upgrades.

Also aligned app-visualizer's react-aria-components from 1.14 to 1.17.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-04-17 11:49:34 +02:00
MT Lewis 8bb33cd674 ui: add affected components to changeset
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-17 10:25:56 +01:00
MT Lewis 7ea79b2ad4 ui: add style to CardOwnProps
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-17 10:07:00 +01:00
MT Lewis 76759067a2 ui: use type import for CSSProperties in shared types
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-17 10:06:23 +01:00
Patrik Oldsberg e383430a11 Merge pull request #33958 from backstage/rugvip/changeset-no-internal-details
docs: clarify that changesets should not reference internal code details
2026-04-17 11:05:45 +02:00
Patrik Oldsberg 2852a58e21 Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-04-17 10:46:44 +02:00
MT Lewis 7f9b3b7aee ui: allow all valid flex-basis values for basis prop
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-17 09:46:17 +01:00
Patrik Oldsberg 45da25f948 Merge pull request #33957 from backstage/rugvip/delegate-attach-mock-api-factory
frontend-test-utils: remove internal mockWithApiFactory in favor of attachMockApiFactory
2026-04-17 10:43:41 +02:00
Patrik Oldsberg b16ae3cea7 Merge pull request #33955 from backstage/rugvip/deduplicate-joinpaths-in-frontend-app-api-routing
frontend-app-api: deduplicate joinPaths utility in routing
2026-04-17 10:43:26 +02:00
Maximilian Wörner d0f6d9e5c0 Update GitLab URL format in documentation
Signed-off-by: Maximilian Wörner <maxwoerner@gmail.com>
2026-04-17 10:34:28 +02:00
Patrik Oldsberg d9264ed271 Merge pull request #33952 from backstage/rugvip/zod-v3-config-schema-docs
frontend-plugin-api: clarify that zod v3 does not support configSchema
2026-04-17 10:34:20 +02:00
Maximilian Wörner 1933c4b817 Update GitLab URL format in old documentation
Signed-off-by: Maximilian Wörner <maxwoerner@gmail.com>
2026-04-17 10:34:02 +02:00
MT Lewis 61f1276e90 ui: style overrides take higher precedence than utility styles in Card
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-17 09:25:15 +01:00
Patrik Oldsberg 0c298f7cf1 Remove internal mockWithApiFactory in favor of attachMockApiFactory
Rather than having the public attachMockApiFactory delegate to an internal
mockWithApiFactory helper, move the implementation directly into
attachMockApiFactory and use it everywhere.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-17 10:23:14 +02:00
Patrik Oldsberg f79eaf268c Add changeset for frontend-app-api routing cleanup
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-17 10:18:36 +02:00
Patrik Oldsberg 39eb61b28c Add changeset for catalog-import internal refactor
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-17 10:15:34 +02:00
Patrik Oldsberg d33ab2aa24 Merge pull request #33947 from backstage/remove-applied-patches
.patches: remove entries released in v1.50.1
2026-04-17 08:40:55 +02:00
dependabot[bot] b2a820e624 chore(deps): bump protobufjs from 7.5.4 to 7.5.5
Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.4 to 7.5.5.
- [Release notes](https://github.com/protobufjs/protobuf.js/releases)
- [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/protobufjs/protobuf.js/compare/protobufjs-v7.5.4...protobufjs-v7.5.5)

---
updated-dependencies:
- dependency-name: protobufjs
  dependency-version: 7.5.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-17 05:42:52 +00:00
Patrik Oldsberg 02b72c35b3 catalog-import: remove unused getGithubIntegrationConfig
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-17 00:14:28 +02:00
Patrik Oldsberg 5f849c6a37 Remove unused taskSettingsV1Schema and TaskSettingsV1
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-17 00:14:15 +02:00
Patrik Oldsberg 8a645d2db5 core-components: remove unused onSignInFailure and onSignInStarted type aliases
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-17 00:13:09 +02:00
Patrik Oldsberg 21b63b0475 core-app-api: remove orphan MockAuthConnector files
Remove MockAuthConnector.ts and MockAuthConnector.test.ts which are
not exported from the barrel file and have no consumers outside of
each other.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-17 00:12:44 +02:00