solidui library

A UI library for building Solid applications with Flutter.

Copyright (C) 2025, Software Innovation Institute, ANU.

Licensed under the MIT License (the "License").

License: https://choosealicense.com/licenses/mit/.

Authors: Tony Chen

Classes

AboutConstants
About dialogue constants used throughout the application.
ChangeKeyButtonStyle
ContinueButtonStyle
DataFormatConfig
Configuration for data format specifications.
Colours used across dropdown dialogs and prompts.
EncKeyInputForm
EncKeyInputForm is a StatefulWidget that represents the form for entering the encryption key.
FileItem
Represents a single file with its metadata.
FileOperations
A utility class for performing file system operations in the POD.
FileState
A model class to manage the state of file operations in the file service.
FileTypeConfig
Configuration for different file types.
InfoButtonStyle
InitialSetupScreen
Numeric variables used in initial setup page. A StatefulWidget for the initial setup screen of an application, handling the initial configuration and resource allocation.
InitialSetupScreenBody
A StatefulWidget that represents the initial setup screen for the desktop version of an application.
Languages
The Languages class provides a collection of language codes.
LoginButtonStyle
LogoutDialog
A pop up widget for user to logout.
Navigation constants used throughout the application.
PodButton
RegisterButtonStyle
ResourceCreationTextWidget
ScrollbarLayout
Layout constants for scrollbars.
SecurityColors
Colours used across security dialogs and prompts.
SecurityKeyNotifier
Global notifier for security key status.
SecurityLayout
Layout constants used across security dialogs and prompts.
SecurityStrings
Common text strings used across security dialogs and prompts.
SecurityTextStyles
Text styles used across security dialogs and prompts.
SnackbarConfig
Configuration for snackbar notifications.
SolidAbout
A static helper for showing About dialogues programmatically.
SolidAboutButton
A button that shows an About dialogue when pressed.
SolidAboutConfig
Configuration for About dialog functionality in the Solid scaffold.
SolidAppBarAction
Configuration for an AppBar action button.
SolidAppBarActionIds
Standard AppBar action IDs used by SolidScaffold.
SolidAppBarActionItem
Represents an AppBar action item that can be reordered and configured for overflow behaviour.
SolidAppBarConfig
Comprehensive configuration for creating an AppBar.
SolidAuthConfig
Configuration for Solid authentication handling.
SolidAuthHandler
Centralised Solid authentication handler.
SolidConfig
Configuration constants for Solid POD servers.
SolidCustomStatusBarItem
Configuration for additional custom status bar items.
SolidDefaultLogin
Default login widget for Solid POD authentication.
SolidDynamicLoginStatus
A dynamic login status widget that automatically checks and updates the login status based on the actual Solid POD authentication state.
SolidFile
A comprehensive file management widget combining file browser and upload functionality.
SolidFileBrowser
A file browser widget to interact with files and directories in user's POD.
SolidFileBrowserState
State class for the SolidFileBrowser widget.
SolidFileDataFormats
Pre-defined format configurations for common health data types.
SolidFileOperations
Unified interface for file operations in SolidUI widgets.
SolidFilePreviewCard
A card widget that displays file preview content with optional close functionality.
SolidFileUploadArea
A comprehensive file upload area with data operation buttons.
SolidFileUploadButtons
A collection of button builders for file upload operations.
SolidFileUploadCallbacks
Callbacks for file upload area operations.
SolidFileUploadConfig
Configuration for the file upload area.
SolidFileUploader
A widget that handles file upload functionality and preview.
SolidFileUploadState
State information for the upload area.
SolidFormatInfoCard
A card widget that displays data format information.
SolidLogin
A widget to login to a Solid server for a user's token to access their POD.
SolidLoginStatus
Configuration for login status in the status bar.
SolidLoginTheme
Theme configuration for the SolidLogin widget.
SolidLoginThemeMode
Theme configuration for a single mode (light or dark).
SolidLogoutConfig
Configuration for logout functionality.
SolidMenuItem
Simplified menu item configuration.
SolidNavBar
A reusable navigation rail component designed for Solid POD applications.
SolidNavDrawer
A solid navigation drawer component.
SolidNavTab
Configuration for a navigation tab.
SolidNavThemeConfig
Configuration for theme toggle functionality.
SolidNavUserConfig
Configuration for navigation drawer user information.
SolidNavUserInfo
User information configuration for the navigation drawer.
SolidOverflowMenuItem
Configuration for an overflow menu item.
SolidPopupLogin
A widget to pop up the login prompt if the user is not logged in.
SolidPreferencesConfig
Complete preferences configuration for SolidScaffold.
SolidPreferencesDialog
A dialogue widget for configuring user preferences including appearance settings and AppBar button ordering.
SolidPreferencesNotifier
Notifier for managing preferences state across the application. Preferences are automatically persisted to SharedPreferences.
SolidScaffold
Simplified unified scaffold component that automatically handles responsive layout switching.
SolidScaffoldController
Controller for managing SolidScaffold subpage navigation.
SolidScaffoldInternalConfig
Configuration class to hold all SolidScaffold parameters. This helps reduce the main widget class size and improves maintainability.
SolidScaffoldState
SolidSecurityKeyCentralManager
Central manager for security key operations to prevent duplicate prompts.
SolidSecurityKeyManager
Security Key Manager.
SolidSecurityKeyManagerConfig
Configuration for the Security Key Manager.
SolidSecurityKeyManagerState
State class that powers SolidSecurityKeyManager widget.
SolidSecurityKeyService
Service for managing security keys used for POD encryption in Solid applications.
SolidSecurityKeyStatus
Configuration for security key status in the status bar.
SolidSecurityKeyUtils
Utility functions for security key status checking.
SolidSecurityKeyView
A widget to show the user all the encryption keys stored in their Solid Pod.
SolidServerInfo
Configuration for server information in the status bar.
SolidStatusBar
A responsive status bar component for Solid applications.
SolidStatusBarConfig
Comprehensive configuration for the Solid status bar.
SolidStatusBarItem
Configuration for a status bar item that displays interactive text.
SolidTheme
Theme constants for SolidUI applications.
SolidThemeApp
SolidThemeConfig
Configuration for customising SolidUI theme.
SolidThemeModeConfig
Configuration for theme mode availability in the theme toggle cycle.
SolidThemeNotifier
Notifier for managing theme state across the application. The current theme mode is persisted to SharedPreferences.
SolidThemeToggleConfig
Configuration for theme toggle functionality in the Solid scaffold.
SolidVersionConfig
Configuration for version information display.
WebIdLayout
Layout constants used for WebId dialogs

Enums

SolidFileType
Predefined file types for different data categories.
SolidStatusBarLayout
Layout mode for the status bar based on screen width.

Constants

darkBlue → const Color
Colour variables used in initial setup screen.
defaultButtonBackground → const Color
Button styles used in the Solid Login widget.
defaultButtonForeground → const Color
defaultChangeKeyButtonText → const String
defaultContinueButtonText → const String
defaultContinueTooltip → const String
defaultInfoButtonText → const String
defaultInfoTooltip → const String
defaultLoginButtonText → const String
defaultLoginTooltip → const String
defaultRegisterButtonText → const String
defaultRegisterTooltip → const String
defaultServerTooltip → const String
initialStructureMsg → const String
Text string variables used for informing the user about the creatiion of different resources.
initialStructureTitle → const String
Text string variables as the title of the message box.
initialStructureWelcome → const String
Colour variables used in initial setup screen. Padding value for initial setup screen. Text string variables used for the welcome message.
lightBlue → const Color
Colour variables used in initial loading screen.
lightGreen → const Color
Colour variables used in initial setup screen.
loginButtonBackground → const Color
loginButtonForeground → const Color
narrowScreenLimit → const int
normalLoadingScreenHeight → const double
Normal height for data loading screens
publicKeyMsg → const String
Text string variables used for informing the user about the creation of public/private key pair for secure data sharing.
registerButtonBackground → const Color
registerButtonForeground → const Color
requiredSecurityKeyMsg → const String
Text string variables used for informing the user about the input of security key for encryption.
securityKeyStr → const String
The string key of input form for the input of security key
securityKeyStrReType → const String
The string key of the input form for retyping the security key
veryNarrowScreenLimit → const int

Properties

securityKeyNotifier SecurityKeyNotifier
Global instance of the security key notifier.
final
solidPreferencesNotifier SolidPreferencesNotifier
Global instance of the preferences notifier.
final
solidThemeNotifier SolidThemeNotifier
Global instance of the theme notifier.
final

Functions

alert(BuildContext context, String msg, [String title = 'Notice']) Future<void>
Alert widget to popup a dialog with a given message and an optional title.
buildMsgBox(BuildContext context, String msgType, String title, String msg) Container
Builds a custom message box widget with adaptive layout and dynamic styling.
getContentColour(String contentType) Color
Returns a color based on the given content type.
getKeyFromUserIfRequired(BuildContext context, Widget child) Future<void>
Ask for the security key from the user if the security key is not available or cannot be verfied using the verification key stored in PODs.
getSolidServerTooltip(TextEditingController webIdController, SolidLoginThemeMode themeMode) → MarkdownTooltip
Return a MarkdownTooltip for Solid server text input
getThemeToggleTooltip(bool isDarkMode, {required void onPressed()}) → MarkdownTooltip
Return a MarkdownTooltip for the theme toggle button
getWidgetHeight(String content) double
Calculates the height of a widget based on the length of the provided content.
initialSetupWelcome(BuildContext context) SizedBox
Get the height of screen. Get the width of screen. A widget displaying an alert for the user noting that they have probably a newly created Solid Pod or their App's Pod is missing resources.
isNarrowScreen(BuildContext context) bool
isTextFile(String filePath) bool
Checks if a file is a text file based on its extension.
isVeryNarrowScreen(BuildContext context) bool
loadingScreen(double height) Widget
Creates a loading screen widget.
loginIfRequired(BuildContext context) Future<bool>
Login if the user has not done so.
loginWebIdInputDialog(BuildContext context) Future
A dialog for adding an individual webId. Function call requires the following inputs context is the BuildContext from which this function is called.
logoutPopup(BuildContext context, Widget child) Future<void>
Display a pop up dialog for logging out.
parseEncKeyContent(String fileInfo) Map
Parses enc-key file information and extracts content into a map.
pushReplacement(BuildContext context, Widget destinationWidget) Future<void>
Utility function for navigation
resCreateFormSubmission(GlobalKey<FormBuilderState> formKey, BuildContext context, List<String> resFileNames, List<String> resFoldersLink, List<String> resFilesLink, Widget child) ElevatedButton
A button to submit form widget
screenWidth(BuildContext context) double
showAnimationDialog(BuildContext context, int animationIndex, String alertMsg, bool showPathBackground, VoidCallback? updateStateCallback) Future<void>
An asynchronous utility designed to display a custom animation dialog. context locates the widget in the widget tree and display the dialog accordingly. animationIndex determines the type of animation. This index is used to select from a predefined list of animations (Indicator.values). alertMsg is the message text displayed within the dialog. showPathBackground is a boolean flag to decide whether to show a background for the animation path or not.