feat: Add children-based API for button group
Description
Allow button group items to be passed as children ("composition" API). While this doesn't give functionality parity with the items API, it allows more flexibility, and still includes implementation of keyboard navigation.
Related links, issue #, if available: AWSUI-60859
How has this been tested?
New unit and integration tests
Review checklist
The following items are to be evaluated by the author(s) and the reviewer(s).
Correctness
- Changes include appropriate documentation updates.
-
Changes are backward-compatible if not indicated, see
CONTRIBUTING.md. -
Changes do not include unsupported browser features, see
CONTRIBUTING.md. - Changes were manually tested for accessibility, see accessibility guidelines.
Security
-
If the code handles URLs: all URLs are validated through the
checkSafeUrlfunction.
Testing
- Changes are covered with new/existing unit tests?
- Changes are covered with new/existing integration tests?
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Codecov Report
:white_check_mark: All modified and coverable lines are covered by tests.
:white_check_mark: Project coverage is 96.94%. Comparing base (8cda3da) to head (675c8a1).
:warning: Report is 66 commits behind head on main.
Additional details and impacted files
@@ Coverage Diff @@
## main #3553 +/- ##
==========================================
- Coverage 96.96% 96.94% -0.02%
==========================================
Files 820 820
Lines 23786 23789 +3
Branches 8337 7921 -416
==========================================
- Hits 23064 23063 -1
- Misses 716 720 +4
Partials 6 6
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
- :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
Closing for #3785