Browse Source

update toolbar theme

lucky1213 4 years ago
parent
commit
aebe249aec

+ 8
- 2
packages/zefyr/example/lib/src/images.dart View File

4
 
4
 
5
 import 'dart:io';
5
 import 'dart:io';
6
 import 'dart:typed_data';
6
 import 'dart:typed_data';
7
+import 'package:image/image.dart' as Im;
7
 
8
 
8
 import 'package:flutter/material.dart';
9
 import 'package:flutter/material.dart';
9
 import 'package:flutter/widgets.dart';
10
 import 'package:flutter/widgets.dart';
41
   }
42
   }
42
 
43
 
43
   @override
44
   @override
44
-  Future<String> picked(asset, isFullImage) async {
45
+  Future<String> picked(file, isFullImage) async {
45
     print(isFullImage);
46
     print(isFullImage);
46
-    File file = await asset.file;
47
+    //File file = await asset.file;
47
     return file.uri.toString();
48
     return file.uri.toString();
49
+    // Im.Image image = Im.decodeImage(file.readAsBytesSync());
50
+    // Im.Image smallerImage = Im.copyResize(image, width: 500);
51
+    // List<int> data = Im.encodeJpg(smallerImage, quality: 50);
52
+    // final compressFile = File.fromRawPath(Uint8List.fromList(data));
53
+    // return compressFile.uri.toString();
48
   }
54
   }
49
 }
55
 }

BIN
packages/zefyr/lib/fonts/zefyrfont.ttf View File


+ 150
- 84
packages/zefyr/lib/src/widgets/buttons.dart View File

6
 
6
 
7
 import 'package:flutter/material.dart';
7
 import 'package:flutter/material.dart';
8
 import 'package:flutter/services.dart';
8
 import 'package:flutter/services.dart';
9
+import 'package:image_picker/image_picker.dart';
9
 import 'package:notus/notus.dart';
10
 import 'package:notus/notus.dart';
10
 import 'package:photo/photo.dart';
11
 import 'package:photo/photo.dart';
11
 import 'package:photo_manager/photo_manager.dart';
12
 import 'package:photo_manager/photo_manager.dart';
21
   ZefyrToolbarAction.emoji,
22
   ZefyrToolbarAction.emoji,
22
   ZefyrToolbarAction.image,
23
   ZefyrToolbarAction.image,
23
   ZefyrToolbarAction.link,
24
   ZefyrToolbarAction.link,
25
+  ZefyrToolbarAction.undo,
26
+  ZefyrToolbarAction.redo,
27
+  ZefyrToolbarAction.save,
24
   ZefyrToolbarAction.hideKeyboard,
28
   ZefyrToolbarAction.hideKeyboard,
25
   ZefyrToolbarAction.showKeyboard,
29
   ZefyrToolbarAction.showKeyboard,
26
   ZefyrToolbarAction.close,
30
   ZefyrToolbarAction.close,
85
     final editor = toolbar.editor;
89
     final editor = toolbar.editor;
86
     final toolbarTheme = ZefyrTheme.of(context).toolbarTheme;
90
     final toolbarTheme = ZefyrTheme.of(context).toolbarTheme;
87
     final pressedHandler = _getPressedHandler(editor, toolbar);
91
     final pressedHandler = _getPressedHandler(editor, toolbar);
88
-    final iconColor = (pressedHandler == null)
89
-        ? toolbarTheme.disabledIconColor
90
-        : toolbarTheme.iconColor;
91
     if (_icon != null) {
92
     if (_icon != null) {
92
       return RawZefyrButton.icon(
93
       return RawZefyrButton.icon(
93
         action: action,
94
         action: action,
94
         icon: _icon,
95
         icon: _icon,
95
-        size: _iconSize,
96
-        iconColor: _getColor(editor, toolbarTheme),
97
-        color: _getFillColor(action, toolbarTheme),
96
+        size: 24,
97
+        iconColor: (pressedHandler == null)
98
+            ? toolbarTheme.disabledIconColor
99
+            : _getColor(editor, toolbarTheme),
100
+        color: _getFillColor(editor, toolbarTheme),
98
         onPressed: _getPressedHandler(editor, toolbar),
101
         onPressed: _getPressedHandler(editor, toolbar),
99
       );
102
       );
100
     } else {
103
     } else {
106
       return RawZefyrButton(
109
       return RawZefyrButton(
107
         action: action,
110
         action: action,
108
         child: Text(_text, style: style),
111
         child: Text(_text, style: style),
109
-        color: _getFillColor(action, toolbarTheme),
112
+        color: _getFillColor(editor, toolbarTheme),
110
         onPressed: _getPressedHandler(editor, toolbar),
113
         onPressed: _getPressedHandler(editor, toolbar),
111
       );
114
       );
112
     }
115
     }
113
   }
116
   }
114
 
117
 
115
   Color _getColor(ZefyrScope editor, ToolbarTheme theme) {
118
   Color _getColor(ZefyrScope editor, ToolbarTheme theme) {
116
-    if (isAttributeAction) {
117
-      final attribute = kZefyrToolbarAttributeActions[action];
118
-      final isToggled = (attribute is NotusAttribute)
119
-          ? editor.selectionStyle.containsSame(attribute)
120
-          : editor.selectionStyle.contains(attribute);
121
-      return isToggled ? theme.toggleColor : null;
119
+    if (kToolbarButtonIcons.contains(action)) {
120
+      return editor.toolbarAction == action ? theme.toggleColor : theme.surfaceColor;
121
+    } else {
122
+      if (isAttributeAction) {
123
+        final attribute = kZefyrToolbarAttributeActions[action];
124
+        final isToggled = (attribute is NotusAttribute)
125
+            ? editor.selectionStyle.containsSame(attribute)
126
+            : editor.selectionStyle.contains(attribute);
127
+        return isToggled
128
+            ? theme.toggleColor
129
+            : theme.iconColor;
130
+      }
131
+      return null;
122
     }
132
     }
123
-    return null;
124
   }
133
   }
125
 
134
 
126
-  Color _getFillColor(ZefyrToolbarAction action, ToolbarTheme theme) {
135
+  Color _getFillColor(ZefyrScope editor, ToolbarTheme theme) {
127
     if (kToolbarButtonIcons.contains(action)) {
136
     if (kToolbarButtonIcons.contains(action)) {
128
       return theme.color;
137
       return theme.color;
138
+    } else {
139
+      if (isAttributeAction) {
140
+        final attribute = kZefyrToolbarAttributeActions[action];
141
+        final isToggled = (attribute is NotusAttribute)
142
+            ? editor.selectionStyle.containsSame(attribute)
143
+            : editor.selectionStyle.contains(attribute);
144
+        return isToggled ? Color(0xFFE1F5FF) : theme.iconFillColor;
145
+      }
146
+      return theme.iconFillColor;
129
     }
147
     }
130
-    return theme.iconFillColor;
131
   }
148
   }
132
 
149
 
133
   VoidCallback _getPressedHandler(
150
   VoidCallback _getPressedHandler(
204
   @override
221
   @override
205
   Widget build(BuildContext context) {
222
   Widget build(BuildContext context) {
206
     final theme = Theme.of(context);
223
     final theme = Theme.of(context);
207
-    final constraints = theme.buttonTheme.constraints.copyWith(
224
+    final isToolbarButton = kToolbarButtonIcons.contains(action);
225
+    var constraints = theme.buttonTheme.constraints.copyWith(
208
       minWidth: 64,
226
       minWidth: 64,
209
       minHeight: 40,
227
       minHeight: 40,
210
       maxHeight: 40,
228
       maxHeight: 40,
211
     );
229
     );
212
     var radius = BorderRadius.all(Radius.circular(0));
230
     var radius = BorderRadius.all(Radius.circular(0));
213
-    if (action == ZefyrToolbarAction.headingLevel1 ||
214
-        action == ZefyrToolbarAction.bold ||
215
-        action == ZefyrToolbarAction.numberList) {
216
-      radius = BorderRadius.horizontal(left: Radius.circular(4));
217
-    }
218
-    if (action == ZefyrToolbarAction.headingLevel6 ||
219
-        action == ZefyrToolbarAction.deleteline ||
220
-        action == ZefyrToolbarAction.bulletList) {
221
-      radius = BorderRadius.horizontal(left: Radius.circular(4));
222
-    }
223
-    if (action == ZefyrToolbarAction.quote ||
224
-        action == ZefyrToolbarAction.horizontalRule ||
225
-        action == ZefyrToolbarAction.code) {
226
-      radius = BorderRadius.all(Radius.circular(4));
231
+    var padding = EdgeInsets.symmetric(horizontal: 1.0, vertical: 5.0);
232
+    if (isToolbarButton) {
233
+      constraints = theme.buttonTheme.constraints.copyWith(
234
+        minWidth: 40,
235
+        maxWidth: 40,
236
+        minHeight: 30,
237
+        maxHeight: 30,
238
+      );
239
+      padding = EdgeInsets.symmetric(horizontal: 0.0, vertical: 10);
240
+    } else {
241
+      if (action == ZefyrToolbarAction.headingLevel1 ||
242
+          action == ZefyrToolbarAction.bold ||
243
+          action == ZefyrToolbarAction.numberList) {
244
+        radius = BorderRadius.horizontal(left: Radius.circular(4));
245
+      }
246
+      if (action == ZefyrToolbarAction.headingLevel6 ||
247
+          action == ZefyrToolbarAction.deleteline ||
248
+          action == ZefyrToolbarAction.bulletList) {
249
+        radius = BorderRadius.horizontal(right: Radius.circular(4));
250
+      }
251
+      if (action == ZefyrToolbarAction.quote ||
252
+          action == ZefyrToolbarAction.horizontalRule ||
253
+          action == ZefyrToolbarAction.code) {
254
+        radius = BorderRadius.all(Radius.circular(4));
255
+        if (action == ZefyrToolbarAction.code ||
256
+            action == ZefyrToolbarAction.quote) {
257
+          padding = padding.copyWith(left: 12.0);
258
+        }
259
+      }
227
     }
260
     }
261
+
262
+    // Widget button = Row(
263
+    //   children: <Widget>[
264
+        
265
+    //     // if (action == ZefyrToolbarAction.showKeyboard || action == ZefyrToolbarAction.hideKeyboard || action == ZefyrToolbarAction.link)
266
+    //     // Container(
267
+    //     //   width: 1,
268
+    //     //   color: Color(0xFFE2E2E2),
269
+    //     //   height: 28,
270
+    //     //   margin: EdgeInsets.symmetric(horizontal: 10),
271
+    //     // ),
272
+    //   ],
273
+    // );
228
     return Padding(
274
     return Padding(
229
-      padding:
230
-          const EdgeInsets.symmetric(horizontal: 1.0, vertical: 6.0).copyWith(
231
-        left: action == ZefyrToolbarAction.code ||
232
-                action == ZefyrToolbarAction.quote
233
-            ? 12.0
234
-            : 1.0,
235
-      ),
236
-      child: RawMaterialButton(
237
-        shape: RoundedRectangleBorder(borderRadius: radius),
238
-        elevation: 0.0,
239
-        fillColor: color,
275
+      padding: padding,
276
+      child: ConstrainedBox(
240
         constraints: constraints,
277
         constraints: constraints,
241
-        onPressed: onPressed,
242
-        child: child,
278
+        child: RawMaterialButton(
279
+          shape: RoundedRectangleBorder(borderRadius: radius),
280
+          elevation: 0.0,
281
+          fillColor: color,
282
+          constraints: constraints,
283
+          onPressed: onPressed,
284
+          child: child,
285
+        ),
243
       ),
286
       ),
244
     );
287
     );
288
+    //return isToolbarButton && action != ZefyrToolbarAction.showKeyboard && action != ZefyrToolbarAction.hideKeyboard  ? Expanded(child: button) : button;
245
   }
289
   }
246
 }
290
 }
247
 
291
 
269
 
313
 
270
   void showOverlay() {
314
   void showOverlay() {
271
     final toolbar = ZefyrToolbar.of(context);
315
     final toolbar = ZefyrToolbar.of(context);
272
-    toolbar.showOverlay(buildOverlay);
316
+    toolbar.showOverlay(buildOverlay, ZefyrToolbarAction.heading);
273
   }
317
   }
274
 
318
 
275
   Widget _buildButtonsView(List<Widget> buttons) {
319
   Widget _buildButtonsView(List<Widget> buttons) {
437
 }
481
 }
438
 
482
 
439
 class _ImageButtonState extends State<ImageButton> {
483
 class _ImageButtonState extends State<ImageButton> {
440
-
441
   List<AssetEntity> pickedAssetList = [];
484
   List<AssetEntity> pickedAssetList = [];
442
 
485
 
443
   @override
486
   @override
455
     if (Platform.isIOS || Platform.isAndroid) {
498
     if (Platform.isIOS || Platform.isAndroid) {
456
       var result = await PhotoManager.requestPermission();
499
       var result = await PhotoManager.requestPermission();
457
       if (result) {
500
       if (result) {
458
-        return toolbar.showOverlay(buildOverlay);
501
+        return toolbar.showOverlay(buildOverlay, ZefyrToolbarAction.image);
459
       } else {
502
       } else {
460
         PhotoManager.openSetting();
503
         PhotoManager.openSetting();
461
       }
504
       }
491
                             child: FlatButton(
534
                             child: FlatButton(
492
                                 shape: RoundedRectangleBorder(),
535
                                 shape: RoundedRectangleBorder(),
493
                                 color: Color(0xFFF6F6F6),
536
                                 color: Color(0xFFF6F6F6),
494
-                                onPressed: () {},
537
+                                onPressed: () async {
538
+                                  // toolbar.editor.tapHandle =
539
+                                  //     TapHandle.takePhoto;
540
+                                  var file = await ImagePicker.pickImage(
541
+                                      source: ImageSource.camera);
542
+                                  if (file != null) {
543
+                                    toolbar.closeOverlay();
544
+                                    final image = await toolbar
545
+                                        .editor.imageDelegate
546
+                                        .picked(file, true);
547
+                                  }
548
+                                },
495
                                 child: Container(
549
                                 child: Container(
496
                                   child: Column(
550
                                   child: Column(
497
                                     mainAxisAlignment: MainAxisAlignment.center,
551
                                     mainAxisAlignment: MainAxisAlignment.center,
521
                                 shape: RoundedRectangleBorder(),
575
                                 shape: RoundedRectangleBorder(),
522
                                 color: Color(0xFFF6F6F6),
576
                                 color: Color(0xFFF6F6F6),
523
                                 onPressed: () {
577
                                 onPressed: () {
524
-                                  toolbar.editor.tapHandle = TapHandle.pickAsset;
578
+                                  toolbar.editor.keepOverlay = true;
525
                                   PhotoPicker.pickAsset(
579
                                   PhotoPicker.pickAsset(
526
                                     context: context,
580
                                     context: context,
527
                                     rowCount: 4,
581
                                     rowCount: 4,
534
                                   ).then((PickedEntity entity) async {
588
                                   ).then((PickedEntity entity) async {
535
                                     if (entity.asset.isNotEmpty) {
589
                                     if (entity.asset.isNotEmpty) {
536
                                       toolbar.closeOverlay();
590
                                       toolbar.closeOverlay();
537
-                                      final editor = ZefyrToolbar.of(context).editor;
591
+                                      final editor =
592
+                                          ZefyrToolbar.of(context).editor;
538
                                       for (var asset in entity.asset) {
593
                                       for (var asset in entity.asset) {
539
-                                        final image = await editor.imageDelegate.picked(asset, entity.isFullImage);
594
+                                        var file = await asset.originFile;
595
+                                        final image = await editor.imageDelegate
596
+                                            .picked(file, entity.isFullImage);
540
                                         if (image != null) {
597
                                         if (image != null) {
541
-                                          editor.formatSelection(NotusAttribute.embed.image(image));
598
+                                          editor.formatSelection(NotusAttribute
599
+                                              .embed
600
+                                              .image(image));
542
                                         }
601
                                         }
543
                                       }
602
                                       }
544
                                     }
603
                                     }
575
                       child: Listener(
634
                       child: Listener(
576
                         behavior: HitTestBehavior.translucent,
635
                         behavior: HitTestBehavior.translucent,
577
                         onPointerUp: (PointerUpEvent event) {
636
                         onPointerUp: (PointerUpEvent event) {
578
-                          toolbar.editor.tapHandle = TapHandle.previewImage;
637
+                          toolbar.editor.keepOverlay = true;
579
                         },
638
                         },
580
                         child: StreamBuilder<PickedEntity>(
639
                         child: StreamBuilder<PickedEntity>(
581
                           stream: pickedChangeController.stream,
640
                           stream: pickedChangeController.stream,
582
                           initialData: PickedEntity(),
641
                           initialData: PickedEntity(),
583
                           builder: (context, snapshot) {
642
                           builder: (context, snapshot) {
584
                             return PhotoPicker.buildGallery(
643
                             return PhotoPicker.buildGallery(
585
-                              context: context,
586
-                              padding: 4,
587
-                              thumbSize: 300,
588
-                              itemRadio: 0.5,
589
-                              provider: I18nProvider.chinese,
590
-                              sortDelegate: SortDelegate.common,
591
-                              pickType: PickType.onlyImage,
592
-                              photoPathList: null,
593
-                              isFullImage: snapshot.data.isFullImage,
594
-                              onSelected: (PickedEntity entity) {
595
-                                pickedChangeController.add(entity);
596
-                              }
597
-                            );
644
+                                context: context,
645
+                                padding: 4,
646
+                                thumbSize: 300,
647
+                                itemRadio: 0.5,
648
+                                provider: I18nProvider.chinese,
649
+                                sortDelegate: SortDelegate.common,
650
+                                pickType: PickType.onlyImage,
651
+                                photoPathList: null,
652
+                                isFullImage: snapshot.data.isFullImage,
653
+                                onSelected: (PickedEntity entity) {
654
+                                  pickedChangeController.add(entity);
655
+                                });
598
                           },
656
                           },
599
                         ),
657
                         ),
600
                       ),
658
                       ),
627
                                     ),
685
                                     ),
628
                                   ),
686
                                   ),
629
                                   Padding(
687
                                   Padding(
630
-                                    padding: EdgeInsets.symmetric(horizontal: 8),
688
+                                    padding:
689
+                                        EdgeInsets.symmetric(horizontal: 8),
631
                                     child: Text(
690
                                     child: Text(
632
                                       '原图',
691
                                       '原图',
633
-                                      style: TextStyle(color: theme.iconColor, fontSize: 16),
692
+                                      style: TextStyle(
693
+                                          color: theme.iconColor, fontSize: 16),
634
                                     ),
694
                                     ),
635
                                   ),
695
                                   ),
636
                                 ],
696
                                 ],
660
                         color: theme.toggleColor,
720
                         color: theme.toggleColor,
661
                         disabledColor: theme.disabledIconColor,
721
                         disabledColor: theme.disabledIconColor,
662
                         shape: StadiumBorder(),
722
                         shape: StadiumBorder(),
663
-                        onPressed: snapshot.data.asset.isNotEmpty ? () async {
664
-                          pickedChangeController.add(PickedEntity());
665
-                          toolbar.closeOverlay();
666
-                          for (var asset in snapshot.data.asset) {
667
-                            final image = await toolbar.editor.imageDelegate.picked(asset, snapshot.data.isFullImage);
668
-                            if (image != null) {
669
-                              toolbar.editor.formatSelection(NotusAttribute.embed.image(image));
670
-                            }
671
-                          }
672
-                        } : null,
723
+                        onPressed: snapshot.data.asset.isNotEmpty
724
+                            ? () async {
725
+                                pickedChangeController.add(PickedEntity());
726
+                                toolbar.closeOverlay();
727
+                                for (var asset in snapshot.data.asset) {
728
+                                  var file = await asset.originFile;
729
+                                  final image = await toolbar
730
+                                      .editor.imageDelegate
731
+                                      .picked(file, snapshot.data.isFullImage);
732
+                                  if (image != null) {
733
+                                    toolbar.editor.formatSelection(
734
+                                        NotusAttribute.embed.image(image));
735
+                                  }
736
+                                }
737
+                              }
738
+                            : null,
673
                         child: Container(
739
                         child: Container(
674
                           height: 30,
740
                           height: 30,
675
                           alignment: Alignment.center,
741
                           alignment: Alignment.center,
676
                           padding: EdgeInsets.symmetric(horizontal: 20),
742
                           padding: EdgeInsets.symmetric(horizontal: 20),
677
                           child: Text(
743
                           child: Text(
678
-                              '上传 ${snapshot.data.asset.isNotEmpty ? "(${snapshot.data.asset.length})" : ''}',
679
-                              style: TextStyle(
680
-                                color: Colors.white,
681
-                                fontSize: 14,
682
-                              ),
744
+                            '上传 ${snapshot.data.asset.isNotEmpty ? "(${snapshot.data.asset.length})" : ''}',
745
+                            style: TextStyle(
746
+                              color: Colors.white,
747
+                              fontSize: 14,
683
                             ),
748
                             ),
684
                           ),
749
                           ),
685
                         ),
750
                         ),
751
+                      ),
686
                     ],
752
                     ],
687
                   );
753
                   );
688
                 },
754
                 },
757
 
823
 
758
   void showOverlay() {
824
   void showOverlay() {
759
     final toolbar = ZefyrToolbar.of(context);
825
     final toolbar = ZefyrToolbar.of(context);
760
-    toolbar.showOverlay(buildOverlay).whenComplete(cancelEdit);
826
+    toolbar.showOverlay(buildOverlay, ZefyrToolbarAction.link).whenComplete(cancelEdit);
761
   }
827
   }
762
 
828
 
763
   void closeOverlay() {
829
   void closeOverlay() {

+ 1
- 1
packages/zefyr/lib/src/widgets/editable_text.dart View File

310
     final scope = ZefyrScope.of(context);
310
     final scope = ZefyrScope.of(context);
311
     var showKeyboard = true;
311
     var showKeyboard = true;
312
     if (_focusNode.consumeKeyboardToken()) {
312
     if (_focusNode.consumeKeyboardToken()) {
313
-      showKeyboard = scope.tapHandle == null;
313
+      showKeyboard = scope.keepOverlay == false;
314
     } else {
314
     } else {
315
       showKeyboard = false;
315
       showKeyboard = false;
316
     }
316
     }

+ 2
- 1
packages/zefyr/lib/src/widgets/editor.dart View File

116
 
116
 
117
   void _handleChange() {
117
   void _handleChange() {
118
     if (_scope.focusOwner == FocusOwner.none) {
118
     if (_scope.focusOwner == FocusOwner.none) {
119
-      if (_scope.tapHandle == null) {
119
+      if (!_scope.keepOverlay) {
120
+        _scope.toolbarAction = null;
120
         hideToolbar();
121
         hideToolbar();
121
       }
122
       }
122
     } else if (!hasToolbar) {
123
     } else if (!hasToolbar) {

+ 182
- 181
packages/zefyr/lib/src/widgets/iconfont.dart View File

4
   ZefyrFont._();
4
   ZefyrFont._();
5
   static const String _family = 'ZefyrFont';
5
   static const String _family = 'ZefyrFont';
6
   static const String _fontPackage = 'zefyr';
6
   static const String _fontPackage = 'zefyr';
7
-  static const IconData global_language = IconData(0xe725, fontFamily: _family , fontPackage: _fontPackage);
8
-	static const IconData light = IconData(0xe723, fontFamily: _family , fontPackage: _fontPackage);
9
-	static const IconData checked = IconData(0xe724, fontFamily: _family , fontPackage: _fontPackage);
10
-  static const IconData largetitle_dropdown = IconData(0xe722, fontFamily: _family , fontPackage: _fontPackage);
11
-	static const IconData global_toast_loading_delete = IconData(0xe721, fontFamily: _family , fontPackage: _fontPackage);
12
-	static const IconData toast_fail = IconData(0xe71e, fontFamily: _family , fontPackage: _fontPackage);
13
-	static const IconData toast_success = IconData(0xe71f, fontFamily: _family , fontPackage: _fontPackage);
14
-	static const IconData toast_loading = IconData(0xe720, fontFamily: _family , fontPackage: _fontPackage);
15
-	static const IconData global_sidebar_profile = IconData(0xe71d, fontFamily: _family , fontPackage: _fontPackage);
16
-	static const IconData lightmode = IconData(0xe71c, fontFamily: _family , fontPackage: _fontPackage);
17
-	static const IconData salary_details_time = IconData(0xe71b, fontFamily: _family , fontPackage: _fontPackage);
18
-	static const IconData share = IconData(0xe719, fontFamily: _family , fontPackage: _fontPackage);
19
-	static const IconData btn_global_videoplay = IconData(0xe6c5, fontFamily: _family , fontPackage: _fontPackage);
20
-	static const IconData im_groupdetails_archive = IconData(0xe6cf, fontFamily: _family , fontPackage: _fontPackage);
21
-	static const IconData im_notice_arrow = IconData(0xe71a, fontFamily: _family , fontPackage: _fontPackage);
22
-	static const IconData minus = IconData(0xe718, fontFamily: _family , fontPackage: _fontPackage);
23
-	static const IconData staffdetails_review = IconData(0xe716, fontFamily: _family , fontPackage: _fontPackage);
24
-	static const IconData staffdetails_salary = IconData(0xe717, fontFamily: _family , fontPackage: _fontPackage);
7
+  static const IconData note_editor_emoji = IconData(0xe728, fontFamily: _family, fontPackage: _fontPackage);
8
+  static const IconData global_language = IconData(0xe725, fontFamily: _family, fontPackage: _fontPackage);
9
+	static const IconData light = IconData(0xe723, fontFamily: _family, fontPackage: _fontPackage);
10
+	static const IconData checked = IconData(0xe724, fontFamily: _family, fontPackage: _fontPackage);
11
+  static const IconData largetitle_dropdown = IconData(0xe722, fontFamily: _family, fontPackage: _fontPackage);
12
+	static const IconData global_toast_loading_delete = IconData(0xe721, fontFamily: _family, fontPackage: _fontPackage);
13
+	static const IconData toast_fail = IconData(0xe71e, fontFamily: _family, fontPackage: _fontPackage);
14
+	static const IconData toast_success = IconData(0xe71f, fontFamily: _family, fontPackage: _fontPackage);
15
+	static const IconData toast_loading = IconData(0xe720, fontFamily: _family, fontPackage: _fontPackage);
16
+	static const IconData global_sidebar_profile = IconData(0xe71d, fontFamily: _family, fontPackage: _fontPackage);
17
+	static const IconData lightmode = IconData(0xe71c, fontFamily: _family, fontPackage: _fontPackage);
18
+	static const IconData salary_details_time = IconData(0xe71b, fontFamily: _family, fontPackage: _fontPackage);
19
+	static const IconData share = IconData(0xe719, fontFamily: _family, fontPackage: _fontPackage);
20
+	static const IconData btn_global_videoplay = IconData(0xe6c5, fontFamily: _family, fontPackage: _fontPackage);
21
+	static const IconData im_groupdetails_archive = IconData(0xe6cf, fontFamily: _family, fontPackage: _fontPackage);
22
+	static const IconData im_notice_arrow = IconData(0xe71a, fontFamily: _family, fontPackage: _fontPackage);
23
+	static const IconData minus = IconData(0xe718, fontFamily: _family, fontPackage: _fontPackage);
24
+	static const IconData staffdetails_review = IconData(0xe716, fontFamily: _family, fontPackage: _fontPackage);
25
+	static const IconData staffdetails_salary = IconData(0xe717, fontFamily: _family, fontPackage: _fontPackage);
25
   static const IconData list_update_fail =
26
   static const IconData list_update_fail =
26
-      IconData(0xe715, fontFamily: _family , fontPackage: _fontPackage);
27
+      IconData(0xe715, fontFamily: _family, fontPackage: _fontPackage);
27
   static const IconData list_update_complete =
28
   static const IconData list_update_complete =
28
-      IconData(0xe712, fontFamily: _family , fontPackage: _fontPackage);
29
+      IconData(0xe712, fontFamily: _family, fontPackage: _fontPackage);
29
   static const IconData list_update_pull =
30
   static const IconData list_update_pull =
30
-      IconData(0xe713, fontFamily: _family , fontPackage: _fontPackage);
31
+      IconData(0xe713, fontFamily: _family, fontPackage: _fontPackage);
31
   static const IconData list_update_loading =
32
   static const IconData list_update_loading =
32
-      IconData(0xe714, fontFamily: _family , fontPackage: _fontPackage);
33
+      IconData(0xe714, fontFamily: _family, fontPackage: _fontPackage);
33
   static const IconData contact_organization =
34
   static const IconData contact_organization =
34
-      IconData(0xe70d, fontFamily: _family , fontPackage: _fontPackage);
35
+      IconData(0xe70d, fontFamily: _family, fontPackage: _fontPackage);
35
   static const IconData contact_outsider =
36
   static const IconData contact_outsider =
36
-      IconData(0xe70e, fontFamily: _family , fontPackage: _fontPackage);
37
-  static const IconData contact_new = IconData(0xe70f, fontFamily: _family , fontPackage: _fontPackage);
38
-  static const IconData contact_mygroup = IconData(0xe710, fontFamily: _family , fontPackage: _fontPackage);
39
-  static const IconData contact_robot = IconData(0xe711, fontFamily: _family , fontPackage: _fontPackage);
40
-  static const IconData note_createnote = IconData(0xe70b, fontFamily: _family , fontPackage: _fontPackage);
37
+      IconData(0xe70e, fontFamily: _family, fontPackage: _fontPackage);
38
+  static const IconData contact_new = IconData(0xe70f, fontFamily: _family, fontPackage: _fontPackage);
39
+  static const IconData contact_mygroup = IconData(0xe710, fontFamily: _family, fontPackage: _fontPackage);
40
+  static const IconData contact_robot = IconData(0xe711, fontFamily: _family, fontPackage: _fontPackage);
41
+  static const IconData note_createnote = IconData(0xe70b, fontFamily: _family, fontPackage: _fontPackage);
41
   static const IconData note_createfolder =
42
   static const IconData note_createfolder =
42
-      IconData(0xe70c, fontFamily: _family , fontPackage: _fontPackage);
43
-  static const IconData rating_full = IconData(0xe708, fontFamily: _family , fontPackage: _fontPackage);
44
-  static const IconData rating_half = IconData(0xe709, fontFamily: _family , fontPackage: _fontPackage);
45
-  static const IconData rating_unfull = IconData(0xe70a, fontFamily: _family , fontPackage: _fontPackage);
43
+      IconData(0xe70c, fontFamily: _family, fontPackage: _fontPackage);
44
+  static const IconData rating_full = IconData(0xe708, fontFamily: _family, fontPackage: _fontPackage);
45
+  static const IconData rating_half = IconData(0xe709, fontFamily: _family, fontPackage: _fontPackage);
46
+  static const IconData rating_unfull = IconData(0xe70a, fontFamily: _family, fontPackage: _fontPackage);
46
   static const IconData note_searchfile_pre =
47
   static const IconData note_searchfile_pre =
47
-      IconData(0xe706, fontFamily: _family , fontPackage: _fontPackage);
48
+      IconData(0xe706, fontFamily: _family, fontPackage: _fontPackage);
48
   static const IconData note_searchfile_next =
49
   static const IconData note_searchfile_next =
49
-      IconData(0xe707, fontFamily: _family , fontPackage: _fontPackage);
50
+      IconData(0xe707, fontFamily: _family, fontPackage: _fontPackage);
50
   static const IconData note_notelist_more =
51
   static const IconData note_notelist_more =
51
-      IconData(0xe705, fontFamily: _family , fontPackage: _fontPackage);
52
+      IconData(0xe705, fontFamily: _family, fontPackage: _fontPackage);
52
   static const IconData note_notelist_folder =
53
   static const IconData note_notelist_folder =
53
-      IconData(0xe700, fontFamily: _family , fontPackage: _fontPackage);
54
+      IconData(0xe700, fontFamily: _family, fontPackage: _fontPackage);
54
   static const IconData note_notelist_emptyfolder =
55
   static const IconData note_notelist_emptyfolder =
55
-      IconData(0xe701, fontFamily: _family , fontPackage: _fontPackage);
56
+      IconData(0xe701, fontFamily: _family, fontPackage: _fontPackage);
56
   static const IconData note_notelist_rubbish =
57
   static const IconData note_notelist_rubbish =
57
-      IconData(0xe702, fontFamily: _family , fontPackage: _fontPackage);
58
+      IconData(0xe702, fontFamily: _family, fontPackage: _fontPackage);
58
   static const IconData note_notelist_note =
59
   static const IconData note_notelist_note =
59
-      IconData(0xe703, fontFamily: _family , fontPackage: _fontPackage);
60
+      IconData(0xe703, fontFamily: _family, fontPackage: _fontPackage);
60
   static const IconData note_notelist_savefolder =
61
   static const IconData note_notelist_savefolder =
61
-      IconData(0xe704, fontFamily: _family , fontPackage: _fontPackage);
62
+      IconData(0xe704, fontFamily: _family, fontPackage: _fontPackage);
62
   static const IconData note_more_comment =
63
   static const IconData note_more_comment =
63
-      IconData(0xe6f7, fontFamily: _family , fontPackage: _fontPackage);
64
+      IconData(0xe6f7, fontFamily: _family, fontPackage: _fontPackage);
64
   static const IconData note_more_history =
65
   static const IconData note_more_history =
65
-      IconData(0xe6f8, fontFamily: _family , fontPackage: _fontPackage);
66
-  static const IconData note_more_info = IconData(0xe6f9, fontFamily: _family , fontPackage: _fontPackage);
66
+      IconData(0xe6f8, fontFamily: _family, fontPackage: _fontPackage);
67
+  static const IconData note_more_info = IconData(0xe6f9, fontFamily: _family, fontPackage: _fontPackage);
67
   static const IconData note_more_search =
68
   static const IconData note_more_search =
68
-      IconData(0xe6fa, fontFamily: _family , fontPackage: _fontPackage);
69
-  static const IconData note_more_copy = IconData(0xe6fb, fontFamily: _family , fontPackage: _fontPackage);
70
-  static const IconData note_more_pin = IconData(0xe6fc, fontFamily: _family , fontPackage: _fontPackage);
69
+      IconData(0xe6fa, fontFamily: _family, fontPackage: _fontPackage);
70
+  static const IconData note_more_copy = IconData(0xe6fb, fontFamily: _family, fontPackage: _fontPackage);
71
+  static const IconData note_more_pin = IconData(0xe6fc, fontFamily: _family, fontPackage: _fontPackage);
71
   static const IconData note_more_delete =
72
   static const IconData note_more_delete =
72
-      IconData(0xe6fd, fontFamily: _family , fontPackage: _fontPackage);
73
+      IconData(0xe6fd, fontFamily: _family, fontPackage: _fontPackage);
73
   static const IconData note_more_favorite =
74
   static const IconData note_more_favorite =
74
-      IconData(0xe6fe, fontFamily: _family , fontPackage: _fontPackage);
75
-  static const IconData note_more_move = IconData(0xe6ff, fontFamily: _family , fontPackage: _fontPackage);
75
+      IconData(0xe6fe, fontFamily: _family, fontPackage: _fontPackage);
76
+  static const IconData note_more_move = IconData(0xe6ff, fontFamily: _family, fontPackage: _fontPackage);
76
   static const IconData note_editor_text_h =
77
   static const IconData note_editor_text_h =
77
-      IconData(0xe6e4, fontFamily: _family , fontPackage: _fontPackage);
78
+      IconData(0xe6e4, fontFamily: _family, fontPackage: _fontPackage);
78
   static const IconData note_editor_text_code =
79
   static const IconData note_editor_text_code =
79
-      IconData(0xe6e5, fontFamily: _family , fontPackage: _fontPackage);
80
+      IconData(0xe6e5, fontFamily: _family, fontPackage: _fontPackage);
80
   static const IconData note_editor_text_bold =
81
   static const IconData note_editor_text_bold =
81
-      IconData(0xe6e6, fontFamily: _family , fontPackage: _fontPackage);
82
+      IconData(0xe6e6, fontFamily: _family, fontPackage: _fontPackage);
82
   static const IconData note_editor_text_h1 =
83
   static const IconData note_editor_text_h1 =
83
-      IconData(0xe6e7, fontFamily: _family , fontPackage: _fontPackage);
84
+      IconData(0xe6e7, fontFamily: _family, fontPackage: _fontPackage);
84
   static const IconData note_editor_text_center =
85
   static const IconData note_editor_text_center =
85
-      IconData(0xe6e8, fontFamily: _family , fontPackage: _fontPackage);
86
+      IconData(0xe6e8, fontFamily: _family, fontPackage: _fontPackage);
86
   static const IconData note_editor_text_deleteline =
87
   static const IconData note_editor_text_deleteline =
87
-      IconData(0xe6e9, fontFamily: _family , fontPackage: _fontPackage);
88
+      IconData(0xe6e9, fontFamily: _family, fontPackage: _fontPackage);
88
   static const IconData note_editor_text_left =
89
   static const IconData note_editor_text_left =
89
-      IconData(0xe6ea, fontFamily: _family , fontPackage: _fontPackage);
90
+      IconData(0xe6ea, fontFamily: _family, fontPackage: _fontPackage);
90
   static const IconData note_editor_text_h2 =
91
   static const IconData note_editor_text_h2 =
91
-      IconData(0xe6eb, fontFamily: _family , fontPackage: _fontPackage);
92
+      IconData(0xe6eb, fontFamily: _family, fontPackage: _fontPackage);
92
   static const IconData note_editor_text_h3 =
93
   static const IconData note_editor_text_h3 =
93
-      IconData(0xe6ec, fontFamily: _family , fontPackage: _fontPackage);
94
+      IconData(0xe6ec, fontFamily: _family, fontPackage: _fontPackage);
94
   static const IconData note_editor_text_right =
95
   static const IconData note_editor_text_right =
95
-      IconData(0xe6ed, fontFamily: _family , fontPackage: _fontPackage);
96
+      IconData(0xe6ed, fontFamily: _family, fontPackage: _fontPackage);
96
   static const IconData note_editor_text_hr =
97
   static const IconData note_editor_text_hr =
97
-      IconData(0xe6ee, fontFamily: _family , fontPackage: _fontPackage);
98
+      IconData(0xe6ee, fontFamily: _family, fontPackage: _fontPackage);
98
   static const IconData note_editor_text_h4 =
99
   static const IconData note_editor_text_h4 =
99
-      IconData(0xe6ef, fontFamily: _family , fontPackage: _fontPackage);
100
+      IconData(0xe6ef, fontFamily: _family, fontPackage: _fontPackage);
100
   static const IconData note_editor_text_underline =
101
   static const IconData note_editor_text_underline =
101
-      IconData(0xe6f0, fontFamily: _family , fontPackage: _fontPackage);
102
+      IconData(0xe6f0, fontFamily: _family, fontPackage: _fontPackage);
102
   static const IconData note_editor_text_ul =
103
   static const IconData note_editor_text_ul =
103
-      IconData(0xe6f1, fontFamily: _family , fontPackage: _fontPackage);
104
+      IconData(0xe6f1, fontFamily: _family, fontPackage: _fontPackage);
104
   static const IconData note_editor_text_quote =
105
   static const IconData note_editor_text_quote =
105
-      IconData(0xe6f2, fontFamily: _family , fontPackage: _fontPackage);
106
+      IconData(0xe6f2, fontFamily: _family, fontPackage: _fontPackage);
106
   static const IconData note_editor_text_in =
107
   static const IconData note_editor_text_in =
107
-      IconData(0xe6f3, fontFamily: _family , fontPackage: _fontPackage);
108
+      IconData(0xe6f3, fontFamily: _family, fontPackage: _fontPackage);
108
   static const IconData note_editor_text_h5 =
109
   static const IconData note_editor_text_h5 =
109
-      IconData(0xe6f4, fontFamily: _family , fontPackage: _fontPackage);
110
+      IconData(0xe6f4, fontFamily: _family, fontPackage: _fontPackage);
110
   static const IconData note_editor_text_para =
111
   static const IconData note_editor_text_para =
111
-      IconData(0xe6f5, fontFamily: _family , fontPackage: _fontPackage);
112
+      IconData(0xe6f5, fontFamily: _family, fontPackage: _fontPackage);
112
   static const IconData note_editor_text_ol =
113
   static const IconData note_editor_text_ol =
113
-      IconData(0xe6f6, fontFamily: _family , fontPackage: _fontPackage);
114
+      IconData(0xe6f6, fontFamily: _family, fontPackage: _fontPackage);
114
   static const IconData note_editor_unkeyboard =
115
   static const IconData note_editor_unkeyboard =
115
-      IconData(0xe6dc, fontFamily: _family , fontPackage: _fontPackage);
116
+      IconData(0xe6dc, fontFamily: _family, fontPackage: _fontPackage);
116
   static const IconData note_editor_keyboard =
117
   static const IconData note_editor_keyboard =
117
-      IconData(0xe6dd, fontFamily: _family , fontPackage: _fontPackage);
118
+      IconData(0xe6dd, fontFamily: _family, fontPackage: _fontPackage);
118
   static const IconData note_editor_redo =
119
   static const IconData note_editor_redo =
119
-      IconData(0xe6de, fontFamily: _family , fontPackage: _fontPackage);
120
+      IconData(0xe6de, fontFamily: _family, fontPackage: _fontPackage);
120
   static const IconData note_editor_undo =
121
   static const IconData note_editor_undo =
121
-      IconData(0xe6df, fontFamily: _family , fontPackage: _fontPackage);
122
+      IconData(0xe6df, fontFamily: _family, fontPackage: _fontPackage);
122
   static const IconData note_editor_text =
123
   static const IconData note_editor_text =
123
-      IconData(0xe6e0, fontFamily: _family , fontPackage: _fontPackage);
124
+      IconData(0xe6e0, fontFamily: _family, fontPackage: _fontPackage);
124
   static const IconData note_editor_image =
125
   static const IconData note_editor_image =
125
-      IconData(0xe6e1, fontFamily: _family , fontPackage: _fontPackage);
126
+      IconData(0xe6e1, fontFamily: _family, fontPackage: _fontPackage);
126
   static const IconData note_editor_link =
127
   static const IconData note_editor_link =
127
-      IconData(0xe6e2, fontFamily: _family , fontPackage: _fontPackage);
128
+      IconData(0xe6e2, fontFamily: _family, fontPackage: _fontPackage);
128
   static const IconData note_editor_save =
129
   static const IconData note_editor_save =
129
-      IconData(0xe6e3, fontFamily: _family , fontPackage: _fontPackage);
130
+      IconData(0xe6e3, fontFamily: _family, fontPackage: _fontPackage);
130
   static const IconData desktop_todolist_warning =
131
   static const IconData desktop_todolist_warning =
131
-      IconData(0xe6d8, fontFamily: _family , fontPackage: _fontPackage);
132
+      IconData(0xe6d8, fontFamily: _family, fontPackage: _fontPackage);
132
   static const IconData desktop_global_calender =
133
   static const IconData desktop_global_calender =
133
-      IconData(0xe6d9, fontFamily: _family , fontPackage: _fontPackage);
134
+      IconData(0xe6d9, fontFamily: _family, fontPackage: _fontPackage);
134
   static const IconData desktop_global_repeat =
135
   static const IconData desktop_global_repeat =
135
-      IconData(0xe6da, fontFamily: _family , fontPackage: _fontPackage);
136
+      IconData(0xe6da, fontFamily: _family, fontPackage: _fontPackage);
136
   static const IconData desktop_global_important =
137
   static const IconData desktop_global_important =
137
-      IconData(0xe6db, fontFamily: _family , fontPackage: _fontPackage);
138
+      IconData(0xe6db, fontFamily: _family, fontPackage: _fontPackage);
138
   static const IconData startpage_jointeam =
139
   static const IconData startpage_jointeam =
139
-      IconData(0xe6d6, fontFamily: _family , fontPackage: _fontPackage);
140
+      IconData(0xe6d6, fontFamily: _family, fontPackage: _fontPackage);
140
   static const IconData startpage_creatteam =
141
   static const IconData startpage_creatteam =
141
-      IconData(0xe6d7, fontFamily: _family , fontPackage: _fontPackage);
142
+      IconData(0xe6d7, fontFamily: _family, fontPackage: _fontPackage);
142
   static const IconData staffdetails_videocall =
143
   static const IconData staffdetails_videocall =
143
-      IconData(0xe6d3, fontFamily: _family , fontPackage: _fontPackage);
144
+      IconData(0xe6d3, fontFamily: _family, fontPackage: _fontPackage);
144
   static const IconData staffdetails_voicecall =
145
   static const IconData staffdetails_voicecall =
145
-      IconData(0xe6d4, fontFamily: _family , fontPackage: _fontPackage);
146
+      IconData(0xe6d4, fontFamily: _family, fontPackage: _fontPackage);
146
   static const IconData staffdetails_sendmessage =
147
   static const IconData staffdetails_sendmessage =
147
-      IconData(0xe6d5, fontFamily: _family , fontPackage: _fontPackage);
148
+      IconData(0xe6d5, fontFamily: _family, fontPackage: _fontPackage);
148
   static const IconData staffdetails_job =
149
   static const IconData staffdetails_job =
149
-      IconData(0xe6d0, fontFamily: _family , fontPackage: _fontPackage);
150
+      IconData(0xe6d0, fontFamily: _family, fontPackage: _fontPackage);
150
   static const IconData staffdetails_contact =
151
   static const IconData staffdetails_contact =
151
-      IconData(0xe6d1, fontFamily: _family , fontPackage: _fontPackage);
152
+      IconData(0xe6d1, fontFamily: _family, fontPackage: _fontPackage);
152
   static const IconData staffdetails_basic =
153
   static const IconData staffdetails_basic =
153
-      IconData(0xe6d2, fontFamily: _family , fontPackage: _fontPackage);
154
+      IconData(0xe6d2, fontFamily: _family, fontPackage: _fontPackage);
154
   static const IconData selectpeople_delete =
155
   static const IconData selectpeople_delete =
155
-      IconData(0xe6cf, fontFamily: _family , fontPackage: _fontPackage);
156
+      IconData(0xe6cf, fontFamily: _family, fontPackage: _fontPackage);
156
   static const IconData im_comment_empty =
157
   static const IconData im_comment_empty =
157
-      IconData(0xe6ce, fontFamily: _family , fontPackage: _fontPackage);
158
+      IconData(0xe6ce, fontFamily: _family, fontPackage: _fontPackage);
158
   static const IconData im_filebar_download =
159
   static const IconData im_filebar_download =
159
-      IconData(0xe6c8, fontFamily: _family , fontPackage: _fontPackage);
160
+      IconData(0xe6c8, fontFamily: _family, fontPackage: _fontPackage);
160
   static const IconData im_filebar_favorite_faved =
161
   static const IconData im_filebar_favorite_faved =
161
-      IconData(0xe6c9, fontFamily: _family , fontPackage: _fontPackage);
162
+      IconData(0xe6c9, fontFamily: _family, fontPackage: _fontPackage);
162
   static const IconData im_filebar_forward =
163
   static const IconData im_filebar_forward =
163
-      IconData(0xe6ca, fontFamily: _family , fontPackage: _fontPackage);
164
+      IconData(0xe6ca, fontFamily: _family, fontPackage: _fontPackage);
164
   static const IconData im_filebar_comment =
165
   static const IconData im_filebar_comment =
165
-      IconData(0xe6cb, fontFamily: _family , fontPackage: _fontPackage);
166
+      IconData(0xe6cb, fontFamily: _family, fontPackage: _fontPackage);
166
   static const IconData im_filebar_delete =
167
   static const IconData im_filebar_delete =
167
-      IconData(0xe6cc, fontFamily: _family , fontPackage: _fontPackage);
168
+      IconData(0xe6cc, fontFamily: _family, fontPackage: _fontPackage);
168
   static const IconData im_filebar_favorite_unfav =
169
   static const IconData im_filebar_favorite_unfav =
169
-      IconData(0xe6cd, fontFamily: _family , fontPackage: _fontPackage);
170
+      IconData(0xe6cd, fontFamily: _family, fontPackage: _fontPackage);
170
   static const IconData im_groupdetails_edit =
171
   static const IconData im_groupdetails_edit =
171
-      IconData(0xe6c5, fontFamily: _family , fontPackage: _fontPackage);
172
+      IconData(0xe6c5, fontFamily: _family, fontPackage: _fontPackage);
172
   static const IconData im_groupdetails_member =
173
   static const IconData im_groupdetails_member =
173
-      IconData(0xe6c6, fontFamily: _family , fontPackage: _fontPackage);
174
+      IconData(0xe6c6, fontFamily: _family, fontPackage: _fontPackage);
174
   static const IconData im_groupdetails_robot =
175
   static const IconData im_groupdetails_robot =
175
-      IconData(0xe6c7, fontFamily: _family , fontPackage: _fontPackage);
176
+      IconData(0xe6c7, fontFamily: _family, fontPackage: _fontPackage);
176
   static const IconData im_groupdetails_file =
177
   static const IconData im_groupdetails_file =
177
-      IconData(0xe6c1, fontFamily: _family , fontPackage: _fontPackage);
178
+      IconData(0xe6c1, fontFamily: _family, fontPackage: _fontPackage);
178
   static const IconData im_groupdetails_history =
179
   static const IconData im_groupdetails_history =
179
-      IconData(0xe6c2, fontFamily: _family , fontPackage: _fontPackage);
180
+      IconData(0xe6c2, fontFamily: _family, fontPackage: _fontPackage);
180
   static const IconData im_groupdetails_pin =
181
   static const IconData im_groupdetails_pin =
181
-      IconData(0xe6c3, fontFamily: _family , fontPackage: _fontPackage);
182
+      IconData(0xe6c3, fontFamily: _family, fontPackage: _fontPackage);
182
   static const IconData im_groupdetails_board =
183
   static const IconData im_groupdetails_board =
183
-      IconData(0xe6c4, fontFamily: _family , fontPackage: _fontPackage);
184
+      IconData(0xe6c4, fontFamily: _family, fontPackage: _fontPackage);
184
   static const IconData im_list_nodisturb =
185
   static const IconData im_list_nodisturb =
185
-      IconData(0xe6c0, fontFamily: _family , fontPackage: _fontPackage);
186
+      IconData(0xe6c0, fontFamily: _family, fontPackage: _fontPackage);
186
   static const IconData im_videocall_camera =
187
   static const IconData im_videocall_camera =
187
-      IconData(0xe6ba, fontFamily: _family , fontPackage: _fontPackage);
188
+      IconData(0xe6ba, fontFamily: _family, fontPackage: _fontPackage);
188
   static const IconData im_voicecall_sound =
189
   static const IconData im_voicecall_sound =
189
-      IconData(0xe6bb, fontFamily: _family , fontPackage: _fontPackage);
190
+      IconData(0xe6bb, fontFamily: _family, fontPackage: _fontPackage);
190
   static const IconData im_videocall_stretch =
191
   static const IconData im_videocall_stretch =
191
-      IconData(0xe6bc, fontFamily: _family , fontPackage: _fontPackage);
192
+      IconData(0xe6bc, fontFamily: _family, fontPackage: _fontPackage);
192
   static const IconData im_voicecall_video =
193
   static const IconData im_voicecall_video =
193
-      IconData(0xe6bd, fontFamily: _family , fontPackage: _fontPackage);
194
+      IconData(0xe6bd, fontFamily: _family, fontPackage: _fontPackage);
194
   static const IconData im_videocall_voice =
195
   static const IconData im_videocall_voice =
195
-      IconData(0xe6be, fontFamily: _family , fontPackage: _fontPackage);
196
+      IconData(0xe6be, fontFamily: _family, fontPackage: _fontPackage);
196
   static const IconData im_voicecall_mute =
197
   static const IconData im_voicecall_mute =
197
-      IconData(0xe6bf, fontFamily: _family , fontPackage: _fontPackage);
198
+      IconData(0xe6bf, fontFamily: _family, fontPackage: _fontPackage);
198
   static const IconData im_sidebar_favorite =
199
   static const IconData im_sidebar_favorite =
199
-      IconData(0xe6b6, fontFamily: _family , fontPackage: _fontPackage);
200
-  static const IconData im_sidebar_file = IconData(0xe6b7, fontFamily: _family , fontPackage: _fontPackage);
201
-  static const IconData im_sidebar_at = IconData(0xe6b8, fontFamily: _family , fontPackage: _fontPackage);
200
+      IconData(0xe6b6, fontFamily: _family, fontPackage: _fontPackage);
201
+  static const IconData im_sidebar_file = IconData(0xe6b7, fontFamily: _family, fontPackage: _fontPackage);
202
+  static const IconData im_sidebar_at = IconData(0xe6b8, fontFamily: _family, fontPackage: _fontPackage);
202
   static const IconData im_sidebar_notice =
203
   static const IconData im_sidebar_notice =
203
-      IconData(0xe6b9, fontFamily: _family , fontPackage: _fontPackage);
204
+      IconData(0xe6b9, fontFamily: _family, fontPackage: _fontPackage);
204
   static const IconData im_dialoge_more_voicecall =
205
   static const IconData im_dialoge_more_voicecall =
205
-      IconData(0xe6af, fontFamily: _family , fontPackage: _fontPackage);
206
+      IconData(0xe6af, fontFamily: _family, fontPackage: _fontPackage);
206
   static const IconData im_dialoge_more_takephoto =
207
   static const IconData im_dialoge_more_takephoto =
207
-      IconData(0xe6b0, fontFamily: _family , fontPackage: _fontPackage);
208
+      IconData(0xe6b0, fontFamily: _family, fontPackage: _fontPackage);
208
   static const IconData im_dialoge_more_album =
209
   static const IconData im_dialoge_more_album =
209
-      IconData(0xe6b1, fontFamily: _family , fontPackage: _fontPackage);
210
+      IconData(0xe6b1, fontFamily: _family, fontPackage: _fontPackage);
210
   static const IconData im_dialoge_more_note =
211
   static const IconData im_dialoge_more_note =
211
-      IconData(0xe6b2, fontFamily: _family , fontPackage: _fontPackage);
212
+      IconData(0xe6b2, fontFamily: _family, fontPackage: _fontPackage);
212
   static const IconData im_dialoge_more_task =
213
   static const IconData im_dialoge_more_task =
213
-      IconData(0xe6b3, fontFamily: _family , fontPackage: _fontPackage);
214
+      IconData(0xe6b3, fontFamily: _family, fontPackage: _fontPackage);
214
   static const IconData im_dialoge_more_videocall =
215
   static const IconData im_dialoge_more_videocall =
215
-      IconData(0xe6b4, fontFamily: _family , fontPackage: _fontPackage);
216
+      IconData(0xe6b4, fontFamily: _family, fontPackage: _fontPackage);
216
   static const IconData im_dialoge_more_project =
217
   static const IconData im_dialoge_more_project =
217
-      IconData(0xe6b5, fontFamily: _family , fontPackage: _fontPackage);
218
+      IconData(0xe6b5, fontFamily: _family, fontPackage: _fontPackage);
218
   static const IconData im_dialogebar_sendmore =
219
   static const IconData im_dialogebar_sendmore =
219
-      IconData(0xe6ac, fontFamily: _family , fontPackage: _fontPackage);
220
+      IconData(0xe6ac, fontFamily: _family, fontPackage: _fontPackage);
220
   static const IconData im_dialogebar_sendemoji =
221
   static const IconData im_dialogebar_sendemoji =
221
-      IconData(0xe6ad, fontFamily: _family , fontPackage: _fontPackage);
222
+      IconData(0xe6ad, fontFamily: _family, fontPackage: _fontPackage);
222
   static const IconData im_dialogebar_sendvoice =
223
   static const IconData im_dialogebar_sendvoice =
223
-      IconData(0xe6ae, fontFamily: _family , fontPackage: _fontPackage);
224
+      IconData(0xe6ae, fontFamily: _family, fontPackage: _fontPackage);
224
   static const IconData im_dialoge_voicestop =
225
   static const IconData im_dialoge_voicestop =
225
-      IconData(0xe6a7, fontFamily: _family , fontPackage: _fontPackage);
226
+      IconData(0xe6a7, fontFamily: _family, fontPackage: _fontPackage);
226
   static const IconData im_dialoge_voice =
227
   static const IconData im_dialoge_voice =
227
-      IconData(0xe6a8, fontFamily: _family , fontPackage: _fontPackage);
228
-  static const IconData im_dialoge_pin = IconData(0xe6a9, fontFamily: _family , fontPackage: _fontPackage);
228
+      IconData(0xe6a8, fontFamily: _family, fontPackage: _fontPackage);
229
+  static const IconData im_dialoge_pin = IconData(0xe6a9, fontFamily: _family, fontPackage: _fontPackage);
229
   static const IconData im_dialoge_voiceplay =
230
   static const IconData im_dialoge_voiceplay =
230
-      IconData(0xe6aa, fontFamily: _family , fontPackage: _fontPackage);
231
+      IconData(0xe6aa, fontFamily: _family, fontPackage: _fontPackage);
231
   static const IconData im_dialoge_record =
232
   static const IconData im_dialoge_record =
232
-      IconData(0xe6ab, fontFamily: _family , fontPackage: _fontPackage);
233
+      IconData(0xe6ab, fontFamily: _family, fontPackage: _fontPackage);
233
   static const IconData global_list_arrow =
234
   static const IconData global_list_arrow =
234
-      IconData(0xe6a5, fontFamily: _family , fontPackage: _fontPackage);
235
+      IconData(0xe6a5, fontFamily: _family, fontPackage: _fontPackage);
235
   static const IconData global_list_delete =
236
   static const IconData global_list_delete =
236
-      IconData(0xe6a6, fontFamily: _family , fontPackage: _fontPackage);
237
+      IconData(0xe6a6, fontFamily: _family, fontPackage: _fontPackage);
237
   static const IconData multiselect_unselected =
238
   static const IconData multiselect_unselected =
238
-      IconData(0xe6a2, fontFamily: _family , fontPackage: _fontPackage);
239
+      IconData(0xe6a2, fontFamily: _family, fontPackage: _fontPackage);
239
   static const IconData multiselect_audio =
240
   static const IconData multiselect_audio =
240
-      IconData(0xe6a3, fontFamily: _family , fontPackage: _fontPackage);
241
+      IconData(0xe6a3, fontFamily: _family, fontPackage: _fontPackage);
241
   static const IconData multiselect_selected =
242
   static const IconData multiselect_selected =
242
-      IconData(0xe6a4, fontFamily: _family , fontPackage: _fontPackage);
243
-  static const IconData login_dropdown = IconData(0xe6a1, fontFamily: _family , fontPackage: _fontPackage);
243
+      IconData(0xe6a4, fontFamily: _family, fontPackage: _fontPackage);
244
+  static const IconData login_dropdown = IconData(0xe6a1, fontFamily: _family, fontPackage: _fontPackage);
244
   static const IconData global_actionsheet_close =
245
   static const IconData global_actionsheet_close =
245
-      IconData(0xe6a0, fontFamily: _family , fontPackage: _fontPackage);
246
+      IconData(0xe6a0, fontFamily: _family, fontPackage: _fontPackage);
246
   static const IconData global_sidebar_status =
247
   static const IconData global_sidebar_status =
247
-      IconData(0xe69f, fontFamily: _family , fontPackage: _fontPackage);
248
+      IconData(0xe69f, fontFamily: _family, fontPackage: _fontPackage);
248
   static const IconData global_sidebar_qrcode =
249
   static const IconData global_sidebar_qrcode =
249
-      IconData(0xe69a, fontFamily: _family , fontPackage: _fontPackage);
250
+      IconData(0xe69a, fontFamily: _family, fontPackage: _fontPackage);
250
   static const IconData global_sidebar_teamsetting =
251
   static const IconData global_sidebar_teamsetting =
251
-      IconData(0xe69b, fontFamily: _family , fontPackage: _fontPackage);
252
+      IconData(0xe69b, fontFamily: _family, fontPackage: _fontPackage);
252
   static const IconData global_sidebar_account =
253
   static const IconData global_sidebar_account =
253
-      IconData(0xe69c, fontFamily: _family , fontPackage: _fontPackage);
254
+      IconData(0xe69c, fontFamily: _family, fontPackage: _fontPackage);
254
   static const IconData global_sidebar_noticesetting =
255
   static const IconData global_sidebar_noticesetting =
255
-      IconData(0xe69d, fontFamily: _family , fontPackage: _fontPackage);
256
+      IconData(0xe69d, fontFamily: _family, fontPackage: _fontPackage);
256
   static const IconData global_sidebar_system =
257
   static const IconData global_sidebar_system =
257
-      IconData(0xe69e, fontFamily: _family , fontPackage: _fontPackage);
258
+      IconData(0xe69e, fontFamily: _family, fontPackage: _fontPackage);
258
   static const IconData global_sidebar_notice =
259
   static const IconData global_sidebar_notice =
259
-      IconData(0xe698, fontFamily: _family , fontPackage: _fontPackage);
260
+      IconData(0xe698, fontFamily: _family, fontPackage: _fontPackage);
260
   static const IconData global_sidebar_darkmode =
261
   static const IconData global_sidebar_darkmode =
261
-      IconData(0xe699, fontFamily: _family , fontPackage: _fontPackage);
262
+      IconData(0xe699, fontFamily: _family, fontPackage: _fontPackage);
262
   static const IconData global_sidebar_lightmode =
263
   static const IconData global_sidebar_lightmode =
263
-      IconData(0xe71c, fontFamily: _family , fontPackage: _fontPackage);
264
+      IconData(0xe71c, fontFamily: _family, fontPackage: _fontPackage);
264
   static const IconData global_sidebar_add =
265
   static const IconData global_sidebar_add =
265
-      IconData(0xe697, fontFamily: _family , fontPackage: _fontPackage);
266
+      IconData(0xe697, fontFamily: _family, fontPackage: _fontPackage);
266
   static const IconData global_share_more =
267
   static const IconData global_share_more =
267
-      IconData(0xe691, fontFamily: _family , fontPackage: _fontPackage);
268
+      IconData(0xe691, fontFamily: _family, fontPackage: _fontPackage);
268
   static const IconData global_share_message =
269
   static const IconData global_share_message =
269
-      IconData(0xe692, fontFamily: _family , fontPackage: _fontPackage);
270
-  static const IconData global_share_qq = IconData(0xe693, fontFamily: _family , fontPackage: _fontPackage);
270
+      IconData(0xe692, fontFamily: _family, fontPackage: _fontPackage);
271
+  static const IconData global_share_qq = IconData(0xe693, fontFamily: _family, fontPackage: _fontPackage);
271
   static const IconData global_share_copylink =
272
   static const IconData global_share_copylink =
272
-      IconData(0xe694, fontFamily: _family , fontPackage: _fontPackage);
273
+      IconData(0xe694, fontFamily: _family, fontPackage: _fontPackage);
273
   static const IconData global_share_weibo =
274
   static const IconData global_share_weibo =
274
-      IconData(0xe695, fontFamily: _family , fontPackage: _fontPackage);
275
+      IconData(0xe695, fontFamily: _family, fontPackage: _fontPackage);
275
   static const IconData global_share_wechat =
276
   static const IconData global_share_wechat =
276
-      IconData(0xe696, fontFamily: _family , fontPackage: _fontPackage);
277
+      IconData(0xe696, fontFamily: _family, fontPackage: _fontPackage);
277
   static const IconData global_searchbox_delete =
278
   static const IconData global_searchbox_delete =
278
-      IconData(0xe68f, fontFamily: _family , fontPackage: _fontPackage);
279
+      IconData(0xe68f, fontFamily: _family, fontPackage: _fontPackage);
279
   static const IconData global_searchbox_search =
280
   static const IconData global_searchbox_search =
280
-      IconData(0xe690, fontFamily: _family , fontPackage: _fontPackage);
281
+      IconData(0xe690, fontFamily: _family, fontPackage: _fontPackage);
281
   static const IconData global_invitecode_refresh =
282
   static const IconData global_invitecode_refresh =
282
-      IconData(0xe68c, fontFamily: _family , fontPackage: _fontPackage);
283
+      IconData(0xe68c, fontFamily: _family, fontPackage: _fontPackage);
283
   static const IconData global_invitecode_link =
284
   static const IconData global_invitecode_link =
284
-      IconData(0xe68d, fontFamily: _family , fontPackage: _fontPackage);
285
+      IconData(0xe68d, fontFamily: _family, fontPackage: _fontPackage);
285
   static const IconData global_invitecode_qrcode =
286
   static const IconData global_invitecode_qrcode =
286
-      IconData(0xe68e, fontFamily: _family , fontPackage: _fontPackage);
287
+      IconData(0xe68e, fontFamily: _family, fontPackage: _fontPackage);
287
   static const IconData global_invite_qrcode =
288
   static const IconData global_invite_qrcode =
288
-      IconData(0xe688, fontFamily: _family , fontPackage: _fontPackage);
289
+      IconData(0xe688, fontFamily: _family, fontPackage: _fontPackage);
289
   static const IconData global_invite_code =
290
   static const IconData global_invite_code =
290
-      IconData(0xe689, fontFamily: _family , fontPackage: _fontPackage);
291
+      IconData(0xe689, fontFamily: _family, fontPackage: _fontPackage);
291
   static const IconData global_invite_wechat =
292
   static const IconData global_invite_wechat =
292
-      IconData(0xe68a, fontFamily: _family , fontPackage: _fontPackage);
293
+      IconData(0xe68a, fontFamily: _family, fontPackage: _fontPackage);
293
   static const IconData global_invite_qq =
294
   static const IconData global_invite_qq =
294
-      IconData(0xe68b, fontFamily: _family , fontPackage: _fontPackage);
295
+      IconData(0xe68b, fontFamily: _family, fontPackage: _fontPackage);
295
   static const IconData global_hoverbtn_add =
296
   static const IconData global_hoverbtn_add =
296
-      IconData(0xe686, fontFamily: _family , fontPackage: _fontPackage);
297
+      IconData(0xe686, fontFamily: _family, fontPackage: _fontPackage);
297
   static const IconData global_hoverbtn_close =
298
   static const IconData global_hoverbtn_close =
298
-      IconData(0xe687, fontFamily: _family , fontPackage: _fontPackage);
299
-  static const IconData tabbar_note = IconData(0xe681, fontFamily: _family , fontPackage: _fontPackage);
300
-  static const IconData tabbar_desktop = IconData(0xe682, fontFamily: _family , fontPackage: _fontPackage);
301
-  static const IconData tabbar_explore = IconData(0xe683, fontFamily: _family , fontPackage: _fontPackage);
302
-  static const IconData tabbar_message = IconData(0xe684, fontFamily: _family , fontPackage: _fontPackage);
303
-  static const IconData tabbar_contact = IconData(0xe685, fontFamily: _family , fontPackage: _fontPackage);
304
-  static const IconData topbar_back = IconData(0xe680, fontFamily: _family , fontPackage: _fontPackage);
299
+      IconData(0xe687, fontFamily: _family, fontPackage: _fontPackage);
300
+  static const IconData tabbar_note = IconData(0xe681, fontFamily: _family, fontPackage: _fontPackage);
301
+  static const IconData tabbar_desktop = IconData(0xe682, fontFamily: _family, fontPackage: _fontPackage);
302
+  static const IconData tabbar_explore = IconData(0xe683, fontFamily: _family, fontPackage: _fontPackage);
303
+  static const IconData tabbar_message = IconData(0xe684, fontFamily: _family, fontPackage: _fontPackage);
304
+  static const IconData tabbar_contact = IconData(0xe685, fontFamily: _family, fontPackage: _fontPackage);
305
+  static const IconData topbar_back = IconData(0xe680, fontFamily: _family, fontPackage: _fontPackage);
305
   static const IconData topbar_closesidebar =
306
   static const IconData topbar_closesidebar =
306
-      IconData(0xe67d, fontFamily: _family , fontPackage: _fontPackage);
307
-  static const IconData topbar_people = IconData(0xe67e, fontFamily: _family , fontPackage: _fontPackage);
308
-  static const IconData topbar_sidebar = IconData(0xe67f, fontFamily: _family , fontPackage: _fontPackage);
309
-  static const IconData topbar_add = IconData(0xe674, fontFamily: _family , fontPackage: _fontPackage);
310
-  static const IconData topbar_more = IconData(0xe675, fontFamily: _family , fontPackage: _fontPackage);
311
-  static const IconData topbar_addrobot = IconData(0xe676, fontFamily: _family , fontPackage: _fontPackage);
307
+      IconData(0xe67d, fontFamily: _family, fontPackage: _fontPackage);
308
+  static const IconData topbar_people = IconData(0xe67e, fontFamily: _family, fontPackage: _fontPackage);
309
+  static const IconData topbar_sidebar = IconData(0xe67f, fontFamily: _family, fontPackage: _fontPackage);
310
+  static const IconData topbar_add = IconData(0xe674, fontFamily: _family, fontPackage: _fontPackage);
311
+  static const IconData topbar_more = IconData(0xe675, fontFamily: _family, fontPackage: _fontPackage);
312
+  static const IconData topbar_addrobot = IconData(0xe676, fontFamily: _family, fontPackage: _fontPackage);
312
   static const IconData topbar_calenderview =
313
   static const IconData topbar_calenderview =
313
-      IconData(0xe677, fontFamily: _family , fontPackage: _fontPackage);
314
-  static const IconData topbar_invite = IconData(0xe678, fontFamily: _family , fontPackage: _fontPackage);
315
-  static const IconData topbar_share = IconData(0xe679, fontFamily: _family , fontPackage: _fontPackage);
316
-  static const IconData topbar_group = IconData(0xe67a, fontFamily: _family , fontPackage: _fontPackage);
317
-  static const IconData topbar_setting = IconData(0xe67b, fontFamily: _family , fontPackage: _fontPackage);
318
-  static const IconData topbar_close = IconData(0xe67c, fontFamily: _family , fontPackage: _fontPackage);
314
+      IconData(0xe677, fontFamily: _family, fontPackage: _fontPackage);
315
+  static const IconData topbar_invite = IconData(0xe678, fontFamily: _family, fontPackage: _fontPackage);
316
+  static const IconData topbar_share = IconData(0xe679, fontFamily: _family, fontPackage: _fontPackage);
317
+  static const IconData topbar_group = IconData(0xe67a, fontFamily: _family, fontPackage: _fontPackage);
318
+  static const IconData topbar_setting = IconData(0xe67b, fontFamily: _family, fontPackage: _fontPackage);
319
+  static const IconData topbar_close = IconData(0xe67c, fontFamily: _family, fontPackage: _fontPackage);
319
 }
320
 }

+ 2
- 1
packages/zefyr/lib/src/widgets/image.dart View File

2
 // for details. All rights reserved. Use of this source code is governed by a
2
 // for details. All rights reserved. Use of this source code is governed by a
3
 // BSD-style license that can be found in the LICENSE file.
3
 // BSD-style license that can be found in the LICENSE file.
4
 import 'dart:async';
4
 import 'dart:async';
5
+import 'dart:io';
5
 import 'dart:math' as math;
6
 import 'dart:math' as math;
6
 import 'dart:ui' as ui;
7
 import 'dart:ui' as ui;
7
 
8
 
40
   /// by a file hosting service like AWS S3 or Google Drive.
41
   /// by a file hosting service like AWS S3 or Google Drive.
41
   Future<String> pickImage(S source);
42
   Future<String> pickImage(S source);
42
 
43
 
43
-  Future<String> picked(AssetEntity list, bool isFullImage);
44
+  Future<String> picked(File file, bool isFullImage);
44
 }
45
 }
45
 
46
 
46
 class ZefyrImage extends StatefulWidget {
47
 class ZefyrImage extends StatefulWidget {

+ 27
- 8
packages/zefyr/lib/src/widgets/scope.dart View File

10
 import 'input.dart';
10
 import 'input.dart';
11
 import 'mode.dart';
11
 import 'mode.dart';
12
 import 'render_context.dart';
12
 import 'render_context.dart';
13
+import 'toolbar.dart';
13
 import 'view.dart';
14
 import 'view.dart';
14
 
15
 
15
 /// Provides access to shared state of [ZefyrEditor] or [ZefyrView].
16
 /// Provides access to shared state of [ZefyrEditor] or [ZefyrView].
71
   InputConnectionController _input;
72
   InputConnectionController _input;
72
   InputConnectionController get input => _input;
73
   InputConnectionController get input => _input;
73
 
74
 
74
-  TapHandle _tapHandle;
75
-  TapHandle get tapHandle => _tapHandle;
76
-  set tapHandle(TapHandle value) {
77
-    if (_tapHandle != value) {
78
-      _tapHandle = value;
75
+  bool _keepOverlay = false;
76
+  bool get keepOverlay => _keepOverlay;
77
+  set keepOverlay(bool value) {
78
+    if (_keepOverlay != value) {
79
+      _keepOverlay = value;
80
+      // if (value) {
81
+      //   _toolbarAction = null;
82
+      // }
83
+      notifyListeners();
84
+    }
85
+  }
86
+
87
+  ZefyrToolbarAction _toolbarAction;
88
+  ZefyrToolbarAction get toolbarAction => _toolbarAction;
89
+  set toolbarAction(ZefyrToolbarAction value) {
90
+    if (_toolbarAction != value) {
91
+      _toolbarAction = value;
92
+      if (value != null) {
93
+        hideKeyboard();
94
+      } else {
95
+        showKeyboard();
96
+        _keepOverlay = false;
97
+      }
79
       notifyListeners();
98
       notifyListeners();
80
     }
99
     }
81
   }
100
   }
230
     assert(isEditable);
249
     assert(isEditable);
231
     assert(!_disposed);
250
     assert(!_disposed);
232
     _focusNode.unfocus();
251
     _focusNode.unfocus();
233
-    tapHandle = null;
252
+    //tapHandle = null;
234
   }
253
   }
235
 
254
 
236
   void showKeyboard() {
255
   void showKeyboard() {
237
     assert(isEditable);
256
     assert(isEditable);
238
     assert(!_disposed);
257
     assert(!_disposed);
239
     SystemChannels.textInput.invokeMethod('TextInput.show');
258
     SystemChannels.textInput.invokeMethod('TextInput.show');
240
-    tapHandle = null;
259
+    //tapHandle = null;
241
   }
260
   }
242
 
261
 
243
   void hideKeyboard() {
262
   void hideKeyboard() {
244
     assert(isEditable);
263
     assert(isEditable);
245
     assert(!_disposed);
264
     assert(!_disposed);
246
     SystemChannels.textInput.invokeMethod('TextInput.hide');
265
     SystemChannels.textInput.invokeMethod('TextInput.hide');
247
-    tapHandle = null;
266
+    //tapHandle = null;
248
   }
267
   }
249
 
268
 
250
   @override
269
   @override

+ 12
- 4
packages/zefyr/lib/src/widgets/theme.dart View File

491
   /// The background color of the toolbar.
491
   /// The background color of the toolbar.
492
   final Color color;
492
   final Color color;
493
 
493
 
494
+  final Color surfaceColor;
495
+
494
   /// Color of buttons in toggled state.
496
   /// Color of buttons in toggled state.
495
   final Color toggleColor;
497
   final Color toggleColor;
496
 
498
 
510
     final theme = Theme.of(context);
512
     final theme = Theme.of(context);
511
     return ToolbarTheme._(
513
     return ToolbarTheme._(
512
       color: theme.brightness == Brightness.light ? Color(0xFFFFFFFF) : Color(0xFF282828),
514
       color: theme.brightness == Brightness.light ? Color(0xFFFFFFFF) : Color(0xFF282828),
515
+      surfaceColor: Color(0xFF8C8C8C),
513
       toggleColor: Color(0xFF01AAFF),
516
       toggleColor: Color(0xFF01AAFF),
514
       iconFillColor: theme.brightness == Brightness.light ? Color(0xFFF2F2F2) : Color(0xFF1F1F1F),
517
       iconFillColor: theme.brightness == Brightness.light ? Color(0xFFF2F2F2) : Color(0xFF1F1F1F),
515
       iconColor: Color(0xFF595959),
518
       iconColor: Color(0xFF595959),
516
-      disabledIconColor: theme.disabledColor,
517
-      dividerColor: theme.dividerColor ?? (theme.brightness == Brightness.light ? Color(0xFFF2F2F2) : Color(0xFF3B3B3B)),
519
+      disabledIconColor: theme.brightness == Brightness.light ? Color(0xFFBFBFBF) : Color(0xFF363636),
520
+      dividerColor: theme.brightness == Brightness.light ? Color(0xFFF2F2F2) : Color(0xFF3B3B3B),
518
     );
521
     );
519
   }
522
   }
520
 
523
 
521
   ToolbarTheme._({
524
   ToolbarTheme._({
522
     @required this.color,
525
     @required this.color,
526
+    @required this.surfaceColor,
523
     @required this.toggleColor,
527
     @required this.toggleColor,
524
     @required this.iconFillColor,
528
     @required this.iconFillColor,
525
     @required this.iconColor,
529
     @required this.iconColor,
531
   /// been merged with the matching property from the `other` object.
535
   /// been merged with the matching property from the `other` object.
532
   ToolbarTheme copyWith({
536
   ToolbarTheme copyWith({
533
     Color color,
537
     Color color,
538
+    Color surfaceColor,
534
     Color toggleColor,
539
     Color toggleColor,
535
     Color iconFillColor,
540
     Color iconFillColor,
536
     Color iconColor,
541
     Color iconColor,
539
   }) {
544
   }) {
540
     return ToolbarTheme._(
545
     return ToolbarTheme._(
541
       color: color ?? this.color,
546
       color: color ?? this.color,
547
+      surfaceColor: surfaceColor ?? this.surfaceColor,
542
       toggleColor: toggleColor ?? this.toggleColor,
548
       toggleColor: toggleColor ?? this.toggleColor,
543
       iconFillColor: iconFillColor ?? this.iconFillColor,
549
       iconFillColor: iconFillColor ?? this.iconFillColor,
544
       iconColor: iconColor ?? this.iconColor,
550
       iconColor: iconColor ?? this.iconColor,
553
     if (other == null) return this;
559
     if (other == null) return this;
554
     return copyWith(
560
     return copyWith(
555
       color: other.color ?? color,
561
       color: other.color ?? color,
562
+      surfaceColor: other.surfaceColor ?? surfaceColor,
556
       toggleColor: other.toggleColor ?? toggleColor,
563
       toggleColor: other.toggleColor ?? toggleColor,
557
       iconFillColor: other.iconFillColor ?? iconFillColor,
564
       iconFillColor: other.iconFillColor ?? iconFillColor,
558
       iconColor: other.iconColor ?? iconColor,
565
       iconColor: other.iconColor ?? iconColor,
566
     if (other.runtimeType != runtimeType) return false;
573
     if (other.runtimeType != runtimeType) return false;
567
     final ToolbarTheme otherTheme = other;
574
     final ToolbarTheme otherTheme = other;
568
     return (otherTheme.color == color) &&
575
     return (otherTheme.color == color) &&
576
+        (otherTheme.surfaceColor == surfaceColor) &&
569
         (otherTheme.toggleColor == toggleColor) &&
577
         (otherTheme.toggleColor == toggleColor) &&
570
         (otherTheme.iconFillColor == iconFillColor) &&
578
         (otherTheme.iconFillColor == iconFillColor) &&
571
         (otherTheme.iconColor == iconColor) &&
579
         (otherTheme.iconColor == iconColor) &&
572
-        (otherTheme.disabledIconColor == disabledIconColor);
580
+        (otherTheme.disabledIconColor == disabledIconColor) &&
573
         (otherTheme.dividerColor == dividerColor);
581
         (otherTheme.dividerColor == dividerColor);
574
   }
582
   }
575
 
583
 
576
   @override
584
   @override
577
   int get hashCode =>
585
   int get hashCode =>
578
-      hashValues(color, toggleColor, iconFillColor, iconColor, disabledIconColor, dividerColor);
586
+      hashValues(color, surfaceColor, toggleColor, iconFillColor, iconColor, disabledIconColor, dividerColor);
579
 }
587
 }

+ 55
- 12
packages/zefyr/lib/src/widgets/toolbar.dart View File

22
   link,
22
   link,
23
   unlink,
23
   unlink,
24
   emoji,
24
   emoji,
25
+  undo,
26
+  redo,
27
+  save,
25
   clipboardCopy,
28
   clipboardCopy,
26
   openInBrowser,
29
   openInBrowser,
27
   heading,
30
   heading,
50
   ZefyrToolbarAction.bold: NotusAttribute.bold,
53
   ZefyrToolbarAction.bold: NotusAttribute.bold,
51
   ZefyrToolbarAction.italic: NotusAttribute.italic,
54
   ZefyrToolbarAction.italic: NotusAttribute.italic,
52
   ZefyrToolbarAction.link: NotusAttribute.link,
55
   ZefyrToolbarAction.link: NotusAttribute.link,
56
+  // ZefyrToolbarAction.text: NotusAttribute.heading,
53
   ZefyrToolbarAction.heading: NotusAttribute.heading,
57
   ZefyrToolbarAction.heading: NotusAttribute.heading,
54
   ZefyrToolbarAction.headingLevel1: NotusAttribute.heading.level1,
58
   ZefyrToolbarAction.headingLevel1: NotusAttribute.heading.level1,
55
   ZefyrToolbarAction.headingLevel2: NotusAttribute.heading.level2,
59
   ZefyrToolbarAction.headingLevel2: NotusAttribute.heading.level2,
63
 
67
 
64
 const kDefaultButtonIcons = {
68
 const kDefaultButtonIcons = {
65
   ZefyrToolbarAction.heading: ZefyrFont.note_editor_text,
69
   ZefyrToolbarAction.heading: ZefyrFont.note_editor_text,
66
-  ZefyrToolbarAction.emoji: ZefyrFont.im_dialogebar_sendemoji,
70
+  ZefyrToolbarAction.emoji: ZefyrFont.note_editor_emoji,
67
   ZefyrToolbarAction.image: ZefyrFont.note_editor_image,
71
   ZefyrToolbarAction.image: ZefyrFont.note_editor_image,
68
   ZefyrToolbarAction.link: ZefyrFont.note_editor_link,
72
   ZefyrToolbarAction.link: ZefyrFont.note_editor_link,
73
+  ZefyrToolbarAction.undo: ZefyrFont.note_editor_undo,
74
+  ZefyrToolbarAction.redo: ZefyrFont.note_editor_redo,
75
+  ZefyrToolbarAction.save: ZefyrFont.note_editor_save,
69
   ZefyrToolbarAction.hideKeyboard: ZefyrFont.note_editor_keyboard,
76
   ZefyrToolbarAction.hideKeyboard: ZefyrFont.note_editor_keyboard,
70
   ZefyrToolbarAction.showKeyboard: ZefyrFont.note_editor_unkeyboard,
77
   ZefyrToolbarAction.showKeyboard: ZefyrFont.note_editor_unkeyboard,
71
   ZefyrToolbarAction.close: Icons.close,
78
   ZefyrToolbarAction.close: Icons.close,
103
 
110
 
104
 const kDefaultButtonTexts = {};
111
 const kDefaultButtonTexts = {};
105
 
112
 
113
+final kToolbarDivider = Container(
114
+  width: 1,
115
+  color: Color(0xFFE2E2E2),
116
+  height: 28,
117
+  margin: EdgeInsets.symmetric(horizontal: 10),
118
+);
119
+
106
 /// Allows customizing appearance of [ZefyrToolbar].
120
 /// Allows customizing appearance of [ZefyrToolbar].
107
 abstract class ZefyrToolbarDelegate {
121
 abstract class ZefyrToolbarDelegate {
108
   /// Builds toolbar button for specified [action].
122
   /// Builds toolbar button for specified [action].
129
   Widget build(BuildContext context) {
143
   Widget build(BuildContext context) {
130
     final theme = ZefyrTheme.of(context).toolbarTheme;
144
     final theme = ZefyrTheme.of(context).toolbarTheme;
131
     final toolbar = ZefyrToolbar.of(context);
145
     final toolbar = ZefyrToolbar.of(context);
132
-    final constraints =
133
-        BoxConstraints.tightFor(height: ZefyrToolbar.kToolbarHeight);
146
+    final constraints = BoxConstraints.tightFor(height: ZefyrToolbar.kToolbarHeight);
134
     final children = <Widget>[
147
     final children = <Widget>[
135
       if (trailing != null)
148
       if (trailing != null)
136
         trailing
149
         trailing
143
     return Container(
156
     return Container(
144
       constraints: constraints,
157
       constraints: constraints,
145
       decoration: BoxDecoration(
158
       decoration: BoxDecoration(
146
-        border: Border(
147
-          top: BorderSide(color: theme.dividerColor, width: 1)
148
-        ),
159
+        boxShadow: [
160
+          BoxShadow(
161
+            color: Color(0x59000000),
162
+            offset: Offset(0, -4),
163
+            blurRadius: 14,
164
+          ),
165
+        ],
149
       ),
166
       ),
150
-      child: Material(color: theme.color, child: Row(children: children)),
167
+      child: Material(color: theme.color, child: Padding(
168
+        padding: const EdgeInsets.symmetric(horizontal: 10),
169
+        child: Row(children: children),
170
+      )),
151
     );
171
     );
152
   }
172
   }
153
 }
173
 }
223
     return _delegate.buildButton(context, action, onPressed: onPressed);
243
     return _delegate.buildButton(context, action, onPressed: onPressed);
224
   }
244
   }
225
 
245
 
226
-  Future<void> showOverlay(WidgetBuilder builder) async {
227
-    if (hasOverlay) {
246
+  Future<void> showOverlay(WidgetBuilder builder, ZefyrToolbarAction action) async {
247
+    if (editor.toolbarAction != null) {
228
       closeOverlay();
248
       closeOverlay();
249
+      if (editor.toolbarAction == action) {
250
+        return;
251
+      }
229
     }
252
     }
230
     final completer = Completer<void>();
253
     final completer = Completer<void>();
231
     setState(() {
254
     setState(() {
233
       _overlayCompleter = completer;
256
       _overlayCompleter = completer;
234
       _overlayAnimation.forward();
257
       _overlayAnimation.forward();
235
     });
258
     });
236
-    editor.hideKeyboard();
259
+    editor.toolbarAction = action;
237
     return completer.future;
260
     return completer.future;
238
   }
261
   }
239
 
262
 
245
         _overlayCompleter?.complete();
268
         _overlayCompleter?.complete();
246
         _overlayCompleter = null;
269
         _overlayCompleter = null;
247
       });
270
       });
248
-      editor.showKeyboard();
271
+      editor.toolbarAction = null;
249
     });
272
     });
250
   }
273
   }
251
 
274
 
291
 
314
 
292
     final toolbar = ZefyrToolbarScaffold(
315
     final toolbar = ZefyrToolbarScaffold(
293
       key: _toolbarKey,
316
       key: _toolbarKey,
294
-      body: ZefyrButtonList(buttons: _buildButtons(context)),
317
+      body: Row(
318
+        children: [
319
+          kToolbarDivider,
320
+          Expanded(child: ListView(
321
+            scrollDirection: Axis.horizontal,
322
+            children: [
323
+              HeadingButton(),
324
+              buildButton(context, ZefyrToolbarAction.emoji),
325
+              if (editor.imageDelegate != null) ImageButton(),
326
+              // ImageButton(),
327
+              LinkButton(),
328
+            ],
329
+            physics: ClampingScrollPhysics(),
330
+          ),),
331
+          kToolbarDivider,
332
+          buildButton(context, ZefyrToolbarAction.undo),
333
+          buildButton(context, ZefyrToolbarAction.redo),
334
+          kToolbarDivider,
335
+          buildButton(context, ZefyrToolbarAction.save),
336
+        ],
337
+      ),
295
       trailing: hasOverlay ? buildButton(context, ZefyrToolbarAction.showKeyboard) : buildButton(context, ZefyrToolbarAction.hideKeyboard),
338
       trailing: hasOverlay ? buildButton(context, ZefyrToolbarAction.showKeyboard) : buildButton(context, ZefyrToolbarAction.hideKeyboard),
296
     );
339
     );
297
     layers.add(toolbar);
340
     layers.add(toolbar);

+ 1
- 0
packages/zefyr/pubspec.yaml View File

17
     path: ../notus
17
     path: ../notus
18
   meta: ^1.1.0
18
   meta: ^1.1.0
19
   quiver_hashcode: ^2.0.0
19
   quiver_hashcode: ^2.0.0
20
+  image_picker: ^0.6.5
20
   photo: 
21
   photo: 
21
     path: /Users/imac/Documents/flutter/projects/mutli_image_picker
22
     path: /Users/imac/Documents/flutter/projects/mutli_image_picker
22
 
23