a2ui-project / a2ui-project/a2ui
[FEATURE]: Rendered components should be traceable back to the A2UI Component
- Dominant language
- TypeScript
- Stars
- 16.4k
- Forks
- 1.3k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 134
Description
In developing the [A2UI Composer](https://github.com/a2ui-project/composer), a few feature requests have come up where the user would want to select a rendered component and act on it.
The problem is, there's no way for us trace from a rendered component to the A2UI component it corresponds to.
I'm not sure how this would work in all cases, but at least for web-based renderers, if the outermost DOM element that represents the A2UI component had a `data-a2ui` property whose value is **exactly** the A2UI Component's ID, then that makes it easy. Not only is there a direct mapping, but its easy to query for DOM elements.
(For rendereed components which are from a "loop", then a few options are available; perhaps they all have the same `data-a2ui` value, with an additional `data-a2ui-instance` property to distinguish them? Or, depending on how they're rendered, perhaps there's a surrounding `div` or `span` that gets the `data-a2ui` property? Or, in the case of a list, maybe the `ol` or `ul` element gets the `data-a2ui`? Options :-))
Contributor guide
Research direction
Look at the web-based renderers in the codebase to understand how components are currently rendered to DOM. Identify where the outermost DOM element is created and add a `data-a2ui` attribute with the component's ID. For looped components, decide on an approach (like adding `data-a2ui-instance`) and implement consistently. Test by rendering components and verifying the attributes appear correctly in the browser's developer tools.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend, web-dev
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 65/100