feat(sdui): port adaptive questionnaire to Vue and Lit demos (#465)#466
Merged
roblevintennis merged 1 commit intomasterfrom Mar 24, 2026
Merged
Conversation
Core fixes: - ag-input: re-dispatch composed change event from host so Vue @change listeners receive it across the shadow root boundary - VueInput: add missing :min, :max, :labelPosition template bindings (declared in props but never forwarded to ag-input) Renderer fixes: - codegen: add key:node.id to all Vue h() calls and use repeat() with node.id key in Lit render loop, preventing stale DOM reuse and value bleed-over between wizard steps - codegen: add min/max props to AgInput case in both Vue and Lit renderers - rebuild generated AgDynamicRenderer for Vue and Lit Demo additions: - demo-vue: add AdaptiveOutput.vue with ANSWER_CHANGE, NEXT_STEP, PREV_STEP, SUBMIT, RESTART actions and inline validation - demo-lit: add AdaptiveOutput.ts (ag-adaptive-output custom element) with same action set - All three demos: add min validation to buildValidationErrors so past dates in date fields are caught alongside existing max/future check Demo fixes (parity with React reference): - Vue/Lit WorkflowPicker: fix payload destructuring ({ id, value } not a raw string) - Vue/Lit: max-width 800px -> 900px to match React - Vue/Lit: add missing ag-selection-button-group spacing CSS - adaptive-questionnaire fixture: add min:today to aq-preferred-date and max:today to aq-last-visit nodes Simplification: - Remove login-form workflow (redundant with contact-form); picker now shows 4 distinct patterns: contact form, account setup wizard, pricing card, adaptive questionnaire Dev experience: - Add DEV-WORKFLOW.md explaining the local dependency chain, rebuild order, and Vite cache behaviour - Add rebuild:lib, rebuild:renderer, rebuild:all, fresh scripts to all three demo package.json files (fresh also nukes .vite cache)
✅ Deploy Preview for agnosticui-demo-vue ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for agnosticui-demo-lit ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for agnosticui-demo-react ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
2 tasks
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.
Summary
AdaptiveOutput) to Vue (demo-vue) and Lit (demo-lit) demos, matching the React reference implementation with multi-step navigation, skip logic, and inline validationag-inputshadow DOMchangeevent wascomposed: false, silently stopping at the shadow root — Vue@changelisteners never fired; added composed re-dispatch from hosth()calls and Litrender()loop were positional (no keys), causing stale DOM reuse and value bleed-over between wizard steps; fixed viakey: node.idin Vue andrepeat()directive in Lit (codegen updated so the fix is permanent)min,max,labelPositionwere declared in props but never bound in the template, silently droppedmin/maxprops were missing from the AgInput case in both Vue and Lit renderer codegenlogin-formworkflow (redundant with contact-form); picker now has 4 distinct patternsDEV-WORKFLOW.mdandnpm run freshscripts to all three demosTest plan
npm run freshin any demo rebuilds upstream deps, clears Vite cache, and starts dev server🤖 Generated with Claude Code