Fix #470: Add AgCombobox to SDUI codegen#492
Merged
Merged
Conversation
- Remove Combobox from skipComponents in codegen.config.ts - Add typeOverrides for options (ComboboxOption[] is an object array, not auto-detectable by ts-morph) - Add omitConfig for id/defaultValue/maxVisibleOptions/closeOnSelect/ maxOptionsVisible/validationMessages - Add noUndefinedProps for options/size/variant/value (reflect props and required array) - Add on_change payload expressions for React, Vue, and Lit - Regenerate schema.ts, types.ts, index.ts, all three renderers, and agnosticui-schema.json (52 components, check-codegen passes)
- Un-skip closeOnSelect and maxOptionsVisible from omitConfig (needed for multi-select UX: keep dropdown open, control tag count) - Override value type to string | string[] via typeOverrides (codegen simplifies the union to string; multi-select requires arrays) - Regenerate all generated files; check-codegen passes
Two tests per framework (React, Vue, Lit): - basic render: node with options array produces ag-combobox element - multi-select: multiple/value/closeOnSelect/maxOptionsVisible all accepted by the schema and passed through without TS errors
Two variations in fixtureBank: single-select department filter and multi-select skills filter (multiple/closeOnSelect/maxOptionsVisible). Confirmation fixture shows result screen after APPLY_FILTER dispatch. Picker card added so all three demos (React, Vue, Lit) surface it via the shared fixture imports. Fixtures spec passes (44 tests).
The three sdui-{react,vue,lit} examples were superseded by the full
demo apps (demo/, demo-vue/, demo-lit/) and had no CI coverage.
The renderer unit tests cover the same "does it render" smoke-test role.
Also correct the skipped-components list in sdui-architecture.md:
Combobox is no longer skipped (added in this branch); Flex replaces
it; Pagination/Slider/Combobox were never actually in skipComponents.
Remove the examples/ entry from the file layout section.
Documents the 7-step spot-check procedure: schema tests, renderer tests (all 3 frameworks), fixture validation, check-codegen, visual demo walkthrough for React/Vue/Lit, and confirming examples removal.
✅ Deploy Preview for agnosticui-demo-react ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ 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. |
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
AgComboboxfromskipComponentsand wires it into the full SDUI codegen pipelinetypeOverridesforoptions(inlineComboboxOption[]object array, not auto-detectable by ts-morph) andvalue(widened tostring | string[]for multi-select)omitConfig,noUndefinedProps, and per-frameworkon_changepayload expressions (React, Vue, Lit)multiple,closeOnSelect,maxOptionsVisible,value: string | string[]all in schemacheck-codegenpassescombobox-demoworkflow to the shared fixture bank (single-select department filter + multi-select skills filter), surfaced in all three demo apps automatically via shared fixture importsv2/sdui/examples/(superseded by demo apps, no CI coverage)sdui-architecture.mdDEV-WORKFLOW.mdTest plan
cd v2/sdui/schema && npm test— 43 tests passcd v2/sdui/renderers/react && npm test— 14 tests passcd v2/sdui/renderers/vue && npm test— 14 tests passcd v2/sdui/renderers/lit && npm test— 16 tests passcd v2/sdui/demo && npm test— 44 tests pass (fixtures + a11y)cd v2/sdui/schema && npm run check-codegen— all 7 files up to datecd v2/sdui/demo && npm run dev— Combobox workflow visible in picker; single-select and multi-select variations both render and dispatch correctly; confirmation fixture streams in on Applydemo-vueanddemo-lit