Add wsWidth: a fixed-width style property through all bridges#246
Merged
jappeace merged 2 commits intoJul 14, 2026
Conversation
Resolves jappeace#245 (needed by kbeacon-ota-tool's beacon table, whose content-sized row cells could not align into columns): - WidgetStyle gains wsWidth (platform-native units like wsPadding), applied by Render.applyStyle and lerped by keyframe animations. - Android sets ViewGroup.LayoutParams(width, WRAP_CONTENT), the same pattern the gravity case already uses; iOS pins a width anchor constraint (replacing any earlier one on re-render); watchOS frames the SwiftUI node. - The positional WidgetStyle constructions in tests are converted to defaultStyle record updates, so future style fields stop breaking every construction site (this bit twice during jappeace#243). Prompt: just go implement this too if you need it for my request: jappeace#245 the point of this ota app is alos to sorta fuzz hatter for obviously missing features Co-Authored-By: Claude Fable 5 <[email protected]>
The positional-to-record conversion left the demo without the defaultStyle import; nix-build (library + suite) stayed green while every platform job compiling the demos failed. The demo typecheck sweep now runs before push, which is what should have caught it. Co-Authored-By: Claude Fable 5 <[email protected]>
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.
Resolves #245, driven by kbeacon-ota-tool's beacon table (content-sized Row cells cannot align into columns).
WidgetStylegainswsWidthin platform-native units likewsPadding; applied byRender.applyStyle, lerped by keyframe animations (lerpStyle/interpolateStyle).ViewGroup.LayoutParams(width, WRAP_CONTENT)via the cached JNI handles, the same pattern the gravity case already uses in production.widthAnchorconstraint, deactivating any width constraint from an earlier render first..frame(width:)on the SwiftUI node.WidgetStyleconstructions in tests are converted todefaultStylerecord updates, so future style fields stop breaking every construction site (this bit twice during Move text color from WidgetStyle into the text-bearing configs #243).Full suite green including new width render/lerp tests. kbeacon's table adopts it in the PR #6 branch (fixed column widths) once this lands.
🤖 Generated with Claude Code