Skip to content

codelessly_api 6.3.0: stacked lists, drag and key triggers, popovers, full height sheets - #49

Open
BuildCodelessly wants to merge 10 commits into
masterfrom
claude/peaceful-lovelace-09ud27
Open

BuildCodelessly wants to merge 10 commits into
masterfrom
claude/peaceful-lovelace-09ud27

Conversation

@BuildCodelessly

@BuildCodelessly BuildCodelessly commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

The model changes behind recreating a real app ("Nook", a tiny-home builder) in the editor. Each blocker found while rebuilding it became a feature here. The SDK PR (Codelessly/CodelesslySDK#84) renders these, and the editor PR (https://github.com/Codelessly/CodelesslyEditor/pull/712) edits them.

The branch is rebased on master. Master's row/column spacing/wrap, computed variables and ShowDialogAction.presentation/alignment landed in parallel; this PR builds on them and no longer adds its own versions.

Changes

  • Layout: ListViewProperties.layout: stack layers a list's items in its box, each placed at its item node's bound x/y. This is for diagrams drawn from data, like floor plans.
  • Triggers
    • TriggerType.dragEnd and TriggerType.keyDown, with an optional TriggerModel.key.
    • Frames, rectangles, icons and text offer the drag and pointer triggers.
  • Actions
    • DialogPresentation.popover: a menu anchored to the node that ran the action.
    • ShowDialogAction.fullHeight for a bottom sheet whose layout scrolls its own content.
    • CopyToClipboardAction (ActionType.copyToClipboard) copies a text, with variables and formulas.
  • Variables: VariableData.withCanvas keeps extra (it was dropped on save), and extra counts toward equality. The editor keeps a variable's design preview there.
  • Spacer: SpacerNode takes a box lock, positioning mode and reactions.
  • Release: version 6.3.0 with its CHANGELOG entry, on top of master's unreleased 6.2.0.

All new JSON fields are left out when they hold their default, so existing JSON reads and writes unchanged.

Checks

  • dart format --set-exit-if-changed and dart analyze --fatal-infos: clean.
  • dart test: 321 pass.
  • build_runner output matches the committed .g.dart files.

Merge order

  1. Merge this PR and publish codelessly_api 6.3.0 (master's 6.2.0 isn't on pub.dev yet either).
  2. Then the SDK PR, which needs ^6.3.0 from pub.dev for its CI.
  3. Then the editor PR.

🤖 Generated with Claude Code

https://claude.ai/code/session_0186HDSCvPDpNcgTDiXgg3qb

ListViewProperties.layout (list | stack) draws a list's items layered and
placed by their bound x/y, for data shown as a diagram. TriggerType.dragEnd
fires when a drag ends. ShowDialogAction.presentation shows the canvas as a
dialog or a bottom sheet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0186HDSCvPDpNcgTDiXgg3qb
…triggers on shapes

SpacerNode.fromJson required aspectRatioLock, positioningMode and reactions,
so a spacer without them (nodes.insertTree) could not be created. Frames,
rectangles, icons and text offer drag, drag end, pointer down and pointer up
triggers in the actions panel.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0186HDSCvPDpNcgTDiXgg3qb
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0186HDSCvPDpNcgTDiXgg3qb
withCanvas dropped extra, so a computed variable's formula was lost when
the editor saved it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0186HDSCvPDpNcgTDiXgg3qb
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0186HDSCvPDpNcgTDiXgg3qb
VariableData compared id, name, value and type only, so a change to its
extra didn't notify.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0186HDSCvPDpNcgTDiXgg3qb
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0186HDSCvPDpNcgTDiXgg3qb
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0186HDSCvPDpNcgTDiXgg3qb
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0186HDSCvPDpNcgTDiXgg3qb
@BuildCodelessly
BuildCodelessly force-pushed the claude/peaceful-lovelace-09ud27 branch from 8566b66 to fb9b0fd Compare October 24, 2026 00:21
@BuildCodelessly BuildCodelessly changed the title codelessly_api 6.2.0: gap and wrap, stacked lists, drag and key triggers, sheets and popovers codelessly_api 6.3.0: stacked lists, drag and key triggers, popovers, full height sheets Oct 24, 2026
CopyToClipboardAction copies a text (with variables and formulas), e.g.
a home's share link.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0186HDSCvPDpNcgTDiXgg3qb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants