yangzhang75 opened a new pull request, #8517:
URL: https://github.com/apache/texera/pull/8517

   ### What changes were proposed in this PR?
   
   Closes #8027. Part of the Form View stack (parent issue #8011), stacked on 
#8516 (the edit mode). This is the second half of what was #8455 (closed, split 
in two at 2200 lines). The review commit is the tip `afcf147ae`; the diff shows 
#8516's commits too until it merges.
   
   Lets the author shape the exposed inputs where they appear, in the edit mode 
#8516 adds.
   
   - Rename an input or any of its sub-fields, and hide a sub-field, through a 
new `editable-label-wrapper` formly wrapper: the label is the input, so what 
the author types is what the reader reads; leaving it empty falls back to the 
schema label. The control keeps a programmatic name in both modes (a visually 
hidden `<label for>` while authoring, the static label for readers). Overrides 
are stored per binding and reapplied on every rebuild.
   - Reorder inputs by drag (CDK drag-drop, mapped by binding id so a card the 
config no longer holds cannot move the wrong field) or from the keyboard with 
Move up / Move down on each card, disabled at the ends.
   - Write per-input help text (saved without rebuilding the form on every 
keystroke), see "From X" attribution while authoring, and remove an input.
   - A binding whose operator no longer exists renders as a removable card 
carrying the reason for the author and is hidden from readers; it is never 
deleted silently on a re-read.
   - A repeated (array) input keeps its title above its rows in reader mode 
too: the shared array widget prints its label at the bottom beside its add 
button, so without this the title jumped from above the rows in edit mode to 
below them on Done.
   - Keyboard focus is visible on the Move, Remove and eye buttons 
(`:focus-visible`).
   
   The diff is just over 1000 lines because it is 421 lines of spec against 687 
of source (of which 243 are stylesheet); the wrapper and the card's author row 
are one feature, and the wrapper's four files are the bulk of the rest.
   
   ### Any related issues, documentation, discussions?
   
   Closes #8027. Part of the Form View feature (parent issue #8011). Replaces 
the second half of #8455.
   
   ### How was this PR tested?
   
   Unit tests (vitest). Direct-construction tests cover rename and hide 
overrides reaching the rendered fields (root title and sub-fields, keyed by 
path), drag and keyboard reorder with the id-mapped indices (including the end 
stops and a card the config no longer holds), help text saved without a 
rebuild, broken bindings shown to an author only and kept for explicit removal, 
and the repeated input's static title. The rendered spec covers the Move 
buttons and their end states. The editable-label wrapper has its own TestBed 
spec (real component: decorate, rename, hide toggle, the reader's label 
association and the hidden label while authoring). Each new guard was 
deletion-checked (removing it turns the corresponding test red). eslint, 
prettier and the production (AOT) build pass; every changed line is statement 
and function covered.
   
   #### video
   
   
https://github.com/user-attachments/assets/9a816b43-abe6-4f63-85ec-65f41653b3d1
   
   ### Was this PR authored or co-authored using generative AI tooling?
   
   Yes. Generated-by: Claude Code (Claude Fable 5.1, Anthropic). Co-authored 
with Claude, reviewed line by line by the author before submission.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   
   https://claude.ai/code/session_01FVvP3ttj22f9LB4p9u2anY
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to