Repository navigation
codelessly_sdk 8.3.0: motion, formulas, computed variables, triggers, layout - #80
Merged
Merged
Conversation
- NodeMotion draws a node's motion (offset, scale, opacity, rotation, 3D tilt, transitions and spin) with bound values resolved per build; the design canvas shows it at rest. - Canvases run timer reactions every interval and key press reactions for their key; frames and rectangles run swipe reactions (and wheel scroll). - Stacked lists draw their items on top of each other, first on top. - Set variable resolves its variable by id, and lookups by name take the screen's own variable over a shared one of the same name, as bindings do. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013oMokUGNW6txknJs7xxTik
A site can link to any screen (/<slug>/<screen>) instead of only the entry one; names match loosely, so record-form opens "Record form". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013oMokUGNW6txknJs7xxTik
- Formulas: padLeft/padRight, substring, replace, split, indexOf, matches, slug, seconds/duration, slice/take/skip/reverse/findIndex, index params in lambdas, multi-key sortBy and sortByDesc, object literals with merge/set, money decimals, luminance. - Lists can wrap their items onto further lines. - StyleBindings: effects, stroke weight, icon, font weight and corner radius follow variables and formulas, on the canvas and at runtime. - Bindings inside a list row read that row's item on the design canvas. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013oMokUGNW6txknJs7xxTik
- ComputedVariables keeps formula variables up to date from their inputs; Set variable leaves them alone. - NodeMotion loops, animates in on first show and honours delays. - Design canvas splits text by formulas before variables. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013oMokUGNW6txknJs7xxTik
Formula-hidden children take no gap; children keep their state while siblings show and hide. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013oMokUGNW6txknJs7xxTik
…d thumb stroke Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013oMokUGNW6txknJs7xxTik
…ns no longer hang Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013oMokUGNW6txknJs7xxTik
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013oMokUGNW6txknJs7xxTik
…n formulas Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013oMokUGNW6txknJs7xxTik
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013oMokUGNW6txknJs7xxTik
…canvas slider bindings, formula paths - NodeMotion plays an entrance from enterFrom and again when the bound replayKey changes. - RoundedRectSliderThumbShape; PassiveSliderWidget takes the scope its bindings read. - A node's used variables include the paths its formulas read. - Lint fixes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013oMokUGNW6txknJs7xxTik
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013oMokUGNW6txknJs7xxTik
Contributor
Author
|
CI fails at This is expected. The SDK needs the models in Codelessly/CodelesslyAPI#45, and CI resolves the API from pub. The fix is release order, not code:
Locally, with the API from that branch, this PR passes:
Generated by Claude Code |
…unctions, link fixes
- Master's row/column spacing replaces itemSpacing rendering.
- Computed variables are master's: a ${= ...} value evaluated when read.
ComputedVariables keeps the helpers the editor uses (formula checks,
inputs, cycles, previews), reading the formula from the value; the
runtime binding is gone. Set variable still leaves them alone.
- Formula functions both sides added (slice, take, skip, reverse, merge,
set) keep one implementation; indexOf takes text, a value or a predicate.
- VariableSpan takes master's list item; scopeOf accepts it too.
- A link's first screen gets master's parameter fallback, and the link's
parameters still set the variables they name.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013oMokUGNW6txknJs7xxTik
- Hover enter/exit run as master's cursorEnter/cursorExit through wrapWithCursorReactions; double tap keeps its own wrapper. - A link resolved through a screen's URL path also sets the variables its parameters name, and sets the screen's route before its load actions. - Formulas: master's functions and this branch's are merged into one table. Where both defined one, this branch's implementation stays, with master's behavior: split without a separator splits into characters, substring/left/right count negative indexes from the end, matches is false for a missing value, and reverse is null for other values. - Both computed variable test files are kept (this branch's as computed_variable_helpers_test.dart). - This branch's changes go under master's Unreleased changelog section. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013oMokUGNW6txknJs7xxTik
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.
Runtime support for the features in Codelessly/CodelesslyAPI#45. They were found while recreating a code-built app (Crate Digger) in the Codelessly editor; every gap is logged with its fix in the editor repo's
references/crate_digger/blockers.md.What's new
NodeMotionanimates transforms, spin, loops, entrances (from rest orenterFrom, replayed onreplayKey) and delays.min/max;spacing. This branch's duplicateitemSpacingruntime was dropped in the merge.${= ...}value evaluated on read.ComputedVariableskeeps the editor helpers: inputs, cycles, preview resolution;money(v, decimals),luminance,slice/take/skip/reverse, and textindexOf;sortBy.StyleBindings), alongside master's bindableflexandrotation;CodelesslyWidget.initialScreen.codelessly_api ^6.2.0, with one CHANGELOG entry covering master's changes and this branch's.Checks
dart format,flutter analyze(no issues) andflutter test(808 pass).codelessly_api ^6.2.0 doesn't match any versions), and 6.1.0 lacks these models. Re-run CI after the API is published.Merge order
🤖 Generated with Claude Code
https://claude.ai/code/session_013oMokUGNW6txknJs7xxTik