feat: master-detail subform + lightweight list primitives (SDUI)#1487
Merged
Conversation
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- LineItemsField: finish the GridField edit stub into a controlled editable child grid (add/delete rows, per-cell widgets, running total). - MasterDetailForm (object-master-detail-form): enter parent + line items together; client-orchestrated transaction (create parent, set FK, bulk-create children, roll up total, best-effort cleanup on failure). - LineItemsPanel (record:line_items): child grid bound to an existing parent for detail/view + inline edit. - masterDetailTx: pure, tested orchestration helpers (diff/sum/applyDetail). - Tests: 15 passing (orchestration + grid component). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Dev-only /dev/master-detail route rendering object-master-detail-form against the live expense_claim + expense_line (master_detail) for end-to-end verification. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Decouple the grid footer total from parent rollup so a master-detail form shows a live total even when no parent total field is configured. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
SDUI opt #1 — simple data shouldn't need a full data-grid. Adds: - element:definition-list: compact key/value <dl> (1/2 columns, inline). - element:repeater: chrome-free data-bound list (one line per row, no toolbar/filters/pagination/selection), fetched via the adapter. Unit tests (6) + dev route /dev/lists; verified against live showcase_category. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Align header+line-item entry with mainstream ERP/CRM platforms (Salesforce/ SAP/NetSuite/Odoo): - header fields on top, line grid below, single Save bar at the bottom (parent form rendered button-less; Save drives it via form.requestSubmit()). - line-number (#) column; right-aligned numeric columns + total. - 'Add line' wording. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
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
Turns ObjectUI into a true SDUI runtime for two common enterprise needs, plus the dev harnesses that verified them.
Master-detail subform (parent + line items) — ADR-0001
LineItemsField(editable child grid): add/delete rows, per-cell widgets (text/number/currency/date/select), line-number column, right-aligned numerics, running total.MasterDetailForm(object-master-detail-form): enter a parent + its line items together; client-orchestrated transaction (create parent → set FK → bulk-create children → roll up total → best-effort cleanup). Enterprise-convention layout: header on top → line grid → single Save bar at the bottom (Salesforce/SAP/NetSuite/Odoo style).LineItemsPanel(record:line_items): child grid bound to an existing parent for detail/view + inline edit.masterDetailTx: pure, tested orchestration helpers (diff/sum/applyDetail; tolerant of varied adapterbulk()shapes).Lightweight list primitives (SDUI opt #1 — simple data shouldn't need a full data-grid)
element:definition-list(compact key/value),element:repeater(chrome-free data-bound list).Verification
master_detailFK); lightweight lists rendered against liveshowcase_category.Notes
/dev/master-detailand/dev/listsare included for verification (removable).🤖 Generated with Claude Code