ArcaneApp class

A root widget for Arcane applications providing theming and navigation capabilities.

ArcaneApp serves as a wrapper around ShadcnApp with additional Arcane-specific functionality. It provides theming, navigation, and other app-level configurations.

For complete documentation, see ArcaneApp documentation.

There are two ways to use ArcaneApp:

  1. Standard navigation (using ArcaneApp)
  2. Router-based navigation (using ArcaneApp.router)
Inheritance
Available extensions

Constructors

ArcaneApp({Key? key, ArcaneTheme? theme, GlobalKey<NavigatorState>? navigatorKey, Widget? home, Map<String, WidgetBuilder> routes = const <String, WidgetBuilder>{}, String initialRoute = "/", RouteFactory? onGenerateRoute, InitialRouteListFactory? onGenerateInitialRoutes, RouteFactory? onUnknownRoute, NotificationListenerCallback<NavigationNotification>? onNavigationNotification, List<NavigatorObserver> navigatorObservers = const <NavigatorObserver>[], TransitionBuilder? builder, String title = '', GenerateAppTitle? onGenerateTitle, Color? color, Locale? locale, Iterable<LocalizationsDelegate>? localizationsDelegates, LocaleListResolutionCallback? localeListResolutionCallback, LocaleResolutionCallback? localeResolutionCallback, Iterable<Locale> supportedLocales = const <Locale>[Locale('en', 'US')], bool debugShowMaterialGrid = false, bool showPerformanceOverlay = false, bool showSemanticsDebugger = false, bool debugShowCheckedModeBanner = false, Map<ShortcutActivator, Intent>? shortcuts, Map<Type, Action<Intent>>? actions, String? restorationScopeId, AdaptiveScaling? scaling, bool disableBrowserContextMenu = true})
Creates an ArcaneApp with standard navigation.
const
ArcaneApp.router({Key? key, ArcaneTheme? theme, RouteInformationProvider? routeInformationProvider, RouteInformationParser<Object>? routeInformationParser, RouterDelegate<Object>? routerDelegate, RouterConfig<Object>? routerConfig, BackButtonDispatcher? backButtonDispatcher, TransitionBuilder? builder, String title = '', GenerateAppTitle? onGenerateTitle, NotificationListenerCallback<NavigationNotification>? onNavigationNotification, Color? color, Locale? locale, Iterable<LocalizationsDelegate>? localizationsDelegates, LocaleListResolutionCallback? localeListResolutionCallback, LocaleResolutionCallback? localeResolutionCallback, Iterable<Locale> supportedLocales = const <Locale>[Locale('en', 'US')], bool debugShowMaterialGrid = false, bool showPerformanceOverlay = false, bool showSemanticsDebugger = false, bool debugShowCheckedModeBanner = true, Map<ShortcutActivator, Intent>? shortcuts, Map<Type, Action<Intent>>? actions, String? restorationScopeId, AdaptiveScaling? scaling, bool disableBrowserContextMenu = true})
Creates an ArcaneApp with the Router API for navigation.
const

Properties

actions → Map<Type, Action<Intent>>?
Actions that can be invoked by intents
final
asBuilder → NeverWidgetBuilder

Available on Widget, provided by the WidgetExtension extension

no setter
asSliver → Widget

Available on Widget, provided by the XWidgetArcane extension

no setter
backButtonDispatcher → BackButtonDispatcher?
Dispatcher for back button events
final
base → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
black → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
blockQuote → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
blurIn → Widget

Available on Widget, provided by the XWidgetEffect extension

no setter
bold → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
builder → TransitionBuilder?
Builder for wrapping the entire app with additional widgets
final
centered → Widget

Available on Widget, provided by the XWidget extension

no setter
color → Color?
Primary color for the app
final
debugShowCheckedModeBanner → bool
Whether to show the debug banner
final
debugShowMaterialGrid → bool
Whether to show the Material grid
final
disableBrowserContextMenu → bool
Whether to disable the browser's context menu (on web)
final
ellipsis → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
expand → Widget

Available on Widget, provided by the XWidget extension

no setter
extraBold → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
extraLight → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
firstP → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
flexible → Widget

Available on Widget, provided by the XWidget extension

no setter
foreground → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
h1 → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
h2 → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
h3 → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
h4 → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
hashCode → int
The hash code for this object.
no setterinherited
home → Widget?
The widget to be displayed at the root route "/"
final
ih → Widget

Available on Widget, provided by the XWidgetArcane extension

no setter
initialRoute → String
The initial route when the app is first loaded
final
inlineCode → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
intrinsicHeight → Widget

Available on Widget, provided by the XWidget extension

no setter
intrinsicSize → Widget

Available on Widget, provided by the XWidget extension

no setter
intrinsicWidth → Widget

Available on Widget, provided by the XWidget extension

no setter
italic → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
iw → Widget

Available on Widget, provided by the XWidgetArcane extension

no setter
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
large → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
lead → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
li → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
light → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
locale → Locale?
The app's locale
final
localeListResolutionCallback → LocaleListResolutionCallback?
Callback for resolving a list of locales
final
localeResolutionCallback → LocaleResolutionCallback?
Callback for resolving a locale
final
localizationsDelegates → Iterable<LocalizationsDelegate>?
Delegates for localizing the app
final
medium → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
modify → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
mono → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
muted → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
Key for the application's navigator
final
List of observers for the navigator
final
normal → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
onGenerateInitialRoutes → InitialRouteListFactory?
Factory for generating initial routes
final
onGenerateRoute → RouteFactory?
Factory for generating routes dynamically
final
onGenerateTitle → GenerateAppTitle?
Generator for the app title
final
onNavigationNotification → NotificationListenerCallback<NavigationNotification>?
Callback for navigation notifications
final
onUnknownRoute → RouteFactory?
Factory for handling unknown routes
final
p → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
primaryForeground → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
restorationScopeId → String?
Restoration scope ID for state restoration
final
routeInformationParser → RouteInformationParser<Object>?
Parser for route information for the Router API
final
routeInformationProvider → RouteInformationProvider?
Provider of route information for the Router API
final
routerConfig → RouterConfig<Object>?
Router configuration
final
routerDelegate → RouterDelegate<Object>?
Delegate for routing decisions in the Router API
final
routes → Map<String, WidgetBuilder>?
Mapping of route names to widget builders
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
safeArea → Widget

Available on Widget, provided by the XWidget extension

no setter
sans → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
scaling → AdaptiveScaling?
Controls the adaptation of UI elements based on screen size
final
scrollable → Widget

Available on Widget, provided by the XWidget extension

no setter
scrollableHorizontal → Widget

Available on Widget, provided by the XWidget extension

no setter
secondaryForeground → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
semiBold → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
shortcuts → Map<ShortcutActivator, Intent>?
Keyboard shortcuts for the app
final
showPerformanceOverlay → bool
Whether to show performance overlay
final
showSemanticsDebugger → bool
Whether to show semantics debugger
final
singleLine → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
small → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
supportedLocales → Iterable<Locale>
The locales supported by the app
final
textCenter → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textEnd → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textJustify → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textLarge → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textLeft → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textMuted → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textRight → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textSmall → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textStart → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
theme → ArcaneTheme?
The theme configuration for the app
final
thin → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
title → String
Title of the application
final
underline → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x2Large → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x3Large → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x4Large → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x5Large → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x6Large → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x7Large → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x8Large → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x9Large → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
xLarge → TextModifier

Available on Widget, provided by the TextExtension extension

no setter
xSmall → TextModifier

Available on Widget, provided by the TextExtension extension

no setter

Methods

animate({Key? key, List<Effect>? effects, AnimateCallback? onInit, AnimateCallback? onPlay, AnimateCallback? onComplete, bool? autoPlay, Duration? delay, AnimationController? controller, Adapter? adapter, double? target, double? value}) → Animate

Available on Widget, provided by the AnimateWidgetExtensions extension

Wraps the target Widget in an Animate instance, and returns the instance for chaining calls. Ex. myWidget.animate() is equivalent to Animate(child: myWidget).
asSkeleton({bool enabled = true, bool leaf = false, Widget? replacement, bool unite = false, AsyncSnapshot? snapshot}) → Widget

Available on Widget, provided by the SkeletonExtension extension

asSkeletonSliver({bool enabled = true}) → Widget

Available on Widget, provided by the SkeletonExtension extension

ast(int ml) → Widget

Available on Widget, provided by the XAST extension

center({Key? key}) → Widget

Available on Widget, provided by the WidgetExtension extension

clip({Clip clipBehavior = Clip.hardEdge}) → Widget

Available on Widget, provided by the WidgetExtension extension

clipOval({Clip clipBehavior = Clip.antiAlias}) → Widget

Available on Widget, provided by the WidgetExtension extension

clipPath({Clip clipBehavior = Clip.antiAlias, required CustomClipper<Path> clipper}) → Widget

Available on Widget, provided by the WidgetExtension extension

clipRRect({BorderRadiusGeometry borderRadius = BorderRadius.zero, Clip clipBehavior = Clip.antiAlias}) → Widget

Available on Widget, provided by the WidgetExtension extension

constrained({double? minWidth, double? maxWidth, double? minHeight, double? maxHeight, double? width, double? height}) → Widget

Available on Widget, provided by the WidgetExtension extension

createElement() → StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() → State<ArcaneApp>
Creates the mutable state for this widget at a given location in the tree.
override
debugContainer([Color color = Colors.red]) → Widget

Available on Widget, provided by the DebugContainer extension

debugDescribeChildren() → List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
excludeSkeleton({bool exclude = true}) → Widget

Available on Widget, provided by the SkeletonExtension extension

expanded({int flex = 1}) → Widget

Available on Widget, provided by the WidgetExtension extension

iconDestructiveForeground() → Widget

Available on Widget, provided by the IconExtension extension

iconLarge() → Widget

Available on Widget, provided by the IconExtension extension

iconMedium() → Widget

Available on Widget, provided by the IconExtension extension

iconMutedForeground() → Widget

Available on Widget, provided by the IconExtension extension

iconPrimary() → Widget

Available on Widget, provided by the IconExtension extension

iconPrimaryForeground() → Widget

Available on Widget, provided by the IconExtension extension

iconSecondary() → Widget

Available on Widget, provided by the IconExtension extension

iconSecondaryForeground() → Widget

Available on Widget, provided by the IconExtension extension

iconSmall() → Widget

Available on Widget, provided by the IconExtension extension

iconX2Large() → Widget

Available on Widget, provided by the IconExtension extension

iconX2Small() → Widget

Available on Widget, provided by the IconExtension extension

iconX3Large() → Widget

Available on Widget, provided by the IconExtension extension

iconX3Small() → Widget

Available on Widget, provided by the IconExtension extension

iconX4Large() → Widget

Available on Widget, provided by the IconExtension extension

iconX4Small() → Widget

Available on Widget, provided by the IconExtension extension

iconXLarge() → Widget

Available on Widget, provided by the IconExtension extension

iconXSmall() → Widget

Available on Widget, provided by the IconExtension extension

ignoreSkeleton() → Widget

Available on Widget, provided by the SkeletonExtension extension

intrinsic({double? stepWidth, double? stepHeight}) → Widget

Available on Widget, provided by the WidgetExtension extension

intrinsicHeight() → Widget

Available on Widget, provided by the WidgetExtension extension

intrinsicWidth({double? stepWidth, double? stepHeight}) → Widget

Available on Widget, provided by the WidgetExtension extension

isSliver(BuildContext context) → bool

Available on Widget, provided by the XSliverWidget extension

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onDoublePressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) → Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for double press/tap gestures.
onHover(void action(bool hovering)) → Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for hover events.
onLongPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) → Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for long press gestures with the primary button.
onLongSecondaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) → Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for long press gestures with the secondary button.
onLongTertiaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) → Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for long press gestures with the tertiary button.
onPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) → Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for primary press/tap gestures (equivalent to onTap).
onSecondaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) → Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for secondary press gestures (equivalent to right-click).
onTertiaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) → Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for tertiary press gestures (equivalent to middle-click).
pad(double all) → Widget

Available on Widget, provided by the XWidget extension

padBottom(double value) → Widget

Available on Widget, provided by the XWidget extension

padBy({double? left, double? top, double? right, double? bottom, double? horizontal, double? vertical}) → Widget

Available on Widget, provided by the XWidgetArcane extension

padLeft(double value) → Widget

Available on Widget, provided by the XWidget extension

padOnly({double left = 0, double top = 0, double right = 0, double bottom = 0}) → Widget

Available on Widget, provided by the XWidget extension

padRight(double value) → Widget

Available on Widget, provided by the XWidget extension

padSliverBy({double? left, double? top, double? right, double? bottom, double? horizontal, double? vertical}) → Widget

Available on Widget, provided by the XWidgetArcane extension

padTop(double value) → Widget

Available on Widget, provided by the XWidget extension

positioned({Key? key, double? left, double? top, double? right, double? bottom}) → Widget

Available on Widget, provided by the WidgetExtension extension

shadeEdge(double radius) → Widget

Available on Widget, provided by the XWidgetEdge extension

shadeFrost(double value) → Widget

Available on Widget, provided by the XWidgetFrost extension

shadeInvert() → Widget

Available on Widget, provided by the XWidgetInvert extension

shadePixelate(double radius) → Widget

Available on Widget, provided by the XWidgetPixelate extension

shadePixelateBlur({int samples = 4, double pixelSize = 8, double radius = 2}) → Widget

Available on Widget, provided by the XWidgetPixelateBlur extension

shadeRGB({double radius = 5, double spin = 1}) → Widget

Available on Widget, provided by the XWidgetRGB extension

shadeWarp({double amplitude = 1, double frequency = 1, double z = 1, int octaves = 2}) → Widget

Available on Widget, provided by the XWidgetWarp extension

shadeWarpAnimation({double amplitude = 1, double frequency = 1, double z = 1, double zSpeed = 1, int octaves = 2}) → Widget

Available on Widget, provided by the XWidgetWarp extension

shimmer({bool loading = true}) → Widget

Available on Widget, provided by the XWidgetArcane extension

sized({double? width, double? height}) → Widget

Available on Widget, provided by the WidgetExtension extension

sized({double? width, double? height}) → Widget

Available on Widget, provided by the XWidget extension

then(InlineSpan span) → Widget

Available on Widget, provided by the TextExtension extension

thenButton({required VoidCallback onPressed, required Widget child}) → Widget

Available on Widget, provided by the TextExtension extension

thenInlineCode(String text) → Widget

Available on Widget, provided by the TextExtension extension

thenText(String text) → Widget

Available on Widget, provided by the TextExtension extension

toBox(BuildContext context, {bool softWarn = true}) → Widget

Available on Widget, provided by the XSliverWidget extension

toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toSliver(BuildContext context, {bool fillRemaining = false, bool softWarn = true}) → Widget

Available on Widget, provided by the XSliverWidget extension

toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) → String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String
Returns a one-line detailed description of the object.
inherited
toStringShort() → String
A short, textual description of this widget.
inherited
transform({Key? key, required Matrix4 transform}) → Widget

Available on Widget, provided by the WidgetExtension extension

withAlign(AlignmentGeometry alignment) → Widget

Available on Widget, provided by the WidgetExtension extension

withMargin({double? top, double? bottom, double? left, double? right, double? horizontal, double? vertical, double? all}) → Widget

Available on Widget, provided by the WidgetExtension extension

withOpacity(double opacity) → Widget

Available on Widget, provided by the WidgetExtension extension

withPadding({double? top, double? bottom, double? left, double? right, double? horizontal, double? vertical, double? all, EdgeInsetsGeometry? padding}) → Widget

Available on Widget, provided by the WidgetExtension extension

withTooltip(String tooltip) → Widget

Available on Widget, provided by the XWidgetArcane extension

Operators

operator ==(Object other) → bool
The equality operator.
inherited