Repository navigation
Layout editor: quick fixes, several controls at once, context menu, Changes tab, undo with selection, faster edits - #7
Merged
Conversation
…tion, faster edits Working aids: - Undo and redo bring back the control that was selected - Checks: a click focuses the property a line is about; a button fixes what has one fix (create the attribute a binding names, remove an unused one, reset a refused value, build a list's template, create a tree's nodes table, bind an input to a new attribute) - Several controls at once: Ctrl/Shift+click on canvas, outline or code; delete, duplicate, move, copy, cut and "Wrap in" VBox/HBox/FlexBox/Panel - Ctrl+Up/Down move the selection; arrow keys on the drawer tabs - Outline filter by type or text - Properties show the defaults of the canvas's UI5; event fields offer the event names the design raises already - Data: attributes and fields move up and down; "Paste rows" takes rows from a spreadsheet or CSV - Preview mode lists the events raised and the model changes by then - Designs saved in this browser under their class name, next to Recent - The editor's own dialogs instead of confirm( ); errors stay until closed; a share link over 8 kB says so Performance and structure: - The outline, data, checks list and class render only while on screen - A commit serializes the design once, typing writes the store debounced - One implementation of the edits on the selection (src/ui/actions.js) for keys, command palette and canvas toolbar Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017kNeryZR99nVMy4Q21eYXA
…ter, empty containers with room - A context menu for a control on the canvas, in the outline and by Shift+F10: move, copy, cut, paste, duplicate, wrap, delete, copy and paste properties - the edits of src/ui/actions.js - Selected rows of the outline drag together (moveNodes in src/model.js) - Copy properties / Paste properties set the properties of one control on the selected others that have them - Controls inserted last come first in the Controls panel - An empty container gets room and a dashed frame on the canvas in Edit mode, so there is something to drop into - The browser refusing to keep the design is said once; another tab of the editor saving over the design is announced, with a button to load it Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017kNeryZR99nVMy4Q21eYXA
…nvas, light/dark editor - Changes: what the export changes in a class that was opened, line by line with context (src/diff.js) - A double-click on a control on the canvas edits its text there; Enter keeps it, Escape takes it back (src/ui/inline.js) - The editor's appearance: as the system, light or dark, kept in the preferences; the canvas keeps its UI5 theme Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017kNeryZR99nVMy4Q21eYXA
- Outline: the row of the control the properties show is the one kept in view and focused, not the first selected row - A wrap that fails no longer reports success - Build a template is offered only where it replaces no columns built by hand and has a table to build from - Under the outline filter the arrow keys walk, they do not collapse - The defaults of a control type reach every control of it selected while they load, and a canvas reload drops the questions of the old one - Only layouts and lists get room as empty containers on the canvas - Keys pressed in the context menu stay in it Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017kNeryZR99nVMy4Q21eYXA
…second review - The canvas zooms out to 75% or 50%; a device width stays the width the view gets, and what the frame reports lands where it is on screen - ? lists every keyboard shortcut (also in the command palette) - A letter in the outline jumps to the next control of that name; Enter in the control search inserts the first match, the arrows walk the list - The command palette puts what starts with the words first - The outline marks controls that raise an event; Copy above the code copies what the tab shows (the class, the view, or the changes) Fixes: - Empty parts (a tab, a page header, a card) keep their room on the canvas; only controls whose children are values go without - Escape on the canvas field takes back only an edit it made - Build a template is withheld only for a table with its own columns - The canvas field closes when the canvas scrolls or the window resizes, and opens over the row that was double-clicked, on its whole control - The Changes tab says when only the newline at the end of the file changes - Dark mode has its own colours for success, error and warning Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017kNeryZR99nVMy4Q21eYXA
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.
Four rounds of usability, performance and structure work on the editor. The generator is unchanged; the class only follows the order of the attributes, which can now be changed.
Round 1 - working aids
fix: { kind, … }), applied insrc/ui/data.js.wrapNodesinsrc/model.js).test/ui5-1.71.json); event fields offer the event names the design raises already.parseSampleRows).choose( )insrc/ui/dom.js) replace everyconfirm( ); errors stay until closed; a share link over 8 kB says so.Round 1 - performance and structure
localStoragedebounced, flushed onpagehide.src/ui/actions.js, for keys, command palette, canvas toolbar and context menu.Round 2
src/ui/context.js).moveNodesinsrc/model.js).Round 3
src/diff.js).src/ui/inline.js).Round 4
frameToPage).README and AGENTS.md are updated.
Checks
npm test: 388 passednpm run check:abap: 23 files, 0 failingnpm run verify:abap: all 23 classes, 7.40 and 7.02npm run test:e2e:local: 84 passed on UI5 1.144 and 1.71 (new:test/e2e/workflow.spec.mjs, 29 tests)🤖 Generated with Claude Code
https://claude.ai/code/session_017kNeryZR99nVMy4Q21eYXA