sunny_forms library

Classes

AdvancedRouteSettings
AggregateApiReader
AndroidModalOpener<T>
ApiClient
ApiCreateSignal<T>
ApiDeleteSignal<T>
ApiErrorItem
ApiErrorPayload
ApiReader
ApiRegistry
ApiSignal<T>
ApiUpdateSignal<T>
AppBarPlacesAutoCompleteTextField
AppBarTitle
AuthModalArgs
AutoLayout
BaseFlutterMediaContentType<F extends Object>
Body0Text
Body1Text
Body2Text
Body3Text
CallBridge<T>
ChipButton
Choosers
ChosenMedia
ClearInputIcon<T>
This widget will clear the contents of a form control (text box)
ClientIdSecretCredentials
CollectionAwareApiReader
Command<T>
This widget is used to connect two sibling components, and allow one to trigger an action in the other.
CoreWidgetsProvider
Croppers
CupertinoModalOpener<T>
CupertinoSlidingSegmentedControl2<T>
An iOS 13 style segmented control.
CupertinoVisualStyle
DateTypeaheadOptionsFormField
DefaultOptionViewHandler<K, T>
DelegatingSunnyFormFieldState<T>
DesktopModalOpener
DesktopPageLayout
DividingLine
DragHandle
DurationFormField
DurationPickerControl
EmbeddedPropertyBuilder
EntityListPropertyBuilder
EntitySchemas
Convenient way to build entity schemas on the client. Typically, entity schemas come from the mverse server, but sometimes you want to build a metaform because it's easier than building a form manually.
ErrorStack
ErrorText
FakeFieldContainer
FileSourceType
Fisher<T>
Observes a stream. Get it?? Stream? Fishing?
FlutterImageContentType
FlutterMediaContentType<F extends Object>
Represents either image or video content, allows for different upload/preview
FlutterMediaContentTypeMixin<F extends Object>
FlutterVideoContentType
Focused
Form0Theme
Futures
Given a list of futures, will invoke the build once for each future, until all are resolved
GooglePlaceId
HandledPaths
A list of json paths - sometimes rendering will handle more than one property at a time
HandleSheet
Headline3Text
Headline4Text
HeroText
HistoricalDatePicker
HorizontalSpace
HoverEffect
IdArgs<R>
InputText
InputWidgetsProvider
IntlCore
KeyArgs<R>
KeyboardVisibility
Calls builder on keyboard close/open. https://stackoverflow.com/a/63241409/1321917
KeyedOptionsHandler<K, T>
A base interface for helping to populate drop-downs and typeaheads. There are a couple of common mixins to cut down on boilerplate:
LargeTitle
Layout
LayoutInfo
Listable
ListSelectControl<K, T>
Builds a list of items using a chip input
ListViewBuilder
LocationPickerControl
LocationTile
See SunnyLocation widget
MessageLookup
MetaForm
Renders a form for a IMSchemaDefinition (based on ref)
MetaFormContext
Tracks metadata that helps render meta forms. Things like labels, placeholders, types, options, ignored fields, etc.
MetaFormControl<M>
MetaFormFieldContext
MetaFormResult
Results of processing a schema definition for rendering
MetaFormSection
MetaFormService
MetaFormState
MetaPropertyHandler<T>
Inspects a schema and looks for specialized properties for which we want to build a special UI or component. Some fields might be grouped together, for example T The type of data this handler should encounter.
MModelRegistryReader
MobilePageLayout
ModalOpener
Describes how to open modal windows on the various platforms. A new modal opener can be registered by using Modals.register
ModalOverlayLayout
Modals
ModalScrollPhysics
MPropertyBuilder
MSchemaPropertyBuilder
MuseArgs
NestedNavigatorContainer
NonOpaqueCupertinoPageRoute<T>
Creates a platform-appropriate page route.
NormalText
OptionHandlerPair<K, T>
OptionSelectorControl<K, T>
OptionSelectorField<K, T>
OptionsHandler<T>
A base class for helping to populate drop-downs and typeaheads.
OptionsService
PageSectionHeaderText
Place
PlaceholderText
PlaceResultTile
PlacesAutocomplete
PlacesAutocompleteControl
PlacesAutocompleteResult
PlacesAutocompleteState
PlatformCard
PlatformCardArgs
PlatformCardTheme
PlatformLayoutInfo
PlatformListTile
PlatformModalScaffold
PlatformNetworkImage
PlatformSegmentControl
PoweredByGoogleImage
PredictionsListView
PrimaryText
PrimitiveApiReader
Provided
ProvidedBox<T>
A container that sits at the top of the provider tree that can be updated from within the tree.
ProviderBuildContextResolver
Px
RawSunnyColors
RefPropertyBuilder
Repository<V extends Entity>
Base interface for defining persistence endpoints. Can be plugged into SunnyStore for convenient API access
ResponsiveConstraint
ResponsivePageLayout
ResponsiveSliverConstraint
ResponsiveSwitcher
RichTextBuilder
Allows for building rich text using the known styles
RouteExtensions
ScrollerArgs
SecondaryText
SelectOptionConfig<K, V>
SimpleSliverList<W>
SimpleTextEntryDialog
SimpleTextEntryState
SlidingTab
SmartDateOptionsHandler
Snapshots
StringSelectPropertyBuilder
StyledText
SunnyApi<M extends Entity>
SunnyColorData
Implementation of color spec.
SunnyColors
SunnyFieldContainer
SunnyFieldError
SunnyFieldLabel
SunnyFormField<T>
Similar to FormField, but extended to work with Sunny metadata and styling.
SunnyFormFieldState<T>
SunnyFormSubmit<T>
SunnyFormTheme
SunnyIntl
SunnyIntlDelegate
SunnyMargin
SunnyPad
SunnyPage
SunnyPageLayout
SunnyPageState
SunnyProgressIndicator<T>
SunnyResponsivePage
SunnyResponsivePageState
SunnyRouterFactory
SunnyRouting
SunnySpacing
List of font styles based on reliveit naming conventions. This can be easily applied to a material or cupertino theme.
TabRouteArgs
Tappable
TertiaryText
TextAreaConfig
Configuration for text areas
TextConfig
Configuration for text areas
TextEditingListener
TextWidgets
Themes
ThirdPartyApi<C>
TileSubtitle
TileTitle
TitleText
ToPlatformFile
TypeaheadOption
TypeaheadService
Service that contains all registered typeahead handlers. Works with OptionService
ValidationError
VerticalSpace
Watcher

Mixins

AlwaysFilterSearchOptionsMixin<K, T>
Used when your service always filters, and listAllOptions should just execute an empty search
CachingApiReaderMixin
DefaultOptionViewMixin2<K, T>
InMemorySearchOptionsMixin<K, T>
ListableMixin
PlatformSegmentControlMixin
RouteParamsMixin
SignalingApiMixin<V extends Entity>
This mixin is applied to auto-generated apis, and ensures that the modification events are propagated and can be listened to.
SplitRegistrationResolver
SunnyColorMixin
SunnyPageLayoutMixin
TextEditingControllerExt
ThrottledChangeNotifier
ValidationIntl
Localization codes for account login

Extensions

ApiReaderExt on ApiReader
ApiSignalStream on Stream<ApiSignal>?
AppRouteExtension on AppRoute<dynamic, RouteParams>
AppRouteGoNavigationExtension on AppRoute<R, P>?
AppRouteKeyNavExtension on AppRoute<R, KeyArgs<T>>
AppRouteMatchExtensions on AppRouteMatch<dynamic, RouteParams>
AppRouteMatchGoExtension on AppRouteMatch<dynamic, RouteParams>
AppRouteNavigationExtension on AppRoute<R, P>
AppRouteTypedExtension on AppRoute<R, P>
AutoLayoutBuilderExt on AutoLayout
AutoLayoutConversion on MainAxisAlignment
AutoLayoutSingleExt on AutoLayout
BorderSideExtensions on BorderSide
BrightnessExt on Brightness
BuildContextBridgeExtensions on BuildContext
BuildContextDeviceScreenTypeExt on BuildContext
BuildContextNestedNavigator on BuildContext
BuildContextOptionService on BuildContext
BuildContextProvidesExtension on BuildContext
BuildContextRichText on BuildContext
BuildContextSmartDateOptionsExt on BuildContext
BuildContextThemes on BuildContext
BuildContextTypeaheadService on BuildContext
ColorResolver on Color
ColorToWidgetExt on Color
CupertinoDynamicColorExt on CupertinoDynamicColor?
CupertinoDynamicColorToWidgetExt on CupertinoDynamicColor
CupertinoVisualStyleBuildContext on BuildContext
DataServiceBuilder on DataService<X>
DynamicColorExt on Color?
ErrorList on List<ValidationError>
FlexiDateFormatters on FlexiDate
FlutterMediaTypesCoreTypes on _FlutterMediaTypes
FocusNodeWidget on FocusNode?
FormControllerToContext on FormController
FRouterExtensions on FRouter
FutureWidgetExt on Future<T>
IKeyedOptionHandlerCast on IKeyedOptionsHandler<K, V>
IterableWidgetConstraint on Iterable<Widget>
ListTryGetXX on List<T>
LListOfMSchemaPropertyRelocationExtension on List<IMSchemaProperty>?
MetaFieldConfigExtensions on MetaFieldConfig
MetaFormBuildContext on BuildContext
MetaFormServiceBuildContextExt on BuildContext
MModelIdArgsExt on X
MModelMetaFormExt on MModel
MSchemaPropertyExtensions on IMSchemaProperty
MSchemaPropertyRelocationExtension on IMSchemaProperty
MSchemaRefExt on MSchemaRef
MSchemaRefFormExt on MSchemaRef
MSchemaRefKeyExtension on MSchemaRef
PlatformSegmentControlExt on PlatformSegmentControl
RecordDataServiceBuilder on RecordDataService<X, KType>
RepositoryExtensions on Repository<X>
ResolverInitToProviderExt on Inst<T>
RichTextBuilderTrippiExt on RichTextBuilder
RouteCast on Route
RProxyServerGMaps on RProxyServer
SizedBoxExt on SizedBox
SizeExtension on num
SmartDateQueryResultDateRefExtensions on SmartDateQueryResult
SnapshotExtensions on AsyncSnapshot<X>
StreamWidgetBuilder on Stream<T>
SunnyColorExt on SunnyColors
SunnyPlaceFromGoogleMapsExt on SunnyPlace
SunnySpacingToEdgeInsets on SunnySpacing
SunnyWidgetHeroExtensions on Widget
TabPageExt on FRouter
TextStyleColorExt on TextStyle
we run points calculations off this
TextStyleMergeExt on TextStyle?
TextStylePlatformExt on TextStyle
TextStyleWidgetBuilderExt on TextStyle
TextThemeApplyEachExt on TextTheme
ThemesExt on Themes
ThirdPartyCredsApis on _ThirdPartyCreds
TypeaheadFocusModeExt on TypeaheadFocusMode?
TypeaheadHandlerExtensions on TypeaheadHandler<K, T>
TypeToRouteExt on dynamic
WidgetConstraint on Widget
WidgetDragHandleExt on Widget
WidgetListExtensions on List<Widget>
WidgetMaybeWrap on Widget
WidgetSpacingExt on Widget

Constants

body1Height → const double
body1Size → const double
body1Spacing → const double
body2Height → const double
body2Size → const double
body2Spacing → const double
body3Height → const double
body3Size → const double
body3Spacing → const double
contactKey → const JsonPath
contactKeys → const JsonPath
defaultInputPadding → const EdgeInsets
dividingLine → const DividingLine
doubleHorizontalSpace → const HorizontalSpace
emptyBox → const SizedBox
expandedBox → const Expanded
heroSpacing → const double
horizontalShim → const HorizontalSpace
horizontalSpace → const HorizontalSpace
input0Height → const double
input0Size → const double
input0Spacing → const double
kDefaultNumOptions → const int
kDefaultResponsiveWidth → const double
kInputIconSize → const double
kSegmentControlHeight → const double
kSegmentControlHeightMaterial → const double
mediumWeight → const FontWeight
noBorder → const Border
prefixInputPadding → const EdgeInsets
primaryLetterSpacing → const double
sliverEmptyBox → const SliverToBoxAdapter
sliverLoader → const SliverFillRemaining
sliverSpinner → const SliverFillRemaining
sliverSpinnerFn → const Widget Function()
suffixInputPadding → const EdgeInsets
tenPxRadius → const BorderRadius
verticalShim → const VerticalSpace
verticalSpace → const VerticalSpace
wideLetterSpacing → const double

Properties

apiClient → ApiClient
no setter
apiRegistry → ApiRegistry
no setter
CoreWidgets ↔ CoreWidgetsProvider
getter/setter pair
defaultDarkTheme → ThemeData
final
defaultFontFamily ↔ String
getter/setter pair
defaultLightTheme → ThemeData
final
FlutterMediaTypes → _FlutterMediaTypes
final
formSubmitDark → TextStyle
Button is dark, text is light
no setter
formSubmitLight → TextStyle
Button is light, text is dark
no setter
globalLabels → Map<JsonPath, String>
final
i ↔ int
getter/setter pair
inputSchemaPath → JsonPath
final
InputWidgets ↔ InputWidgetsProvider
getter/setter pair
loadingIndicator → Center
final
messages → MessageLookup
final
metaFormService ↔ MetaFormService
getter/setter pair
nestedGlobalKey → GlobalKey<NavigatorState>
final
optionViewService → TypeaheadService
no setter
platformBrightness → Brightness
no setter
sliverLoadingIndicator → SliverToBoxAdapter
final
smartDateTypeaheadHandler → TypeaheadOptionsAndHandler<SmartDateQueryResult, SmartDateQueryResult>
final
sunnyColors → SunnyColors
no setter
sunnySpacing → SunnySpacing
no setter
sunnyText → SunnyTextTheme
no setter
textFieldDefinitionOverrides → Map<Definition, TextConfig>
Overrides for meta date properties
final
textFieldOverridesByUri → Map<String, TextConfig>
final
textValuePath → JsonPath
final
ThirdPartyCreds → _ThirdPartyCreds
final
whiteBox → Container
final

Functions

applyTheme(BuildContext context, {required InputDecoration decoration}) → InputDecoration
assumeWidget(BuildContext context, dynamic item) → Widget?
bottomSheetModal<T>(BuildContext context, WidgetBuilder scrollBuilder, {bool displayDragHandle = true}) → Future<T?>
builder(dynamic key, Widget builder(BuildContext context)) → Widget
buildSliverBox(WidgetBuilder builder) → WidgetBuilder
centerColumn(Iterable<Widget> children, {Color? color}) → Widget
centerRow(Iterable<Widget> children) → Widget
colorExtensions() → void
column(Iterable<Widget> children, {Color? color, WidgetWrapper? wrapper, Widget ifEmpty()?}) → Widget
consume<T>(BuildContext context, [void exec(T value)?]) → T?
crossFade({Key? key, required dynamic first, AlignmentGeometry? alignment, required dynamic second, bool showFirst = true, Duration? duration}) → Widget
cupertinoMenuOpener<T>({bool useScaffold = true}) → OpenMenu<T>
defaultClearIcon() → Widget
defaultLayoutBuilder(Widget topChild, Key topChildKey, Widget bottomChild, Key bottomChildKey) → Widget
defaultOptionViewHandler<K, T>({Icon? prefixIcon, String? placeholder, String noOptionsLabel = "N/A", OptionValueType? valueType, TypeaheadFocusMode? focusMode, bool showExpand = false, RenderSuggestionTile<K, T>? renderSuggestionTile}) → TypeaheadOptionsAndHandler<K, T>
defaultTypeaheadOptionBuilder({Widget? title, Widget? leading, Widget? trailing, VoidCallback? onTap, Widget? subtitle}) → Widget
dialogCancelButton(BuildContext context) → PlatformDialogAction
divide(Iterable<Widget> widgets, Widget? wrapped) → List<Widget>
flatFuture<A, B, C>(BuildContext context, {FutureOr<A?> a, FutureOr<B?> b, FutureOr<C?> c, String? observerName, String? debugName, bool sliver = false, required Widget builder(BuildContext context, [A? a, B? b, C? c]), Widget errorBuilder(BuildContext context, dynamic error)?, Widget spinner(BuildContext context)?}) → Widget
Shorthand for FutureBuilder - waits for multiple futures
flexiDateOf(dynamic dyn) → FlexiDate?
form0Theme(Themes themes, Brightness brightness) → ThemeData
formatDuration(Duration duration) → String?
Assumes the duration is in minutes
formatDurationWidget(num durationAmount) → Widget
Assumes the duration is in minutes
ForScreenSize<T>(BuildContext context, {T? mobile, T? tablet, T? desktop, T? defaultValue}) → T
fromGeoPoint(GeoPoint? point) → Location?
future<V>(BuildContext context, {FutureOr<V?> waitFor, String? observerName, bool sliver = false, bool allowNull = false, V? initialData, Duration? timeout, String? key, required Widget builder(BuildContext context, V? resolved), Widget errorBuilder(BuildContext context, dynamic error)?, Widget spinner(BuildContext context)?}) → Widget
Shorthand for FutureBuilder - combines an Observer
futureOr<V>(BuildContext context, FutureOr<V> waitFor, Widget builder(BuildContext context, V? resolved), {Widget spinner(BuildContext context)?, String? key, bool allowNull = false}) → Widget
// Given a record, will ensure that the data is loaded, and will optionally track changes if watch is set
futures<T>(BuildContext context, {required Iterable<FutureOr<T>?> waitFor, String? observerName, String? debugName, bool sliver = false, bool awaitAll = false, required Widget builder(BuildContext context, List<T>? resolved), Widget errorBuilder(BuildContext context, dynamic error)?, Widget spinner(BuildContext context)?}) → Widget
Shorthand for FutureBuilder - waits for multiple futures
hpad(Widget child, [bool white = true]) → SunnyPad
initializeMessages(String localeName) → bool
User programs should call this before using localeName for messages.
inputPadding({bool suffix = false, bool prefix = false}) → EdgeInsets
kErrorHandler(BuildContext context, Object? err, StackTrace? stack) → Widget
keyOf(dynamic dyn) → Key
kLoader() → Widget
lookupAddressInGoogle(SunnyPlace place) → Future<GooglePlaceId?>
lookupPlaceInGoogle(String? placeId) → Future<PlaceDetails?>
memoizeScrollBuild(WidgetBuilder builder) → WidgetBuilder
memoizeScrollToNon(WidgetBuilder builder) → WidgetBuilder
memoizeWidgetBuilder(WidgetBuilder builder) → WidgetBuilder
nestedModal<T>(BuildContext context, WidgetBuilder scrollBuilder, {bool displayDragHandle = true, required PathRouteSettings? settings}) → Future<T?>
noopHandler<T>(String? key) → OptionsHandler<T?>
noopKeyHandler<K, T>(String? key) → KeyedOptionsHandler<K, T>
observe(BuildContext context, String name, WidgetBuilder builder, {bool sliver = false, VoidCallback? observation}) → Widget
Shorthand for Observer widget.
openAddressPicker(BuildContext context, {Location? initialValue, Set<String>? locationTypes, PredictionCallback? onSelect}) → Future<Prediction?>
openAndroidMenu<T>(BuildContext context, {required WidgetBuilder builder, bool displayDragHandle = true, bool dismissible = true, bool draggable = true, PathRouteSettings? settings, double? width, double? height, bool expand = false, bool useRootNavigator = true, bool nestModals = false, Constraints? constraints}) → Future<T?>
openDesktopMenu<T>(BuildContext context, {required WidgetBuilder builder, bool displayDragHandle = true, bool dismissible = true, bool draggable = true, PathRouteSettings? settings, double? width, double? height, bool useRootNavigator = true, bool expand = false, bool nestModals = false, Constraints? constraints}) → Future<T?>
openLocationPicker(BuildContext context, {SunnyPlace? toUpdate, Set<String>? locationTypes}) → Future<SunnyPlace?>
openMap(BuildContext context, PlaceDetails placeDetails) → Future
openMapForLocation(BuildContext context, IPhysicalLocation sunnyPlace) → Future
openPicker<K, V>(BuildContext context, {dynamic title, dynamic content, required Set<KeyedOption<K, V>> options}) → Future<KeyedOption<K, V>?>
OptionalBuilder(BuildContext context, {WidgetBuilder? mobile, WidgetBuilder? tablet, WidgetBuilder? desktop, WidgetListBuilder? desktops}) → List<Widget>
Does runtime analysis to determine whether to build any of the provided widgets.
pad(Widget child) → SunnyPad
photoUrl(dynamic reference) → String
PlatformNetworkImageProvider(dynamic url) → ImageProvider<Object>
PlatformPageRoute<T>({WidgetBuilder? builder, RouteSettings? settings, bool maintainState = true, bool fullscreenDialog = false, bool nonOpaque = true, bool forceMaterial = false, bool inPageRoute = false}) → PageRoute<T>
Creates a platform-appropriate page route.
renderSimpleTypeaheadOption<K, T>({required SuggestionElement<K, T> title, SuggestionElement<K, T>? icon, bool isAdhocCreator = false}) → RenderSuggestionTile<K, T>
Makes it easy to produce a formatted suggestion tile by proving a SuggestionElement callback for the title and icon
Reprovide<T>(BuildContext context, {bool listen = true, required Widget child}) → Widget
ResponsiveItem<R>(BuildContext context, {ResponsiveExpression<R>? mobile, ResponsiveExpression<R>? tablet, ResponsiveExpression<R>? desktop, R? defaultValue}) → R
ResponsiveList<R>(BuildContext context, {ResponsiveExpression<R>? mobile, ResponsiveExpression<R>? tablet, ResponsiveExpression<R>? desktop, ResponsiveListExpression<R>? desktops, ResponsiveListExpression<R>? tablets}) → List<R>
richTextBuilder(BuildContext context, RichTextBuild build) → Widget
richTextInvertedBuilder(BuildContext context, void build(RichTextBuilder builder)) → Widget
row(Iterable<Widget> children) → Widget
sameWidget(Widget input) → Widget
saveFactCallback(MSchemaRef? ref) → SubmitHook<IFact?>
searchPlaceInGoogle(String queryString) → Future<List<IPhysicalLocation>>
shim(Widget child) → SunnyPad
showAlertDialog(BuildContext context, {String? title, String? subtitle, String? confirmButtonLabel}) → Future<bool?>
showConfirmDeleteDialog(BuildContext context, {String? label, String? fullLabel, String? title}) → Future<bool>
showConfirmDialog(BuildContext context, {String? title, String? subtitle, String? confirmButtonLabel, String? denyButtonLabel, bool isDestructiveAction = true}) → Future<bool?>
showDurationPicker(BuildContext context, {Key? key, TimeSpan? initialValue}) → Future<TimeSpan?>
showHistoricalDatePicker(BuildContext context, {FlexiDate? initialValue}) → Future<FlexiDate?>
showImageListPicker(BuildContext context, {VoidCallback? onPermissionsInitialized, FilesSelected? onSelected, FileChanged? onChange, int maxSelections = 1, bool crop = true, bool preemptPermission = true, MediaSelectFn imageSelector = Choosers.chooseImages, dynamic extraOptions}) → Future<List<ChosenMedia>?>
showImagePicker(BuildContext context, {FileChanged? onChange, FilesSelected? onSelected, bool crop = true, VoidCallback? onPermissionsInitialized, bool preemptPermissions = false, bool allowThirdParties = false, dynamic extraOptions}) → Future<ChosenMedia?>
This pops the file picker/cropper and returns a single file.
showMediaListPicker(BuildContext context, FlutterMediaContentType<Object> mediaType, {required VoidCallback onLoading, VoidCallback? onPermissionsInitialized, FilesSelected? onSelected, FileChanged? onChange, int maxSelections = 1, double? cropAspectRatio, bool crop = true, bool preemptPermission = true, Set<FileSourceType>? sourceTypes, MediaSelectFn imageSelector = Choosers.flutterFilePicker, dynamic extraOptions}) → Future<List<ChosenMedia>?>
showNotification<T>({String? title, Widget? titleWidget, Widget? body, bool isSwipeDismissable = true, Duration? duration, bool? showDismissLink, Widget? leading, OverlaySupportBuilder? trailing, OverlaySupportCallback? onTap}) → OverlaySupportEntry
showPicker<K, V>(BuildContext context, {dynamic title, dynamic content, required Set<KeyedOption<K, V>> options, dynamic extraOptions}) → Future<KeyedOption<K, V>?>
showPlatformMenu<T>(BuildContext context, {required WidgetBuilder builder, bool useScaffold = true, bool displayDragHandle = true, bool dismissible = true, bool draggable = true, Constraints? constraints, PathRouteSettings? settings, double? width, double? height, bool expand = false, bool useRootNavigator = true, bool nestModals = false}) → Future<T?>
showProgressOverlay(ProgressTracker tracker, Future completion()) → Future
showSimpleTextEntryDialog(BuildContext context, {Key? key, required String title, String? subtitle, String? saveButtonLabel, SunnyFormFieldBuilder? textFieldBuilder, FormFieldValidator? validator, String? textFieldValue, OnSubmitHandler<String>? onSubmit}) → Future<String?>
simple<R, P>(Widget builder()) → WidgetHandler<R, P>
SingleLineText(String? text, {TextAlign? alignment, TextStyle? style}) → Text?
sizeExtensions() → void
sliverBox(Widget widget, [bool wrap = true]) → Widget
sliverBoxes(Iterable<Widget> widgets) → List<Widget>
sliverLoaderFn() → Widget
slivers({Widget? child}) → Widget
spaced({required List<Widget> children, EdgeInsets? space}) → List<Widget>
stack(Iterable<Widget> children, {AlignmentGeometry? alignment}) → Widget
sunnyCellBottom(Widget child) → Widget
sunnyCellTop(Widget child) → Widget
tappable<R>(Widget child, {FutureOrTappableCallback? onTap, Key? key, double pressOpacity = 1.0, BuildContext? context, String? routeName, dynamic arguments, void callback(R? result)?}) → Widget
Enforces HitTest.opaque and removes parameters
textOrNull(dynamic txt, {TextAlign? alignment, TextStyle? style, Color? color, bool wrap = true, int? maxLines}) → Widget?
toggle(dynamic first, {Key? key, AlignmentGeometry? alignment, bool isSliver = false, bool isShown = true}) → Widget
toggleStream(Widget first, {Key? key, AlignmentGeometry? alignment, required ValueStream<bool> isShown}) → Widget
verticalSpacer(double size) → Widget
vpad(Widget child, [bool white = true]) → SunnyPad
widgetWithDragHandle({Widget? child}) → Widget
wpad(Widget child) → SunnyPad
wrap({Iterable<Widget>? children, double runspacing = 5, double spacing = 10}) → Widget

Typedefs

AddressListTileBuilder = Widget Function(Prediction prediction, PredictionCallback? onTap)
AdhocBuilder<T> = AdhocOption<T> Function(String message)
CommandBuilder<T> = Widget Function(BuildContext context, CallBridge<T> command)
ContextEventInvokerRegistrar<T> = EventInvokerRegistrar<T> Function(BuildContext context)
CropFn = Future<PlatformFile> Function(BuildContext context, PlatformFile file)
DataServiceWidgetBuilder<X> = Widget Function(X data, DataService<X> service)
DataServiceWidgetBuilderWithContext<X> = Widget Function(BuildContext context, X data, DataService<X> service)
Deserializer = dynamic Function(dynamic input)
DynamicContextFactory = dynamic Function(BuildContext context)
ErrorCallback = void Function(Object error, StackTrace stack)
EventInvoker<T> = FutureOr<T> Function()
EventInvokerRegistrar<T> = void Function(dynamic self, EventInvoker<T> invoker)
A callback callback. Allows an external source to pass in hook, so that the internal code can provide what execution is supposed to occur when that hook is fired.
ExpectedValue<K, T> = dynamic Function(KeyedOption<K, T>? selected)
FileChanged = void Function(PFile? file, bool isFinal)
FilesSelected = void Function(List<ChosenMedia> file)
FilesUploaded = void Function(List<PFile> file)
FormConverter<T> = T? Function(dynamic input)
FormValueChanged<T> = void Function(T value, AttributeSource source)
FutureBuildCallback<T> = FutureOr<T> Function(BuildContext context)
FutureCallback<T> = FutureOr<T> Function(BuildContext context)
FutureOrCallback<T> = FutureOr<T> Function()
FutureOrTappableCallback<T> = FutureOr<T> Function()
FutureTappableCallback<T> = FutureOr<T> Function(BuildContext context)
GetDuration = TimeSpan Function()
HoverBuilder = Widget Function(bool isHover)
HStreamBuilder<T> = Widget Function(BuildContext context, T newElement)
KeyboardVisibilityBuilder = Widget Function(BuildContext context, Widget? child, bool isKeyboardVisible)
LayoutConfigure = void Function(AutoLayout container)
LocalizedLabel = String Function(SunnyIntl? intl)
LongPressCallback = FutureOr Function(BuildContext context)
Lookup = dynamic Function(dynamic val)
MediaSelectFn = Future<List<ChosenMedia>> Function(BuildContext context, {dynamic extraOptions, int? maxSelections, FlutterMediaContentType<Object>? mediaType, VoidCallback? onLoading, Set<FileSourceType>? sourceTypes})
MessageIfAbsent = dynamic Function(String message_str, List args)
MetaFormBuilderFn = Widget Function(BuildContext context, MetaFormState state)
MModelInstantiator<M extends Entity> = M Function([dynamic json])
ModalArgsBuilder<P extends RouteParams> = P Function(ScrollController? controller)
Passes the ScrollController to the route args
ModalOpenerOverride = ModalOpener? Function(BuildContext context, {bool useScaffold})
OnGenerateRoute<T> = Route<T> Function(RouteSettings settings)
OnSubmit<T> = Future Function(T value)
OnSubmitHandler<T> = Future<String> Function(T data)
OnValidationError = void Function(ValidationError e)
OpenMenu<T> = Future<T?> Function(BuildContext context, {required WidgetBuilder builder, Constraints? constraints, bool dismissible, bool displayDragHandle, bool draggable, bool expand, double? height, bool nestModals, PathRouteSettings? settings, bool useRootNavigator, double? width})
OpenModal<T> = Future<T?> Function(BuildContext context, {required WidgetBuilder builder, bool dismissible, bool displayDragHandle, bool draggable, bool expand, double? height, bool nestModals, PathRouteSettings? settings, bool useRootNavigator, double? width})
OpenSettings = Future<bool?> Function(BuildContext context)
OverlaySupportBuilder = Widget Function(BuildContext context, Getter<OverlaySupportEntry?> entry)
OverlaySupportCallback = void Function(BuildContext context, OverlaySupportEntry? entry)
PersistenceLifecycleEvent<T> = dynamic Function(T input)
PlatformScreenInit = void Function(PlatformLayoutInfo platformLayoutInfo)
PredictionCallback = void Function(Prediction prediction)
ProgressBuilder = Widget Function(double progress)
PropertyBuilder = void Function(MSchemaPropertyBuilder prop)
RecordDataServiceWidgetBuilder<X, KType> = Widget Function(X data, RecordDataService<X, KType> service)
RecordDataServiceWidgetBuilderWithContext<X, KType> = Widget Function(BuildContext context, X data, RecordDataService<X, KType> service)
RenderSuggestionTile<K, T> = Widget Function(BuildContext context, KeyedOption<K, T> suggestion, {bool? isSelected, VoidCallback? onTap, SelectOption<K, T>? selectOption})
ResponsiveExpression<R> = R Function(BuildContext context)
ResponsiveListExpression<R> = List<R> Function(BuildContext context)
ResponsiveMaxWidth = double Function(SizingInformation sizing)
ResponsiveSliverMaxWidth = double Function(BuildContext context, SliverConstraints sizing)
RichTextBuild = void Function(RichTextBuilder builder)
ScreenInit = void Function(BuildContext context, LayoutInfo layoutInfo)
SetDuration = void Function(TimeSpan span)
SimpleWidgetBuilder = Widget Function()
SliverWidgetBuilder<T> = Widget? Function(BuildContext context, T item)
SliverWrapper = Widget Function(Widget widget)
StreamListBuilder = Widget Function(BuildContext context, List newElement)
StyleAdjuster = TextStyle Function(TextStyle theme)
StyleExtractor = TextStyle? Function(TextTheme theme)
SubmitHook<T> = FutureOr<Result<T>> Function(BuildContext context, FormController form, FormSubmitResultBuilder submitResult)
SuggestionElement<K, T> = dynamic Function(KeyedOption<K, T> suggestion)
SunnyFormFieldBuilder<T> = Widget Function(BuildContext context, SunnyFormFieldState<T> state)
SunnyFormFieldValidator<T> = FutureOr<ValidationError> Function(T value)
SunnyPageLayoutFactory = SunnyPageLayout Function(SunnyPageState state)
TabChanged = void Function(BuildContext context, int change)
TextEditingBuilder = Widget Function(String value)
ThemeDataBuilder = ThemeData Function(Brightness brightness, TextStyle inputStyle, TextStyle placeholder1)
TupleWidgetBuilder<A, B> = Widget Function(BuildContext context, A a, B b)
TypeaheadOptionBuilder = Widget Function({Widget? leading, VoidCallback? onTap, Widget? subtitle, Widget? title, Widget? trailing})
ValidatorFn<T> = String? Function(T value)
ValueConsumer<T> = void Function(BuildContext context, T value)
WidgetContextDataBuilder<I> = Widget Function(BuildContext context, I input)
WidgetContextFactory = Widget Function(BuildContext context)
WidgetDataBuilder<I> = Widget Function(I input)
WidgetErrorBuilder = Widget Function(BuildContext context, Object err, StackTrace? stack)
WidgetFactory = Widget Function()
WidgetListBuilder = List<Widget> Function(BuildContext context)
WidgetListContextFactory = List<Widget> Function(BuildContext context)
WidgetListFactory = List<Widget> Function()
WidgetListScrollerContextFactory = List<Widget> Function(BuildContext context, ScrollController controller)
WidgetOrLoaderBuilder<I> = Widget Function(I? input, SimpleWidgetBuilder loader)
WidgetScrollerContextFactory = Widget Function(BuildContext context, ScrollController controller)
WidgetWrapFn = Widget Function(WidgetBuilder builder)
WidgetWrapper = Widget Function(Widget widget)