Catalog of package:safaeh chrome in five Fukaha locales (en, ar, ja, zh,
es) — example/lib/app.dart, catalog.dart, gallery.dart, pages.dart.
The gallery sits in SafaehContentBand. Wide bands lay section cards in two
or three columns on the same scrolling page. Section titles open the
standalone demo (sheet, page, or camera host). Locale + light/dark toggles.
No mobile_scanner, Riverpod, or easy_localization. Profile name/email
go through catalog keys; emails stay LTR in Arabic via catalogIsolateLabel.
Live: shenepoy.github.io/Safaeh
web/ is in-tree for GitHub Pages. A green CI
run on main builds example/ (flutter build web --release --base-href /Safaeh/)
and deploys that site. Run workflow on CI republishes the same path.
Other platforms are not generated, so flutter run on a device needs
flutter create . first.
cd example
flutter pub get
dart analyze --fatal-infoscd example
flutter testtest/widget_images_test.dart captures picker, confirm, option tiles, and
sidenav with widgets_to_image
into ../screenshots/. CI runs that test and uploads the
PNGs as the widget-images artifact.
cd example
flutter pub get
flutter build web --release --base-href /Safaeh/cd example
flutter create . --project-name safaeh_example --platforms=android,ios
flutter pub get
flutter run- Adaptive sheet — phone bottom sheet ↔ tablet dialog
- Card picker —
SafaehOptionPickerBody/showSafaehPicker - Tile picker —
SafaehTilePickerBody+ header / disabled row - Multi picker — search +
showSafaehMultiTilePicker - Status body — busy and empty
SafaehStatusBody - Confirm / text input —
SafaehConfirmSheet/SafaehTextInputSheet - Sheet shell — shared title, body, and action row
- Sheet morph — nested 320 and 420 previews
- Option tiles — selected / disabled / destructive
- Dialog —
showSafaehDialogwith theme radius and width - Sidenav — rail and
asDrawer: truetemporary drawer - Floating nav —
SafaehFloatingNavBar - Page index — side rail and overlay + scroll helper
- Content band / end aside / aligned chrome —
safaehBandMetrics - Morphing app bar — page-aware title, action, and bottom chrome
- Camera host / QR overlay / QR message — QR chrome sits in the
camera bottom panel (
SafaehCameraSheetHost) - Feedback — shared host, typed surfaces, action messages, and custom feedback builders
- Language + theme toggles