feat: add comprehensive Flutter widget support to server-driven UI engine#11
Merged
feat: add comprehensive Flutter widget support to server-driven UI engine#11
Conversation
- Extract common parsers for padding, alignment, colors, gradients, borders and shadows - Add duration, curve, scroll physics, box constraints and clip behavior parsers - Add text style parsers (fontWeight, fontStyle, textDecoration, textOverflow, textAlign) - Include buildSingleChild/buildAllChildren helpers for consistent child rendering Made-with: Cursor
- Add center, align, padding, sizedBox, aspectRatio, fittedBox builders - Add constrainedBox, fractionalSizedBox, safeArea, limitedBox, overflowBox builders - Add intrinsicHeight, intrinsicWidth, offstage, ignorePointer, absorbPointer builders - Add clipRRect, clipOval, opacity, rotatedBox, coloredBox, baseline builders Made-with: Cursor
- Add material, hero, indexedStack and decoratedBox builders with full prop support - Add transform builder with rotate, scale, translate and flip modes - Add backdropFilter builder for blur effects - Add banner builder for overlay labels Made-with: Cursor
- Add scrollView (SingleChildScrollView) with direction, reverse and physics support - Add gridView with crossAxisCount, spacing and aspect ratio props - Add pageView with snapping and scroll direction support - Add customScrollView, sliverList and sliverGrid builders Made-with: Cursor
- Add inkWell and gestureDetector builders with action handling - Add tooltip builder with message, position and duration props - Add dismissible builder with direction and background color support - Add draggable and longPressDraggable builders Made-with: Cursor
- Add animatedContainer, animatedOpacity, animatedCrossFade and animatedSwitcher - Add animatedAlign, animatedPadding, animatedPositioned and animatedSize - Add fadeTransition using TweenAnimationBuilder - All animated builders support duration and curve props from JSON Made-with: Cursor
- Add textButton, outlinedButton and iconButton builders with action handling - Add floatingActionButton builder with extended and mini variants - Add segmentedButton builder with multi-selection support Made-with: Cursor
- Add listTile builder with leading icon/image, trailing, and action support - Add expansionTile builder with collapsible children and theming props - Add switchListTile, checkboxListTile and radioListTile with state management - Use RadioGroup API for radioListTile (Flutter 3.41+ compatible) Made-with: Cursor
- Add selectableText builder with font styling and maxLines support - Add richText builder with styled spans (fontSize, color, decoration, spacing) - Add defaultTextStyle builder to propagate text styling to children Made-with: Cursor
- Add slider builder with min/max, divisions and label support - Add rangeSlider builder with start/end values and color props - Add radio builder using RadioGroup API (Flutter 3.41+ compatible) - All input variants integrate with onInputChanged callback Made-with: Cursor
- Add placeholder, circleAvatar and verticalDivider builders - Add popupMenuButton and searchBar builders - Add standalone linearProgressIndicator and circularProgressIndicator builders - Add enhanced card builder with margin, shadow and surface tint props Made-with: Cursor
- Add table builder with recursive row/cell children and border support - Add dataTable builder with columns, rows, sorting and checkbox props - Add tableRow and tableCell builders for composable table layout Made-with: Cursor
- Register 22 layout wrapper builders (center, align, padding, sizedBox, etc.) - Register 7 decorator builders (material, hero, transform, decoratedBox, etc.) - Register 6 scrollable builders (scrollView, gridView, pageView, slivers) - Register 6 interactive builders (inkWell, gestureDetector, tooltip, dismissible, etc.) - Register 9 animated builders (animatedContainer, animatedOpacity, etc.) - Register 5 button variants (textButton, outlinedButton, iconButton, fab, segmented) - Register 7 input variants with onInputChanged wrappers (slider, radio, tile variants) - Register remaining leaf types (selectableText, richText, circleAvatar, dataTable, etc.) Made-with: Cursor
- Add 33 new layout types (wrappers, decorators, scrollables, animated, interactives) - Add 17 new leaf types (button variants, text variants, input variants, display widgets) - Organize types by category with inline comments for readability Made-with: Cursor
- Add exports for 12 new widget files (layout wrappers, decorators, scrollables, etc.) - Maintain alphabetical ordering of exports Made-with: Cursor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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
Expands the rendering engine from 26 to 76 component types, covering virtually all commonly used Flutter widgets — all configurable via JSON contracts at runtime with no Dart changes needed per screen.
New component categories
Layout wrappers (22):
center,align,padding,sizedBox,aspectRatio,fittedBox,constrainedBox,fractionalSizedBox,safeArea,intrinsicHeight,intrinsicWidth,limitedBox,overflowBox,offstage,ignorePointer,absorbPointer,clipRRect,clipOval,opacity,rotatedBox,coloredBox,baselineDecorators (7):
material,hero,indexedStack,decoratedBox,transform,backdropFilter,bannerScrollables (6):
scrollView,gridView,pageView,customScrollView,sliverList,sliverGridInteractives (6):
inkWell,gestureDetector,tooltip,dismissible,draggable,longPressDraggableAnimated (9):
animatedContainer,animatedOpacity,animatedCrossFade,animatedSwitcher,animatedAlign,animatedPadding,animatedPositioned,animatedSize,fadeTransitionButton variants (5):
textButton,outlinedButton,iconButton,floatingActionButton,segmentedButtonTiles (5):
listTile,expansionTile,switchListTile,checkboxListTile,radioListTileText variants (3):
selectableText,richText,defaultTextStyleInput variants (3):
slider,rangeSlider,radioTables (4):
table,tableRow,tableCell,dataTableMisc (7):
placeholder,circleAvatar,verticalDivider,popupMenuButton,searchBar,linearProgressIndicator,circularProgressIndicatorInfrastructure
parsing_utils.dartwith reusable parsers for padding, alignment, colors, gradients, borders, shadows, durations, curves, scroll physics, box constraints, and text stylingonInputChangedcallbackRadioGroupAPI for radio components (Flutter 3.41+ compatible)ContractValidatorupdated to validate all 76 typesTest plan
flutter analyzeclean (zero errors/warnings)