├── example
├── linux
│ ├── .gitignore
│ ├── main.cc
│ ├── flutter
│ │ ├── generated_plugin_registrant.h
│ │ ├── generated_plugin_registrant.cc
│ │ ├── generated_plugins.cmake
│ │ └── CMakeLists.txt
│ └── my_application.h
├── ios
│ ├── Runner
│ │ ├── Runner-Bridging-Header.h
│ │ ├── Assets.xcassets
│ │ │ ├── LaunchImage.imageset
│ │ │ │ ├── LaunchImage.png
│ │ │ │ ├── LaunchImage@2x.png
│ │ │ │ ├── LaunchImage@3x.png
│ │ │ │ ├── README.md
│ │ │ │ └── Contents.json
│ │ │ └── AppIcon.appiconset
│ │ │ │ ├── Icon-App-20x20@1x.png
│ │ │ │ ├── Icon-App-20x20@2x.png
│ │ │ │ ├── Icon-App-20x20@3x.png
│ │ │ │ ├── Icon-App-29x29@1x.png
│ │ │ │ ├── Icon-App-29x29@2x.png
│ │ │ │ ├── Icon-App-29x29@3x.png
│ │ │ │ ├── Icon-App-40x40@1x.png
│ │ │ │ ├── Icon-App-40x40@2x.png
│ │ │ │ ├── Icon-App-40x40@3x.png
│ │ │ │ ├── Icon-App-60x60@2x.png
│ │ │ │ ├── Icon-App-60x60@3x.png
│ │ │ │ ├── Icon-App-76x76@1x.png
│ │ │ │ ├── Icon-App-76x76@2x.png
│ │ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ │ ├── Icon-App-83.5x83.5@2x.png
│ │ │ │ └── Contents.json
│ │ ├── AppDelegate.swift
│ │ ├── Base.lproj
│ │ │ ├── Main.storyboard
│ │ │ └── LaunchScreen.storyboard
│ │ └── Info.plist
│ ├── Flutter
│ │ ├── Debug.xcconfig
│ │ ├── Release.xcconfig
│ │ └── AppFrameworkInfo.plist
│ ├── Runner.xcodeproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ │ ├── WorkspaceSettings.xcsettings
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── WorkspaceSettings.xcsettings
│ │ │ └── IDEWorkspaceChecks.plist
│ ├── .gitignore
│ └── Podfile
├── web
│ ├── favicon.png
│ ├── icons
│ │ ├── Icon-192.png
│ │ ├── Icon-512.png
│ │ ├── Icon-maskable-192.png
│ │ └── Icon-maskable-512.png
│ ├── manifest.json
│ └── index.html
├── android
│ ├── gradle.properties
│ ├── app
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── res
│ │ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ │ └── ic_launcher.png
│ │ │ │ │ ├── drawable
│ │ │ │ │ │ └── launch_background.xml
│ │ │ │ │ ├── drawable-v21
│ │ │ │ │ │ └── launch_background.xml
│ │ │ │ │ ├── values
│ │ │ │ │ │ └── styles.xml
│ │ │ │ │ └── values-night
│ │ │ │ │ │ └── styles.xml
│ │ │ │ ├── kotlin
│ │ │ │ │ └── com
│ │ │ │ │ │ └── example
│ │ │ │ │ │ └── example
│ │ │ │ │ │ └── MainActivity.kt
│ │ │ │ └── AndroidManifest.xml
│ │ │ ├── debug
│ │ │ │ └── AndroidManifest.xml
│ │ │ └── profile
│ │ │ │ └── AndroidManifest.xml
│ │ └── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ │ └── gradle-wrapper.properties
│ ├── .gitignore
│ ├── settings.gradle
│ └── build.gradle
├── macos
│ ├── Runner
│ │ ├── Configs
│ │ │ ├── Debug.xcconfig
│ │ │ ├── Release.xcconfig
│ │ │ ├── Warnings.xcconfig
│ │ │ └── AppInfo.xcconfig
│ │ ├── Assets.xcassets
│ │ │ └── AppIcon.appiconset
│ │ │ │ ├── app_icon_16.png
│ │ │ │ ├── app_icon_32.png
│ │ │ │ ├── app_icon_64.png
│ │ │ │ ├── app_icon_1024.png
│ │ │ │ ├── app_icon_128.png
│ │ │ │ ├── app_icon_256.png
│ │ │ │ ├── app_icon_512.png
│ │ │ │ └── Contents.json
│ │ ├── AppDelegate.swift
│ │ ├── Release.entitlements
│ │ ├── DebugProfile.entitlements
│ │ ├── MainFlutterWindow.swift
│ │ └── Info.plist
│ ├── .gitignore
│ ├── Flutter
│ │ ├── Flutter-Debug.xcconfig
│ │ ├── Flutter-Release.xcconfig
│ │ └── GeneratedPluginRegistrant.swift
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ ├── Runner.xcodeproj
│ │ ├── project.xcworkspace
│ │ │ └── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Podfile.lock
│ └── Podfile
├── windows
│ ├── runner
│ │ ├── resources
│ │ │ └── app_icon.ico
│ │ ├── resource.h
│ │ ├── utils.h
│ │ ├── runner.exe.manifest
│ │ ├── flutter_window.h
│ │ ├── main.cpp
│ │ ├── CMakeLists.txt
│ │ ├── utils.cpp
│ │ ├── flutter_window.cpp
│ │ └── Runner.rc
│ ├── .gitignore
│ └── flutter
│ │ ├── generated_plugin_registrant.h
│ │ ├── generated_plugin_registrant.cc
│ │ └── generated_plugins.cmake
├── README.md
├── .gitignore
├── analysis_options.yaml
└── .metadata
├── CHANGELOG.md
├── lib
├── src
│ ├── components
│ │ ├── alerts
│ │ │ ├── alert_type.dart
│ │ │ ├── alert_close_button.dart
│ │ │ ├── alert_icon.dart
│ │ │ ├── base_alert.dart
│ │ │ ├── small_alert.dart
│ │ │ └── alert.dart
│ │ ├── badges
│ │ │ ├── badge_type.dart
│ │ │ └── badge.dart
│ │ ├── banners
│ │ │ ├── banner_link.dart
│ │ │ ├── banner_text.dart
│ │ │ └── banner.dart
│ │ ├── accordion
│ │ │ ├── accordion_data.dart
│ │ │ ├── accordion_border.dart
│ │ │ ├── accordion_panel.dart
│ │ │ └── accordion.dart
│ │ ├── buttons
│ │ │ ├── base_radio.dart
│ │ │ ├── base_button.dart
│ │ │ ├── radio.dart
│ │ │ ├── secondary.dart
│ │ │ ├── primary.dart
│ │ │ └── tertiary.dart
│ │ ├── shared
│ │ │ └── close_button.dart
│ │ └── radio_group
│ │ │ ├── radio_group_form_field.dart
│ │ │ └── radio_group.dart
│ ├── fonts.dart
│ ├── utils
│ │ └── named_property.dart
│ ├── theme
│ │ ├── breakpoints.dart
│ │ ├── theme_widget.dart
│ │ ├── button_style.dart
│ │ ├── radius.dart
│ │ ├── icons.dart
│ │ └── theme_data.dart
│ ├── gen
│ │ ├── lang
│ │ │ └── fr.dart
│ │ └── default_localizations.dart
│ └── localization
│ │ ├── all_languages.dart
│ │ └── l10n.dart
├── icons
│ └── remixicon.ttf
├── fonts
│ ├── Marianne
│ │ ├── Marianne-Bold.otf
│ │ ├── Marianne-Thin.otf
│ │ ├── Marianne-Light.otf
│ │ ├── Marianne-Medium.otf
│ │ ├── Marianne-ExtraBold.otf
│ │ ├── Marianne-Regular.otf
│ │ ├── Marianne-BoldItalic.otf
│ │ ├── Marianne-LightItalic.otf
│ │ ├── Marianne-ThinItalic.otf
│ │ ├── Marianne-MediumItalic.otf
│ │ ├── Marianne-RegularItalic.otf
│ │ └── Marianne-ExtraBoldItalic.otf
│ └── Spectral
│ │ ├── Spectral-Bold.ttf
│ │ ├── Spectral-Italic.ttf
│ │ ├── Spectral-Light.ttf
│ │ ├── Spectral-Medium.ttf
│ │ ├── Spectral-ExtraBold.ttf
│ │ ├── Spectral-Regular.ttf
│ │ ├── Spectral-SemiBold.ttf
│ │ ├── Spectral-BoldItalic.ttf
│ │ ├── Spectral-ExtraLight.ttf
│ │ ├── Spectral-LightItalic.ttf
│ │ ├── Spectral-MediumItalic.ttf
│ │ ├── Spectral-SemiBoldItalic.ttf
│ │ ├── Spectral-ExtraBoldItalic.ttf
│ │ └── Spectral-ExtraLightItalic.ttf
├── flutter_dsfr_localizations.dart
├── l10n
│ └── flutter_dsfr_fr.arb
└── flutter_dsfr.dart
├── dart_test.yaml
├── screenshots
├── alert.png
├── badge.png
├── radio.png
├── banner.png
├── accordion.png
├── radio_group.png
├── small_alert.png
├── buttons_group.png
├── france_connect.png
├── primary_button.png
├── secondary_button.png
└── france_connect_plus.png
├── test
├── theme
│ ├── goldens
│ │ └── ci
│ │ │ ├── icons.png
│ │ │ ├── sizes.png
│ │ │ ├── radius.png
│ │ │ ├── typography.png
│ │ │ ├── colors_dark.png
│ │ │ └── colors_light.png
│ ├── icons_test.dart
│ ├── typography_test.dart
│ ├── sizes_test.dart
│ ├── radius_test.dart
│ └── colors_test.dart
├── components
│ ├── logo
│ │ ├── goldens
│ │ │ └── ci
│ │ │ │ └── logo.png
│ │ └── logo_test.dart
│ ├── alerts
│ │ ├── goldens
│ │ │ └── ci
│ │ │ │ ├── alert_dark.png
│ │ │ │ ├── alert_light.png
│ │ │ │ ├── small_alert_dark.png
│ │ │ │ ├── small_alert_light.png
│ │ │ │ └── primary_button_dark.png
│ │ └── small_alert_test.dart
│ ├── badges
│ │ └── goldens
│ │ │ └── ci
│ │ │ ├── badge_dark.png
│ │ │ └── badge_light.png
│ ├── accordion
│ │ ├── goldens
│ │ │ └── ci
│ │ │ │ ├── accordion_dark.png
│ │ │ │ └── accordion_light.png
│ │ ├── accordion_robot.dart
│ │ └── accordion_test.dart
│ ├── banners
│ │ └── goldens
│ │ │ └── ci
│ │ │ ├── banner_large_dark.png
│ │ │ ├── banner_small_dark.png
│ │ │ ├── banner_large_light.png
│ │ │ └── banner_small_light.png
│ ├── buttons
│ │ ├── goldens
│ │ │ └── ci
│ │ │ │ ├── radio_button_dark.png
│ │ │ │ ├── radio_group_light.png
│ │ │ │ ├── radio_rich_light.png
│ │ │ │ ├── primary_button_dark.png
│ │ │ │ ├── radio_button_light.png
│ │ │ │ ├── france_connect_button.png
│ │ │ │ ├── primary_button_light.png
│ │ │ │ ├── secondary_button_dark.png
│ │ │ │ ├── secondary_button_light.png
│ │ │ │ ├── tertiary_button_dark.png
│ │ │ │ ├── tertiary_button_light.png
│ │ │ │ └── france_connect_button_dark.png
│ │ ├── radio_rich_test.dart
│ │ ├── france_connect_button_test.dart
│ │ ├── primary_button_test.dart
│ │ └── secondary_button_test.dart
│ └── buttons_group
│ │ └── goldens
│ │ └── ci
│ │ ├── buttons_group_vertical.png
│ │ └── buttons_group_horizontal.png
├── flutter_test_config.dart
└── utils
│ └── font.dart
├── analysis_options.yaml
├── .vscode
└── launch.json
├── .metadata
├── .github
└── workflows
│ ├── contribute.yml
│ ├── build.yml
│ └── tests.yml
├── docs
├── flutter-dsfr-roadmap.md
└── flutter-dsfr-localizations.md
├── .gitignore
├── LICENSE
├── bin
└── add_label.dart
└── pubspec.yaml
/example/linux/.gitignore:
--------------------------------------------------------------------------------
1 | flutter/ephemeral
2 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## 0.0.1
2 |
3 | * TODO: Describe initial release.
4 |
--------------------------------------------------------------------------------
/example/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/lib/src/components/alerts/alert_type.dart:
--------------------------------------------------------------------------------
1 | enum DSFRAlertType { error, success, info, warning }
2 |
--------------------------------------------------------------------------------
/dart_test.yaml:
--------------------------------------------------------------------------------
1 | tags:
2 | golden:
3 | atom:
4 | molecule:
5 | organism:
6 | light:
7 | dark:
8 |
--------------------------------------------------------------------------------
/lib/src/components/badges/badge_type.dart:
--------------------------------------------------------------------------------
1 | enum DSFRBadgeType { error, success, info, warning, news }
2 |
--------------------------------------------------------------------------------
/screenshots/alert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/screenshots/alert.png
--------------------------------------------------------------------------------
/screenshots/badge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/screenshots/badge.png
--------------------------------------------------------------------------------
/screenshots/radio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/screenshots/radio.png
--------------------------------------------------------------------------------
/example/web/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/web/favicon.png
--------------------------------------------------------------------------------
/lib/icons/remixicon.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/icons/remixicon.ttf
--------------------------------------------------------------------------------
/screenshots/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/screenshots/banner.png
--------------------------------------------------------------------------------
/screenshots/accordion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/screenshots/accordion.png
--------------------------------------------------------------------------------
/screenshots/radio_group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/screenshots/radio_group.png
--------------------------------------------------------------------------------
/screenshots/small_alert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/screenshots/small_alert.png
--------------------------------------------------------------------------------
/example/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/example/macos/Runner/Configs/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "../../Flutter/Flutter-Debug.xcconfig"
2 | #include "Warnings.xcconfig"
3 |
--------------------------------------------------------------------------------
/example/web/icons/Icon-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/web/icons/Icon-192.png
--------------------------------------------------------------------------------
/example/web/icons/Icon-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/web/icons/Icon-512.png
--------------------------------------------------------------------------------
/screenshots/buttons_group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/screenshots/buttons_group.png
--------------------------------------------------------------------------------
/screenshots/france_connect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/screenshots/france_connect.png
--------------------------------------------------------------------------------
/screenshots/primary_button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/screenshots/primary_button.png
--------------------------------------------------------------------------------
/test/theme/goldens/ci/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/theme/goldens/ci/icons.png
--------------------------------------------------------------------------------
/test/theme/goldens/ci/sizes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/theme/goldens/ci/sizes.png
--------------------------------------------------------------------------------
/example/macos/Runner/Configs/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "../../Flutter/Flutter-Release.xcconfig"
2 | #include "Warnings.xcconfig"
3 |
--------------------------------------------------------------------------------
/screenshots/secondary_button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/screenshots/secondary_button.png
--------------------------------------------------------------------------------
/test/theme/goldens/ci/radius.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/theme/goldens/ci/radius.png
--------------------------------------------------------------------------------
/lib/fonts/Marianne/Marianne-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Marianne/Marianne-Bold.otf
--------------------------------------------------------------------------------
/lib/fonts/Marianne/Marianne-Thin.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Marianne/Marianne-Thin.otf
--------------------------------------------------------------------------------
/lib/fonts/Spectral/Spectral-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Spectral/Spectral-Bold.ttf
--------------------------------------------------------------------------------
/screenshots/france_connect_plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/screenshots/france_connect_plus.png
--------------------------------------------------------------------------------
/test/theme/goldens/ci/typography.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/theme/goldens/ci/typography.png
--------------------------------------------------------------------------------
/example/macos/.gitignore:
--------------------------------------------------------------------------------
1 | # Flutter-related
2 | **/Flutter/ephemeral/
3 | **/Pods/
4 |
5 | # Xcode-related
6 | **/dgph
7 | **/xcuserdata/
8 |
--------------------------------------------------------------------------------
/lib/fonts/Marianne/Marianne-Light.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Marianne/Marianne-Light.otf
--------------------------------------------------------------------------------
/lib/fonts/Marianne/Marianne-Medium.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Marianne/Marianne-Medium.otf
--------------------------------------------------------------------------------
/lib/fonts/Spectral/Spectral-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Spectral/Spectral-Italic.ttf
--------------------------------------------------------------------------------
/lib/fonts/Spectral/Spectral-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Spectral/Spectral-Light.ttf
--------------------------------------------------------------------------------
/lib/fonts/Spectral/Spectral-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Spectral/Spectral-Medium.ttf
--------------------------------------------------------------------------------
/test/theme/goldens/ci/colors_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/theme/goldens/ci/colors_dark.png
--------------------------------------------------------------------------------
/test/theme/goldens/ci/colors_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/theme/goldens/ci/colors_light.png
--------------------------------------------------------------------------------
/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:fd_lints/flutter.yaml
2 |
3 | analyzer:
4 | exclude:
5 | - "lib/src/components/logo/logo.dart"
6 |
--------------------------------------------------------------------------------
/example/web/icons/Icon-maskable-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/web/icons/Icon-maskable-192.png
--------------------------------------------------------------------------------
/example/web/icons/Icon-maskable-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/web/icons/Icon-maskable-512.png
--------------------------------------------------------------------------------
/lib/fonts/Marianne/Marianne-ExtraBold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Marianne/Marianne-ExtraBold.otf
--------------------------------------------------------------------------------
/lib/fonts/Marianne/Marianne-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Marianne/Marianne-Regular.otf
--------------------------------------------------------------------------------
/lib/fonts/Spectral/Spectral-ExtraBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Spectral/Spectral-ExtraBold.ttf
--------------------------------------------------------------------------------
/lib/fonts/Spectral/Spectral-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Spectral/Spectral-Regular.ttf
--------------------------------------------------------------------------------
/lib/fonts/Spectral/Spectral-SemiBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Spectral/Spectral-SemiBold.ttf
--------------------------------------------------------------------------------
/test/components/logo/goldens/ci/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/logo/goldens/ci/logo.png
--------------------------------------------------------------------------------
/example/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/example/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/lib/fonts/Marianne/Marianne-BoldItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Marianne/Marianne-BoldItalic.otf
--------------------------------------------------------------------------------
/lib/fonts/Marianne/Marianne-LightItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Marianne/Marianne-LightItalic.otf
--------------------------------------------------------------------------------
/lib/fonts/Marianne/Marianne-ThinItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Marianne/Marianne-ThinItalic.otf
--------------------------------------------------------------------------------
/lib/fonts/Spectral/Spectral-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Spectral/Spectral-BoldItalic.ttf
--------------------------------------------------------------------------------
/lib/fonts/Spectral/Spectral-ExtraLight.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Spectral/Spectral-ExtraLight.ttf
--------------------------------------------------------------------------------
/lib/fonts/Spectral/Spectral-LightItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Spectral/Spectral-LightItalic.ttf
--------------------------------------------------------------------------------
/example/windows/runner/resources/app_icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/windows/runner/resources/app_icon.ico
--------------------------------------------------------------------------------
/lib/fonts/Marianne/Marianne-MediumItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Marianne/Marianne-MediumItalic.otf
--------------------------------------------------------------------------------
/lib/fonts/Marianne/Marianne-RegularItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Marianne/Marianne-RegularItalic.otf
--------------------------------------------------------------------------------
/lib/fonts/Spectral/Spectral-MediumItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Spectral/Spectral-MediumItalic.ttf
--------------------------------------------------------------------------------
/lib/fonts/Spectral/Spectral-SemiBoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Spectral/Spectral-SemiBoldItalic.ttf
--------------------------------------------------------------------------------
/lib/fonts/Marianne/Marianne-ExtraBoldItalic.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Marianne/Marianne-ExtraBoldItalic.otf
--------------------------------------------------------------------------------
/lib/fonts/Spectral/Spectral-ExtraBoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Spectral/Spectral-ExtraBoldItalic.ttf
--------------------------------------------------------------------------------
/lib/fonts/Spectral/Spectral-ExtraLightItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/lib/fonts/Spectral/Spectral-ExtraLightItalic.ttf
--------------------------------------------------------------------------------
/lib/src/fonts.dart:
--------------------------------------------------------------------------------
1 | class DSFRFonts {
2 | const DSFRFonts._();
3 |
4 | static const marianne = 'Marianne';
5 | static const spectral = 'Spectral';
6 | }
7 |
--------------------------------------------------------------------------------
/test/components/alerts/goldens/ci/alert_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/alerts/goldens/ci/alert_dark.png
--------------------------------------------------------------------------------
/test/components/badges/goldens/ci/badge_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/badges/goldens/ci/badge_dark.png
--------------------------------------------------------------------------------
/test/components/alerts/goldens/ci/alert_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/alerts/goldens/ci/alert_light.png
--------------------------------------------------------------------------------
/test/components/badges/goldens/ci/badge_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/badges/goldens/ci/badge_light.png
--------------------------------------------------------------------------------
/lib/flutter_dsfr_localizations.dart:
--------------------------------------------------------------------------------
1 | library flutter_dsfr_localizations;
2 |
3 | export 'src/gen/default_localizations.dart';
4 | export 'src/localization/l10n.dart';
5 |
--------------------------------------------------------------------------------
/example/macos/Flutter/Flutter-Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "ephemeral/Flutter-Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/test/components/accordion/goldens/ci/accordion_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/accordion/goldens/ci/accordion_dark.png
--------------------------------------------------------------------------------
/test/components/accordion/goldens/ci/accordion_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/accordion/goldens/ci/accordion_light.png
--------------------------------------------------------------------------------
/test/components/alerts/goldens/ci/small_alert_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/alerts/goldens/ci/small_alert_dark.png
--------------------------------------------------------------------------------
/test/components/alerts/goldens/ci/small_alert_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/alerts/goldens/ci/small_alert_light.png
--------------------------------------------------------------------------------
/test/components/banners/goldens/ci/banner_large_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/banners/goldens/ci/banner_large_dark.png
--------------------------------------------------------------------------------
/test/components/banners/goldens/ci/banner_small_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/banners/goldens/ci/banner_small_dark.png
--------------------------------------------------------------------------------
/test/components/buttons/goldens/ci/radio_button_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/buttons/goldens/ci/radio_button_dark.png
--------------------------------------------------------------------------------
/test/components/buttons/goldens/ci/radio_group_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/buttons/goldens/ci/radio_group_light.png
--------------------------------------------------------------------------------
/test/components/buttons/goldens/ci/radio_rich_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/buttons/goldens/ci/radio_rich_light.png
--------------------------------------------------------------------------------
/example/macos/Flutter/Flutter-Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "ephemeral/Flutter-Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/test/components/alerts/goldens/ci/primary_button_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/alerts/goldens/ci/primary_button_dark.png
--------------------------------------------------------------------------------
/test/components/banners/goldens/ci/banner_large_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/banners/goldens/ci/banner_large_light.png
--------------------------------------------------------------------------------
/test/components/banners/goldens/ci/banner_small_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/banners/goldens/ci/banner_small_light.png
--------------------------------------------------------------------------------
/test/components/buttons/goldens/ci/primary_button_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/buttons/goldens/ci/primary_button_dark.png
--------------------------------------------------------------------------------
/test/components/buttons/goldens/ci/radio_button_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/buttons/goldens/ci/radio_button_light.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/test/components/buttons/goldens/ci/france_connect_button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/buttons/goldens/ci/france_connect_button.png
--------------------------------------------------------------------------------
/test/components/buttons/goldens/ci/primary_button_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/buttons/goldens/ci/primary_button_light.png
--------------------------------------------------------------------------------
/test/components/buttons/goldens/ci/secondary_button_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/buttons/goldens/ci/secondary_button_dark.png
--------------------------------------------------------------------------------
/test/components/buttons/goldens/ci/secondary_button_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/buttons/goldens/ci/secondary_button_light.png
--------------------------------------------------------------------------------
/test/components/buttons/goldens/ci/tertiary_button_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/buttons/goldens/ci/tertiary_button_dark.png
--------------------------------------------------------------------------------
/test/components/buttons/goldens/ci/tertiary_button_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/buttons/goldens/ci/tertiary_button_light.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/test/components/buttons/goldens/ci/france_connect_button_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/buttons/goldens/ci/france_connect_button_dark.png
--------------------------------------------------------------------------------
/test/components/buttons_group/goldens/ci/buttons_group_vertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/buttons_group/goldens/ci/buttons_group_vertical.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png
--------------------------------------------------------------------------------
/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png
--------------------------------------------------------------------------------
/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png
--------------------------------------------------------------------------------
/test/components/buttons_group/goldens/ci/buttons_group_horizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/test/components/buttons_group/goldens/ci/buttons_group_horizontal.png
--------------------------------------------------------------------------------
/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png
--------------------------------------------------------------------------------
/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png
--------------------------------------------------------------------------------
/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png
--------------------------------------------------------------------------------
/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.example.example
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Floating-Dartists/flutter_dsfr/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/example/linux/main.cc:
--------------------------------------------------------------------------------
1 | #include "my_application.h"
2 |
3 | int main(int argc, char** argv) {
4 | g_autoptr(MyApplication) app = my_application_new();
5 | return g_application_run(G_APPLICATION(app), argc, argv);
6 | }
7 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/lib/src/utils/named_property.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | @immutable
4 | class NamedProperty {
5 | const NamedProperty(this.name, this.property);
6 |
7 | final String name;
8 | final T property;
9 | }
10 |
--------------------------------------------------------------------------------
/lib/l10n/flutter_dsfr_fr.arb:
--------------------------------------------------------------------------------
1 | {
2 | "@@locale": "fr",
3 | "auth": "S'identifier avec",
4 | "france_connect": "FranceConnect",
5 | "what_is_france_connect": "Qu'est-ce que FranceConnect ?",
6 | "what_is_france_connect_plus": "Qu'est-ce que FranceConnect+ ?"
7 | }
--------------------------------------------------------------------------------
/lib/src/components/banners/banner_link.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | @immutable
4 | class DSFRBannerLink {
5 | const DSFRBannerLink({required this.text, required this.onTap});
6 |
7 | final String text;
8 | final VoidCallback onTap;
9 | }
10 |
--------------------------------------------------------------------------------
/example/macos/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import Cocoa
2 | import FlutterMacOS
3 |
4 | @NSApplicationMain
5 | class AppDelegate: FlutterAppDelegate {
6 | override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
7 | return true
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/example/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Jun 23 08:50:38 CEST 2017
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
7 |
--------------------------------------------------------------------------------
/example/macos/Runner/Release.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/macos/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.2.0",
3 | "configurations": [
4 | {
5 | "name": "example - flutter_dsfr",
6 | "request": "launch",
7 | "type": "dart",
8 | "flutterMode": "debug",
9 | "program": "example/lib/main.dart"
10 | },
11 | ]
12 | }
--------------------------------------------------------------------------------
/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: cd41fdd495f6944ecd3506c21e94c6567b073278
8 | channel: stable
9 |
10 | project_type: package
11 |
--------------------------------------------------------------------------------
/example/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | key.properties
12 | **/*.keystore
13 | **/*.jks
14 |
--------------------------------------------------------------------------------
/example/windows/.gitignore:
--------------------------------------------------------------------------------
1 | flutter/ephemeral/
2 |
3 | # Visual Studio user-specific files.
4 | *.suo
5 | *.user
6 | *.userosscache
7 | *.sln.docstates
8 |
9 | # Visual Studio build-related files.
10 | x64/
11 | x86/
12 |
13 | # Visual Studio cache files
14 | # files ending in .cache can be ignored
15 | *.[Cc]ache
16 | # but keep track of directories ending in .cache
17 | !*.[Cc]ache/
18 |
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/example/linux/flutter/generated_plugin_registrant.h:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | // clang-format off
6 |
7 | #ifndef GENERATED_PLUGIN_REGISTRANT_
8 | #define GENERATED_PLUGIN_REGISTRANT_
9 |
10 | #include
11 |
12 | // Registers Flutter plugins.
13 | void fl_register_plugins(FlPluginRegistry* registry);
14 |
15 | #endif // GENERATED_PLUGIN_REGISTRANT_
16 |
--------------------------------------------------------------------------------
/example/windows/flutter/generated_plugin_registrant.h:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | // clang-format off
6 |
7 | #ifndef GENERATED_PLUGIN_REGISTRANT_
8 | #define GENERATED_PLUGIN_REGISTRANT_
9 |
10 | #include
11 |
12 | // Registers Flutter plugins.
13 | void RegisterPlugins(flutter::PluginRegistry* registry);
14 |
15 | #endif // GENERATED_PLUGIN_REGISTRANT_
16 |
--------------------------------------------------------------------------------
/example/windows/flutter/generated_plugin_registrant.cc:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | // clang-format off
6 |
7 | #include "generated_plugin_registrant.h"
8 |
9 | #include
10 |
11 | void RegisterPlugins(flutter::PluginRegistry* registry) {
12 | UrlLauncherWindowsRegisterWithRegistrar(
13 | registry->GetRegistrarForPlugin("UrlLauncherWindows"));
14 | }
15 |
--------------------------------------------------------------------------------
/example/macos/Runner/DebugProfile.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 | com.apple.security.cs.allow-jit
8 |
9 | com.apple.security.network.server
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/lib/src/theme/breakpoints.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | /// Breakpoints value for different screen sizes.
4 | ///
5 | /// Anything above [Breakpoints.lg] (>= 1248.0) will be considered as being
6 | /// "xl".
7 | @immutable
8 | class Breakpoints {
9 | const Breakpoints._();
10 |
11 | static const xs = 575.0;
12 | static const sm = 767.0;
13 | static const md = 991.0;
14 | static const lg = 1247.0;
15 | }
16 |
--------------------------------------------------------------------------------
/example/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @UIApplicationMain
5 | @objc class AppDelegate: FlutterAppDelegate {
6 | override func application(
7 | _ application: UIApplication,
8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
9 | ) -> Bool {
10 | GeneratedPluginRegistrant.register(with: self)
11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/example/linux/my_application.h:
--------------------------------------------------------------------------------
1 | #ifndef FLUTTER_MY_APPLICATION_H_
2 | #define FLUTTER_MY_APPLICATION_H_
3 |
4 | #include
5 |
6 | G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION,
7 | GtkApplication)
8 |
9 | /**
10 | * my_application_new:
11 | *
12 | * Creates a new Flutter-based application.
13 | *
14 | * Returns: a new #MyApplication.
15 | */
16 | MyApplication* my_application_new();
17 |
18 | #endif // FLUTTER_MY_APPLICATION_H_
19 |
--------------------------------------------------------------------------------
/example/macos/Runner/MainFlutterWindow.swift:
--------------------------------------------------------------------------------
1 | import Cocoa
2 | import FlutterMacOS
3 |
4 | class MainFlutterWindow: NSWindow {
5 | override func awakeFromNib() {
6 | let flutterViewController = FlutterViewController.init()
7 | let windowFrame = self.frame
8 | self.contentViewController = flutterViewController
9 | self.setFrame(windowFrame, display: true)
10 |
11 | RegisterGeneratedPlugins(registry: flutterViewController)
12 |
13 | super.awakeFromNib()
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/example/macos/Flutter/GeneratedPluginRegistrant.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | import FlutterMacOS
6 | import Foundation
7 |
8 | import shared_preferences_macos
9 | import url_launcher_macos
10 |
11 | func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
12 | SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
13 | UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
14 | }
15 |
--------------------------------------------------------------------------------
/example/windows/runner/resource.h:
--------------------------------------------------------------------------------
1 | //{{NO_DEPENDENCIES}}
2 | // Microsoft Visual C++ generated include file.
3 | // Used by Runner.rc
4 | //
5 | #define IDI_APP_ICON 101
6 |
7 | // Next default values for new objects
8 | //
9 | #ifdef APSTUDIO_INVOKED
10 | #ifndef APSTUDIO_READONLY_SYMBOLS
11 | #define _APS_NEXT_RESOURCE_VALUE 102
12 | #define _APS_NEXT_COMMAND_VALUE 40001
13 | #define _APS_NEXT_CONTROL_VALUE 1001
14 | #define _APS_NEXT_SYMED_VALUE 101
15 | #endif
16 | #endif
17 |
--------------------------------------------------------------------------------
/example/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
4 | def properties = new Properties()
5 |
6 | assert localPropertiesFile.exists()
7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
8 |
9 | def flutterSdkPath = properties.getProperty("flutter.sdk")
10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
12 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/example/linux/flutter/generated_plugin_registrant.cc:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | // clang-format off
6 |
7 | #include "generated_plugin_registrant.h"
8 |
9 | #include
10 |
11 | void fl_register_plugins(FlPluginRegistry* registry) {
12 | g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
13 | fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
14 | url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
15 | }
16 |
--------------------------------------------------------------------------------
/test/components/logo/logo_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:alchemist/alchemist.dart';
2 | import 'package:flutter_dsfr/src/components/logo/logo.dart';
3 |
4 | void main() {
5 | goldenTest(
6 | 'logo rendering',
7 | fileName: 'logo',
8 | builder: () => GoldenTestGroup(
9 | children: [
10 | GoldenTestScenario(name: 'default', child: const DSFRLogo()),
11 | GoldenTestScenario(
12 | name: 'size: 48',
13 | child: const DSFRLogo(size: 48),
14 | ),
15 | ],
16 | ),
17 | );
18 | }
19 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchImage.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchImage@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "LaunchImage@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/.github/workflows/contribute.yml:
--------------------------------------------------------------------------------
1 | name: Contribute List
2 |
3 | on:
4 | workflow_run:
5 | workflows: [Build example]
6 | branches: main
7 | types: [completed]
8 |
9 | jobs:
10 | contrib-readme-job:
11 | if: ${{ github.event.workflow_run.conclusion == 'success' }}
12 | runs-on: ubuntu-latest
13 | name: A job to automate contrib in readme
14 | steps:
15 | - name: Contribute List
16 | uses: akhilmhdh/contributors-readme-action@v2.3.6
17 | env:
18 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
19 |
--------------------------------------------------------------------------------
/lib/src/components/accordion/accordion_data.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | @immutable
4 | class DSFRAccordionData {
5 | const DSFRAccordionData({
6 | required this.title,
7 | required this.content,
8 | this.isInitialyExpanded = false,
9 | });
10 | final String title;
11 | final Widget content;
12 |
13 | /// expand the panel by default.
14 | ///
15 | /// In case where there is multiple panels who are expanded by default,
16 | /// only the last one will be expanded because DSFRAccordion have a radio like
17 | /// logic
18 | final bool isInitialyExpanded;
19 | }
20 |
--------------------------------------------------------------------------------
/example/README.md:
--------------------------------------------------------------------------------
1 | # example
2 |
3 | A new Flutter project.
4 |
5 | ## Getting Started
6 |
7 | This project is a starting point for a Flutter application.
8 |
9 | A few resources to get you started if this is your first Flutter project:
10 |
11 | - [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
12 | - [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)
13 |
14 | For help getting started with Flutter development, view the
15 | [online documentation](https://docs.flutter.dev/), which offers tutorials,
16 | samples, guidance on mobile development, and a full API reference.
17 |
--------------------------------------------------------------------------------
/.github/workflows/build.yml:
--------------------------------------------------------------------------------
1 | name: Build example
2 |
3 | on:
4 | workflow_run:
5 | workflows: [Test workflow]
6 | branches: main
7 | types: [completed]
8 |
9 | jobs:
10 | build:
11 | if: ${{ github.event.workflow_run.conclusion == 'success' }}
12 | name: Build example
13 | runs-on: ubuntu-latest
14 | steps:
15 | - uses: actions/checkout@v2
16 | - uses: subosito/flutter-action@v2
17 | with:
18 | channel: "stable"
19 | - uses: bluefireteam/flutter-gh-pages@v8
20 | with:
21 | workingDir: example
22 | webRenderer: canvaskit
23 | baseHref: /flutter_dsfr/
24 |
--------------------------------------------------------------------------------
/example/macos/Runner/Configs/Warnings.xcconfig:
--------------------------------------------------------------------------------
1 | WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings
2 | GCC_WARN_UNDECLARED_SELECTOR = YES
3 | CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES
4 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE
5 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
6 | CLANG_WARN_PRAGMA_PACK = YES
7 | CLANG_WARN_STRICT_PROTOTYPES = YES
8 | CLANG_WARN_COMMA = YES
9 | GCC_WARN_STRICT_SELECTOR_MATCH = YES
10 | CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES
11 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
12 | GCC_WARN_SHADOW = YES
13 | CLANG_WARN_UNREACHABLE_CODE = YES
14 |
--------------------------------------------------------------------------------
/lib/src/gen/lang/fr.dart:
--------------------------------------------------------------------------------
1 | // coverage:ignore-file
2 | // GENERATED CODE - DO NOT MODIFY BY HAND
3 | // ignore_for_file: non_constant_identifier_names, always_use_package_imports
4 |
5 | import '../default_localizations.dart';
6 |
7 | class FrLocalizations extends DSFRLocalizationLabels {
8 | const FrLocalizations();
9 |
10 | @override
11 | String get auth => "S'identifier avec";
12 |
13 | @override
14 | String get france_connect => "FranceConnect";
15 |
16 | @override
17 | String get what_is_france_connect => "Qu'est-ce que FranceConnect ?";
18 |
19 | @override
20 | String get what_is_france_connect_plus => "Qu'est-ce que FranceConnect+ ?";
21 | }
22 |
--------------------------------------------------------------------------------
/lib/src/components/buttons/base_radio.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | abstract class DSFRBaseRadio extends StatelessWidget {
4 | const DSFRBaseRadio({
5 | super.key,
6 | required this.label,
7 | required this.value,
8 | required this.groupValue,
9 | required this.onChanged,
10 | this.description,
11 | this.hasError = false,
12 | });
13 |
14 | final String label;
15 | final String? description;
16 | final T value;
17 | final T? groupValue;
18 | final ValueChanged? onChanged;
19 | final bool hasError;
20 |
21 | bool get isSelected => groupValue == value;
22 | bool get disabled => onChanged == null;
23 | }
24 |
--------------------------------------------------------------------------------
/example/macos/Runner/Configs/AppInfo.xcconfig:
--------------------------------------------------------------------------------
1 | // Application-level settings for the Runner target.
2 | //
3 | // This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the
4 | // future. If not, the values below would default to using the project name when this becomes a
5 | // 'flutter create' template.
6 |
7 | // The application's name. By default this is also the title of the Flutter window.
8 | PRODUCT_NAME = example
9 |
10 | // The application's bundle identifier
11 | PRODUCT_BUNDLE_IDENTIFIER = com.example.example
12 |
13 | // The copyright displayed in application information
14 | PRODUCT_COPYRIGHT = Copyright © 2022 com.example. All rights reserved.
15 |
--------------------------------------------------------------------------------
/example/ios/.gitignore:
--------------------------------------------------------------------------------
1 | **/dgph
2 | *.mode1v3
3 | *.mode2v3
4 | *.moved-aside
5 | *.pbxuser
6 | *.perspectivev3
7 | **/*sync/
8 | .sconsign.dblite
9 | .tags*
10 | **/.vagrant/
11 | **/DerivedData/
12 | Icon?
13 | **/Pods/
14 | **/.symlinks/
15 | profile
16 | xcuserdata
17 | **/.generated/
18 | Flutter/App.framework
19 | Flutter/Flutter.framework
20 | Flutter/Flutter.podspec
21 | Flutter/Generated.xcconfig
22 | Flutter/ephemeral/
23 | Flutter/app.flx
24 | Flutter/app.zip
25 | Flutter/flutter_assets/
26 | Flutter/flutter_export_environment.sh
27 | ServiceDefinitions.json
28 | Runner/GeneratedPluginRegistrant.*
29 |
30 | # Exceptions to above rules.
31 | !default.mode1v3
32 | !default.mode2v3
33 | !default.pbxuser
34 | !default.perspectivev3
35 |
--------------------------------------------------------------------------------
/lib/src/components/alerts/alert_close_button.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_dsfr/flutter_dsfr.dart';
3 | import 'package:flutter_dsfr/src/components/shared/close_button.dart';
4 |
5 | class AlertCloseButton extends StatelessWidget {
6 | const AlertCloseButton({required this.onClose, super.key});
7 |
8 | final void Function() onClose;
9 |
10 | @override
11 | Widget build(BuildContext context) {
12 | final dsfrTheme = DSFRThemeData.of(context);
13 |
14 | return Padding(
15 | padding: EdgeInsets.all(dsfrTheme.sizes.v1),
16 | child: Align(
17 | alignment: Alignment.topCenter,
18 | child: SharedCloseButton(onClose: onClose),
19 | ),
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/test/theme/icons_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:alchemist/alchemist.dart';
2 | import 'package:flutter/material.dart';
3 | import 'package:flutter_dsfr/flutter_dsfr.dart';
4 |
5 | import '../flutter_test_config.dart';
6 |
7 | void main() {
8 | goldenTest(
9 | 'icons rendering',
10 | fileName: 'icons',
11 | tags: ['golden', 'atom'],
12 | // ignore: avoid_redundant_argument_values
13 | skip: isRunningInCi,
14 | builder: () => GoldenTestGroup(
15 | children: DSFRIcons.props
16 | .map(
17 | (e) => GoldenTestScenario(
18 | name: e.name,
19 | child: Icon(e.property),
20 | ),
21 | )
22 | .toList(),
23 | ),
24 | );
25 | }
26 |
--------------------------------------------------------------------------------
/example/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.6.10'
3 | repositories {
4 | google()
5 | mavenCentral()
6 | }
7 |
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:7.1.2'
10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11 | }
12 | }
13 |
14 | allprojects {
15 | repositories {
16 | google()
17 | mavenCentral()
18 | }
19 | }
20 |
21 | rootProject.buildDir = '../build'
22 | subprojects {
23 | project.buildDir = "${rootProject.buildDir}/${project.name}"
24 | }
25 | subprojects {
26 | project.evaluationDependsOn(':app')
27 | }
28 |
29 | task clean(type: Delete) {
30 | delete rootProject.buildDir
31 | }
32 |
--------------------------------------------------------------------------------
/example/windows/runner/utils.h:
--------------------------------------------------------------------------------
1 | #ifndef RUNNER_UTILS_H_
2 | #define RUNNER_UTILS_H_
3 |
4 | #include
5 | #include
6 |
7 | // Creates a console for the process, and redirects stdout and stderr to
8 | // it for both the runner and the Flutter library.
9 | void CreateAndAttachConsole();
10 |
11 | // Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string
12 | // encoded in UTF-8. Returns an empty std::string on failure.
13 | std::string Utf8FromUtf16(const wchar_t* utf16_string);
14 |
15 | // Gets the command line arguments passed in as a std::vector,
16 | // encoded in UTF-8. Returns an empty std::vector on failure.
17 | std::vector GetCommandLineArguments();
18 |
19 | #endif // RUNNER_UTILS_H_
20 |
--------------------------------------------------------------------------------
/.github/workflows/tests.yml:
--------------------------------------------------------------------------------
1 | name: Test workflow
2 |
3 | on:
4 | push:
5 | branches: [main, dev]
6 | pull_request:
7 | branches: [main, dev]
8 |
9 | jobs:
10 | test:
11 | runs-on: ubuntu-latest
12 | steps:
13 | - uses: actions/checkout@v3
14 | - uses: subosito/flutter-action@v2
15 | with:
16 | channel: "stable"
17 | - name: Fetch dependencies
18 | run: flutter packages get
19 | - name: Analyze project
20 | run: flutter analyze --no-fatal-infos
21 | - name: Run tests
22 | run: flutter test --coverage --dart-define=CI=true
23 | - name: Collect and report coverage
24 | uses: coverallsapp/github-action@v1.1.2
25 | with:
26 | github-token: ${{ secrets.GITHUB_TOKEN }}
27 |
--------------------------------------------------------------------------------
/lib/src/localization/all_languages.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/widgets.dart';
2 | import 'package:flutter_dsfr/src/gen/default_localizations.dart';
3 | import 'package:flutter_dsfr/src/gen/lang/fr.dart';
4 |
5 | final kSupportedLanguages = {
6 | 'fr',
7 | };
8 |
9 | DSFRLocalizationLabels getDSFRTranslation(
10 | Locale useLocale, [
11 | Locale? defaultLocale,
12 | ]) {
13 | final Locale locale;
14 | if (kSupportedLanguages.contains(useLocale.languageCode)) {
15 | locale = useLocale;
16 | } else {
17 | locale = defaultLocale ?? useLocale;
18 | }
19 |
20 | switch (locale.languageCode) {
21 | case 'fr':
22 | return const FrLocalizations();
23 | }
24 |
25 | throw Exception(
26 | 'getDSFRTranslation() called for unsupported locale "$locale"',
27 | );
28 | }
29 |
--------------------------------------------------------------------------------
/test/theme/typography_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:alchemist/alchemist.dart';
2 | import 'package:flutter/material.dart';
3 | import 'package:flutter_dsfr/flutter_dsfr.dart';
4 |
5 | import '../flutter_test_config.dart';
6 |
7 | void main() {
8 | goldenTest(
9 | 'DSFRTypography.regular',
10 | fileName: 'typography',
11 | // ignore: avoid_redundant_argument_values
12 | skip: isRunningInCi, // Test not needed in CI
13 | builder: () => GoldenTestGroup(
14 | children: const DSFRTypography.medium()
15 | .props
16 | .map(
17 | (e) => GoldenTestScenario(
18 | name: e.name,
19 | child: Text('Hello world!', style: e.property),
20 | ),
21 | )
22 | .toList(),
23 | ),
24 | );
25 | }
26 |
--------------------------------------------------------------------------------
/docs/flutter-dsfr-roadmap.md:
--------------------------------------------------------------------------------
1 | # Flutter DSFR Roadmap
2 |
3 | Components we need to implement
4 |
5 | - [X] Accordion
6 | - [ ] FileUpload
7 | - [X] Alerts
8 | - [X] Badges
9 | - [X] Banner
10 | - [ ] SearchBar
11 | - [X] Buttons
12 | - [X] ButtonsGroup
13 | - [X] FranceConnectButton
14 | - [X] Radio
15 | - [ ] RichRadio
16 | - [ ] Checkbox
17 | - [ ] Card
18 | - [ ] Input
19 | - [ ] Quote
20 | - [ ] Header
21 | - [ ] Breadcrumb
22 | - [ ] ConscentBanner
23 | - [ ] StepIndicateur
24 | - [ ] ToggleSwitch
25 | - [ ] Links
26 | - [ ] SkipLinks
27 | - [ ] Select
28 | - [ ] SideMenu
29 | - [ ] Callout
30 | - [ ] Highlight
31 | - [ ] Modal
32 | - [ ] MainNavigation
33 | - [ ] Tabs
34 | - [ ] Display
35 | - [ ] Share
36 | - [ ] Footer
37 | - [ ] Pagination
38 | - [ ] Summary
39 | - [ ] Table
40 | - [ ] Tag
41 | - [ ] DownloadFile
42 | - [ ] Tile
--------------------------------------------------------------------------------
/test/theme/sizes_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:alchemist/alchemist.dart';
2 | import 'package:flutter/material.dart';
3 | import 'package:flutter_dsfr/flutter_dsfr.dart';
4 |
5 | import '../flutter_test_config.dart';
6 |
7 | void main() {
8 | goldenTest(
9 | 'DSFRSizes.regular',
10 | // ignore: avoid_redundant_argument_values
11 | skip: isRunningInCi,
12 | fileName: 'sizes',
13 | builder: () => GoldenTestGroup(
14 | children: const DSFRSizes.regular()
15 | .props
16 | .map(
17 | (e) => GoldenTestScenario(
18 | name: e.name,
19 | child: Container(
20 | color: Colors.white,
21 | height: 50,
22 | width: e.property,
23 | ),
24 | ),
25 | )
26 | .toList(),
27 | ),
28 | );
29 | }
30 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 | *.class
3 | *.log
4 | *.pyc
5 | *.swp
6 | .DS_Store
7 | .atom/
8 | .buildlog/
9 | .history
10 | .svn/
11 | migrate_working_dir/
12 |
13 | # IntelliJ related
14 | *.iml
15 | *.ipr
16 | *.iws
17 | .idea/
18 |
19 | # The .vscode folder contains launch configuration and tasks you configure in
20 | # VS Code which you may wish to be included in version control, so this line
21 | # is commented out by default.
22 | #.vscode/
23 |
24 | # Flutter/Dart/Pub related
25 | # Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
26 | /pubspec.lock
27 | **/doc/api/
28 | .dart_tool/
29 | .packages
30 | build/
31 | .flutter-plugins
32 |
33 | # Ignore non-CI golden files and failures
34 | test/**/goldens/**/*.*
35 | test/**/failures/**/*.*
36 | !test/**/goldens/ci/*.*
37 | .flutter-plugins-dependencies
38 |
39 | coverage/
40 |
--------------------------------------------------------------------------------
/example/linux/flutter/generated_plugins.cmake:
--------------------------------------------------------------------------------
1 | #
2 | # Generated file, do not edit.
3 | #
4 |
5 | list(APPEND FLUTTER_PLUGIN_LIST
6 | url_launcher_linux
7 | )
8 |
9 | list(APPEND FLUTTER_FFI_PLUGIN_LIST
10 | )
11 |
12 | set(PLUGIN_BUNDLED_LIBRARIES)
13 |
14 | foreach(plugin ${FLUTTER_PLUGIN_LIST})
15 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin})
16 | target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)
17 | list(APPEND PLUGIN_BUNDLED_LIBRARIES $)
18 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
19 | endforeach(plugin)
20 |
21 | foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
22 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin})
23 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
24 | endforeach(ffi_plugin)
25 |
--------------------------------------------------------------------------------
/example/windows/flutter/generated_plugins.cmake:
--------------------------------------------------------------------------------
1 | #
2 | # Generated file, do not edit.
3 | #
4 |
5 | list(APPEND FLUTTER_PLUGIN_LIST
6 | url_launcher_windows
7 | )
8 |
9 | list(APPEND FLUTTER_FFI_PLUGIN_LIST
10 | )
11 |
12 | set(PLUGIN_BUNDLED_LIBRARIES)
13 |
14 | foreach(plugin ${FLUTTER_PLUGIN_LIST})
15 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin})
16 | target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)
17 | list(APPEND PLUGIN_BUNDLED_LIBRARIES $)
18 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
19 | endforeach(plugin)
20 |
21 | foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
22 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin})
23 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
24 | endforeach(ffi_plugin)
25 |
--------------------------------------------------------------------------------
/example/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | App
9 | CFBundleIdentifier
10 | io.flutter.flutter.app
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | App
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1.0
23 | MinimumOSVersion
24 | 9.0
25 |
26 |
27 |
--------------------------------------------------------------------------------
/lib/src/theme/theme_widget.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_dsfr/flutter_dsfr.dart';
3 |
4 | /// {@template dsfr_theme_widget}
5 | /// A widget that overrides the theme with the provided [theme] for its [child].
6 | /// {@endtemplate}
7 | class DSFRThemeWidget extends StatelessWidget {
8 | /// {@macro dsfr_theme_widget}
9 | const DSFRThemeWidget({
10 | super.key,
11 | required this.data,
12 | required this.child,
13 | });
14 |
15 | final DSFRThemeData data;
16 | final Widget child;
17 |
18 | @override
19 | Widget build(BuildContext context) {
20 | final theme = Theme.of(context);
21 | final themeExtensions = Map