Repository navigation
RigCheck: signature node, loop animations, sheet dialogs, wrap, scaled frames and more - #46
Merged
Merged
Conversation
A gradient paint can now repeat or mirror past its ends (tileMode, default clamp and left out of the JSON) over a set length in pixels (gradientExtent), so a short gradient with hard stops paints stripes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Its value is the list of strokes drawn (each a list of [x, y] points), bindable through variables.value and settable with setValue; changed fires when a stroke ends. Properties: ink color and width, background, border (and error border), corner radius, placeholder text, color and size, sign line, error and enabled (both bindable through variables). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
BaseNode gains an optional loopAnimation (LoopAnimation: pulse, fade, scale or spin, with duration, delay, reverse, curve and from/to scale, opacity or turns), serialized on every node type and left out when null. Its `loopAnimationEnabled` field can be bound to a variable to turn it on and off at runtime. Nodes with a click trigger now offer cursorEnter and cursorExit, and the trigger docs say what hover, cursorEnter and cursorExit mean. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…aults test Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011WedhUVWdWR5swqZYMuGfP
ShowDialogAction gains presentation (dialog | bottomSheet | sideSheet, default dialog), sheetWidth, maxHeightFactor (0.92) and showDragHandle (true). Defaults are omitted from JSON, so saved actions are unchanged. copyWith now keeps nonBlocking and enabled. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
SpacerNode passed none of positioningMode, aspectRatioLock and reactions to SceneNode, so json_serializable cast them as required and fromJson refused a spacer without them. GridViewNode set isScrollable and useFlutterListView in its body, so fromJson required both. They are now constructor parameters with defaults; toJson still writes them because older readers require them. GridDelegateProperties.shrinkWrapRows makes each row as tall as its tallest item; the grid then leaves its item's main axis to the item's fit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011WedhUVWdWR5swqZYMuGfP
…ames - ConfirmAction: presentation (dialog | bottomSheet | sideSheet), sheetWidth, maxHeightFactor (0.92) and showDragHandle (true), as on ShowDialogAction. - ShowToastAction: accentColor and accentWidth (4) for a bar down the left edge, iconColor, fontFamily and cornerRadius. - RowColumnNode: wrap, wrapSpacing and wrapRunSpacing, to lay children out like Flutter's Wrap. - FrameNode: contentFit (a Fit, null for none) and contentAlignment (center), to scale content laid out at the design size into the frame. - TextFieldNode.propertyVariables lists errorText and error, so the editor offers them for binding. Every new field is left out of the JSON at its default. Covered by test/rigcheck_fields_test.dart. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011WedhUVWdWR5swqZYMuGfP
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011WedhUVWdWR5swqZYMuGfP
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011WedhUVWdWR5swqZYMuGfP
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011WedhUVWdWR5swqZYMuGfP
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011WedhUVWdWR5swqZYMuGfP
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011WedhUVWdWR5swqZYMuGfP
Where master released the same feature, master's API stays and this branch's duplicate goes: repeating gradients use gradientRepeatEvery (tileMode/gradientExtent dropped), wrap uses RowColumnNode wrap, spacing and runSpacing (wrapSpacing/wrapRunSpacing dropped), and dialogs use master's DialogPresentation (dialog, bottomSheet, adaptive) and alignment, with this branch's sideSheet, sheetWidth, maxHeightFactor and showDragHandle added on top. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011WedhUVWdWR5swqZYMuGfP
Saved bottom sheets (released in 6.2.0) don't change when this branch adds the options: showDragHandle defaults to false and maxHeightFactor to 1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011WedhUVWdWR5swqZYMuGfP
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.
Summary
This PR adds the model fields the RigCheck fleet-inspection rebuild in CodelesslyEditor needed. Each one filled a gap that blocked recreating a code-built app in the editor. New fields are left out of the JSON at their defaults, so saved projects don't change. Everything is listed under Unreleased in
CHANGELOG.md.Up to date with master (6.2.0). Where 6.2.0 already shipped the same feature, master's API stays and this branch's duplicate was removed:
gradientRepeatEvery;tileMode/gradientExtentwere dropped;RowColumnNode.wrap,spacingandrunSpacing;DialogPresentationandalignment.New
SignatureNode(signature), a draw-to-sign pad. Its strokes are a bindable value, anderror/enabledcan be bound.BaseNode.loopAnimation: pulse, fade, scale or spin, with a bindableloopAnimationEnabled.cursorEnterandcursorExittriggers on clickable nodes.DialogPresentation.sideSheet, and onShowDialogActionandConfirmActionthe sheet settingssheetWidth,maxHeightFactorandshowDragHandle.ConfirmActionalso getspresentation.ShowToastAction:accentColor,accentWidth,iconColor,fontFamilyandcornerRadius.FrameNode.contentFitandcontentAlignment: scale the content to fit, likeFittedBox.GridDelegateProperties.shrinkWrapRows: each row is as tall as its tallest item.TextFieldNodebindserrorTextanderror.Fixes
SpacerNode.fromJsonandGridViewNode.fromJsondefault the fields every other node defaults.Tests: every CI step passes locally:
dart format(0 changed)dart analyze --fatal-infos(no issues)dart test(336 passed)dart pub publish --dry-run(0 warnings)Merge order
codelessly_api6.3.0.Known Issues
🤖 Generated with Claude Code
https://claude.ai/code/session_011WedhUVWdWR5swqZYMuGfP