feat: CTORNDSD-634: Add className and aria-label support across A2UI components - #8
Merged
Merged
Conversation
# Conflicts: # libs/ui/llms.txt # libs/ui/src/ai/README.md
- Ensure custom renderers are not re-invoked when input references remain unchanged. - Verify re-invocation occurs when action references change. - Update auto-generated documentation components count and generation date. - Change license type for `gd-form-configurator` packages to MIT.
# Conflicts: # libs/ui/llms.txt # libs/ui/src/ai/README.md # libs/ui/src/utils/a2ui.test.tsx
Contributor
There was a problem hiding this comment.
Pull request overview
This PR extends the A2UI renderer layer and related UI components to better honor schema-level presentation and accessibility props (notably className and ariaLabel), and updates the A2UI system prompt/component map output to include richer per-component guidance and prop details. It also adds a large set of regression tests to ensure these schema props remain wired through to the rendered DOM.
Changes:
- Forward
classNameand/orariaLabelthrough many A2UI renderers into the underlying GridKit components. - Expand A2UI system-prompt generation to include full “Prop details” broadly; restore/merge component notes for A2UI-enabled components and their subcomponents.
- Add extensive regression tests validating schema-prop utilization across many A2UI component types.
Reviewed changes
Copilot reviewed 47 out of 47 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| SECURITY.md | Formats the security contact email as an autolink. |
| libs/ui/src/utils/a2ui/renderers/typography.tsx | Forwards className and aria-label into Typography renderer output. |
| libs/ui/src/utils/a2ui/renderers/truncate.tsx | Forwards className and aria-label into Truncate renderer output. |
| libs/ui/src/utils/a2ui/renderers/tooltip.tsx | Forwards className into Tooltip renderer output. |
| libs/ui/src/utils/a2ui/renderers/table.tsx | Forwards className and aria-label into Table renderer output. |
| libs/ui/src/utils/a2ui/renderers/switch.tsx | Forwards className and aria-label into Switch renderer output. |
| libs/ui/src/utils/a2ui/renderers/stepper.tsx | Forwards className and aria-label into Stepper renderer output. |
| libs/ui/src/utils/a2ui/renderers/slider.tsx | Forwards className and aria-label into Slider and SliderDots renderer outputs. |
| libs/ui/src/utils/a2ui/renderers/skeleton.tsx | Forwards className and aria-label into Skeleton renderer output. |
| libs/ui/src/utils/a2ui/renderers/separator.tsx | Forwards className and aria-label into Separator renderer output. |
| libs/ui/src/utils/a2ui/renderers/search.tsx | Adds forwarding of styling into Search; (missing className/ariaLabel forwarding noted in review). |
| libs/ui/src/utils/a2ui/renderers/rating.tsx | Forwards className and aria-label into Rating renderer output. |
| libs/ui/src/utils/a2ui/renderers/radio-group.tsx | Forwards className and aria-label into RadioGroup renderer output. |
| libs/ui/src/utils/a2ui/renderers/progress-bar.tsx | Forwards className into ProgressBar renderer output. |
| libs/ui/src/utils/a2ui/renderers/price.tsx | Forwards aria-label into Price renderer output (missing className forwarding noted in review). |
| libs/ui/src/utils/a2ui/renderers/notification.tsx | Forwards className and aria-label into InlineNotification/Snackbar renderer outputs. |
| libs/ui/src/utils/a2ui/renderers/modal.tsx | Forwards className and aria-label into Modal renderer output. |
| libs/ui/src/utils/a2ui/renderers/menu.tsx | Forwards className and aria-label into Menu renderer output. |
| libs/ui/src/utils/a2ui/renderers/loader.tsx | Forwards className and aria-label into Loader renderer output. |
| libs/ui/src/utils/a2ui/renderers/list.tsx | Forwards className and aria-label into List renderer output. |
| libs/ui/src/utils/a2ui/renderers/link.tsx | Forwards className into Link renderer output. |
| libs/ui/src/utils/a2ui/renderers/label.tsx | Forwards className into Label renderer output. |
| libs/ui/src/utils/a2ui/renderers/image.tsx | Forwards className and aria-label into Image/ImagePreview renderer outputs. |
| libs/ui/src/utils/a2ui/renderers/icon.tsx | Forwards aria-label into Icon renderer output. |
| libs/ui/src/utils/a2ui/renderers/header.tsx | Forwards className and aria-label into Header renderer output. |
| libs/ui/src/utils/a2ui/renderers/form.tsx | Forwards className to various form/input renderers; adds InputArea-related prop wiring. |
| libs/ui/src/utils/a2ui/renderers/dropdown.tsx | Forwards className and aria-label into Dropdown; forwards className into dropdown-item. |
| libs/ui/src/utils/a2ui/renderers/counter.tsx | Forwards className and aria-label into Counter renderer output. |
| libs/ui/src/utils/a2ui/renderers/chat.tsx | Forwards className and aria-label into multiple Chat-related renderer outputs. |
| libs/ui/src/utils/a2ui/renderers/chart.tsx | Forwards className and conditionally forwards aria-label into Chart renderer output. |
| libs/ui/src/utils/a2ui/renderers/carousel.tsx | Switches carousel-slide from Fragment to Box to apply styling (missing className/ariaLabel forwarding noted in review). |
| libs/ui/src/utils/a2ui/renderers/card.tsx | Forwards className into Card/Card.Row/Card.Column (missing card ariaLabel forwarding noted in review). |
| libs/ui/src/utils/a2ui/renderers/button.tsx | Forwards className into Button renderer output. |
| libs/ui/src/utils/a2ui/renderers/breadcrumbs.tsx | Ensures disabled breadcrumbs link renders without href by passing disabled. |
| libs/ui/src/utils/a2ui/renderers/box.tsx | Forwards aria-label into Box renderer output. |
| libs/ui/src/utils/a2ui/renderers/badge.tsx | Forwards className and aria-label into Badge renderer output. |
| libs/ui/src/utils/a2ui/renderers/avatar.tsx | Forwards className and aria-label into avatar/avatar-user renderer outputs (with conditional aria-label for avatar defaulting). |
| libs/ui/src/utils/a2ui/renderers/accordion.tsx | Forwards className into accordion subcomponent renderers. |
| libs/ui/src/utils/a2ui.test.tsx | Adds large regression suite asserting schema prop forwarding behavior across many components. |
| libs/ui/src/components/organisms/Search/Search.tsx | Starts forwarding styles into the underlying Select (missing forwarding of other CommonCss props noted in review). |
| libs/ui/src/components/molecules/RadioGroup/RadioGroup.tsx | Adds support for passing aria-label onto the rendered fieldset wrapper. |
| libs/ui/src/ai/README.md | Updates the generated-date stamp for the component list. |
| libs/ui/src/ai/a2ui/system-prompt.ts | Removes category gating for “Prop details” and always emits detailed per-prop docs. |
| libs/ui/src/ai/a2ui/system-prompt.test.ts | Adds tests for restored Avatar guidance and for non-Widgets “Prop details” output. |
| libs/ui/src/ai/a2ui/component-map.ts | Restores/merges notes for A2UI-enabled components and propagates merged notes into subcomponents. |
| libs/ui/src/ai/a2ui/component-map.test.ts | Adds tests validating notes restoration and inheritance behavior (brittle assertion noted in review). |
| libs/ui/llms.txt | Updates the generated-date stamp for the component list. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
tjeleascov
approved these changes
Jul 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.