Feat: add slicing login_screen
This commit is contained in:
parent
329530d382
commit
ebc8bbc356
|
@ -1,6 +1,12 @@
|
|||
{
|
||||
"configVersion": 2,
|
||||
"packages": [
|
||||
{
|
||||
"name": "args",
|
||||
"rootUri": "file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/args-2.6.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "async",
|
||||
"rootUri": "file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/async-2.11.0",
|
||||
|
@ -85,6 +91,12 @@
|
|||
"packageUri": "lib/",
|
||||
"languageVersion": "2.17"
|
||||
},
|
||||
{
|
||||
"name": "flutter_svg",
|
||||
"rootUri": "file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_svg-2.0.17",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "flutter_test",
|
||||
"rootUri": "file:///D:/Flutter/flutter_sdk/flutter_3.24.0/packages/flutter_test",
|
||||
|
@ -103,6 +115,12 @@
|
|||
"packageUri": "lib/",
|
||||
"languageVersion": "2.15"
|
||||
},
|
||||
{
|
||||
"name": "http",
|
||||
"rootUri": "file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/http-1.3.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "http_parser",
|
||||
"rootUri": "file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/http_parser-4.0.2",
|
||||
|
@ -151,6 +169,24 @@
|
|||
"packageUri": "lib/",
|
||||
"languageVersion": "3.0"
|
||||
},
|
||||
{
|
||||
"name": "path_parsing",
|
||||
"rootUri": "file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/path_parsing-1.1.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.3"
|
||||
},
|
||||
{
|
||||
"name": "petitparser",
|
||||
"rootUri": "file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/petitparser-6.0.2",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
{
|
||||
"name": "pin_code_fields",
|
||||
"rootUri": "file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/pin_code_fields-8.0.1",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "plugin_platform_interface",
|
||||
"rootUri": "file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/plugin_platform_interface-2.1.8",
|
||||
|
@ -205,6 +241,24 @@
|
|||
"packageUri": "lib/",
|
||||
"languageVersion": "3.5"
|
||||
},
|
||||
{
|
||||
"name": "vector_graphics",
|
||||
"rootUri": "file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics-1.1.18",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "vector_graphics_codec",
|
||||
"rootUri": "file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics_codec-1.1.13",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "vector_graphics_compiler",
|
||||
"rootUri": "file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics_compiler-1.1.16",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "vector_math",
|
||||
"rootUri": "file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/vector_math-2.1.4",
|
||||
|
@ -223,6 +277,18 @@
|
|||
"packageUri": "lib/",
|
||||
"languageVersion": "3.4"
|
||||
},
|
||||
{
|
||||
"name": "xml",
|
||||
"rootUri": "file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/xml-6.5.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "3.2"
|
||||
},
|
||||
{
|
||||
"name": "zoom_tap_animation",
|
||||
"rootUri": "file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/zoom_tap_animation-1.1.0",
|
||||
"packageUri": "lib/",
|
||||
"languageVersion": "2.12"
|
||||
},
|
||||
{
|
||||
"name": "e_porter",
|
||||
"rootUri": "../",
|
||||
|
@ -230,7 +296,7 @@
|
|||
"languageVersion": "3.4"
|
||||
}
|
||||
],
|
||||
"generated": "2025-02-10T08:20:42.126262Z",
|
||||
"generated": "2025-02-11T13:49:26.295004Z",
|
||||
"generator": "pub",
|
||||
"generatorVersion": "3.5.0",
|
||||
"flutterRoot": "file:///D:/Flutter/flutter_sdk/flutter_3.24.0",
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
args
|
||||
3.3
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/args-2.6.0/
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/args-2.6.0/lib/
|
||||
async
|
||||
2.18
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/async-2.11.0/
|
||||
|
@ -50,10 +54,18 @@ flutter_screenutil
|
|||
2.17
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_screenutil-5.9.3/
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_screenutil-5.9.3/lib/
|
||||
flutter_svg
|
||||
3.4
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_svg-2.0.17/
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_svg-2.0.17/lib/
|
||||
get
|
||||
2.15
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/get-4.6.6/
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/get-4.6.6/lib/
|
||||
http
|
||||
3.4
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/http-1.3.0/
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/http-1.3.0/lib/
|
||||
http_parser
|
||||
2.12
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/http_parser-4.0.2/
|
||||
|
@ -86,6 +98,18 @@ path
|
|||
3.0
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/path-1.9.0/
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/path-1.9.0/lib/
|
||||
path_parsing
|
||||
3.3
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/path_parsing-1.1.0/
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/path_parsing-1.1.0/lib/
|
||||
petitparser
|
||||
3.2
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/petitparser-6.0.2/
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/petitparser-6.0.2/lib/
|
||||
pin_code_fields
|
||||
2.12
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/pin_code_fields-8.0.1/
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/pin_code_fields-8.0.1/lib/
|
||||
plugin_platform_interface
|
||||
3.0
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/plugin_platform_interface-2.1.8/
|
||||
|
@ -118,6 +142,18 @@ typed_data
|
|||
3.5
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/typed_data-1.4.0/
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/typed_data-1.4.0/lib/
|
||||
vector_graphics
|
||||
3.4
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics-1.1.18/
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics-1.1.18/lib/
|
||||
vector_graphics_codec
|
||||
3.4
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics_codec-1.1.13/
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics_codec-1.1.13/lib/
|
||||
vector_graphics_compiler
|
||||
3.4
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics_compiler-1.1.16/
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics_compiler-1.1.16/lib/
|
||||
vector_math
|
||||
2.14
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/vector_math-2.1.4/
|
||||
|
@ -130,6 +166,14 @@ web
|
|||
3.4
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/web-1.1.0/
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/web-1.1.0/lib/
|
||||
xml
|
||||
3.2
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/xml-6.5.0/
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/xml-6.5.0/lib/
|
||||
zoom_tap_animation
|
||||
2.12
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/zoom_tap_animation-1.1.0/
|
||||
file:///C:/Users/ASUS/AppData/Local/Pub/Cache/hosted/pub.dev/zoom_tap_animation-1.1.0/lib/
|
||||
e_porter
|
||||
3.4
|
||||
file:///D:/Flutter/Flutter%20Project/e_porter/
|
||||
|
|
|
@ -2,6 +2,13 @@
|
|||
<library name="Dart Packages" type="DartPackagesLibraryType">
|
||||
<properties>
|
||||
<option name="packageNameToDirsMap">
|
||||
<entry key="args">
|
||||
<value>
|
||||
<list>
|
||||
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/args-2.6.0/lib" />
|
||||
</list>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="async">
|
||||
<value>
|
||||
<list>
|
||||
|
@ -100,6 +107,13 @@
|
|||
</list>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="flutter_svg">
|
||||
<value>
|
||||
<list>
|
||||
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_svg-2.0.17/lib" />
|
||||
</list>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="flutter_test">
|
||||
<value>
|
||||
<list>
|
||||
|
@ -121,6 +135,13 @@
|
|||
</list>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="http">
|
||||
<value>
|
||||
<list>
|
||||
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/http-1.3.0/lib" />
|
||||
</list>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="http_parser">
|
||||
<value>
|
||||
<list>
|
||||
|
@ -177,6 +198,27 @@
|
|||
</list>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="path_parsing">
|
||||
<value>
|
||||
<list>
|
||||
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/path_parsing-1.1.0/lib" />
|
||||
</list>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="petitparser">
|
||||
<value>
|
||||
<list>
|
||||
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/petitparser-6.0.2/lib" />
|
||||
</list>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="pin_code_fields">
|
||||
<value>
|
||||
<list>
|
||||
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/pin_code_fields-8.0.1/lib" />
|
||||
</list>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="plugin_platform_interface">
|
||||
<value>
|
||||
<list>
|
||||
|
@ -240,6 +282,27 @@
|
|||
</list>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="vector_graphics">
|
||||
<value>
|
||||
<list>
|
||||
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics-1.1.18/lib" />
|
||||
</list>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="vector_graphics_codec">
|
||||
<value>
|
||||
<list>
|
||||
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics_codec-1.1.13/lib" />
|
||||
</list>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="vector_graphics_compiler">
|
||||
<value>
|
||||
<list>
|
||||
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics_compiler-1.1.16/lib" />
|
||||
</list>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="vector_math">
|
||||
<value>
|
||||
<list>
|
||||
|
@ -261,9 +324,24 @@
|
|||
</list>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="xml">
|
||||
<value>
|
||||
<list>
|
||||
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/xml-6.5.0/lib" />
|
||||
</list>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="zoom_tap_animation">
|
||||
<value>
|
||||
<list>
|
||||
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/zoom_tap_animation-1.1.0/lib" />
|
||||
</list>
|
||||
</value>
|
||||
</entry>
|
||||
</option>
|
||||
</properties>
|
||||
<CLASSES>
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/args-2.6.0/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/async-2.11.0/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/boolean_selector-2.1.1/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/characters-1.3.0/lib" />
|
||||
|
@ -277,7 +355,9 @@
|
|||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/firebase_core_platform_interface-5.4.0/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/firebase_core_web-2.20.0/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_screenutil-5.9.3/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_svg-2.0.17/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/get-4.6.6/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/http-1.3.0/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/http_parser-4.0.2/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/leak_tracker-10.0.5/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.5/lib" />
|
||||
|
@ -286,6 +366,9 @@
|
|||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/material_color_utilities-0.11.1/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/meta-1.15.0/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/path-1.9.0/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/path_parsing-1.1.0/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/petitparser-6.0.2/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/pin_code_fields-8.0.1/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/plugin_platform_interface-2.1.8/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/source_span-1.10.0/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/stack_trace-1.11.1/lib" />
|
||||
|
@ -294,9 +377,14 @@
|
|||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/term_glyph-1.2.1/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/test_api-0.7.2/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/typed_data-1.4.0/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics-1.1.18/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics_codec-1.1.13/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/vector_graphics_compiler-1.1.16/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/vector_math-2.1.4/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/vm_service-14.2.4/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/web-1.1.0/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/xml-6.5.0/lib" />
|
||||
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dev/zoom_tap_animation-1.1.0/lib" />
|
||||
<root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter_3.24.0/bin/cache/pkg/sky_engine/lib" />
|
||||
<root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter_3.24.0/packages/flutter/lib" />
|
||||
<root url="file://$PROJECT_DIR$/../../flutter_sdk/flutter_3.24.0/packages/flutter_test/lib" />
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"accessibility.signalOptions.volume": 0
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5.25 4C3.46403 4 2 5.46403 2 7.25V16.75C2 18.536 3.46403 20 5.25 20H18.75C20.536 20 22 18.536 22 16.75V7.25C22 5.46403 20.536 4 18.75 4H5.25ZM5.25 5.5H18.75C19.725 5.5 20.5 6.27497 20.5 7.25V7.80273L12 12.3975L3.5 7.80273V7.25C3.5 6.27497 4.27497 5.5 5.25 5.5ZM3.5 9.50781L11.6436 13.9102C11.7531 13.9693 11.8755 14.0003 12 14.0003C12.1245 14.0003 12.2469 13.9693 12.3564 13.9102L20.5 9.50781V16.75C20.5 17.725 19.725 18.5 18.75 18.5H5.25C4.27497 18.5 3.5 17.725 3.5 16.75V9.50781Z" fill="#6B7280"/>
|
||||
</svg>
|
After Width: | Height: | Size: 613 B |
|
@ -0,0 +1,3 @@
|
|||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12 2C9.79971 2 8 3.79971 8 6V8H6.25C5.01625 8 4 9.01625 4 10.25V19.75C4 20.9838 5.01625 22 6.25 22H17.75C18.9838 22 20 20.9838 20 19.75V10.25C20 9.01625 18.9838 8 17.75 8H9.5V6C9.5 4.61029 10.6103 3.5 12 3.5C13.3239 3.5 14.3905 4.5127 14.4893 5.80664C14.4967 5.90489 14.5234 6.00072 14.5678 6.08864C14.6123 6.17657 14.6736 6.25488 14.7484 6.3191C14.8231 6.38332 14.9097 6.43219 15.0033 6.46292C15.097 6.49365 15.1957 6.50564 15.294 6.4982C15.3922 6.49076 15.488 6.46404 15.5759 6.41957C15.6639 6.37509 15.7422 6.31373 15.8064 6.23899C15.8706 6.16426 15.9194 6.0776 15.9501 5.98398C15.9808 5.89036 15.9928 5.79161 15.9854 5.69336C15.8281 3.6323 14.0971 2 12 2ZM6.25 9.5H8.62695C8.70747 9.51323 8.7896 9.51323 8.87012 9.5H17.75C18.1732 9.5 18.5 9.82675 18.5 10.25V19.75C18.5 20.1733 18.1732 20.5 17.75 20.5H6.25C5.82675 20.5 5.5 20.1733 5.5 19.75V10.25C5.5 9.82675 5.82675 9.5 6.25 9.5ZM12 13.5C11.6022 13.5 11.2206 13.658 10.9393 13.9393C10.658 14.2206 10.5 14.6022 10.5 15C10.5 15.3978 10.658 15.7794 10.9393 16.0607C11.2206 16.342 11.6022 16.5 12 16.5C12.3978 16.5 12.7794 16.342 13.0607 16.0607C13.342 15.7794 13.5 15.3978 13.5 15C13.5 14.6022 13.342 14.2206 13.0607 13.9393C12.7794 13.658 12.3978 13.5 12 13.5Z" fill="#6B7280"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1 +1 @@
|
|||
df71d99f2ae79f9e146eee08a8e7c0be
|
||||
e5a42601b737771ef8a4800cd9e66dbd
|
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -1,4 +1,4 @@
|
|||
#Mon Feb 10 16:38:11 WIB 2025
|
||||
#Wed Feb 12 14:53:15 WIB 2025
|
||||
base.0=D\:\\Flutter\\Flutter Project\\e_porter\\build\\app\\intermediates\\dex\\debug\\mergeExtDexDebug\\classes.dex
|
||||
base.1=D\:\\Flutter\\Flutter Project\\e_porter\\build\\app\\intermediates\\dex\\debug\\mergeLibDexDebug\\0\\classes.dex
|
||||
base.2=D\:\\Flutter\\Flutter Project\\e_porter\\build\\app\\intermediates\\dex\\debug\\mergeProjectDexDebug\\0\\classes.dex
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1 +1 @@
|
|||
9f4a1c54eb2544888931426d785c0f33f0e35bf1
|
||||
904ddde6bbe97a19b187c2e25fce28a59ea87dc8
|
|
@ -0,0 +1,69 @@
|
|||
import 'package:e_porter/_core/constants/colors.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
|
||||
import '../../constants/typography.dart';
|
||||
|
||||
class ButtonFill extends StatelessWidget {
|
||||
final String text;
|
||||
final Color? textColor;
|
||||
final VoidCallback? onTap;
|
||||
final bool isLoading;
|
||||
|
||||
const ButtonFill({
|
||||
Key? key,
|
||||
required this.text,
|
||||
required this.textColor,
|
||||
this.onTap,
|
||||
this.isLoading = false,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SizedBox(
|
||||
width: double.infinity,
|
||||
child: ElevatedButton(
|
||||
onPressed: onTap,
|
||||
style: ElevatedButton.styleFrom(
|
||||
backgroundColor: isLoading ? GrayColors.gray500 : PrimaryColors.primary800,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(35.r),
|
||||
),
|
||||
),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 14.h),
|
||||
child: isLoading
|
||||
? _rowLoading()
|
||||
: TypographyStyles.h6(
|
||||
text,
|
||||
color: textColor,
|
||||
letterSpacing: 1.5,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _rowLoading() {
|
||||
return Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
TypographyStyles.h6(
|
||||
'Loading...',
|
||||
color: Colors.white,
|
||||
),
|
||||
SizedBox(width: 10.w),
|
||||
SizedBox(
|
||||
width: 20.w,
|
||||
height: 20.h,
|
||||
child: CircularProgressIndicator(
|
||||
color: Colors.white,
|
||||
strokeWidth: 2.5.w,
|
||||
),
|
||||
)
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
import 'package:e_porter/_core/constants/colors.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
|
||||
import '../../constants/typography.dart';
|
||||
|
||||
class ButtonOutline extends StatelessWidget {
|
||||
final String text;
|
||||
final Color? textColor;
|
||||
final VoidCallback? onTap;
|
||||
final bool isLoading;
|
||||
|
||||
const ButtonOutline({
|
||||
Key? key,
|
||||
required this.text,
|
||||
required this.textColor,
|
||||
this.onTap,
|
||||
this.isLoading = false,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SizedBox(
|
||||
width: double.infinity,
|
||||
child: ElevatedButton(
|
||||
onPressed: onTap,
|
||||
style: ElevatedButton.styleFrom(
|
||||
backgroundColor: Colors.white,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(35.r),
|
||||
),
|
||||
side: BorderSide(
|
||||
width: 2.w,
|
||||
color: PrimaryColors.primary800,
|
||||
)),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 14.h),
|
||||
child: isLoading
|
||||
? _rowLoading()
|
||||
: TypographyStyles.h6(
|
||||
text,
|
||||
color: textColor,
|
||||
letterSpacing: 1.5,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _rowLoading() {
|
||||
return Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
TypographyStyles.h6(
|
||||
'Loading...',
|
||||
color: Colors.white,
|
||||
),
|
||||
SizedBox(width: 10.w),
|
||||
SizedBox(
|
||||
width: 20.w,
|
||||
height: 20.h,
|
||||
child: CircularProgressIndicator(
|
||||
color: Colors.white,
|
||||
strokeWidth: 2.5.w,
|
||||
),
|
||||
)
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
|
@ -13,6 +13,7 @@ class TypographyStyles extends StatelessWidget {
|
|||
final double? height;
|
||||
final double? fontSize;
|
||||
final FontWeight? fontWeight;
|
||||
final double? letterSpacing;
|
||||
|
||||
// final TextDirection? textDirection;
|
||||
// final Locale? locale;
|
||||
|
@ -33,17 +34,18 @@ class TypographyStyles extends StatelessWidget {
|
|||
this.fontSize,
|
||||
this.fontWeight,
|
||||
this.height,
|
||||
this.letterSpacing,
|
||||
}) : style = TextStyle(
|
||||
fontFamily: fontFamily,
|
||||
fontSize: fontSize ?? 80.sp,
|
||||
fontWeight: fontWeight ?? FontWeight.w900,
|
||||
color: color,
|
||||
height: height,
|
||||
letterSpacing: letterSpacing ?? 0,
|
||||
);
|
||||
|
||||
TypographyStyles.h2(
|
||||
this.text, {
|
||||
super.key,
|
||||
TypographyStyles.h2(this.text,
|
||||
{super.key,
|
||||
this.textAlign = TextAlign.start,
|
||||
this.overflow = TextOverflow.ellipsis,
|
||||
this.maxlines,
|
||||
|
@ -51,17 +53,18 @@ class TypographyStyles extends StatelessWidget {
|
|||
this.fontSize,
|
||||
this.fontWeight,
|
||||
this.height,
|
||||
}) : style = TextStyle(
|
||||
this.letterSpacing})
|
||||
: style = TextStyle(
|
||||
fontFamily: fontFamily,
|
||||
fontSize: fontSize ?? 60.sp,
|
||||
fontWeight: fontWeight ?? FontWeight.w900,
|
||||
color: color,
|
||||
height: height,
|
||||
letterSpacing: letterSpacing ?? 0,
|
||||
);
|
||||
|
||||
TypographyStyles.h3(
|
||||
this.text, {
|
||||
super.key,
|
||||
TypographyStyles.h3(this.text,
|
||||
{super.key,
|
||||
this.textAlign = TextAlign.start,
|
||||
this.overflow = TextOverflow.ellipsis,
|
||||
this.maxlines,
|
||||
|
@ -69,17 +72,18 @@ class TypographyStyles extends StatelessWidget {
|
|||
this.fontSize,
|
||||
this.fontWeight,
|
||||
this.height,
|
||||
}) : style = TextStyle(
|
||||
this.letterSpacing})
|
||||
: style = TextStyle(
|
||||
fontFamily: fontFamily,
|
||||
fontSize: fontSize ?? 40.sp,
|
||||
fontWeight: fontWeight ?? FontWeight.w900,
|
||||
color: color,
|
||||
height: height,
|
||||
letterSpacing: letterSpacing ?? 0,
|
||||
);
|
||||
|
||||
TypographyStyles.h4(
|
||||
this.text, {
|
||||
super.key,
|
||||
TypographyStyles.h4(this.text,
|
||||
{super.key,
|
||||
this.textAlign = TextAlign.start,
|
||||
this.overflow = TextOverflow.ellipsis,
|
||||
this.maxlines,
|
||||
|
@ -87,17 +91,18 @@ class TypographyStyles extends StatelessWidget {
|
|||
this.fontSize,
|
||||
this.fontWeight,
|
||||
this.height,
|
||||
}) : style = TextStyle(
|
||||
this.letterSpacing})
|
||||
: style = TextStyle(
|
||||
fontFamily: fontFamily,
|
||||
fontSize: fontSize ?? 30.sp,
|
||||
fontWeight: fontWeight ?? FontWeight.w900,
|
||||
color: color,
|
||||
height: height,
|
||||
letterSpacing: letterSpacing ?? 0,
|
||||
);
|
||||
|
||||
TypographyStyles.h5(
|
||||
this.text, {
|
||||
super.key,
|
||||
TypographyStyles.h5(this.text,
|
||||
{super.key,
|
||||
this.textAlign = TextAlign.start,
|
||||
this.overflow = TextOverflow.ellipsis,
|
||||
this.maxlines,
|
||||
|
@ -105,17 +110,18 @@ class TypographyStyles extends StatelessWidget {
|
|||
this.fontSize,
|
||||
this.fontWeight,
|
||||
this.height,
|
||||
}) : style = TextStyle(
|
||||
this.letterSpacing})
|
||||
: style = TextStyle(
|
||||
fontFamily: fontFamily,
|
||||
fontSize: fontSize ?? 24.sp,
|
||||
fontWeight: fontWeight ?? FontWeight.w900,
|
||||
color: color,
|
||||
height: height,
|
||||
letterSpacing: letterSpacing ?? 0,
|
||||
);
|
||||
|
||||
TypographyStyles.h6(
|
||||
this.text, {
|
||||
super.key,
|
||||
TypographyStyles.h6(this.text,
|
||||
{super.key,
|
||||
this.textAlign = TextAlign.start,
|
||||
this.overflow = TextOverflow.ellipsis,
|
||||
this.maxlines,
|
||||
|
@ -123,17 +129,18 @@ class TypographyStyles extends StatelessWidget {
|
|||
this.fontSize,
|
||||
this.fontWeight,
|
||||
this.height,
|
||||
}) : style = TextStyle(
|
||||
this.letterSpacing})
|
||||
: style = TextStyle(
|
||||
fontFamily: fontFamily,
|
||||
fontSize: fontSize ?? 20.sp,
|
||||
fontWeight: fontWeight ?? FontWeight.w900,
|
||||
color: color,
|
||||
height: height,
|
||||
letterSpacing: letterSpacing ?? 0,
|
||||
);
|
||||
|
||||
TypographyStyles.body(
|
||||
this.text, {
|
||||
super.key,
|
||||
TypographyStyles.body(this.text,
|
||||
{super.key,
|
||||
this.textAlign = TextAlign.start,
|
||||
this.overflow = TextOverflow.ellipsis,
|
||||
this.maxlines,
|
||||
|
@ -141,17 +148,18 @@ class TypographyStyles extends StatelessWidget {
|
|||
this.fontSize,
|
||||
this.fontWeight,
|
||||
this.height,
|
||||
}) : style = TextStyle(
|
||||
this.letterSpacing})
|
||||
: style = TextStyle(
|
||||
fontFamily: fontFamily,
|
||||
fontSize: fontSize ?? 16.sp,
|
||||
fontWeight: fontWeight ?? FontWeight.w900,
|
||||
color: color,
|
||||
height: height,
|
||||
letterSpacing: letterSpacing ?? 0,
|
||||
);
|
||||
|
||||
TypographyStyles.caption(
|
||||
this.text, {
|
||||
super.key,
|
||||
TypographyStyles.caption(this.text,
|
||||
{super.key,
|
||||
this.textAlign = TextAlign.start,
|
||||
this.overflow = TextOverflow.ellipsis,
|
||||
this.maxlines,
|
||||
|
@ -159,17 +167,18 @@ class TypographyStyles extends StatelessWidget {
|
|||
this.fontSize,
|
||||
this.fontWeight,
|
||||
this.height,
|
||||
}) : style = TextStyle(
|
||||
this.letterSpacing})
|
||||
: style = TextStyle(
|
||||
fontFamily: fontFamily,
|
||||
fontSize: fontSize ?? 14.sp,
|
||||
fontWeight: fontWeight ?? FontWeight.w900,
|
||||
color: color,
|
||||
height: height,
|
||||
letterSpacing: letterSpacing ?? 0,
|
||||
);
|
||||
|
||||
TypographyStyles.small(
|
||||
this.text, {
|
||||
super.key,
|
||||
TypographyStyles.small(this.text,
|
||||
{super.key,
|
||||
this.textAlign = TextAlign.start,
|
||||
this.overflow = TextOverflow.ellipsis,
|
||||
this.maxlines,
|
||||
|
@ -177,17 +186,18 @@ class TypographyStyles extends StatelessWidget {
|
|||
this.fontSize,
|
||||
this.fontWeight,
|
||||
this.height,
|
||||
}) : style = TextStyle(
|
||||
this.letterSpacing})
|
||||
: style = TextStyle(
|
||||
fontFamily: fontFamily,
|
||||
fontSize: fontSize ?? 12.sp,
|
||||
fontWeight: fontWeight ?? FontWeight.w900,
|
||||
color: color,
|
||||
height: height,
|
||||
letterSpacing: letterSpacing ?? 0,
|
||||
);
|
||||
|
||||
TypographyStyles.tiny(
|
||||
this.text, {
|
||||
super.key,
|
||||
TypographyStyles.tiny(this.text,
|
||||
{super.key,
|
||||
this.textAlign = TextAlign.start,
|
||||
this.overflow = TextOverflow.ellipsis,
|
||||
this.maxlines,
|
||||
|
@ -195,12 +205,14 @@ class TypographyStyles extends StatelessWidget {
|
|||
this.fontSize,
|
||||
this.fontWeight,
|
||||
this.height,
|
||||
}) : style = TextStyle(
|
||||
this.letterSpacing})
|
||||
: style = TextStyle(
|
||||
fontFamily: fontFamily,
|
||||
fontSize: fontSize ?? 10.sp,
|
||||
fontWeight: fontWeight ?? FontWeight.w900,
|
||||
color: color,
|
||||
height: height,
|
||||
letterSpacing: letterSpacing ?? 0,
|
||||
);
|
||||
|
||||
@override
|
||||
|
|
|
@ -0,0 +1,87 @@
|
|||
// ignore_for_file: deprecated_member_use
|
||||
|
||||
import 'package:e_porter/_core/constants/colors.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
|
||||
class InputForm extends StatefulWidget {
|
||||
final String hintText;
|
||||
final String svgIconPath;
|
||||
final TextEditingController? controller;
|
||||
final String? Function(String?)? validator;
|
||||
final TextInputType textInputType;
|
||||
final List<TextInputFormatter>? inputFormatters;
|
||||
|
||||
const InputForm({
|
||||
Key? key,
|
||||
required this.hintText,
|
||||
required this.svgIconPath,
|
||||
this.controller,
|
||||
this.validator,
|
||||
this.textInputType = TextInputType.text,
|
||||
this.inputFormatters,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
State<InputForm> createState() => _InputFormState();
|
||||
}
|
||||
|
||||
class _InputFormState extends State<InputForm> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
color: GrayColors.gray50,
|
||||
borderRadius: BorderRadius.circular(10.r),
|
||||
),
|
||||
child: TextFormField(
|
||||
controller: widget.controller,
|
||||
validator: widget.validator,
|
||||
keyboardType: widget.textInputType,
|
||||
inputFormatters: widget.inputFormatters ??
|
||||
<TextInputFormatter>[
|
||||
FilteringTextInputFormatter.singleLineFormatter
|
||||
],
|
||||
decoration: InputDecoration(
|
||||
hintText: widget.hintText,
|
||||
hintStyle: TextStyle(
|
||||
fontFamily: 'DMSans',
|
||||
fontSize: 14.sp,
|
||||
fontWeight: FontWeight.w400,
|
||||
color: GrayColors.gray600,
|
||||
),
|
||||
prefixIcon: Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 14.h, horizontal: 14.w),
|
||||
child: SvgPicture.asset(
|
||||
widget.svgIconPath,
|
||||
color: GrayColors.gray500,
|
||||
),
|
||||
),
|
||||
enabledBorder: OutlineInputBorder(
|
||||
borderRadius: BorderRadius.circular(10.r),
|
||||
borderSide: BorderSide(
|
||||
width: 1.w,
|
||||
color: GrayColors.gray200,
|
||||
),
|
||||
),
|
||||
focusedBorder: OutlineInputBorder(
|
||||
borderRadius: BorderRadius.circular(10.r),
|
||||
borderSide: BorderSide(
|
||||
width: 1.w,
|
||||
color: GrayColors.gray200,
|
||||
),
|
||||
),
|
||||
border: OutlineInputBorder(
|
||||
borderRadius: BorderRadius.circular(10.r),
|
||||
borderSide: BorderSide(
|
||||
width: 1.w,
|
||||
color: GrayColors.gray200,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,110 @@
|
|||
// ignore_for_file: deprecated_member_use
|
||||
|
||||
import 'package:e_porter/_core/constants/colors.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
|
||||
class InputPassword extends StatefulWidget {
|
||||
final String hintText;
|
||||
final String svgIconPath;
|
||||
final TextEditingController? controller;
|
||||
final String? Function(String?)? validator;
|
||||
final bool obscureText;
|
||||
|
||||
const InputPassword({
|
||||
Key? key,
|
||||
required this.hintText,
|
||||
required this.svgIconPath,
|
||||
this.controller,
|
||||
this.validator,
|
||||
this.obscureText = true,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
State<InputPassword> createState() => _InputPasswordState();
|
||||
}
|
||||
|
||||
class _InputPasswordState extends State<InputPassword> {
|
||||
late bool _isObscure;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_isObscure = widget.obscureText;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
color: GrayColors.gray50,
|
||||
borderRadius: BorderRadius.circular(10.r),
|
||||
),
|
||||
child: TextFormField(
|
||||
controller: widget.controller,
|
||||
obscureText: _isObscure,
|
||||
validator: widget.validator,
|
||||
decoration: InputDecoration(
|
||||
hintText: widget.hintText,
|
||||
hintStyle: TextStyle(
|
||||
fontFamily: 'DMSans',
|
||||
fontSize: 16.sp,
|
||||
fontWeight: FontWeight.w400,
|
||||
color: GrayColors.gray500,
|
||||
letterSpacing: 1.w,
|
||||
),
|
||||
prefixIcon: Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
vertical: 14.h,
|
||||
horizontal: 13.w,
|
||||
),
|
||||
child: SvgPicture.asset(
|
||||
widget.svgIconPath,
|
||||
color: GrayColors.gray500,
|
||||
),
|
||||
),
|
||||
suffixIcon: Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
horizontal: 16.w,
|
||||
),
|
||||
child: IconButton(
|
||||
icon: Icon(
|
||||
_isObscure
|
||||
? Icons.visibility_off_outlined
|
||||
: Icons.visibility_outlined,
|
||||
color: GrayColors.gray500,
|
||||
),
|
||||
onPressed: () {
|
||||
setState(() {
|
||||
_isObscure = !_isObscure;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
enabledBorder: OutlineInputBorder(
|
||||
borderRadius: BorderRadius.circular(10.r),
|
||||
borderSide: BorderSide(
|
||||
width: 1.w,
|
||||
color: GrayColors.gray200,
|
||||
),
|
||||
),
|
||||
focusedBorder: OutlineInputBorder(
|
||||
borderRadius: BorderRadius.circular(10.r),
|
||||
borderSide: BorderSide(
|
||||
width: 1.w,
|
||||
color: GrayColors.gray200,
|
||||
),
|
||||
),
|
||||
border: OutlineInputBorder(
|
||||
borderRadius: BorderRadius.circular(10.r),
|
||||
borderSide: BorderSide(
|
||||
width: 1.w,
|
||||
color: GrayColors.gray200,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
import 'package:e_porter/_core/constants/colors.dart';
|
||||
import 'package:e_porter/_core/constants/typography.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:zoom_tap_animation/zoom_tap_animation.dart';
|
||||
|
||||
class FooterText extends StatelessWidget {
|
||||
final String firstText;
|
||||
final String secondText;
|
||||
final VoidCallback onTab;
|
||||
|
||||
const FooterText({
|
||||
super.key,
|
||||
required this.firstText,
|
||||
required this.secondText,
|
||||
required this.onTab,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
TypographyStyles.body(
|
||||
firstText,
|
||||
color: GrayColors.gray500,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
SizedBox(
|
||||
width: 6,
|
||||
),
|
||||
InkWell(
|
||||
onTap: onTab,
|
||||
child: ZoomTapAnimation(
|
||||
child: TypographyStyles.body(
|
||||
secondText,
|
||||
color: Colors.blue.shade600,
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
import 'package:e_porter/_core/constants/typography.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:zoom_tap_animation/zoom_tap_animation.dart';
|
||||
|
||||
class ForgetPasswordText extends StatelessWidget {
|
||||
final VoidCallback onTab;
|
||||
|
||||
const ForgetPasswordText({super.key, required this.onTab});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return ZoomTapAnimation(
|
||||
child: GestureDetector(
|
||||
onTap: onTab,
|
||||
child: Align(
|
||||
alignment: FractionalOffset.centerRight,
|
||||
child: TypographyStyles.body(
|
||||
'Lupa password?',
|
||||
color: Colors.blue.shade600,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,102 @@
|
|||
import 'package:e_porter/_core/component/button/button_fill.dart';
|
||||
import 'package:e_porter/_core/constants/colors.dart';
|
||||
import 'package:e_porter/_core/constants/typography.dart';
|
||||
import 'package:e_porter/presentation/screens/auth/component/Input_form.dart';
|
||||
import 'package:e_porter/presentation/screens/auth/component/Input_password.dart';
|
||||
import 'package:e_porter/presentation/screens/auth/component/footer_text.dart';
|
||||
import 'package:e_porter/presentation/screens/auth/component/forget_password.dart';
|
||||
import 'package:e_porter/routes/app_rountes.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:zoom_tap_animation/zoom_tap_animation.dart';
|
||||
|
||||
class LoginScreen extends StatefulWidget {
|
||||
const LoginScreen({super.key});
|
||||
|
||||
@override
|
||||
State<LoginScreen> createState() => _LoginScreenState();
|
||||
}
|
||||
|
||||
class _LoginScreenState extends State<LoginScreen> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
body: SafeArea(
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 16.h),
|
||||
child: Form(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TypographyStyles.h3(
|
||||
'Masuk',
|
||||
color: GrayColors.gray800,
|
||||
),
|
||||
SizedBox(height: 32.h),
|
||||
TypographyStyles.h6(
|
||||
'Selamat datang kembali! Masuk untuk mengakses pengalaman personal Anda',
|
||||
color: GrayColors.gray600,
|
||||
fontWeight: FontWeight.w500,
|
||||
maxlines: 3,
|
||||
),
|
||||
SizedBox(height: 50.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 8.w),
|
||||
child: TypographyStyles.body(
|
||||
'Email',
|
||||
color: GrayColors.gray800,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
SizedBox(height: 16.h),
|
||||
InputForm(
|
||||
hintText: 'example@gmail.com',
|
||||
svgIconPath: 'assets/icons/ic_email.svg',
|
||||
),
|
||||
SizedBox(height: 20.h),
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 8.w),
|
||||
child: TypographyStyles.body(
|
||||
'Password',
|
||||
color: GrayColors.gray800,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
SizedBox(height: 16.h),
|
||||
InputPassword(
|
||||
hintText: '••••••••••',
|
||||
svgIconPath: 'assets/icons/ic_padlock.svg',
|
||||
),
|
||||
SizedBox(height: 32.h),
|
||||
ForgetPasswordText(
|
||||
onTab: () {},
|
||||
),
|
||||
SizedBox(height: 40.h),
|
||||
ZoomTapAnimation(
|
||||
child: ButtonFill(
|
||||
text: 'Masuk',
|
||||
textColor: Colors.white,
|
||||
onTap: () {},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
bottomNavigationBar: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 20.h),
|
||||
child: FooterText(
|
||||
firstText: 'Belum punya akun?',
|
||||
secondText: 'Daftar',
|
||||
onTab: () {
|
||||
Get.toNamed(Routes.REGISTER);
|
||||
},
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
class RegisterScreen extends StatefulWidget {
|
||||
const RegisterScreen({super.key});
|
||||
|
||||
@override
|
||||
State<RegisterScreen> createState() => _RegisterScreenState();
|
||||
}
|
||||
|
||||
class _RegisterScreenState extends State<RegisterScreen> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,5 +1,11 @@
|
|||
import 'package:e_porter/_core/component/button/button_fill.dart';
|
||||
import 'package:e_porter/_core/component/button/button_outline.dart';
|
||||
import 'package:e_porter/_core/constants/colors.dart';
|
||||
import 'package:e_porter/routes/app_rountes.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:zoom_tap_animation/zoom_tap_animation.dart';
|
||||
|
||||
class OnboardingScreen extends StatelessWidget {
|
||||
const OnboardingScreen({super.key});
|
||||
|
@ -7,14 +13,41 @@ class OnboardingScreen extends StatelessWidget {
|
|||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Text(
|
||||
'Onboarding',
|
||||
style: TextStyle(
|
||||
fontSize: 32.sp,
|
||||
backgroundColor: Colors.white,
|
||||
body: SafeArea(
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 16.h),
|
||||
child: Column(
|
||||
children: [],
|
||||
),
|
||||
),
|
||||
),
|
||||
bottomNavigationBar: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 16.h),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ZoomTapAnimation(
|
||||
child: ButtonFill(
|
||||
text: 'Masuk sebagai Penumpang',
|
||||
textColor: Colors.white,
|
||||
onTap: () {
|
||||
Get.toNamed(Routes.LOGIN);
|
||||
},
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 10.h,
|
||||
),
|
||||
ZoomTapAnimation(
|
||||
child: ButtonOutline(
|
||||
text: 'Masuk sebagai Porter',
|
||||
textColor: PrimaryColors.primary800,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
import 'package:e_porter/presentation/screens/auth/pages/login_screen.dart';
|
||||
import 'package:e_porter/presentation/screens/auth/pages/register_screen.dart';
|
||||
import 'package:e_porter/presentation/screens/onboarding/onboarding_screen.dart';
|
||||
import 'package:e_porter/presentation/screens/splash/splash_screen.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
@ -14,10 +16,20 @@ class AppRoutes {
|
|||
name: Routes.ONBOARDING,
|
||||
page: () => OnboardingScreen(),
|
||||
),
|
||||
GetPage(
|
||||
name: Routes.LOGIN,
|
||||
page: () => LoginScreen(),
|
||||
),
|
||||
GetPage(
|
||||
name: Routes.REGISTER,
|
||||
page: () => RegisterScreen(),
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
class Routes {
|
||||
static const SPLASH = '/splash';
|
||||
static const ONBOARDING = '/onboarding';
|
||||
static const LOGIN = '/login';
|
||||
static const REGISTER = '/register';
|
||||
}
|
||||
|
|
88
pubspec.lock
88
pubspec.lock
|
@ -1,6 +1,14 @@
|
|||
# Generated by pub
|
||||
# See https://dart.dev/tools/pub/glossary#lockfile
|
||||
packages:
|
||||
args:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: args
|
||||
sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.6.0"
|
||||
async:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -110,6 +118,14 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.9.3"
|
||||
flutter_svg:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_svg
|
||||
sha256: c200fd79c918a40c5cd50ea0877fa13f81bdaf6f0a5d3dbcc2a13e3285d6aa1b
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.17"
|
||||
flutter_test:
|
||||
dependency: "direct dev"
|
||||
description: flutter
|
||||
|
@ -128,6 +144,14 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.6.6"
|
||||
http:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: http
|
||||
sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.0"
|
||||
http_parser:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -192,6 +216,30 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.9.0"
|
||||
path_parsing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_parsing
|
||||
sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
petitparser:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: petitparser
|
||||
sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.0.2"
|
||||
pin_code_fields:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: pin_code_fields
|
||||
sha256: "4c0db7fbc889e622e7c71ea54b9ee624bb70c7365b532abea0271b17ea75b729"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.0.1"
|
||||
plugin_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -261,6 +309,30 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.4.0"
|
||||
vector_graphics:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_graphics
|
||||
sha256: "44cc7104ff32563122a929e4620cf3efd584194eec6d1d913eb5ba593dbcf6de"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.18"
|
||||
vector_graphics_codec:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_graphics_codec
|
||||
sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.13"
|
||||
vector_graphics_compiler:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_graphics_compiler
|
||||
sha256: "1b4b9e706a10294258727674a340ae0d6e64a7231980f9f9a3d12e4b42407aad"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.16"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -285,6 +357,22 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
xml:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: xml
|
||||
sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.5.0"
|
||||
zoom_tap_animation:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: zoom_tap_animation
|
||||
sha256: d9f7a73cab65aa1546ba6886b5e21d3c8ccccb34e4e5f770301c306d4868bee0
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
sdks:
|
||||
dart: ">=3.5.0 <4.0.0"
|
||||
flutter: ">=3.22.0"
|
||||
|
|
|
@ -39,6 +39,9 @@ dependencies:
|
|||
dio: ^5.8.0+1
|
||||
firebase_core: ^3.11.0
|
||||
flutter_screenutil: ^5.9.3
|
||||
zoom_tap_animation: ^1.1.0
|
||||
pin_code_fields: ^8.0.1
|
||||
flutter_svg: ^2.0.17
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
|
Loading…
Reference in New Issue