Repository navigation
feat(app-shell): Add field asks for label and type in a popover; the type picker also searches descriptions (objectui#12516) - #12587
Merged
objectstack-fleet[bot] merged 5 commits intoOct 16, 2026
Conversation
…icker searches descriptions Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NexEdg9sJzmsdpTuKVo4AY
…ription search; add-field helpers fill the popover Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NexEdg9sJzmsdpTuKVo4AY
…tead of resetting from an effect Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NexEdg9sJzmsdpTuKVo4AY
…utside click already closes it Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NexEdg9sJzmsdpTuKVo4AY
Contributor
Author
席位核对 — ACCEPT · objectui#12516 · head
|
Contributor
✅ Console Performance Budget
The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it. 📦 Bundle Size Report
Size Limits
|
Contributor
Author
Landing · head
|
objectstack-fleet
Bot
deleted the
claude/issue-12516-field-type-picker
branch
October 16, 2026 00:21
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.
Fixes #12516
Clause-②: no
What changed
Target 1 — the type picker's search. The picker already had a search input, focused on open, filtering on name, category, id and English name with Enter picking (objectui#11793); the test-pass screenshot cropped it off above a popover that had flipped upward. This PR adds the description to the search, matched on whole words:
maskednow finds Password and Secret, whilepickstill leaves Picklist alone andlookleaves Lookup. A substring match would have pulled in Slider through 'A number picked on a slider.' A query in Han or Kana matches a description as a substring, since those scripts have no word edges. Groups keep their headings over their matches, empty groups are dropped, and the arrow keys plus Enter pick a type.Target 2 — Add field asks first. A new
AddFieldPopover(studio-design) holds a required Label, the sameFieldTypePickerwith Text preselected, and Cancel / Create. Create calls the pillar's oneaddField(label, type): the same object buffer and autosave as before, and the new field opens in the inspector. The api name istoFieldNameLoose(label), the inspector Label's own derivation. When that is empty (no Latin letters) or names an existing field, the field gets the next freefield_N, which is what the inspector keeps in both cases. Cancel, Escape or an outside click creates nothing.Target 3 — the entries share it. On main, Add field lives on the Form toolbar and the Records grid's '+' column, and both ran the same
addField. Both now open the popover. There is no empty-form Add field on main (an empty section shows 'Drop here'). A read-only package still offers no Add field (objectui#12453).Deviations
GridFieldAuthoring, whoseonAddColumnhands back no element, and@object-ui/componentsexports no popover anchor. So the grid's popover sits at the records body's top-right corner, and focus returns to '+' when it closes. Anchoring it under '+' needs a components contract change, outside this card's file surface.Acceptance notes
GridFieldAuthoring.onAddColumnis typed with no argument while the grid passes the click event; noted, not filed.Screenshots (1280 px, writable package, HotCRM backend)
pick— light · darkhealth_score, Picklist) — light · darkThe screenshots live on the evidence branch
claude/issue-12516-evidence, which is never merged.Test evidence (at
04e029f)pnpm --filter @object-ui/app-shell test: exit 0, Test Files 1416 passed, 1 skipped (1417); Tests 13521 passed, 9 skipped (13530).type-check0,build0, eslint on touched files 0 errors;check:i18n-keys,check:i18n-drift,check:i18n-designer-parity,check:i18n-dead-keys,check:new-line-citationsandcheck-changeset-presenceall 0.FieldTypePicker.search-12516.test.tsx(8 tests) andDataPillar.addFieldPopover-12516.test.tsx(8 tests). Each was ablated once and went red: no description match (4 red), description as substring (2 red), name not derived from the label (2 red), collision unhandled (1 red), popover clicks recorded as the grid button (1 red). One unmount-close branch stayed green under ablation, which showed it unreachable, so it was deleted.Session:
https://claude.ai/code/session_01NexEdg9sJzmsdpTuKVo4AY🤖 Generated with Claude Code
https://claude.ai/code/session_01NexEdg9sJzmsdpTuKVo4AY
Generated by Claude Code