diff --git a/example/assets/check.svg b/example/assets/check.svg new file mode 100644 index 0000000..c9b377d --- /dev/null +++ b/example/assets/check.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/example/assets/chevron-down.svg b/example/assets/chevron-down.svg new file mode 100644 index 0000000..fcd03b7 --- /dev/null +++ b/example/assets/chevron-down.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/example/assets/chevron-left.svg b/example/assets/chevron-left.svg new file mode 100644 index 0000000..b20e1e4 --- /dev/null +++ b/example/assets/chevron-left.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/example/assets/chevron-right.svg b/example/assets/chevron-right.svg new file mode 100644 index 0000000..fdf3722 --- /dev/null +++ b/example/assets/chevron-right.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/example/assets/close.svg b/example/assets/close.svg new file mode 100644 index 0000000..d9d5438 --- /dev/null +++ b/example/assets/close.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/example/assets/delete.svg b/example/assets/delete.svg new file mode 100644 index 0000000..15b1793 --- /dev/null +++ b/example/assets/delete.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/example/assets/dismiss.svg b/example/assets/dismiss.svg new file mode 100644 index 0000000..81e9d95 --- /dev/null +++ b/example/assets/dismiss.svg @@ -0,0 +1,38 @@ + + + + + + diff --git a/example/assets/download.svg b/example/assets/download.svg new file mode 100644 index 0000000..9b425f7 --- /dev/null +++ b/example/assets/download.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/example/assets/file-text.svg b/example/assets/file-text.svg new file mode 100644 index 0000000..90ccc71 --- /dev/null +++ b/example/assets/file-text.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/example/assets/filter.svg b/example/assets/filter.svg new file mode 100644 index 0000000..0365b57 --- /dev/null +++ b/example/assets/filter.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/example/assets/map.svg b/example/assets/map.svg new file mode 100644 index 0000000..f35a41c --- /dev/null +++ b/example/assets/map.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + diff --git a/example/assets/message-circle.svg b/example/assets/message-circle.svg new file mode 100644 index 0000000..73e8414 --- /dev/null +++ b/example/assets/message-circle.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/example/assets/mic.svg b/example/assets/mic.svg new file mode 100644 index 0000000..8e24820 --- /dev/null +++ b/example/assets/mic.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + diff --git a/example/assets/minus.svg b/example/assets/minus.svg new file mode 100644 index 0000000..e26a25e --- /dev/null +++ b/example/assets/minus.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/example/assets/more-horizontal.svg b/example/assets/more-horizontal.svg new file mode 100644 index 0000000..6076bdb --- /dev/null +++ b/example/assets/more-horizontal.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/example/assets/paperclip.svg b/example/assets/paperclip.svg new file mode 100644 index 0000000..50f4dd0 --- /dev/null +++ b/example/assets/paperclip.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/example/assets/plus.svg b/example/assets/plus.svg new file mode 100644 index 0000000..27a8b51 --- /dev/null +++ b/example/assets/plus.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/example/assets/robotoFlex.ttf b/example/assets/robotoFlex.ttf new file mode 100644 index 0000000..2e5c2a2 Binary files /dev/null and b/example/assets/robotoFlex.ttf differ diff --git a/example/assets/search.svg b/example/assets/search.svg new file mode 100644 index 0000000..3f704f7 --- /dev/null +++ b/example/assets/search.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/example/assets/send.svg b/example/assets/send.svg new file mode 100644 index 0000000..84a71d7 --- /dev/null +++ b/example/assets/send.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + diff --git a/example/assets/shopping.svg b/example/assets/shopping.svg new file mode 100644 index 0000000..6712379 --- /dev/null +++ b/example/assets/shopping.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + diff --git a/example/lib/main.dart b/example/lib/main.dart index 529571a..9d9ae60 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -1,8 +1,10 @@ import 'package:example/colors_section.dart'; import 'package:example/fonts_section.dart'; import 'package:example/inputs_section.dart'; +import 'package:example/search_section.dart'; import 'package:flutter/material.dart'; import 'package:ui_kit/ui_kit.dart'; +import 'package:flutter_svg/flutter_svg.dart'; void main() { runApp(const MainApp()); @@ -15,13 +17,19 @@ class MainApp extends StatelessWidget { Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, + color: whiteColor, home: Scaffold( backgroundColor: whiteColor, body: SingleChildScrollView( child: Container( margin: EdgeInsets.symmetric(horizontal: width(context) * 5), child: Column( - children: [ColorsSection(), FontsSection(), InputsSection()], + children: [ + ColorsSection(), + FontsSection(), + InputsSection(), + SearchSection(), + ], ), ), ), diff --git a/example/lib/search_section.dart b/example/lib/search_section.dart new file mode 100644 index 0000000..a9cfc7b --- /dev/null +++ b/example/lib/search_section.dart @@ -0,0 +1,35 @@ +import 'package:flutter/material.dart'; +import 'package:ui_kit/ui_kit.dart'; + +class SearchSection extends StatefulWidget { + const SearchSection({super.key}); + + @override + State createState() => _SearchSectionState(); +} + +class _SearchSectionState extends State { + final TextEditingController controller = TextEditingController(); + @override + Widget build(BuildContext context) { + final searchList = [true, false]; + return SizedBox( + width: width(context) * 100, + height: height(context) * 30, + child: ListView.builder( + itemCount: 2, + itemBuilder: (BuildContext context, int index) { + final currentValue = searchList[index]; + return Container( + margin: EdgeInsets.only(bottom: height(context) * 3), + child: SearchWidget( + controller: controller, + hintText: 'Search', + isClosable: currentValue, + ), + ); + }, + ), + ); + } +} diff --git a/example/pubspec.lock b/example/pubspec.lock index 89d7124..e8870d7 100644 --- a/example/pubspec.lock +++ b/example/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: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 + url: "https://pub.dev" + source: hosted + version: "2.7.0" async: dependency: transitive description: @@ -62,11 +70,35 @@ packages: url: "https://pub.dev" source: hosted version: "5.0.0" + flutter_svg: + dependency: "direct dev" + description: + name: flutter_svg + sha256: d44bf546b13025ec7353091516f6881f1d4c633993cb109c3916c3a0159dadf1 + url: "https://pub.dev" + source: hosted + version: "2.1.0" flutter_test: dependency: "direct dev" description: flutter source: sdk version: "0.0.0" + http: + dependency: transitive + description: + name: http + sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b" + url: "https://pub.dev" + source: hosted + version: "1.4.0" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + url: "https://pub.dev" + source: hosted + version: "4.1.2" leak_tracker: dependency: transitive description: @@ -131,6 +163,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.1" + 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: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" + url: "https://pub.dev" + source: hosted + version: "6.1.0" sky_engine: dependency: transitive description: flutter @@ -184,6 +232,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.7.4" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" ui_kit: dependency: "direct main" description: @@ -191,6 +247,30 @@ packages: relative: true source: path version: "0.0.1" + 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: "557a315b7d2a6dbb0aaaff84d857967ce6bdc96a63dc6ee2a57ce5a6ee5d3331" + url: "https://pub.dev" + source: hosted + version: "1.1.17" vector_math: dependency: transitive description: @@ -207,6 +287,22 @@ packages: url: "https://pub.dev" source: hosted version: "15.0.0" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + xml: + dependency: transitive + description: + name: xml + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + url: "https://pub.dev" + source: hosted + version: "6.5.0" sdks: dart: ">=3.8.0 <4.0.0" - flutter: ">=3.18.0-18.0.pre.54" + flutter: ">=3.22.0" diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 95a6c04..deb77f8 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -16,6 +16,7 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^5.0.0 + flutter_svg: ^2.1.0 flutter: uses-material-design: true diff --git a/lib/search.dart b/lib/search.dart new file mode 100644 index 0000000..d5881c9 --- /dev/null +++ b/lib/search.dart @@ -0,0 +1,67 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:ui_kit/ui_kit.dart'; + +class SearchWidget extends StatefulWidget { + const SearchWidget({ + super.key, + required this.controller, + required this.hintText, + this.isClosable = true, + }); + final TextEditingController controller; + final String hintText; + final bool isClosable; + + @override + State createState() => _SearchWidgetState(); +} + +class _SearchWidgetState extends State { + @override + Widget build(BuildContext context) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + height: 48, + child: TextFormField( + controller: widget.controller, + decoration: InputDecoration( + fillColor: inputBgColor, + filled: true, + contentPadding: EdgeInsets.symmetric( + vertical: 14, + horizontal: 14, + ), + suffixIcon: widget.isClosable + ? SvgPicture.asset( + 'assets/close.svg', + fit: BoxFit.none, + height: 20, + width: 20, + ) + : null, + prefixIcon: SvgPicture.asset( + 'assets/search.svg', + width: 20, + height: 20, + fit: BoxFit.none, + ), + hintText: widget.hintText, + hintStyle: textRegular.copyWith(color: captionColor), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(10), + borderSide: BorderSide(color: inputStrokeColor, width: 1), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(10), + borderSide: BorderSide(color: primaryHoverColor, width: 1), + ), + ), + ), + ), + ], + ); + } +} diff --git a/lib/select.dart b/lib/select.dart new file mode 100644 index 0000000..059cd75 --- /dev/null +++ b/lib/select.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class SelectWidget extends StatefulWidget { + const SelectWidget({super.key}); + + @override + State createState() => _SelectWidgetState(); +} + +class _SelectWidgetState extends State { + @override + Widget build(BuildContext context) { + return Scaffold(); + } +} diff --git a/lib/ui_kit.dart b/lib/ui_kit.dart index 9f2337d..00d19a7 100644 --- a/lib/ui_kit.dart +++ b/lib/ui_kit.dart @@ -5,3 +5,4 @@ export 'colors.dart'; export 'fonts.dart'; export 'utils.dart'; export 'input.dart'; +export "search.dart"; diff --git a/pubspec.yaml b/pubspec.yaml index 61d1abe..00b4222 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -10,6 +10,7 @@ environment: dependencies: flutter: sdk: flutter + flutter_svg: ^2.1.0 dev_dependencies: flutter_test: