Commit Graph

147 Commits

Author SHA1 Message Date
Fredrik Adelöw d9eaeb28c0 Merge pull request #32056 from backstage/renovate/nextjs-monorepo
fix(deps): update nextjs monorepo to v15.5.7
2025-12-08 16:04:52 +01:00
Ben Lambert e1e0dc6eab Merge pull request #31454 from awanlin/topic/node-24
Version Policy Update - Node 22 to 24
2025-12-08 11:54:16 +01:00
renovate[bot] e38052ec3a fix(deps): update nextjs monorepo to v15.5.7
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-08 10:10:08 +00:00
Fredrik Adelöw 2bae83ab2e Version Policy Update - Node 22 to 24
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2025-12-08 10:53:38 +01:00
renovate[bot] dd00a797e8 chore(deps): update dependency @base-ui-components/react to v1.0.0-rc.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-08 08:59:06 +00:00
renovate[bot] 451d02dfb1 fix(deps): update nextjs monorepo to v15.5.6
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-05 14:12:34 +00:00
renovate[bot] fb1f6c405e chore(deps): update dependency motion to v12.23.25
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-05 09:46:09 +00:00
dependabot[bot] 7dbb73dea0 build(deps): bump next from 15.4.7 to 15.4.8 in /docs-ui
Bumps [next](https://github.com/vercel/next.js) from 15.4.7 to 15.4.8.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.4.7...v15.4.8)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 15.4.8
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-03 20:43:22 +00:00
renovate[bot] a16d8266b9 chore(deps): update shiki monorepo to v3.17.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-03 17:09:47 +00:00
Fredrik Adelöw 047b15e7f3 Merge pull request #31600 from backstage/renovate/uiw-codemirror-themes-4.x-lockfile
chore(deps): update dependency @uiw/codemirror-themes to v4.25.3
2025-12-03 11:58:14 +01:00
dependabot[bot] ba1eda84a9 build(deps): bump mdast-util-to-hast from 13.2.0 to 13.2.1 in /docs-ui
Bumps [mdast-util-to-hast](https://github.com/syntax-tree/mdast-util-to-hast) from 13.2.0 to 13.2.1.
- [Release notes](https://github.com/syntax-tree/mdast-util-to-hast/releases)
- [Commits](https://github.com/syntax-tree/mdast-util-to-hast/compare/13.2.0...13.2.1)

---
updated-dependencies:
- dependency-name: mdast-util-to-hast
  dependency-version: 13.2.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-03 03:35:32 +00:00
renovate[bot] 97a1bcfb17 chore(deps): update dependency @base-ui-components/react to v1.0.0-beta.7
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-02 15:27:48 +00:00
Ben Lambert 035fc70506 Merge pull request #31781 from backstage/renovate/codemirror
chore(deps): update dependency @codemirror/view to v6.38.8
2025-12-02 16:21:36 +01:00
Charles de Dreuille 0334faab1f Cell -> CellText
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-11-30 09:01:47 +00:00
Johan Persson c353de0b9b docs(docs-ui): add v0.9.0 changelog with component attributions
Added changelog entries for @backstage/ui v0.9.0 release with component
attributions to enable filtering by affected components.

Includes breaking changes, fixes, and new features for: Avatar, Checkbox,
Select, Accordion, Menu, Header, Tabs, Table, Button, and other components.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2025-11-28 14:07:17 +01:00
Johan Persson a20d317255 feat(ui): add Table row selection support with visual states and documentation
- Add row state styling for hover, selected, pressed, and disabled states
- Fix checkbox rendering to only appear for multi-select toggle mode
- Add fixed 40px width for selection column header and cells
- Fix Column component to properly merge className prop
- Switch from React Aria headless Checkbox to styled Backstage UI Checkbox
- Add 12 selection Storybook stories covering all mode/behavior combinations
- Add interactive playground stories for selection mode and behavior
- Document row selection in docs-ui with examples

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2025-11-27 12:20:05 +01:00
renovate[bot] 91aa24e19d chore(deps): update dependency @codemirror/view to v6.38.8
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-20 08:29:37 +00:00
renovate[bot] f0066306fa chore(deps): update dependency @uiw/codemirror-themes to v4.25.3
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-18 09:57:01 +00:00
renovate[bot] 3fea34cf62 chore(deps): update dependency @base-ui-components/react to v1.0.0-beta.6
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-18 09:17:04 +00:00
Ben Lambert 766215437e Merge pull request #31730 from backstage/renovate/uiw-react-codemirror-4.x-lockfile
chore(deps): update dependency @uiw/react-codemirror to v4.25.3
2025-11-18 09:59:07 +01:00
renovate[bot] dba1ddaa7e chore(deps): update dependency @base-ui-components/react to v1.0.0-beta.5
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-17 16:03:27 +00:00
renovate[bot] 0cd34d869d chore(deps): update dependency html-react-parser to v5.2.10
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-17 13:07:42 +00:00
Fredrik Adelöw bfdf8a8726 Merge pull request #31721 from backstage/renovate/remixicon-react-4.x-lockfile
chore(deps): update dependency @remixicon/react to v4.7.0
2025-11-17 13:57:37 +01:00
Fredrik Adelöw da23c57794 Merge pull request #31773 from backstage/dependabot/npm_and_yarn/docs-ui/js-yaml-4.1.1
chore(deps): bump js-yaml from 4.1.0 to 4.1.1 in /docs-ui
2025-11-17 13:39:43 +01:00
Johan Persson a67670d240 refactor(ui): migrate to component-owned definitions
Eliminates the central componentDefinitions registry in favor of component-owned
definition files. Each of the 33 components now exports its own definition object.

Changes:
- Created definition.ts for all 33 components (Accordion, Avatar, Box, Button, etc.)
- Updated useStyles hook to accept definition objects instead of string lookups
- Removed central componentDefinitions file and related type utilities
- Updated docs-ui to import and use component definitions directly
- Added @backstage/ui/definitions subpath export to avoid importing component code
  in docs-ui, preventing Next.js SSR issues

Breaking changes:
- componentDefinitions object removed
- ComponentDefinitionName type removed
- ComponentClassNames<T> type removed
- useStyles now accepts ComponentDefinition object instead of string (internal)

Migration:
Component definitions are primarily for documenting the CSS class API for theming.
If using definitions programmatically, migrate to either:
- Use Backstage UI components directly as building blocks, or
- Duplicate component CSS in your own stylesheets

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2025-11-17 11:40:04 +01:00
Johan Persson f3ae275cfd chore(docs-ui): sync changelogs for @backstage/ui v0.1.0-v0.8.2
Syncs component changelogs from @backstage/ui package using the
automated changelog sync script. Adds missing version changelogs
(v0.1.0, v0.2.1, v0.3.2, v0.7.0-v0.8.2) and updates changelog.ts
to import all versions in descending order.

Affected components for each changelog entry were manually inferred
using AI to categorize changes by component.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2025-11-17 11:37:39 +01:00
Johan Persson 67f5310557 feat(docs-ui): add automated changelog sync from @backstage/ui
Adds automated synchronization of component changelogs from
@backstage/ui package to the documentation site, eliminating
manual changelog maintenance.

The sync script parses CHANGELOG.md using remark/unified, extracts
component-specific entries via "Affected components:" tags, and
generates per-version TypeScript files with preserved markdown
formatting. Includes GitHub API integration to automatically fetch
PR numbers for changelog entries.

Key features:
- Version comparison to sync only new releases
- Per-version file structure (changelogs/v0.2.0.ts, etc.)
- Markdown preservation via AST position slicing
- Component name mapping (PascalCase → kebab-case)
- Duplicate detection for idempotent syncing
- GitHub authentication via gh CLI or GITHUB_TOKEN
- Dry-run mode with preview

Usage:
```bash
yarn sync:changelog              # Sync new entries
yarn sync:changelog:dry-run      # Preview changes
```

Technical changes:
- Added scripts/sync-changelog.mjs (991 lines)
- Refactored changelog.ts to import per-version files
- Extracted types to separate types.ts file
- Added dependencies: @octokit/rest, unified (remark-parse via @mdx-js/mdx)
- Added documentation in README.md

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2025-11-17 11:37:39 +01:00
dependabot[bot] 559ceb0726 chore(deps): bump js-yaml from 4.1.0 to 4.1.1 in /docs-ui
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-15 10:53:21 +00:00
renovate[bot] 429062bde9 chore(deps): update dependency @uiw/react-codemirror to v4.25.3
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-12 07:50:49 +00:00
renovate[bot] b36562d90b chore(deps): update dependency @remixicon/react to v4.7.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-12 03:11:10 +00:00
Ben Lambert 27da43268f Merge pull request #31703 from backstage/docs-ui-fix-missing-dependency
fix(docs-ui): Add missing BaseUI dependency.
2025-11-11 10:38:01 -05:00
Fredrik Adelöw 24653c2d83 Merge pull request #31648 from backstage/renovate/lightningcss-1.x-lockfile
chore(deps): update dependency lightningcss to v1.30.2
2025-11-11 16:35:22 +01:00
Fredrik Adelöw 2278ed3337 Merge pull request #31668 from backstage/renovate/mdx-monorepo
chore(deps): update mdx monorepo to v3.1.1
2025-11-11 16:32:57 +01:00
Johan Persson 5d68e00ccd fix(docs-ui): Add missing BaseUI dependency.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2025-11-11 16:10:24 +01:00
Johan Persson 7839e7bd9e feat(ui): add loading state to Button and ButtonIcon components
Add optional `loading` prop to both Button and ButtonIcon components that displays
a spinner and disables interaction while async operations are in progress.

Implementation details:
- Uses React Aria's ProgressBar with indeterminate state for spinner
- Displays RiLoader4Line icon with smooth rotation animation
- Wraps content in container with opacity transition when loading
- Accessible via aria-label "Loading" on progress indicator
- Component definitions updated with content, spinner class names and loading data attribute

Documentation:
- Added Loading examples to both Button and ButtonIcon docs showing interactive demos
- Updated props tables with loading boolean prop
- Created Storybook stories covering all variants, sizes, and with icons

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2025-11-10 15:36:08 +01:00
renovate[bot] 3e8c4056ae chore(deps): update mdx monorepo to v3.1.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-10 14:20:24 +00:00
renovate[bot] 2c1fd67b9d chore(deps): update dependency lightningcss to v1.30.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-10 14:20:02 +00:00
Johan Persson 816af0fa39 feat(ui): add searchable and multiple selection support to Select component
Enhanced the Select component with search filtering and multi-selection capabilities through new searchable, selectionMode, and searchPlaceholder props.

Breaking changes:

- The SelectProps interface now accepts a generic type parameter for selection mode

Implementation details:

- Created SelectTrigger, SelectContent, and SelectListBox components for modular composition
- Integrated react-aria's Autocomplete and SearchField for search functionality
- Added support for multiple selection mode
- Added "No results found" empty state when search returns no matches
- Improved CSS organization and updated visual styling for better consistency
- Exported Option type as public API for type safety
- Updated API reports and added comprehensive Storybook stories
- Added documentation with examples for searchable and multiple selection modes

Migration guide:

If using SelectProps type directly, update the type parameter:

```diff
- SelectProps
+ SelectProps<'single' | 'multiple'>
```

Component usage remains backward compatible - existing Select implementations require no changes.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2025-11-07 14:06:16 +01:00
renovate[bot] 3216bd66f1 chore(deps): update dependency next-mdx-remote-client to v2.1.7
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-05 18:07:31 +00:00
renovate[bot] ed45af594b chore(deps): update dependency motion to v12.23.24
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-05 17:14:52 +00:00
Johan Persson 83c100e6ac refactor(ui): replace Collapsible with Accordion component
Replaces the Base UI Collapsible component with a new Accordion component built on React Aria's Disclosure primitives.

Key changes:
- Removed Collapsible component and all related files
- Added new Accordion component with AccordionTrigger, AccordionPanel, and AccordionGroup
- Introduced opinionated styling with built-in trigger component featuring animated chevron icon
- Added support for title/subtitle props and custom trigger content via children
- Implemented AccordionGroup with single/multiple expansion modes
- Updated all documentation from collapsible.mdx to accordion.mdx
- Added comprehensive migration guide in changeset
- Updated API reports and exports

This is a breaking change. Users must migrate from Collapsible to either:
1. Accordion (opinionated styled component) - recommended for most use cases
2. React Aria Disclosure directly - for full customization

The changeset provides detailed migration examples for both paths.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2025-11-05 18:05:23 +01:00
renovate[bot] 15151e636d chore(deps): update dependency html-react-parser to v5.2.8
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-05 12:07:21 +00:00
Charles de Dreuille 38de095b55 Update MobileMenu.tsx
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-11-05 11:09:29 +00:00
Charles de Dreuille 7f91058ce4 Add mobile navigation
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-11-04 19:02:24 +00:00
Charles de Dreuille d7d87d5760 Cleaning build
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-11-04 14:30:54 +00:00
Charles de Dreuille 2d01298ed1 Improve layout
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-11-04 14:30:54 +00:00
Charles de Dreuille f084d37b3f Update toolbar
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-11-04 14:30:54 +00:00
Charles de Dreuille 510f9ede8b First pass at bringing our new navigation to BUI's docs
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-11-04 14:30:54 +00:00
renovate[bot] 5cddbe133e chore(deps): update dependency typescript to v5.9.3
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-04 08:27:40 +00:00
Johan Persson 539cf2690a feat(ui): migrate Avatar from Base UI with updated size scale
Removed Base UI dependency from Avatar component and reimplemented
with native HTML elements. Updated size scale with new x-small and
x-large options.

Breaking changes:

- Base UI-specific props (render, etc.) are no longer supported
- Component now uses native div/img elements instead of Base UI primitives
- Size scale updated: large changed from 3rem to 2.5rem
- Added x-small (1.25rem) and x-large (3rem) sizes

Migration:

- <Avatar src="..." name="..." render={...} />
+ <Avatar src="..." name="..." />

- <Avatar size="large" />
+ <Avatar size="x-large" />

New features:

- Added purpose prop with 'informative' (default) and 'decoration' options
- Informative avatars announce name to screen readers
- Decorative avatars hidden from screen readers (use when name appears adjacent)
- Five size options: x-small, small, medium, large, x-large

Documentation updates:

- Updated size examples to show all five sizes
- Added Purpose story and documentation
- Updated prop definitions and usage examples
- Updated changeset with migration guide for size changes

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2025-11-03 22:08:17 +01:00