Commit Graph

322 Commits

Author SHA1 Message Date
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
Fredrik Adelöw f3af33d9be Merge pull request #31575 from backstage/renovate/codemirror
chore(deps): update codemirror
2025-11-03 21:11:30 +01:00
renovate[bot] 5407bcee24 chore(deps): update dependency @lezer/highlight to v1.2.3
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-03 19:11:35 +00:00
renovate[bot] 03da12f265 chore(deps): update codemirror
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-03 14:18:13 +00:00
Johan Persson 5c614fff85 feat(ui): migrate Checkbox component to React Aria
Migrates the Checkbox component from Base UI Components to React Aria Components.

Breaking changes:
- Props renamed to React Aria conventions (checked → isSelected, disabled → isDisabled, etc.)
- Label prop removed - use children instead
- CSS class bui-CheckboxLabel removed
- Data attribute changed from data-checked to data-selected
- Use without label is no longer supported

Migration example:
Before: <Checkbox label="Accept terms" checked={agreed} onChange={setAgreed} />
After: <Checkbox isSelected={agreed} onChange={setAgreed}>Accept terms</Checkbox>

Changes include:
- Updated TypeScript types and component implementation
- Migrated CSS to use React Aria data attributes ([data-selected], [data-disabled], etc.)
- Updated Storybook stories and documentation
- Fixed CSS structure to properly separate label wrapper and checkbox indicator styles
- Updated component definitions and API reports
- Created changeset with migration guide

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2025-10-24 15:16:56 +02:00
Johan Persson a75d277e55 fix(docs-ui): Fix file path case issue.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2025-10-23 13:39:16 +02:00
Johan Persson 1ef3ca48d6 Backstage UI: Add VisuallyHidden component.
Adds a new VisuallyHidden component for hiding content visually while keeping it accessible to screen readers.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2025-10-23 10:35:16 +02:00
Charles de Dreuille 717f7080d1 Fixes on icons
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-10-18 22:41:50 +01:00
Charles de Dreuille 87cf96e1ea Improve BUI install docs
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-10-18 22:31:56 +01:00
Charles de Dreuille 3c0ea67da1 Add changeset
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-10-16 19:14:32 +01:00
Charles de Dreuille 4eb455ca15 Fix font smoothing in BUI
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-10-16 13:24:19 +01:00
Charles de Dreuille 146e3fc24e Change to 14px
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-10-15 15:52:44 +01:00
Charles de Dreuille dac851fa87 Fix default font size in BUI
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-10-15 15:50:53 +01:00
Charles de Dreuille 26c6a78c7a Fix default text color in BUI
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-10-15 11:42:36 +01:00
Charles de Dreuille 7b319c5304 Remove Icon component in BUI
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-10-13 22:56:22 +01:00
Charles de Dreuille fb50566fb9 Improve styles props
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-10-13 17:46:32 +01:00
Charles de Dreuille b94030c5db Merge pull request #31393 from backstage/bui-fix-table-sorting
BUI - Fix sorting icon position in table
2025-10-13 10:51:15 +01:00
Patrik Oldsberg 2a947723c3 Merge pull request #31389 from backstage/bui-restructure-usestyles
BUI - Restructure useStyles hook
2025-10-13 11:50:54 +02:00
Charles de Dreuille 09f0e8322c Merge branch 'master' into bui-fix-table-sorting 2025-10-13 10:07:56 +01:00
Charles de Dreuille 507ee55885 Fix sorting icon position in table
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-10-12 16:42:43 +01:00
Charles de Dreuille d8ab4c942a Add missing styles
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-10-12 16:09:36 +01:00
Charles de Dreuille 85d50f3716 Remove DialogClose and add width and height props
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-10-12 16:05:04 +01:00
Charles de Dreuille 749ec3cd38 Restructure useStyles hook
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-10-11 09:04:26 +01:00
Charles de Dreuille 9afb8b0e49 Merge branch 'master' into bui-dialog-component 2025-10-10 10:47:25 +01:00
Charles de Dreuille a8f0292a45 Fix stories
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2025-10-10 10:45:25 +01:00
Sofia Sjöblad a512ba9c68 chore: fix prettier and text copy
Signed-off-by: Sofia Sjöblad <ssjoblad@spotify.com>
2025-10-10 08:23:32 +02:00