s_packages 1.4.2
s_packages: ^1.4.2 copied to clipboard
A unified package gathering multiple widgets and tools.
1.4.2 #
s_modalsub-package improvements: — Added_appBuilderInstalled = falsein bothdisposeActivator()and_ActivatorWidgetState.dispose(). Without this, after the first test tears down its widget tree, subsequent tests'Modal.appBuildercalls skip creating the_ActivatorWidget, so modals never render.
1.4.1 #
s_connectivitysub-package BREAKING improvements:- BREAKING: Renamed
AppInternetConnectivityclass toSConnectivity— all call sites must be updated (e.g.AppInternetConnectivity.listenable→SConnectivity.listenable) - BREAKING: Renamed source file from
s_connection.darttos_connectivity.dart— direct imports must be updated - Made
toggleConnectivitySnackbar()private (_toggleConnectivitySnackbar) — use theshowNoInternetSnackbarsetter instead for manual snackbar control
- BREAKING: Renamed
1.4.0 #
s_modalsub-package improvements:- Added
Modal.isAppBuilderInstalledpublic getter — allows other packages to check whetherModal.appBuilderhas already been installed in the widget tree - Made
Modal.appBuilderidempotent — calling it more than once now safely returns the child as-is instead of double-nesting the internal_ActivatorWidget
- Added
s_connectivitysub-package improvements:- Added
SConnectivityOverlaywidget — a convenience wrapper that sets up the Modal overlay system so the "No Internet" snackbar works without requiring users to know about or manually callModal.appBuilder - Added
SConnectivityOverlay.appBuilderstatic method — drop-in replacement forModal.appBuilderthat can be passed directly toMaterialApp(builder: ...) - Safe to use alongside an existing
Modal.appBuildercall — double-wrapping is prevented automatically thanks to the idempotentappBuilder
- Added
1.3.0 #
pop_overlaysub-package improvements:PopOverlay.dismissAllPopsadded with optionalincludeInvisibleandexceptparametersPopOverlay.replacePopfor atomically replacing an overlay with a new one- Added query helpers:
isVisibleById,getVisiblePops,getInvisiblePops,visibleCount,invisibleCount - Added
shouldDismissOnEscapeKeyflag onPopOverlayContentto opt out of Escape key dismissal per overlay - Added
onMadeVisiblecallback onPopOverlayContent(counterpart toonMadeInvisible) - Added
onDragStartandonDragEndcallbacks onPopOverlayContent - Added
dragBoundsonPopOverlayContentto constrain dragging within aRect FrameDesignadditions:subtitleproperty for secondary text below the titletitleBarColorandbottomBarColorfor per-popup color customizationheaderTrailingWidgetsfor extra action widgets in the header
bubble_labelsub-package improvements:- Added
animationDurationfor custom show/dismiss timing - Added
showCurveanddismissCurvefor independent animation curves - Added
horizontalOffsetfor horizontal positioning control - Added
showOnHoverflag to trigger label display on mouse hover
- Added
s_bounceablesub-package improvements:- Added
onLongPresscallback - Added
curvefor custom bounce animation curve - Added
enableHapticFeedbackflag for tactile feedback on tap
- Added
s_disabledsub-package improvements:- Added
applyGrayscaleflag to apply a grayscale filter when disabled - Added
disabledSemanticLabelfor custom accessibility label when disabled - Added
disabledChildto show an alternative widget when disabled
- Added
s_bannersub-package improvements:- Added
onTapcallback - Added
gradientfor gradient background support - Added
animateVisibilityto animate show/hide transitions
- Added
s_glowsub-package improvements:- Added
onAnimationCompletecallback to Glow1 and Glow2 - Added
gradientsupport for multi-color glow effects in Glow1
- Added
shakersub-package improvements:- Added
ShakeControllerfor programmatic shake triggering viacontroller.shake()
- Added
s_maintenance_buttonsub-package improvements:- Added
iconfor custom button icon - Added
showConfirmationflag andconfirmationMessagefor confirmation dialog before action
- Added
s_ink_buttonsub-package improvements:- Added
onHoverandonFocusChangecallbacks - Added
hoverColorfor custom hover state color - Added
splashDurationfor custom splash animation timing
- Added
settings_itemsub-package improvements:- Added
subtitle,description, andtrailingtoExpandableParameters - Updated
copyWith,==, andhashCodeaccordingly
- Added
s_error_widgetsub-package improvements:- Converted to
StatefulWidgetfor expandable stack trace state - Added
errorCode,stackTrace(expandable monospace view),showCopyButton, andactions - Copy button copies full error details to clipboard
- Converted to
keystroke_listenersub-package improvements:- Added
actionHandlersmap for customizable intent callbacks per intent type
- Added
s_context_menusub-package improvements:- Added
disabledandshortcutHintfields toSContextMenuItem - Disabled items render at reduced opacity with forbidden cursor
- Shortcut hints display as right-aligned secondary text in menu items
- Added
s_animated_tabssub-package improvements:- Added
tabIconslist for optional per-tab icons - Added
tabBadgeslist for optional per-tab badge pills
- Added
s_expendable_menusub-package improvements:- Added
onExpansionChangedcallback toSExpandableMenu - Added
tooltipanddisabledfields toSExpandableItem - Disabled items render at reduced opacity with null tap handler
- Added
s_future_buttonsub-package improvements:- Added
successDurationanderrorDurationfor configurable state display timing - Added
loadingWidgetfor custom loading indicator replacement
- Added
s_gridviewsub-package improvements:- Added
emptyStateWidgetto display when children list is empty
- Added
ticker_free_circular_progress_indicatorsub-package improvements:- Added
sizeparameter (replaces hardcoded 36.0 diameter)
- Added
soundsliced_tween_animation_buildersub-package improvements:- Added
delayfor pre-animation delay - Added
repeatCountto limit number of auto-repeat cycles
- Added
week_calendarsub-package improvements:- Added
minDateandmaxDatefor date boundary constraints - Added
eventIndicatorDatesandeventIndicatorColorfor event dot indicators on days
- Added
s_clientsub-package improvements:- Added
putJson<T>()typed variant for PUT requests with JSON deserialization - Added
patchJson<T>()typed variant for PATCH requests with JSON deserialization - Added
deleteJson<T>()typed variant for DELETE requests with JSON deserialization
- Added
soundsliced_dart_extensionssub-package improvements:- Added
String.truncate(maxLength, {ellipsis})extension - Added
List<T>.groupBy<K>(keyOf)extension for grouping elements by key
- Added
s_liquid_pull_to_refreshsub-package improvements:- Added
triggerDistancefor customizable drag threshold - Added
onDragProgresscallback reporting drag progress (0.0 to 1.0)
- Added
s_screenshotsub-package performance improvements:- Fixed
ui.Imagememory leak — native GPU resources are now properly disposed after byte extraction - Base64 encoding is now offloaded to a separate isolate via
compute()on native platforms to avoid blocking the UI thread (falls back to main thread on web where isolates aren't available) - Replaced
Future.microtask(() {})withWidgetsBinding.instance.endOfFramefor more reliable rendering pipeline synchronization - Fixed
ByteDatabuffer view to use preciseoffsetInBytes/lengthInBytesinstead of unboundedasUint8List()
- Fixed
s_connectivitysub-package improvements:- BREAKING: Removed
NoInternetConnectionPopupwidget; connectivity warnings now use the Modal snackbar system - Added
showNoInternetSnackbarstatic property to auto-show/dismiss a staggered snackbar on connectivity changes - Added
noInternetSnackbarMessageparameter toinitialiseInternetConnectivityListener()for custom messages - Added
toggleConnectivitySnackbar()static method for manual snackbar control - Removed dependencies on
assorted_layout_widgetsandsizer
- BREAKING: Removed
s_modalsub-package improvements:- BREAKING: Renamed
showSuffixIconparameter toshowCloseIconinModal.showSnackbar() - Replaced barrier
SBounceablewithSInkButtonfor ink-splash feedback and long-press dismiss support - Improved snackbar default layout: text uses
Flexibleinstead ofExpanded, consistent spacing/alignment
- BREAKING: Renamed
signals_watchsub-package improvements:- Metadata is now always stored for signals created via
SignalsWatch.signal(), ensuring.reset()works even without lifecycle callbacks onValueUpdatedcallback now supports zero-parameter signatures (fallback invocation if one-parameter call fails)
- Metadata is now always stored for signals created via
1.2.7 #
s_sidebarsub-package improvements:- Enhanced
SideBarController.activateSideBarwith additional customization options:- Added
dismissBarrierColorparameter for custom barrier colors - Added
shouldBlurDismissBarrierparameter for optional blur effect on barrier - Added
initStatecallback for initialization logic - Added
onDismissedcallback to handle sidebar dismissal events
- Added
- Enhanced
1.2.6 #
pop_overlaysub-package animation improvements:- Added smooth fade-in animations to all popup types; fixes flash issue in
FrameDesignpopups by smoothly animating appearance during auto dynamic dimension calculation time - Extended animation durations for smoother transitions: blur background (400ms → 600ms), barrier fade (0.4-0.5s → 0.8-1.0s), and animated size (300ms → 500ms)
- Added
borderRadiussupport to example demos for better visual consistency - Optimized popup entrance animations with
Curves.fastEaseInToSlowEaseOutfor more natural motion
- Added smooth fade-in animations to all popup types; fixes flash issue in
1.2.5 #
pop_overlaysub-package improvements:- Replaced
pop_overlay's use ofMediaQuery.of(context).sizewithSize(100.w, 100.h)for better responsive sizing using thesizerpackage throughout the overlay system - Improved cross-platform compatibility and responsive behavior
- Replaced
- Example app enhancements:
- Wrapped
MaterialAppwithForcePhoneSizeOnWebfor better web demo experience with consistent phone-sized viewport - Added comprehensive Pop Overlay Demo section in
s_widgets_example_screen.dartshowcasing draggable popup with blur effects, custom styling, and interactive features
- Wrapped
1.2.4 #
s_sidebar&pop_overlaysub-packages upgrades:s_sidebar: Added default left alignment for sidebar activation, allowing the sidebar to stay anchored to the left while minimizing.pop_overlay: Addedalignmentproperty toPopOverlayContent(defaulting toAlignment.center) and updated_PopOverlayActivatorto support popup alignment.
1.2.3 #
- No longer exporting web exclusive packages (
universal_html,web...)
1.2.2 #
- SDK constraint upgrade
1.2.1 #
- no longer depending on
web^1.1.1
1.2.0 #
s_sidebar&pop_overlaysub-packages upgrades:- Added
animateFromOffsettoactivateSideBarto allow animating the sidebar popup from a specific screen position (e.g., button tap location). - Added
curveparameter to customize the animation curve. - Added
animationDurationparameter to control the popup animation speed. - Added
useGlobalPositionparameter toactivateSideBarandPopOverlay, simplifying coordinate handling by automatically converting global tap positions. - Fixed an issue where
SSideBarcould error with infinite height constraints when used in an overlay. - Example app's showcases updated accordingly for both
s_sidebar&pop_overlaysub-packages
- Added
READMEupdated
1.1.4 #
- removed some conflicting dependencies
1.1.3 #
- dependencies upgraded
- new dependencies added not used in this package but included for export convenience, so users don't have to add them separately when using the widgets that depend on them.
1.1.2 #
- all Flutter platforms made enabled
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.1.1 - 2026-02-06 #
- README updated
1.1.0 - 2026-02-06 #
- full restructure of the package and subpackages + subpackages are exported so to be accessible by the
s_packagesusers
1.0.3 - 2026-02-06 #
- s_packages.dart placed in the root folder, and its exports URLs fixed
1.0.2 - 2026-02-06 #
- s_packages.dart created, that exports all included sub packages
1.0.1 - 2026-02-06 #
- README and example gif updated
1.0.0 - 2026-02-05 #
Added #
Initial Release
This is the first public release of s_packages, a comprehensive collection of 43 Flutter packages designed to accelerate development and provide reusable UI components, utilities, and tools.
Package Categories
UI Components (20 packages)
bubble_label- A bubble label widget for displaying tags and labelss_animated_tabs- Animated tab bar with smooth transitionss_banner- Customizable banner widget for notificationss_button- Custom button widget with advanced stylings_context_menu- Context menu widget for right-click interactionss_disabled- Widget wrapper for disabled state managements_dropdown- Dropdown widget with advanced featuress_error_widget- Error display widget with customizable UIs_expendable_menu- Expandable menu widget for hierarchical navigations_future_button- Button with Future-based async operationss_ink_button- Button with ink ripple effectss_liquid_pull_to_refresh- Liquid-style pull to refresh animations_maintenance_button- Button for maintenance mode statess_modal- Modal dialog system with overlay managements_standby- Standby state widget for loading statess_toggle- Toggle switch widgets_widgets- Collection of reusable widgetssettings_item- Settings item widget for configuration screensticker_free_circular_progress_indicator- Progress indicator without ticker dependency
Lists and Collections (2 packages)
indexscroll_listview_builder- ListView with index scrolling capabilitiess_gridview- Enhanced grid view widget
Animations (3 packages)
s_bounceable- Bounceable animation effects for interactive widgetss_glow- Glow effects and visual enhancementsshaker- Shake animations for attention-grabbing effectssoundsliced_tween_animation_builder- Custom tween animation builder
Navigation (3 packages)
pop_overlay- Overlay management for navigationpop_this- Navigation utilities and helperss_sidebar- Sidebar navigation component
Networking (2 packages)
s_client- HTTP client utilities and helperss_connectivity- Connectivity monitoring and status
State Management (2 packages)
signals_watch- Signal watching utilities for reactive programmingstates_rebuilder_extended- Extended state management solutions
Input & Interaction (1 package)
keystroke_listener- Keyboard event listener and handler
Layout (1 package)
s_offstage- Offstage widget utilities for conditional rendering
Platform Integration (1 package)
s_webview- WebView integration for embedded web content
Utilities (4 packages)
post_frame- Post-frame callbacks for timing controls_screenshot- Screenshot capture utilitiess_time- Time utilities and formatterssoundsliced_dart_extensions- Dart language extensions
Calendar (1 package)
week_calendar- Week-based calendar widget
Example Application
- Comprehensive example app showcasing all 43 packages
- Material Design 3 UI with light/dark theme support
- Package browser with search and category filtering
- Interactive demos for each package
- Example assets including GIF demonstrations
Documentation
- Complete README with installation and usage instructions
- Individual package documentation
- Code examples for basic and advanced usage
- GitHub repository with issue tracking
Features #
- ✨ 43 production-ready packages
- 📦 Unified package management
- 🎨 Material Design 3 support
- 🌓 Light and dark theme compatibility
- 📱 Cross-platform support (iOS, Android, Web, Desktop)
- 🔍 Comprehensive example app
- 📚 Extensive documentation
- ⚡ Performance optimized
- 🧪 Tested and validated