Commit 12e978b
refactor(a2ui): core quality pass — type safety, code org, tests, DX (#105)
* docs: add A2UI quality pass design spec and implementation plan
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(a2ui): add isPathRef and isFunctionCall type guards
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor(chat): extract surfaceToSpec to dedicated file with UIElement types
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor(chat): extract buildA2uiActionMessage to dedicated file
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor(chat): extract shared emitBinding utility for catalog input components
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* test(chat): add unit tests for A2UI input catalog components
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* test(chat): add unit tests for A2UI display and complex catalog components
Add @analogjs/vite-plugin-angular and tsconfig.spec.json to enable the Angular
compiler in the vitest environment so that signal inputs work with setInput.
This was required for all catalog component tests.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(chat): rewrite catalog tests without TestBed, revert vite config changes
The angular() vite plugin caused module resolution failures in the chat
lib test environment. Reverted to original vite config and rewrote all
catalog component tests to test behavioral logic directly via emitBinding
utility rather than requiring Angular template compilation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(chat): expand public API with catalog components and A2UI type re-exports
Consumers can now import individual catalog components for custom catalog
composition via withViews, and access core A2UI types directly from
@cacheplane/chat without needing to import @cacheplane/a2ui.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* docs(a2ui): add data model bindings section and validationResult to prop tables
- New "Data Model Bindings" section in overview.mdx explaining the binding
mechanism, emitBinding utility, and known limitations
- Added validationResult prop to all input component prop tables in catalog.mdx
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>1 parent 27d3d92 commit 12e978b
32 files changed
Lines changed: 2361 additions & 261 deletions
File tree
- apps/website/content/docs/render/a2ui
- docs/superpowers
- plans
- specs
- libs
- a2ui/src
- lib
- chat/src
- lib/a2ui
- catalog
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
185 | 185 | | |
186 | 186 | | |
187 | 187 | | |
| 188 | + | |
188 | 189 | | |
189 | 190 | | |
190 | 191 | | |
| |||
210 | 211 | | |
211 | 212 | | |
212 | 213 | | |
| 214 | + | |
213 | 215 | | |
214 | 216 | | |
215 | 217 | | |
| |||
226 | 228 | | |
227 | 229 | | |
228 | 230 | | |
| 231 | + | |
229 | 232 | | |
230 | 233 | | |
231 | 234 | | |
| |||
244 | 247 | | |
245 | 248 | | |
246 | 249 | | |
| 250 | + | |
247 | 251 | | |
248 | 252 | | |
249 | 253 | | |
| |||
273 | 277 | | |
274 | 278 | | |
275 | 279 | | |
| 280 | + | |
276 | 281 | | |
277 | 282 | | |
278 | 283 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
394 | 394 | | |
395 | 395 | | |
396 | 396 | | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
397 | 433 | | |
398 | 434 | | |
399 | 435 | | |
| |||
0 commit comments