bloc_signals_genui_flutter 1.0.0
bloc_signals_genui_flutter: ^1.0.0 copied to clipboard
Flutter UI bindings, declarative surface views, and catalog widgets for Generative UI (A2UI) with BlocSignal.
Changelog #
All notable changes to bloc_signals_genui_flutter will be documented in this file.
1.0.0 #
- Milestone: Stable 1.0.0 release of
bloc_signals_genui_flutter. - Dependencies: Bump
bloc_signals_genuidependency constraint to^1.0.0. - Feat (genui_flutter): Integrate
a2ui_core0.3.0NodeResolver<ComponentApi>intoA2uiSurfaceViewfor reactive component tree rendering, data-driven templateChildListexpansion ({componentId, path}),NodeStatehandling (resolved,pending,cyclic,unknownType), scopedComponentNodeanddataPathbindings onA2uiComponentContext, andComponentNode.instanceIdextraction insafe_prop_parser.dart(#370). - Feat (genui_flutter): Expand
A2uiFlutterCatalog.standard()(registerStandardComponents) to 16BasicCatalogv0.9/v1.0 widgets (List,Tabs,Modal,Icon,Image,CheckBox,ChoicePicker,Slider, andDateTimeInputalongside enhancedRow,Column,Text,Divider,Card,TextField, andButton), add dual spec/ergonomic layout and typography properties (justify,align,axis,variant), addasBoolinsafe_prop_parser.dart, and surfaceCheckRulevalidation state (isValid,validationErrors,validationResults,resolveBoundPath,updateBoundValue) onA2uiComponentContext(#369). - Feat (genui_flutter): Upgrade to
a2ui_core: ^0.3.0, resolve per-component catalogs viasurface.resolveCatalogandcatalog.resolvedComponentSchemainA2uiSurfaceView, unwrapResolvedBindingandWritableBindingvalues inA2uiSurfaceView,safe_prop_parser.dart,A2uiText, andA2uiTextField, and support v1.0@pathtwo-way bindings inA2uiTextField(#368).
0.1.1 #
- Feat (genui_flutter): Upgrade to
a2ui_core: ^0.3.0, resolve per-component catalogs viasurface.resolveCatalogandcatalog.resolvedComponentSchemainA2uiSurfaceView, unwrapResolvedBindingandWritableBindingvalues inA2uiSurfaceView,safe_prop_parser.dart,A2uiText, andA2uiTextField, and support v1.0@pathtwo-way bindings inA2uiTextField(#368). - Dependencies: Bump
a2ui_coredependency constraint to^0.3.0(#368). - Dependencies: Align intra-workspace
bloc_signalsdependency constraint to^1.5.0(#334). - Docs (genui_flutter): Document intentional
on Object catchcomponent isolation boundary inA2uiSurfaceView(#340). - Fix (genui_flutter): Wrapped per-component rendering in
_SurfaceTreeRendererinside reactive_BoundComponentWidgetinstances subscribed tobinder.resolvedPropswith ancestor-path circular reference protection, enabling granular leaf component rebuilds whenDataModelbindings update directly (#321). - Decoupled active surface viewport observation and added surface closure helpers (#292):
- Updated
A2uiSurfaceView(whensurfaceId == null) to reactively subscribe tobloc.activeSurfaceIdand rebind cleanly indidUpdateWidget, enabling instant tab switching and split-pane isolation without synthetic version bumps or redundant_SurfaceTreeRendererbinder reconciliation. - Added
closeSurface([String? targetSurfaceId])onA2uiComponentContextto dispatchCloseSurfacefor the current or targeted surface. - Added
selectSurface(String surfaceId)andcloseSurface(String surfaceId)onGenUiControllerAdapter.
- Updated
- Added multi-surface navigation and concurrent targeted rendering support (#283):
- Added optional
surfaceIdparameter toA2uiSurfaceViewenabling targeted rendering of specific surfaces independently of the globally active surface (supporting split views, tabs, and PageViews). - Added
selectSurface(String targetSurfaceId)helper onA2uiComponentContextallowing catalog components (for example tab buttons or links) to switch active surfaces.
- Added optional
- Added action submission recovery and error presentation (#284):
- Added
cancelSubmission({String? error})andcompleteAction({String? error})convenience methods onA2uiComponentContext. - Dismissed
ModalBarrieroverlay automatically upon submission cancellation or completion. - Added
validationErrorsBuilderproperty toA2uiSurfaceViewwith a default Material error banner when validation errors are present.
- Added
- Added declarative composition methods to
A2uiFlutterCatalog(#285):copyWith(Map<String, A2uiComponentWidgetBuilder> builders)for extending or overriding component builders with isolated copies.copyWithout(Iterable<String> typesToRemove)for pruning unwanted or restricted component types.registerAll(Map<String, A2uiComponentWidgetBuilder> builders)for bulk builder registration.registeredTypesgetter exposing all currently registered component type names.
- Remediated defensive parsing and error boundaries (#269):
- Added
safe_prop_parser.dart(asDouble,asInt,asString,extractChildId,extractChildIds) for robust handling of dynamic LLM JSON properties. - Wrapped
A2uiSurfaceViewcomponent rendering in safe error boundary fallback widgets. - Upgraded widget models (
A2uiButton,A2uiCard,A2uiColumn,A2uiRow,A2uiTextField,A2uiDivider) to tolerate stringified numeric inputs and object-shaped child IDs.
- Added
0.1.0 #
- Initial release of
bloc_signals_genui_flutter. - Flutter catalog widgets for standard A2UI primitives (
A2uiButton,A2uiCard,A2uiColumn,A2uiDivider,A2uiRow,A2uiText,A2uiTextField). - Declarative
A2uiSurfaceViewwidget with animated component transitions. - Synchronous two-way data binding and form state propagation.