safaeh library
Opt-in Safaeh presentation helpers for the settings framework.
The main package entrypoint intentionally does not export this library. Import it only when the host app wants to use Safaeh's page-index chrome:
import 'package:flutter_settings_framework/safaeh.dart';
Classes
- SafaehFloatingAppearance
- Shared appearance options for Safaeh floating surfaces.
- SafaehPageIndex
- GitBook-style "On this page" index for wide layouts (side rail).
- SafaehPageIndexEntry
- One jump target in a long scrolling page.
- SafaehPageIndexOverlay
- Floating overlay control for narrow layouts. Does not consume scroll space.
- SafaehSettingsPageIndex
- Safaeh's wide-layout page index backed by Edadat sections.
- SafaehSettingsPageIndexOverlay
- Safaeh's narrow-layout page-index overlay backed by Edadat sections.
- SafaehSettingsSearchButton
- Search trigger for a Safaeh-backed settings search overlay.
- SafaehSettingsSearchOverlay
- Animated, glass-surface settings search overlay for a page Stack.
- SafaehSettingsSearchResults
- A compact, grouped result list for SafaehSettingsSearchOverlay.
- SafaehTheme
- Provides SafaehThemeData to sheets, page index, and sidenav.
- SafaehThemeData
- Tokens for safaeh chrome. Override via SafaehTheme at the app root.
Enums
- SafaehFloatingSurfaceStyle
- Visual treatment used by floating and overlay surfaces.
Functions
-
activeSafaehSettingsSectionId(
{required Iterable< SettingSection> sections, required Map<String, GlobalKey< sectionKeys, required BuildContext scrollContext, double activationOffset = 96}) → String?State< >StatefulWidget> > - Resolves the active Edadat section using Safaeh's scroll spy.
-
safaehActivePageSectionId(
{required List< (String, GlobalKey< sections, required BuildContext scrollContext, double activationOffset = 96}) → String?State< )>StatefulWidget> > - Resolve the active section from scroll position (section tops vs viewport).
-
safaehSettingsPageIndexEntries(
{required Iterable< SettingSection> sections, required Map<String, GlobalKey< sectionKeys, required String labelBuilder(SettingSection section)}) → List<State< >StatefulWidget> >SafaehPageIndexEntry> - Converts Edadat sections into Safaeh page-index entries.
-
scrollToPageSection(
GlobalKey< State< key, {double alignment = 0.08, ScrollController? controller, double? knownOffset, Duration ensureDuration = const Duration(milliseconds: 280)}) → Future<StatefulWidget> >void> - Scroll helper: jump to a section key inside one scrollable.