resolveEntries static method

List<Widget> resolveEntries(
  1. List<WidgetEntry> entries, {
  2. ColorScheme? hostColorScheme,
  3. OnWidgetDismiss? onDismiss,
  4. OnWidgetAction? onAction,
})

Resolve a list of WidgetEntry into Flutter widgets.

Priority for ColorScheme (highest wins):

  1. Per-widget color_palette from agent JSON
  2. hostColorScheme passed by the developer
  3. The ambient Theme from context

Implementation

static List<Widget> resolveEntries(
  List<WidgetEntry> entries, {
  ColorScheme? hostColorScheme,
  OnWidgetDismiss? onDismiss,
  OnWidgetAction? onAction,
}) {
  final widgets = <Widget>[];

  for (final entry in entries) {
    final child = WidgetRegistry.build(entry.type, entry.params);
    if (child == null) continue;

    // Per-widget color scheme from agent JSON takes priority,
    // then the host's color scheme passed by the developer.
    final effectiveColorScheme =
        entry.common.colorScheme ?? hostColorScheme;

    Widget wrapped = ResponsiveWidgetWrapper(
      layout: entry.common.layout,
      themeOverride: entry.common.themeOverride,
      colorScheme: effectiveColorScheme,
      child: child,
    );

    if (entry.common.dismissible && onDismiss != null) {
      wrapped = Dismissible(
        key: ValueKey(entry.id),
        onDismissed: (_) => onDismiss(entry.id),
        child: wrapped,
      );
    }

    widgets.add(wrapped);
  }

  return widgets;
}