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.
- DropdownColors
- 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
Languagesclass 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.
- A reusable navigation rail component designed for Solid POD applications.
- A solid navigation drawer component.
- Configuration for a navigation tab.
- Configuration for theme toggle functionality.
- Configuration for navigation drawer user information.
- 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
SolidSecurityKeyManagerwidget. - 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
MarkdownTooltipfor Solid server text input -
getThemeToggleTooltip(
bool isDarkMode, {required void onPressed()}) → MarkdownTooltip -
Return a
MarkdownTooltipfor 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
contextis 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.
contextlocates the widget in the widget tree and display the dialog accordingly.animationIndexdetermines the type of animation. This index is used to select from a predefined list of animations (Indicator.values).alertMsgis the message text displayed within the dialog.showPathBackgroundis a boolean flag to decide whether to show a background for the animation path or not.