diff --git a/frontend/.vscode/tasks.json b/frontend/.vscode/tasks.json index 30b48151ab..6e906e4d2e 100644 --- a/frontend/.vscode/tasks.json +++ b/frontend/.vscode/tasks.json @@ -20,7 +20,8 @@ "AF: Flutter Pub Get", "AF: Flutter Package Get", "AF: Generate Language Files", - "AF: Generate Freezed Files" + "AF: Generate Freezed Files", + "AF: Generate Svg Files" ], "presentation": { "reveal": "always", @@ -38,7 +39,8 @@ "AF: Flutter Pub Get", "AF: Flutter Package Get", "AF: Generate Language Files", - "AF: Generate Freezed Files" + "AF: Generate Freezed Files", + "AF: Generate Svg Files" ], "presentation": { "reveal": "always", @@ -56,7 +58,8 @@ "AF: Flutter Pub Get", "AF: Flutter Package Get", "AF: Generate Language Files", - "AF: Generate Freezed Files" + "AF: Generate Freezed Files", + "AF: Generate Svg Files" ], "presentation": { "reveal": "always", @@ -107,7 +110,8 @@ "AF: Flutter Pub Get", "AF: Flutter Package Get", "AF: Generate Language Files", - "AF: Generate Freezed Files" + "AF: Generate Freezed Files", + "AF: Generate Svg Files" ], "group": { "kind": "build", @@ -161,7 +165,7 @@ ] } } - }, + } }, { "label": "AF: Generate Language Files", @@ -184,6 +188,27 @@ "cwd": "${workspaceFolder}" } }, + { + "label": "AF: Generate Svg Files", + "type": "shell", + "command": "sh ./scripts/code_generation/flowy_icons/generate_flowy_icons.sh", + "windows": { + "options": { + "shell": { + "executable": "cmd.exe", + "args": [ + "/d", + "/c", + ".\\scripts\\code_generation\\flowy_icons\\generate_flowy_icons.cmd" + ] + } + } + }, + "group": "build", + "options": { + "cwd": "${workspaceFolder}" + } + }, { "label": "AF: Flutter Clean", "type": "shell", @@ -197,10 +222,7 @@ "label": "AF: flutter build aar", "type": "flutter", "command": "flutter", - "args": [ - "build", - "aar" - ], + "args": ["build", "aar"], "group": "build", "problemMatcher": [], "detail": "appflowy_flutter" @@ -210,9 +232,7 @@ "type": "shell", "isBackground": true, "command": "yarn", - "args": [ - "dev" - ], + "args": ["dev"], "options": { "cwd": "${workspaceFolder}/appflowy_tauri" } @@ -245,10 +265,7 @@ "label": "AF: Tauri Clean + Dev", "type": "shell", "dependsOrder": "sequence", - "dependsOn": [ - "AF: Tauri Clean", - "AF: Tauri UI Dev" - ], + "dependsOn": ["AF: Tauri Clean", "AF: Tauri UI Dev"], "options": { "cwd": "${workspaceFolder}" } @@ -268,6 +285,6 @@ "options": { "cwd": "${workspaceFolder}/appflowy_flutter" } - }, + } ] -} \ No newline at end of file +} diff --git a/frontend/appflowy_flutter/.gitignore b/frontend/appflowy_flutter/.gitignore index c1b771a89c..e60f0bd4e8 100644 --- a/frontend/appflowy_flutter/.gitignore +++ b/frontend/appflowy_flutter/.gitignore @@ -77,3 +77,4 @@ coverage/ **/failures/*.png assets/translations/ +assets/flowy_icons/* \ No newline at end of file diff --git a/frontend/appflowy_flutter/assets/images/common/archive.svg b/frontend/appflowy_flutter/assets/images/common/archive.svg deleted file mode 100644 index 590dad7c38..0000000000 --- a/frontend/appflowy_flutter/assets/images/common/archive.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/frontend/appflowy_flutter/assets/images/common/information.svg b/frontend/appflowy_flutter/assets/images/common/information.svg deleted file mode 100644 index 3ff0998a03..0000000000 --- a/frontend/appflowy_flutter/assets/images/common/information.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/frontend/appflowy_flutter/assets/images/common/open_folder.svg b/frontend/appflowy_flutter/assets/images/common/open_folder.svg deleted file mode 100644 index cd81df9271..0000000000 --- a/frontend/appflowy_flutter/assets/images/common/open_folder.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/appflowy_flutter/assets/images/common/recover.svg b/frontend/appflowy_flutter/assets/images/common/recover.svg deleted file mode 100644 index 38d77b51de..0000000000 --- a/frontend/appflowy_flutter/assets/images/common/recover.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/frontend/appflowy_flutter/assets/images/common/settings.svg b/frontend/appflowy_flutter/assets/images/common/settings.svg deleted file mode 100644 index 92140a3c23..0000000000 --- a/frontend/appflowy_flutter/assets/images/common/settings.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/frontend/appflowy_flutter/assets/images/editor/Favorite/active.svg b/frontend/appflowy_flutter/assets/images/editor/Favorite/active.svg deleted file mode 100644 index 8ad54bbbb5..0000000000 --- a/frontend/appflowy_flutter/assets/images/editor/Favorite/active.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/appflowy_flutter/assets/images/editor/calendar.svg b/frontend/appflowy_flutter/assets/images/editor/calendar.svg deleted file mode 100644 index c69687bc2a..0000000000 --- a/frontend/appflowy_flutter/assets/images/editor/calendar.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/frontend/appflowy_flutter/assets/images/editor/delete.svg b/frontend/appflowy_flutter/assets/images/editor/delete.svg deleted file mode 100644 index cdf24226b4..0000000000 --- a/frontend/appflowy_flutter/assets/images/editor/delete.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/frontend/appflowy_flutter/assets/images/editor/duplicate.svg b/frontend/appflowy_flutter/assets/images/editor/duplicate.svg deleted file mode 100644 index 1ae2067c24..0000000000 --- a/frontend/appflowy_flutter/assets/images/editor/duplicate.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/frontend/appflowy_flutter/assets/images/editor/editor_check.svg b/frontend/appflowy_flutter/assets/images/editor/editor_check.svg deleted file mode 100644 index 8446cced9f..0000000000 --- a/frontend/appflowy_flutter/assets/images/editor/editor_check.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/frontend/appflowy_flutter/assets/images/editor/insert_emoticon.svg b/frontend/appflowy_flutter/assets/images/editor/insert_emoticon.svg deleted file mode 100644 index 8bb960e52d..0000000000 --- a/frontend/appflowy_flutter/assets/images/editor/insert_emoticon.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/frontend/appflowy_flutter/assets/images/editor/insert_emoticon_2.svg b/frontend/appflowy_flutter/assets/images/editor/insert_emoticon_2.svg deleted file mode 100644 index 66bbf7a626..0000000000 --- a/frontend/appflowy_flutter/assets/images/editor/insert_emoticon_2.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/frontend/appflowy_flutter/assets/images/editor/link.svg b/frontend/appflowy_flutter/assets/images/editor/link.svg deleted file mode 100644 index 5fbcc8d787..0000000000 --- a/frontend/appflowy_flutter/assets/images/editor/link.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/frontend/appflowy_flutter/assets/images/editor/math.svg b/frontend/appflowy_flutter/assets/images/editor/math.svg deleted file mode 100644 index 32e79a21ed..0000000000 --- a/frontend/appflowy_flutter/assets/images/editor/math.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/frontend/appflowy_flutter/assets/images/editor/option.svg b/frontend/appflowy_flutter/assets/images/editor/option.svg deleted file mode 100644 index 627c959f9f..0000000000 --- a/frontend/appflowy_flutter/assets/images/editor/option.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/frontend/appflowy_flutter/assets/images/file_icon.jpg b/frontend/appflowy_flutter/assets/images/file_icon.jpg deleted file mode 100644 index 88865fa004..0000000000 Binary files a/frontend/appflowy_flutter/assets/images/file_icon.jpg and /dev/null differ diff --git a/frontend/appflowy_flutter/assets/images/file_icon.svg b/frontend/appflowy_flutter/assets/images/file_icon.svg deleted file mode 100644 index f0fb8ce9ce..0000000000 --- a/frontend/appflowy_flutter/assets/images/file_icon.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/frontend/appflowy_flutter/assets/images/folder.svg b/frontend/appflowy_flutter/assets/images/folder.svg deleted file mode 100644 index 9c4d0dddb0..0000000000 --- a/frontend/appflowy_flutter/assets/images/folder.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/frontend/appflowy_flutter/assets/images/grid/checkmark.svg b/frontend/appflowy_flutter/assets/images/grid/checkmark.svg deleted file mode 100644 index f9c848f713..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/checkmark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/details.svg b/frontend/appflowy_flutter/assets/images/grid/details.svg deleted file mode 100644 index e4c9f58f27..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/details.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/duplicate.svg b/frontend/appflowy_flutter/assets/images/grid/duplicate.svg deleted file mode 100644 index f11048fd2f..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/duplicate.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/expander.svg b/frontend/appflowy_flutter/assets/images/grid/expander.svg deleted file mode 100644 index 179bdb1a9e..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/expander.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/field/checkbox.svg b/frontend/appflowy_flutter/assets/images/grid/field/checkbox.svg deleted file mode 100644 index 37f52c47ed..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/field/checkbox.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/field/checklist.svg b/frontend/appflowy_flutter/assets/images/grid/field/checklist.svg deleted file mode 100644 index 3a88d236a1..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/field/checklist.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/field/date.svg b/frontend/appflowy_flutter/assets/images/grid/field/date.svg deleted file mode 100644 index 78243f1e75..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/field/date.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/field/euro.svg b/frontend/appflowy_flutter/assets/images/grid/field/euro.svg deleted file mode 100644 index 95f511f687..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/field/euro.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/field/multi_select.svg b/frontend/appflowy_flutter/assets/images/grid/field/multi_select.svg deleted file mode 100644 index 97a2e9c434..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/field/multi_select.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/field/number.svg b/frontend/appflowy_flutter/assets/images/grid/field/number.svg deleted file mode 100644 index 9d8b98d10d..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/field/number.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/field/numbers.svg b/frontend/appflowy_flutter/assets/images/grid/field/numbers.svg deleted file mode 100644 index 9d8b98d10d..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/field/numbers.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/field/single_select.svg b/frontend/appflowy_flutter/assets/images/grid/field/single_select.svg deleted file mode 100644 index 8ccbc9a2e3..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/field/single_select.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/field/text.svg b/frontend/appflowy_flutter/assets/images/grid/field/text.svg deleted file mode 100644 index 7befa5080f..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/field/text.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/field/url.svg b/frontend/appflowy_flutter/assets/images/grid/field/url.svg deleted file mode 100644 index f00f5c7aa2..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/field/url.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/field/us_dollar.svg b/frontend/appflowy_flutter/assets/images/grid/field/us_dollar.svg deleted file mode 100644 index a8485cd6a1..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/field/us_dollar.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/field/yen.svg b/frontend/appflowy_flutter/assets/images/grid/field/yen.svg deleted file mode 100644 index 8e9bf47c99..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/field/yen.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/hide.svg b/frontend/appflowy_flutter/assets/images/grid/hide.svg deleted file mode 100644 index dfb6dbb90c..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/hide.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/left.svg b/frontend/appflowy_flutter/assets/images/grid/left.svg deleted file mode 100644 index 0f771a3858..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/left.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/more.svg b/frontend/appflowy_flutter/assets/images/grid/more.svg deleted file mode 100644 index b191e64a10..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/more.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/right.svg b/frontend/appflowy_flutter/assets/images/grid/right.svg deleted file mode 100644 index 7d738f4e69..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/right.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/setting/calendar_layout.svg b/frontend/appflowy_flutter/assets/images/grid/setting/calendar_layout.svg deleted file mode 100644 index 32423640d8..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/setting/calendar_layout.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/frontend/appflowy_flutter/assets/images/grid/setting/database_layout.svg b/frontend/appflowy_flutter/assets/images/grid/setting/database_layout.svg deleted file mode 100644 index e1bf39190a..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/setting/database_layout.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/frontend/appflowy_flutter/assets/images/grid/setting/group.svg b/frontend/appflowy_flutter/assets/images/grid/setting/group.svg deleted file mode 100644 index f0a6dff4f9..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/setting/group.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/setting/setting.svg b/frontend/appflowy_flutter/assets/images/grid/setting/setting.svg deleted file mode 100644 index 3d632703ab..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/setting/setting.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/frontend/appflowy_flutter/assets/images/grid/setting/sort.svg b/frontend/appflowy_flutter/assets/images/grid/setting/sort.svg deleted file mode 100644 index 06e17d62a9..0000000000 --- a/frontend/appflowy_flutter/assets/images/grid/setting/sort.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/frontend/appflowy_flutter/assets/images/home/new_app.svg b/frontend/appflowy_flutter/assets/images/home/new_app.svg deleted file mode 100644 index c74ac3b349..0000000000 --- a/frontend/appflowy_flutter/assets/images/home/new_app.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/frontend/appflowy_flutter/assets/images/home/unfavorite.svg b/frontend/appflowy_flutter/assets/images/home/unfavorite.svg deleted file mode 100644 index b8350ff917..0000000000 --- a/frontend/appflowy_flutter/assets/images/home/unfavorite.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/frontend/appflowy_flutter/lib/plugins/blank/blank.dart b/frontend/appflowy_flutter/lib/plugins/blank/blank.dart index d4c7bf8b1d..6599b3b236 100644 --- a/frontend/appflowy_flutter/lib/plugins/blank/blank.dart +++ b/frontend/appflowy_flutter/lib/plugins/blank/blank.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/workspace/presentation/home/home_stack.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flowy_infra_ui/style_widget/text.dart'; @@ -15,7 +16,7 @@ class BlankPluginBuilder extends PluginBuilder { String get menuName => "Blank"; @override - String get menuIcon => ""; + FlowySvgData get icon => const FlowySvgData(''); @override PluginType get pluginType => PluginType.blank; diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/board/board.dart b/frontend/appflowy_flutter/lib/plugins/database_view/board/board.dart index 22e5858d4f..10a25d7e52 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/board/board.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/board/board.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/tar_bar/tab_bar_view.dart'; import 'package:appflowy/startup/plugin/plugin.dart'; @@ -18,7 +19,7 @@ class BoardPluginBuilder implements PluginBuilder { String get menuName => LocaleKeys.board_menuName.tr(); @override - String get menuIcon => "editor/board"; + FlowySvgData get icon => FlowySvgs.board_s; @override PluginType get pluginType => PluginType.board; diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/board/presentation/board_page.dart b/frontend/appflowy_flutter/lib/plugins/database_view/board/presentation/board_page.dart index ebdfcc048e..d0729a4766 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/board/presentation/board_page.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/board/presentation/board_page.dart @@ -2,6 +2,7 @@ import 'dart:collection'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/application/database_controller.dart'; import 'package:appflowy/plugins/database_view/application/field/field_controller.dart'; @@ -15,7 +16,7 @@ import 'package:appflowy_backend/protobuf/flowy-database2/field_entities.pb.dart import 'package:appflowy_backend/protobuf/flowy-database2/row_entities.pb.dart'; import 'package:appflowy_board/appflowy_board.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/flowy_infra_ui_web.dart'; import 'package:flowy_infra_ui/style_widget/text.dart'; import 'package:flowy_infra_ui/widget/error_page.dart'; @@ -221,8 +222,8 @@ class _BoardContentState extends State { addIcon: SizedBox( height: 20, width: 20, - child: svgWidget( - "home/add", + child: FlowySvg( + FlowySvgs.add_s, color: Theme.of(context).iconTheme.color, ), ), @@ -244,8 +245,8 @@ class _BoardContentState extends State { icon: SizedBox( height: 20, width: 20, - child: svgWidget( - "home/add", + child: FlowySvg( + FlowySvgs.add_s, color: Theme.of(context).iconTheme.color, ), ), @@ -381,9 +382,9 @@ Widget? _buildHeaderIcon(GroupData customData) { case FieldType.Checkbox: final group = customData.asCheckboxGroup()!; if (group.isCheck) { - widget = svgWidget('editor/editor_check'); + widget = const FlowySvg(FlowySvgs.check_filled_s); } else { - widget = svgWidget('editor/editor_uncheck'); + widget = const FlowySvg(FlowySvgs.uncheck_s); } break; case FieldType.DateTime: diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/calendar/calendar.dart b/frontend/appflowy_flutter/lib/plugins/database_view/calendar/calendar.dart index aa5047ca2f..4a85ff3739 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/calendar/calendar.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/calendar/calendar.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/tar_bar/tab_bar_view.dart'; import 'package:appflowy/startup/plugin/plugin.dart'; @@ -18,7 +19,7 @@ class CalendarPluginBuilder extends PluginBuilder { String get menuName => LocaleKeys.calendar_menuName.tr(); @override - String get menuIcon => "editor/date"; + FlowySvgData get icon => FlowySvgs.date_s; @override PluginType get pluginType => PluginType.calendar; diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_day.dart b/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_day.dart index 28fe449561..93acd414a0 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_day.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_day.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/row/row_cache.dart'; import 'package:appflowy/plugins/database_view/widgets/card/card.dart'; import 'package:appflowy/plugins/database_view/widgets/card/card_cell_builder.dart'; @@ -6,7 +7,7 @@ import 'package:appflowy/plugins/database_view/widgets/card/cells/number_card_ce import 'package:appflowy/plugins/database_view/widgets/card/cells/url_card_cell.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/field_entities.pbenum.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/size.dart'; import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; @@ -177,7 +178,7 @@ class NewEventButton extends StatelessWidget { child: FlowyIconButton( onPressed: onCreate, iconPadding: EdgeInsets.zero, - icon: const FlowySvg(name: "home/add"), + icon: const FlowySvg(FlowySvgs.add_s), fillColor: Theme.of(context).colorScheme.background, hoverColor: AFThemeExtension.of(context).lightGreyHover, width: 22, diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_page.dart b/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_page.dart index 71520f5fe5..059ff9c973 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_page.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_page.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/application/database_controller.dart'; import 'package:appflowy/plugins/database_view/calendar/application/calendar_bloc.dart'; @@ -6,7 +7,7 @@ import 'package:appflowy_backend/protobuf/flowy-database2/calendar_entities.pb.d import 'package:appflowy_backend/protobuf/flowy-folder2/view.pb.dart'; import 'package:calendar_view/calendar_view.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; @@ -220,7 +221,7 @@ class _CalendarPageState extends State { FlowyIconButton( width: CalendarSize.navigatorButtonWidth, height: CalendarSize.navigatorButtonHeight, - icon: const FlowySvg(name: 'home/arrow_left'), + icon: const FlowySvg(FlowySvgs.arrow_left_s), tooltipText: LocaleKeys.calendar_navigation_previousMonth.tr(), hoverColor: AFThemeExtension.of(context).lightGreyHover, onPressed: () => _calendarState?.currentState?.previousPage(), @@ -238,7 +239,7 @@ class _CalendarPageState extends State { FlowyIconButton( width: CalendarSize.navigatorButtonWidth, height: CalendarSize.navigatorButtonHeight, - icon: const FlowySvg(name: 'home/arrow_right'), + icon: const FlowySvg(FlowySvgs.arrow_right_s), tooltipText: LocaleKeys.calendar_navigation_nextMonth.tr(), hoverColor: AFThemeExtension.of(context).lightGreyHover, onPressed: () => _calendarState?.currentState?.nextPage(), diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/toolbar/calendar_layout_setting.dart b/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/toolbar/calendar_layout_setting.dart index 79f718f9e2..47e828072e 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/toolbar/calendar_layout_setting.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/toolbar/calendar_layout_setting.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/application/field/field_controller.dart'; import 'package:appflowy/plugins/database_view/application/setting/property_bloc.dart'; @@ -9,7 +10,7 @@ import 'package:appflowy/workspace/presentation/widgets/toggle/toggle_style.dart import 'package:appflowy_backend/protobuf/flowy-database2/protobuf.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -250,9 +251,9 @@ class LayoutDateField extends StatelessWidget { onUpdated(fieldInfo.id); popoverMutex.close(); }, - leftIcon: const FlowySvg(name: 'grid/field/date'), + leftIcon: const FlowySvg(FlowySvgs.grid_s), rightIcon: fieldInfo.id == fieldId - ? const FlowySvg(name: 'grid/checkmark') + ? const FlowySvg(FlowySvgs.check_s) : null, ), ); @@ -442,7 +443,7 @@ class StartFromButton extends StatelessWidget { child: FlowyButton( text: FlowyText.medium(title), onTap: () => onTap(dayIndex), - rightIcon: isSelected ? const FlowySvg(name: 'grid/checkmark') : null, + rightIcon: isSelected ? const FlowySvg(FlowySvgs.check_s) : null, ), ); } diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/grid.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/grid.dart index 453f773796..6bce729003 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/grid.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/grid.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/tar_bar/tab_bar_view.dart'; import 'package:appflowy/startup/plugin/plugin.dart'; @@ -18,7 +19,7 @@ class GridPluginBuilder implements PluginBuilder { String get menuName => LocaleKeys.grid_menuName.tr(); @override - String get menuIcon => "editor/grid"; + FlowySvgData get icon => FlowySvgs.grid_s; @override PluginType get pluginType => PluginType.grid; diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/checkbox.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/checkbox.dart index c6bd3707b1..5879e27b5b 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/checkbox.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/checkbox.dart @@ -1,9 +1,10 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/grid/application/filter/checkbox_filter_editor_bloc.dart'; import 'package:appflowy/workspace/presentation/widgets/pop_up_action.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/checkbox_filter.pbenum.dart'; import 'package:flutter/material.dart'; @@ -190,7 +191,7 @@ class ConditionWrapper extends ActionCell { @override Widget? rightIcon(Color iconColor) { if (isSelected) { - return svgWidget("grid/checkmark"); + return const FlowySvg(FlowySvgs.check_s); } else { return null; } diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/choicechip.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/choicechip.dart index 9446c16ec8..572fdb6011 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/choicechip.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/choicechip.dart @@ -1,6 +1,7 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/grid/presentation/widgets/header/field_type_extension.dart'; import 'package:flowy_infra/theme_extension.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/style_widget/button.dart'; import 'package:flowy_infra_ui/style_widget/text.dart'; import 'package:flutter/material.dart'; @@ -44,8 +45,8 @@ class ChoiceChipButton extends StatelessWidget { ), margin: const EdgeInsets.symmetric(horizontal: 8, vertical: 2), radius: const BorderRadius.all(Radius.circular(14)), - leftIcon: svgWidget( - filterInfo.fieldInfo.fieldType.iconName(), + leftIcon: FlowySvg( + filterInfo.fieldInfo.fieldType.icon(), color: Theme.of(context).iconTheme.color, ), rightIcon: _ChoicechipFilterDesc(filterDesc: filterDesc), @@ -65,8 +66,8 @@ class _ChoicechipFilterDesc extends StatelessWidget { Widget build(BuildContext context) { final arrow = Transform.rotate( angle: -math.pi / 2, - child: svgWidget( - "home/arrow_left", + child: FlowySvg( + FlowySvgs.arrow_left_s, color: AFThemeExtension.of(context).textColor, ), ); diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/select_option/condition_list.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/select_option/condition_list.dart index e3151f51d9..a229e39768 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/select_option/condition_list.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/select_option/condition_list.dart @@ -1,8 +1,9 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/workspace/presentation/widgets/pop_up_action.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:appflowy_backend/protobuf/flowy-database2/field_entities.pb.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/select_option_filter.pb.dart'; import 'package:flutter/material.dart'; @@ -69,7 +70,7 @@ class ConditionWrapper extends ActionCell { @override Widget? rightIcon(Color iconColor) { if (isSelected) { - return svgWidget("grid/checkmark"); + return const FlowySvg(FlowySvgs.check_s); } else { return null; } diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/select_option/option_list.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/select_option/option_list.dart index c4a344f683..224e832abe 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/select_option/option_list.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/select_option/option_list.dart @@ -1,7 +1,8 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/grid/application/filter/select_option_filter_list_bloc.dart'; import 'package:appflowy/plugins/database_view/grid/presentation/layout/sizes.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/select_option.pb.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/widget/spacing.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/field_entities.pbenum.dart'; import 'package:flutter/material.dart'; @@ -112,9 +113,9 @@ class _SelectOptionFilterCellState extends State { }, children: [ if (widget.isSelected) - Padding( - padding: const EdgeInsets.only(right: 6), - child: svgWidget("grid/checkmark"), + const Padding( + padding: EdgeInsets.only(right: 6), + child: FlowySvg(FlowySvgs.check_s), ), ], ), diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/text.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/text.dart index 7db9776746..aa1f35ced9 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/text.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/choicechip/text.dart @@ -1,8 +1,9 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/workspace/presentation/widgets/pop_up_action.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/text_filter.pb.dart'; import 'package:flutter/material.dart'; @@ -220,7 +221,7 @@ class ConditionWrapper extends ActionCell { @override Widget? rightIcon(Color iconColor) { if (isSelected) { - return svgWidget("grid/checkmark"); + return const FlowySvg(FlowySvgs.check_s); } else { return null; } diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/condition_button.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/condition_button.dart index 386bb85ae3..bdc6af2dbb 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/condition_button.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/condition_button.dart @@ -1,6 +1,7 @@ import 'dart:math' as math; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:flowy_infra/theme_extension.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/style_widget/button.dart'; import 'package:flowy_infra_ui/style_widget/text.dart'; import 'package:flutter/material.dart'; @@ -18,8 +19,8 @@ class ConditionButton extends StatelessWidget { Widget build(BuildContext context) { final arrow = Transform.rotate( angle: -math.pi / 2, - child: svgWidget( - "home/arrow_left", + child: FlowySvg( + FlowySvgs.arrow_left_s, color: AFThemeExtension.of(context).textColor, ), ); diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/create_filter_list.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/create_filter_list.dart index 157d75a111..8a92d573ac 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/create_filter_list.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/create_filter_list.dart @@ -1,9 +1,9 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/application/field/field_info.dart'; import 'package:appflowy/plugins/database_view/grid/presentation/layout/sizes.dart'; import 'package:appflowy/plugins/database_view/grid/presentation/widgets/header/field_type_extension.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/style_widget/button.dart'; import 'package:flowy_infra_ui/style_widget/scrolling/styled_list.dart'; @@ -166,8 +166,8 @@ class GridFilterPropertyCell extends StatelessWidget { color: AFThemeExtension.of(context).textColor, ), onTap: () => onTap(fieldInfo), - leftIcon: svgWidget( - fieldInfo.fieldType.iconName(), + leftIcon: FlowySvg( + fieldInfo.fieldType.icon(), color: Theme.of(context).iconTheme.color, ), ); diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/disclosure_button.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/disclosure_button.dart index fd296a73e0..994e402486 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/disclosure_button.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/disclosure_button.dart @@ -1,8 +1,9 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/workspace/presentation/widgets/pop_up_action.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/style_widget/icon_button.dart'; import 'package:flutter/material.dart'; @@ -34,8 +35,8 @@ class _DisclosureButtonState extends State { return FlowyIconButton( hoverColor: AFThemeExtension.of(context).lightGreyHover, width: 20, - icon: svgWidget( - "editor/details", + icon: FlowySvg( + FlowySvgs.details_s, color: Theme.of(context).iconTheme.color, ), onPressed: () => controller.show(), diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/filter_menu.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/filter_menu.dart index 8df5fc9add..ad0df4d485 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/filter_menu.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/filter/filter_menu.dart @@ -1,10 +1,11 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/application/field/field_controller.dart'; import 'package:appflowy/plugins/database_view/grid/application/filter/filter_menu_bloc.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flowy_infra/theme_extension.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -90,8 +91,8 @@ class _AddFilterButtonState extends State { ), useIntrinsicWidth: true, hoverColor: AFThemeExtension.of(context).lightGreyHover, - leftIcon: svgWidget( - "home/add", + leftIcon: FlowySvg( + FlowySvgs.add_s, color: Theme.of(context).iconTheme.color, ), onTap: () => popoverController.show(), diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/footer/grid_footer.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/footer/grid_footer.dart index 62f250b43b..9aad5d503c 100755 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/footer/grid_footer.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/footer/grid_footer.dart @@ -1,9 +1,10 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/grid/application/grid_bloc.dart'; import 'package:appflowy/plugins/database_view/grid/presentation/layout/sizes.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flowy_infra/theme_extension.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/style_widget/button.dart'; import 'package:flowy_infra_ui/style_widget/text.dart'; import 'package:flutter/material.dart'; @@ -21,8 +22,8 @@ class GridAddRowButton extends StatelessWidget { ), hoverColor: AFThemeExtension.of(context).lightGreyHover, onTap: () => context.read().add(const GridEvent.createRow()), - leftIcon: svgWidget( - "home/add", + leftIcon: FlowySvg( + FlowySvgs.add_s, color: Theme.of(context).colorScheme.tertiary, ), ); diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_cell.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_cell.dart index d2562cdb84..0efc95a613 100755 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_cell.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_cell.dart @@ -1,7 +1,8 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/field/field_cell_bloc.dart'; import 'package:appflowy/plugins/database_view/application/field/field_service.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flowy_infra_ui/style_widget/hover.dart'; @@ -172,7 +173,7 @@ class FieldCellButton extends StatelessWidget { hoverColor: AFThemeExtension.of(context).greyHover, onTap: onTap, leftIcon: FlowySvg( - name: field.fieldType.iconName(), + field.fieldType.icon(), ), radius: radius, text: FlowyText.medium( diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_cell_action_sheet.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_cell_action_sheet.dart index 19f2ecc24c..b707ccf7b7 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_cell_action_sheet.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_cell_action_sheet.dart @@ -1,10 +1,11 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/field/field_action_sheet_bloc.dart'; import 'package:appflowy/plugins/database_view/application/field/field_service.dart'; import 'package:appflowy/plugins/database_view/application/field/type_option/type_option_context.dart'; import 'package:appflowy/startup/startup.dart'; import 'package:appflowy/workspace/presentation/widgets/dialogs.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/style_widget/button.dart'; import 'package:flowy_infra_ui/style_widget/text.dart'; @@ -177,8 +178,8 @@ class FieldActionCell extends StatelessWidget { : Theme.of(context).disabledColor, ), onTap: () => action.run(context, fieldInfo), - leftIcon: svgWidget( - action.iconName(), + leftIcon: FlowySvg( + action.icon(), color: enable ? AFThemeExtension.of(context).textColor : Theme.of(context).disabledColor, @@ -194,14 +195,14 @@ enum FieldAction { } extension _FieldActionExtension on FieldAction { - String iconName() { + FlowySvgData icon() { switch (this) { case FieldAction.hide: - return 'grid/hide'; + return FlowySvgs.hide_s; case FieldAction.duplicate: - return 'grid/duplicate'; + return FlowySvgs.copy_s; case FieldAction.delete: - return 'grid/delete'; + return FlowySvgs.delete_s; } } diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_editor.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_editor.dart index 67ba869ffe..5c1be5911c 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_editor.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_editor.dart @@ -1,9 +1,10 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/field/field_editor_bloc.dart'; import 'package:appflowy/plugins/database_view/application/field/type_option/type_option_context.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:dartz/dartz.dart' show none; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/style_widget/button.dart'; import 'package:flowy_infra_ui/style_widget/text.dart'; import 'package:flowy_infra_ui/style_widget/text_field.dart'; @@ -233,7 +234,7 @@ class _DeleteFieldButton extends StatelessWidget { LocaleKeys.grid_field_delete.tr(), color: enable ? null : Theme.of(context).disabledColor, ), - leftIcon: const FlowySvg(name: 'grid/delete'), + leftIcon: const FlowySvg(FlowySvgs.delete_s), onTap: () { if (enable) onDeleted?.call(); }, @@ -264,7 +265,7 @@ class _HideFieldButton extends StatelessWidget { text: FlowyText.medium( LocaleKeys.grid_field_hide.tr(), ), - leftIcon: const FlowySvg(name: 'grid/hide'), + leftIcon: const FlowySvg(FlowySvgs.hide_s), onTap: () => onHidden?.call(), onHover: (_) => popoverMutex.close(), ); diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_type_extension.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_type_extension.dart index 848d750270..ca9b527158 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_type_extension.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_type_extension.dart @@ -1,28 +1,29 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/field_entities.pb.dart'; extension FieldTypeListExtension on FieldType { - String iconName() { + FlowySvgData icon() { switch (this) { case FieldType.Checkbox: - return "grid/field/checkbox"; + return FlowySvgs.checkbox_s; case FieldType.DateTime: case FieldType.LastEditedTime: case FieldType.CreatedTime: - return "grid/field/date"; + return FlowySvgs.date_s; case FieldType.MultiSelect: - return "grid/field/multi_select"; + return FlowySvgs.multiselect_s; case FieldType.Number: - return "grid/field/number"; + return FlowySvgs.numbers_s; case FieldType.RichText: - return "grid/field/text"; + return FlowySvgs.text_s; case FieldType.SingleSelect: - return "grid/field/single_select"; + return FlowySvgs.status_s; case FieldType.URL: - return "grid/field/url"; + return FlowySvgs.attach_s; case FieldType.Checklist: - return "grid/field/checklist"; + return FlowySvgs.checklist_s; } throw UnimplementedError; } diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_type_list.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_type_list.dart index 81bc715015..0f2875d24a 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_type_list.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_type_list.dart @@ -1,5 +1,6 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/field_entities.pb.dart'; import 'package:flutter/material.dart'; @@ -62,7 +63,7 @@ class FieldTypeCell extends StatelessWidget { ), onTap: () => onSelectField(fieldType), leftIcon: FlowySvg( - name: fieldType.iconName(), + fieldType.icon(), ), ), ); diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_type_option_editor.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_type_option_editor.dart index 9b9d792933..e5b2418834 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_type_option_editor.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/field_type_option_editor.dart @@ -1,9 +1,10 @@ import 'dart:typed_data'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/field/field_type_option_edit_bloc.dart'; import 'package:appflowy/plugins/database_view/application/field/type_option/type_option_data_controller.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:dartz/dartz.dart' show Either; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:appflowy_backend/protobuf/flowy-error/errors.pb.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/field_entities.pb.dart'; @@ -115,8 +116,8 @@ class SwitchFieldButton extends StatelessWidget { text: FlowyText.medium( bloc.state.field.fieldType.title(), ), - leftIcon: FlowySvg(name: bloc.state.field.fieldType.iconName()), - rightIcon: const FlowySvg(name: 'grid/more'), + leftIcon: FlowySvg(bloc.state.field.fieldType.icon()), + rightIcon: const FlowySvg(FlowySvgs.more_s), ); } } diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/grid_header.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/grid_header.dart index 15de7f897f..2069fd2598 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/grid_header.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/grid_header.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/application/field/field_controller.dart'; import 'package:appflowy/plugins/database_view/application/field/field_service.dart'; @@ -8,7 +9,7 @@ import 'package:appflowy_backend/log.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:flowy_infra/theme_extension.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/field_entities.pb.dart'; import 'package:flutter/material.dart'; @@ -213,7 +214,7 @@ class _CreateFieldButtonState extends State { (r) => Log.error("Failed to create field type option: $r"), ); }, - leftIcon: const FlowySvg(name: 'home/add'), + leftIcon: const FlowySvg(FlowySvgs.add_s), ), popupBuilder: (BuildContext popover) { return FieldEditor( diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/date.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/date.dart index da81368c50..8c40fb2ba9 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/date.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/date.dart @@ -1,9 +1,10 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/field/type_option/date_bloc.dart'; import 'package:appflowy/plugins/database_view/application/field/type_option/type_option_context.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/date_entities.pbenum.dart'; import 'package:easy_localization/easy_localization.dart' hide DateFormat; import 'package:appflowy/generated/locale_keys.g.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -146,7 +147,7 @@ class DateFormatButton extends StatelessWidget { text: FlowyText.medium(LocaleKeys.grid_field_dateFormat.tr()), onTap: onTap, onHover: onHover, - rightIcon: const FlowySvg(name: 'grid/more'), + rightIcon: const FlowySvg(FlowySvgs.more_s), ), ); } @@ -171,7 +172,7 @@ class TimeFormatButton extends StatelessWidget { text: FlowyText.medium(LocaleKeys.grid_field_timeFormat.tr()), onTap: onTap, onHover: onHover, - rightIcon: const FlowySvg(name: 'grid/more'), + rightIcon: const FlowySvg(FlowySvgs.more_s), ), ); } @@ -228,7 +229,7 @@ class DateFormatCell extends StatelessWidget { Widget build(BuildContext context) { Widget? checkmark; if (isSelected) { - checkmark = const FlowySvg(name: 'grid/checkmark'); + checkmark = const FlowySvg(FlowySvgs.check_s); } return SizedBox( @@ -312,7 +313,7 @@ class TimeFormatCell extends StatelessWidget { Widget build(BuildContext context) { Widget? checkmark; if (isSelected) { - checkmark = const FlowySvg(name: 'grid/checkmark'); + checkmark = const FlowySvg(FlowySvgs.check_s); } return SizedBox( diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/number.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/number.dart index 8bbfeaacbf..90ab14a555 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/number.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/number.dart @@ -1,9 +1,10 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/field/type_option/number_bloc.dart'; import 'package:appflowy/plugins/database_view/application/field/type_option/number_format_bloc.dart'; import 'package:appflowy/plugins/database_view/application/field/type_option/type_option_context.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/number_entities.pbenum.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -60,7 +61,7 @@ class NumberTypeOptionWidget extends TypeOptionWidget { height: GridSize.popoverItemHeight, child: FlowyButton( margin: GridSize.typeOptionContentInsets, - rightIcon: const FlowySvg(name: 'grid/more'), + rightIcon: const FlowySvg(FlowySvgs.more_s), text: FlowyText.regular( state.typeOption.format.title(), ), @@ -181,9 +182,7 @@ class NumberFormatCell extends StatelessWidget { Widget build(BuildContext context) { Widget? checkmark; if (isSelected) { - checkmark = const FlowySvg( - name: 'grid/checkmark', - ); + checkmark = const FlowySvg(FlowySvgs.check_s); } return SizedBox( diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/select_option.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/select_option.dart index ca82fdedd2..fd9322260a 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/select_option.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/select_option.dart @@ -1,7 +1,8 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/field/type_option/select_option_type_option_bloc.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/select_option.pb.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; @@ -195,8 +196,8 @@ class _OptionCellState extends State<_OptionCell> { children: [ Padding( padding: const EdgeInsets.symmetric(horizontal: 6.0), - child: svgWidget( - "grid/details", + child: FlowySvg( + FlowySvgs.details_s, color: Theme.of(context).iconTheme.color, ), ), @@ -256,8 +257,8 @@ class _AddOptionButton extends StatelessWidget { .read() .add(const SelectOptionTypeOptionEvent.addingOption()); }, - leftIcon: svgWidget( - "home/add", + leftIcon: FlowySvg( + FlowySvgs.add_s, color: Theme.of(context).iconTheme.color, ), ), diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/select_option_editor.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/select_option_editor.dart index 9fc853eae3..f58401a313 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/select_option_editor.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/header/type_option/select_option_editor.dart @@ -1,7 +1,8 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/field/type_option/edit_select_option_bloc.dart'; import 'package:appflowy/plugins/database_view/widgets/row/cells/select_option_cell/extension.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/select_option.pb.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/style_widget/button.dart'; import 'package:flowy_infra_ui/style_widget/scrolling/styled_list.dart'; @@ -113,7 +114,7 @@ class _DeleteTag extends StatelessWidget { text: FlowyText.medium( LocaleKeys.grid_selectOption_deleteTag.tr(), ), - leftIcon: const FlowySvg(name: 'grid/delete'), + leftIcon: const FlowySvg(FlowySvgs.delete_s), onTap: () { context .read() @@ -218,7 +219,7 @@ class _SelectOptionColorCell extends StatelessWidget { Widget build(BuildContext context) { Widget? checkmark; if (isSelected) { - checkmark = svgWidget("grid/checkmark"); + checkmark = const FlowySvg(FlowySvgs.check_s); } final colorIcon = SizedBox.square( diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/row/action.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/row/action.dart index b40c801b07..9da9bc523a 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/row/action.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/row/action.dart @@ -1,8 +1,9 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/row/row_service.dart'; import 'package:appflowy/plugins/database_view/grid/application/row/row_action_sheet_bloc.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/style_widget/button.dart'; import 'package:flowy_infra_ui/style_widget/scrolling/styled_list.dart'; @@ -80,8 +81,8 @@ class _ActionCell extends StatelessWidget { action.performAction(context); } }, - leftIcon: svgWidget( - action.iconName(), + leftIcon: FlowySvg( + action.icon(), color: Theme.of(context).iconTheme.color, ), ), @@ -95,12 +96,12 @@ enum _RowAction { } extension _RowActionExtension on _RowAction { - String iconName() { + FlowySvgData icon() { switch (this) { case _RowAction.duplicate: - return 'grid/duplicate'; + return FlowySvgs.copy_s; case _RowAction.delete: - return 'grid/delete'; + return FlowySvgs.delete_s; } } diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/row/row.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/row/row.dart index 954bc12584..02f7f5e70c 100755 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/row/row.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/row/row.dart @@ -1,10 +1,11 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/cell/cell_service.dart'; import 'package:appflowy/plugins/database_view/application/row/row_controller.dart'; import 'package:appflowy/plugins/database_view/application/row/row_service.dart'; import 'package:appflowy/plugins/database_view/grid/application/row/row_bloc.dart'; import 'package:appflowy/plugins/database_view/widgets/row/cell_builder.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/foundation.dart'; @@ -191,8 +192,8 @@ class InsertRowButton extends StatelessWidget { height: 30, onPressed: () => context.read().add(const RowEvent.createRow()), iconPadding: const EdgeInsets.all(3), - icon: svgWidget( - 'home/add', + icon: FlowySvg( + FlowySvgs.add_s, color: Theme.of(context).colorScheme.tertiary, ), ); @@ -232,8 +233,8 @@ class _RowMenuButtonState extends State { height: 30, onPressed: () => widget.openMenu(), iconPadding: const EdgeInsets.all(3), - icon: svgWidget( - 'editor/details', + icon: FlowySvg( + FlowySvgs.details_s, color: Theme.of(context).colorScheme.tertiary, ), ); diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/sort/create_sort_list.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/sort/create_sort_list.dart index a23e651cdc..440b2405e9 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/sort/create_sort_list.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/sort/create_sort_list.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/application/field/field_controller.dart'; import 'package:appflowy/plugins/database_view/application/field/field_info.dart'; @@ -5,7 +6,7 @@ import 'package:appflowy/plugins/database_view/grid/application/sort/sort_create import 'package:appflowy/plugins/database_view/grid/presentation/layout/sizes.dart'; import 'package:appflowy/plugins/database_view/grid/presentation/widgets/header/field_type_extension.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/style_widget/button.dart'; import 'package:flowy_infra_ui/style_widget/scrolling/styled_list.dart'; @@ -165,8 +166,8 @@ class GridSortPropertyCell extends StatelessWidget { color: AFThemeExtension.of(context).textColor, ), onTap: () => onTap(fieldInfo), - leftIcon: svgWidget( - fieldInfo.fieldType.iconName(), + leftIcon: FlowySvg( + fieldInfo.fieldType.icon(), color: Theme.of(context).iconTheme.color, ), ); diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/sort/sort_editor.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/sort/sort_editor.dart index 99fdb37146..d1e95346e2 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/sort/sort_editor.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/sort/sort_editor.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/application/field/field_controller.dart'; import 'package:appflowy/plugins/database_view/grid/application/sort/sort_editor_bloc.dart'; @@ -6,7 +7,7 @@ import 'package:appflowy/plugins/database_view/grid/presentation/layout/sizes.da import 'package:appflowy_backend/protobuf/flowy-database2/sort_entities.pbenum.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; @@ -125,8 +126,8 @@ class DatabaseSortItem extends StatelessWidget { }, iconPadding: const EdgeInsets.all(5), hoverColor: AFThemeExtension.of(context).lightGreyHover, - icon: svgWidget( - "home/close", + icon: FlowySvg( + FlowySvgs.close_s, color: Theme.of(context).iconTheme.color, ), ); @@ -190,7 +191,7 @@ class _DatabaseAddSortButtonState extends State { disable: getCreatableSorts(widget.fieldController.fieldInfos).isEmpty, text: FlowyText.medium(LocaleKeys.grid_sort_addSort.tr()), onTap: () => _popoverController.show(), - leftIcon: const FlowySvg(name: 'home/add'), + leftIcon: const FlowySvg(FlowySvgs.add_s), ), ), popupBuilder: (BuildContext context) { @@ -222,7 +223,7 @@ class DatabaseDeleteSortButton extends StatelessWidget { .read() .add(const SortEditorEvent.deleteAllSorts()); }, - leftIcon: const FlowySvg(name: 'editor/delete'), + leftIcon: const FlowySvg(FlowySvgs.delete_s), ), ); }, @@ -252,7 +253,7 @@ class _DatabaseSortItemOrderButtonState Widget build(BuildContext context) { final arrow = Transform.rotate( angle: -math.pi / 2, - child: svgWidget("home/arrow_left"), + child: const FlowySvg(FlowySvgs.arrow_left_s), ); return AppFlowyPopover( diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/sort/sort_menu.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/sort/sort_menu.dart index 3ebebcac00..2d1accdc86 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/sort/sort_menu.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/sort/sort_menu.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/field/field_controller.dart'; import 'package:appflowy/plugins/database_view/grid/application/sort/sort_menu_bloc.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; @@ -6,7 +7,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'dart:math' as math; import 'sort_choice_button.dart'; @@ -66,15 +67,15 @@ class SortChoiceChip extends StatelessWidget { Widget build(BuildContext context) { final arrow = Transform.rotate( angle: -math.pi / 2, - child: svgWidget( - "home/arrow_left", + child: FlowySvg( + FlowySvgs.arrow_left_s, color: Theme.of(context).iconTheme.color, ), ); final text = LocaleKeys.grid_settings_sort.tr(); - final leftIcon = svgWidget( - "grid/setting/sort", + final leftIcon = FlowySvg( + FlowySvgs.sort_ascending_s, color: Theme.of(context).iconTheme.color, ); diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/toolbar/grid_layout.dart b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/toolbar/grid_layout.dart index 04786deeea..3f9754582d 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/toolbar/grid_layout.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/grid/presentation/widgets/toolbar/grid_layout.dart @@ -1,7 +1,8 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/layout/layout_bloc.dart'; import 'package:appflowy/plugins/database_view/widgets/database_layout_ext.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/setting_entities.pb.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; @@ -81,7 +82,7 @@ class DatabaseViewLayoutCell extends StatelessWidget { Widget build(BuildContext context) { Widget? checkmark; if (isSelected) { - checkmark = svgWidget("grid/checkmark"); + checkmark = const FlowySvg(FlowySvgs.check_s); } return SizedBox( @@ -92,8 +93,8 @@ class DatabaseViewLayoutCell extends StatelessWidget { databaseLayout.layoutName(), color: AFThemeExtension.of(context).textColor, ), - leftIcon: svgWidget( - databaseLayout.iconName(), + leftIcon: FlowySvg( + databaseLayout.icon, color: Theme.of(context).iconTheme.color, ), rightIcon: checkmark, diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/tar_bar/tab_bar_header.dart b/frontend/appflowy_flutter/lib/plugins/database_view/tar_bar/tab_bar_header.dart index 9129eebae9..9f9f5e2886 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/tar_bar/tab_bar_header.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/tar_bar/tab_bar_header.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/workspace/application/view/view_ext.dart'; import 'package:appflowy/workspace/presentation/widgets/dialogs.dart'; @@ -5,7 +6,6 @@ import 'package:appflowy/workspace/presentation/widgets/pop_up_action.dart'; import 'package:appflowy_backend/protobuf/flowy-folder2/protobuf.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra/size.dart'; import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; @@ -209,7 +209,7 @@ class TabBarItemButton extends StatelessWidget { controller.show(); }, leftIcon: FlowySvg( - name: view.iconName, + view.iconData, size: const Size(14, 14), color: color, ), @@ -272,9 +272,9 @@ enum TabBarViewAction implements ActionCell { Widget icon(Color iconColor) { switch (this) { case TabBarViewAction.rename: - return const FlowySvg(name: 'editor/edit'); + return const FlowySvg(FlowySvgs.edit_s); case TabBarViewAction.delete: - return const FlowySvg(name: 'editor/delete'); + return const FlowySvg(FlowySvgs.delete_s); } } diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/tar_bar/tar_bar_add_button.dart b/frontend/appflowy_flutter/lib/plugins/database_view/tar_bar/tar_bar_add_button.dart index 0bee6d7fe2..7dd7a93d3d 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/tar_bar/tar_bar_add_button.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/tar_bar/tar_bar_add_button.dart @@ -1,9 +1,9 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/grid/presentation/layout/sizes.dart'; import 'package:appflowy_backend/protobuf/flowy-folder2/view.pb.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra/size.dart'; import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; @@ -50,7 +50,7 @@ class _AddDatabaseViewButtonState extends State { hoverColor: AFThemeExtension.of(context).greyHover, onPressed: () => popoverController.show(), radius: Corners.s4Border, - icon: const FlowySvg(name: 'home/add'), + icon: const FlowySvg(FlowySvgs.add_s), iconColorOnHover: Theme.of(context).colorScheme.onSurface, ), ], @@ -115,8 +115,8 @@ class TarBarAddButtonActionCell extends StatelessWidget { '${LocaleKeys.grid_createView.tr()} ${action.title}', color: AFThemeExtension.of(context).textColor, ), - leftIcon: svgWidget( - action.iconName, + leftIcon: FlowySvg( + action.icon, color: Theme.of(context).iconTheme.color, ), onTap: () => onTap(action), @@ -156,16 +156,13 @@ enum AddButtonAction { } } - String get iconName { + FlowySvgData get icon { switch (this) { case AddButtonAction.board: - return 'editor/board'; + return FlowySvgs.board_s; case AddButtonAction.calendar: - return "editor/grid"; case AddButtonAction.grid: - return "editor/grid"; - default: - return ""; + return FlowySvgs.grid_s; } } } diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/card/card.dart b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/card/card.dart index 8d6998c3d2..b399abc451 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/card/card.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/card/card.dart @@ -1,9 +1,10 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/cell/cell_service.dart'; import 'package:appflowy/plugins/database_view/application/row/row_cache.dart'; import 'package:appflowy/plugins/database_view/grid/presentation/widgets/row/action.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/row_entities.pb.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flowy_infra_ui/style_widget/hover.dart'; import 'package:flutter/foundation.dart'; @@ -279,8 +280,8 @@ class CardMoreOption extends StatelessWidget with CardAccessory { Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.all(3.0), - child: svgWidget( - 'grid/details', + child: FlowySvg( + FlowySvgs.details_s, color: Theme.of(context).iconTheme.color, ), ); @@ -301,8 +302,8 @@ class _CardEditOption extends StatelessWidget with CardAccessory { Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.all(3.0), - child: svgWidget( - 'editor/edit', + child: FlowySvg( + FlowySvgs.edit_s, color: Theme.of(context).iconTheme.color, ), ); diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/card/cells/checkbox_card_cell.dart b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/card/cells/checkbox_card_cell.dart index 33fef71bf0..ffca3048b5 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/card/cells/checkbox_card_cell.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/card/cells/checkbox_card_cell.dart @@ -1,5 +1,6 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/cell/cell_controller_builder.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/style_widget/icon_button.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -40,8 +41,8 @@ class _CheckboxCardCellState extends State { previous.isSelected != current.isSelected, builder: (context, state) { final icon = state.isSelected - ? svgWidget('editor/editor_check') - : svgWidget('editor/editor_uncheck'); + ? const FlowySvg(FlowySvgs.check_filled_s) + : const FlowySvg(FlowySvgs.uncheck_s); return Align( alignment: Alignment.centerLeft, child: Padding( diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/database_layout_ext.dart b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/database_layout_ext.dart index 43b0faa6bf..33b357a119 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/database_layout_ext.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/database_layout_ext.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/setting_entities.pbenum.dart'; import 'package:easy_localization/easy_localization.dart'; @@ -16,16 +17,14 @@ extension DatabaseLayoutExtension on DatabaseLayoutPB { } } - String iconName() { + FlowySvgData get icon { switch (this) { case DatabaseLayoutPB.Board: - return 'editor/board'; + return FlowySvgs.board_s; case DatabaseLayoutPB.Calendar: - return "editor/grid"; case DatabaseLayoutPB.Grid: - return "editor/grid"; - default: - return ""; + return FlowySvgs.grid_s; } + throw UnimplementedError(); } } diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/field/grid_property.dart b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/field/grid_property.dart index 9d063ec5a1..28f9ab3a69 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/field/grid_property.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/field/grid_property.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/field/field_controller.dart'; import 'package:appflowy/plugins/database_view/application/field/field_info.dart'; import 'package:appflowy/plugins/database_view/application/field/type_option/type_option_context.dart'; @@ -5,7 +6,7 @@ import 'package:appflowy/plugins/database_view/application/setting/property_bloc import 'package:appflowy/plugins/database_view/grid/presentation/widgets/header/field_type_extension.dart'; import 'package:appflowy/startup/startup.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; @@ -95,8 +96,8 @@ class _GridPropertyCellState extends State<_GridPropertyCell> { @override Widget build(BuildContext context) { - final checkmark = svgWidget( - widget.fieldInfo.field.visibility ? 'home/show' : 'home/hide', + final checkmark = FlowySvg( + widget.fieldInfo.field.visibility ? FlowySvgs.show_m : FlowySvgs.hide_m, color: Theme.of(context).iconTheme.color, ); @@ -121,8 +122,8 @@ class _GridPropertyCellState extends State<_GridPropertyCell> { widget.fieldInfo.name, color: AFThemeExtension.of(context).textColor, ), - leftIcon: svgWidget( - widget.fieldInfo.fieldType.iconName(), + leftIcon: FlowySvg( + widget.fieldInfo.fieldType.icon(), color: Theme.of(context).iconTheme.color, ), rightIcon: FlowyIconButton( diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/group/database_group.dart b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/group/database_group.dart index ef8a452ac6..2cd04e5d41 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/group/database_group.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/group/database_group.dart @@ -1,9 +1,10 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/field/field_controller.dart'; import 'package:appflowy/plugins/database_view/application/field/field_info.dart'; import 'package:appflowy/plugins/database_view/application/setting/group_bloc.dart'; import 'package:appflowy/plugins/database_view/grid/presentation/layout/sizes.dart'; import 'package:appflowy/plugins/database_view/grid/presentation/widgets/header/field_type_extension.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/style_widget/button.dart'; import 'package:flowy_infra_ui/style_widget/text.dart'; @@ -73,9 +74,9 @@ class _GridGroupCell extends StatelessWidget { Widget build(BuildContext context) { Widget? rightIcon; if (fieldInfo.isGroupField) { - rightIcon = Padding( - padding: const EdgeInsets.all(2.0), - child: svgWidget("grid/checkmark"), + rightIcon = const Padding( + padding: EdgeInsets.all(2.0), + child: FlowySvg(FlowySvgs.check_s), ); } @@ -87,8 +88,8 @@ class _GridGroupCell extends StatelessWidget { fieldInfo.name, color: AFThemeExtension.of(context).textColor, ), - leftIcon: svgWidget( - fieldInfo.fieldType.iconName(), + leftIcon: FlowySvg( + fieldInfo.fieldType.icon(), color: Theme.of(context).iconTheme.color, ), rightIcon: rightIcon, diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/accessory/cell_accessory.dart b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/accessory/cell_accessory.dart index b1faeae3df..d756601bbd 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/accessory/cell_accessory.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/accessory/cell_accessory.dart @@ -1,5 +1,6 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:flowy_infra/theme_extension.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/style_widget/hover.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; @@ -72,8 +73,8 @@ class _PrimaryCellAccessoryState extends State height: 26, child: Padding( padding: const EdgeInsets.all(3.0), - child: svgWidget( - "grid/expander", + child: FlowySvg( + FlowySvgs.full_view_s, color: Theme.of(context).colorScheme.primary, ), ), diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/checkbox_cell/checkbox_cell.dart b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/checkbox_cell/checkbox_cell.dart index a8c5594545..7df3979198 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/checkbox_cell/checkbox_cell.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/checkbox_cell/checkbox_cell.dart @@ -1,6 +1,7 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/cell/cell_controller_builder.dart'; import 'package:appflowy/plugins/database_view/application/cell/cell_service.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/style_widget/icon_button.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -88,7 +89,7 @@ class CheckboxCellCheck extends StatelessWidget { @override Widget build(BuildContext context) { - return svgWidget('editor/editor_check'); + return const FlowySvg(FlowySvgs.check_filled_s); } } @@ -97,6 +98,6 @@ class CheckboxCellUncheck extends StatelessWidget { @override Widget build(BuildContext context) { - return svgWidget('editor/editor_uncheck'); + return const FlowySvg(FlowySvgs.uncheck_s); } } diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/checklist_cell/checklist_cell_editor.dart b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/checklist_cell/checklist_cell_editor.dart index 8ebcfe7b2a..0a57d1b185 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/checklist_cell/checklist_cell_editor.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/checklist_cell/checklist_cell_editor.dart @@ -1,6 +1,7 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/cell/cell_controller_builder.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; @@ -108,8 +109,8 @@ class _ChecklistOptionCellState extends State<_ChecklistOptionCell> { @override Widget build(BuildContext context) { final icon = widget.option.isSelected - ? svgWidget('editor/editor_check') - : svgWidget('editor/editor_uncheck'); + ? const FlowySvg(FlowySvgs.check_filled_s) + : const FlowySvg(FlowySvgs.uncheck_s); return _wrapPopover( SizedBox( height: GridSize.popoverItemHeight, @@ -141,8 +142,8 @@ class _ChecklistOptionCellState extends State<_ChecklistOptionCell> { width: 20, onPressed: () => _popoverController.show(), iconPadding: const EdgeInsets.fromLTRB(2, 2, 2, 2), - icon: svgWidget( - "editor/details", + icon: FlowySvg( + FlowySvgs.details_s, color: Theme.of(context).iconTheme.color, ), ); diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/date_cell/date_editor.dart b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/date_cell/date_editor.dart index 1ab8fb4881..adef7e9aec 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/date_cell/date_editor.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/date_cell/date_editor.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/application/cell/cell_controller_builder.dart'; import 'package:appflowy/plugins/database_view/application/field/type_option/type_option_context.dart'; @@ -9,7 +10,7 @@ import 'package:appflowy_backend/protobuf/flowy-error/errors.pbserver.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:dartz/dartz.dart' show Either; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/size.dart'; import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra/time/duration.dart'; @@ -169,14 +170,14 @@ class _CellCalendarWidgetState extends State<_CellCalendarWidget> { titleTextStyle: textStyle, leftChevronMargin: EdgeInsets.zero, leftChevronPadding: EdgeInsets.zero, - leftChevronIcon: svgWidget( - "home/arrow_left", + leftChevronIcon: FlowySvg( + FlowySvgs.arrow_left_s, color: Theme.of(context).iconTheme.color, ), rightChevronPadding: EdgeInsets.zero, rightChevronMargin: EdgeInsets.zero, - rightChevronIcon: svgWidget( - "home/arrow_right", + rightChevronIcon: FlowySvg( + FlowySvgs.arrow_right_s, color: Theme.of(context).iconTheme.color, ), headerMargin: const EdgeInsets.only(bottom: 8.0), @@ -246,8 +247,8 @@ class _IncludeTimeButton extends StatelessWidget { padding: GridSize.typeOptionContentInsets, child: Row( children: [ - svgWidget( - "grid/clock", + FlowySvg( + FlowySvgs.clock_alarm_s, color: Theme.of(context).iconTheme.color, ), const HSpace(6), @@ -369,7 +370,7 @@ class DateTypeOptionButton extends StatelessWidget { child: FlowyButton( text: FlowyText.medium(title), margin: GridSize.typeOptionContentInsets, - rightIcon: const FlowySvg(name: 'grid/more'), + rightIcon: const FlowySvg(FlowySvgs.more_s), ), ), ), @@ -480,7 +481,7 @@ class ClearDateButton extends StatelessWidget { .add(const DateCellCalendarEvent.clearDate()); PopoverContainer.of(context).close(); }, - leftIcon: const FlowySvg(name: "grid/delete"), + leftIcon: const FlowySvg(FlowySvgs.delete_s), margin: GridSize.typeOptionContentInsets, ), ), diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/select_option_cell/extension.dart b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/select_option_cell/extension.dart index fe38716d12..c865eae29c 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/select_option_cell/extension.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/select_option_cell/extension.dart @@ -1,5 +1,6 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/select_option.pb.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra/size.dart'; import 'package:flowy_infra_ui/style_widget/hover.dart'; @@ -118,8 +119,8 @@ class SelectOptionTag extends StatelessWidget { onPressed: () => onRemove?.call(name), fillColor: Colors.transparent, hoverColor: Colors.transparent, - icon: svgWidget( - 'home/close', + icon: FlowySvg( + FlowySvgs.close_s, color: Theme.of(context).colorScheme.onSurface, ), ), diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/select_option_cell/select_option_editor.dart b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/select_option_cell/select_option_editor.dart index e759b8bd99..8dade4978e 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/select_option_cell/select_option_editor.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/select_option_cell/select_option_editor.dart @@ -1,11 +1,12 @@ import 'dart:collection'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/application/cell/cell_controller_builder.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/select_option.pb.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; @@ -219,8 +220,8 @@ class _Title extends StatelessWidget { child: FlowyIconButton( onPressed: onPressedAddButton, width: 18, - icon: svgWidget( - 'home/add', + icon: FlowySvg( + FlowySvgs.add_s, color: Theme.of(context).iconTheme.color, ), ), @@ -315,16 +316,16 @@ class _SelectOptionCellState extends State<_SelectOptionCell> { }, children: [ if (widget.isSelected) - Padding( - padding: const EdgeInsets.only(left: 6), - child: svgWidget("grid/checkmark"), + const Padding( + padding: EdgeInsets.only(left: 6), + child: FlowySvg(FlowySvgs.check_s), ), FlowyIconButton( onPressed: () => _popoverController.show(), hoverColor: Colors.transparent, iconPadding: const EdgeInsets.symmetric(horizontal: 6.0), - icon: svgWidget( - "editor/details", + icon: FlowySvg( + FlowySvgs.details_s, color: Theme.of(context).iconTheme.color, ), ), diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/url_cell/url_cell.dart b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/url_cell/url_cell.dart index 7acf6466fb..1dc1eb888e 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/url_cell/url_cell.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/url_cell/url_cell.dart @@ -1,11 +1,12 @@ import 'dart:async'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/application/cell/cell_controller.dart'; import 'package:appflowy/plugins/database_view/application/cell/cell_controller_builder.dart'; import 'package:appflowy/workspace/presentation/home/toast.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; @@ -218,8 +219,8 @@ class _EditURLAccessoryState extends State<_EditURLAccessory> controller: popoverController, direction: PopoverDirection.bottomWithLeftAligned, offset: const Offset(0, 8), - child: svgWidget( - "editor/edit", + child: FlowySvg( + FlowySvgs.edit_s, color: AFThemeExtension.of(context).textColor, ), popupBuilder: (BuildContext popoverContext) { @@ -259,8 +260,8 @@ class _CopyURLAccessoryState extends State<_CopyURLAccessory> Widget build(BuildContext context) { if (widget.cellDataNotifier.value.isNotEmpty) { return _URLAccessoryIconContainer( - child: svgWidget( - "editor/copy", + child: FlowySvg( + FlowySvgs.copy_s, color: AFThemeExtension.of(context).textColor, ), ); @@ -301,8 +302,8 @@ class _VisitURLAccessoryState extends State<_VisitURLAccessory> Widget build(BuildContext context) { if (widget.cellDataNotifier.value.isNotEmpty) { return _URLAccessoryIconContainer( - child: svgWidget( - "editor/link", + child: FlowySvg( + FlowySvgs.attach_s, color: AFThemeExtension.of(context).textColor, ), ); diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/row_action.dart b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/row_action.dart index e9518c7eec..15f04a2503 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/row_action.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/row_action.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/application/field/type_option/type_option_context.dart'; import 'package:appflowy/plugins/database_view/application/field/type_option/type_option_service.dart'; @@ -10,7 +11,7 @@ import 'package:appflowy_backend/log.dart'; import 'package:appflowy_backend/protobuf/flowy-database2/field_entities.pb.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; @@ -56,7 +57,7 @@ class RowDetailPageDeleteButton extends StatelessWidget { height: GridSize.popoverItemHeight, child: FlowyButton( text: FlowyText.regular(LocaleKeys.grid_row_delete.tr()), - leftIcon: const FlowySvg(name: "home/trash"), + leftIcon: const FlowySvg(FlowySvgs.trash_m), onTap: () { context.read().add(RowDetailEvent.deleteRow(rowId)); FlowyOverlay.pop(context); @@ -81,7 +82,7 @@ class RowDetailPageDuplicateButton extends StatelessWidget { height: GridSize.popoverItemHeight, child: FlowyButton( text: FlowyText.regular(LocaleKeys.grid_row_duplicate.tr()), - leftIcon: const FlowySvg(name: "grid/duplicate"), + leftIcon: const FlowySvg(FlowySvgs.copy_s), onTap: () { context .read() @@ -143,8 +144,8 @@ class _CreateRowFieldButtonState extends State { (r) => Log.error("Failed to create field type option: $r"), ); }, - leftIcon: svgWidget( - "home/add", + leftIcon: FlowySvg( + FlowySvgs.add_m, color: AFThemeExtension.of(context).textColor, ), ), diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/setting/database_setting.dart b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/setting/database_setting.dart index ea51d1f675..8c77cbf0a6 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/setting/database_setting.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/setting/database_setting.dart @@ -1,5 +1,5 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/application/database_controller.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/style_widget/button.dart'; import 'package:flowy_infra_ui/style_widget/scrolling/styled_list.dart'; @@ -65,8 +65,8 @@ class DatabaseSettingItem extends StatelessWidget { color: AFThemeExtension.of(context).textColor, ), onTap: () => onAction(action), - leftIcon: svgWidget( - action.iconName(), + leftIcon: FlowySvg( + action.iconData(), color: Theme.of(context).iconTheme.color, ), ), diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/setting/setting_button.dart b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/setting/setting_button.dart index ed3d2deb38..ccea4aa933 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/widgets/setting/setting_button.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/widgets/setting/setting_button.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/database_view/application/database_controller.dart'; import 'package:appflowy/plugins/database_view/calendar/presentation/toolbar/calendar_layout_setting.dart'; @@ -153,16 +154,16 @@ enum DatabaseSettingAction { } extension DatabaseSettingActionExtension on DatabaseSettingAction { - String iconName() { + FlowySvgData iconData() { switch (this) { case DatabaseSettingAction.showProperties: - return 'grid/setting/properties'; + return FlowySvgs.properties_s; case DatabaseSettingAction.showLayout: - return 'grid/setting/database_layout'; + return FlowySvgs.database_layout_m; case DatabaseSettingAction.showGroup: - return 'grid/setting/group'; + return FlowySvgs.group_s; case DatabaseSettingAction.showCalendarLayout: - return 'grid/setting/calendar_layout'; + return FlowySvgs.calendar_layout_m; } } diff --git a/frontend/appflowy_flutter/lib/plugins/document/document.dart b/frontend/appflowy_flutter/lib/plugins/document/document.dart index a068441095..56e6cfe016 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/document.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/document.dart @@ -1,5 +1,6 @@ library document_plugin; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/document/document_page.dart'; import 'package:appflowy/plugins/document/presentation/more/cubit/document_appearance_cubit.dart'; @@ -29,7 +30,7 @@ class DocumentPluginBuilder extends PluginBuilder { String get menuName => LocaleKeys.document_menuName.tr(); @override - String get menuIcon => "editor/documents"; + FlowySvgData get icon => FlowySvgs.documents_s; @override PluginType get pluginType => PluginType.editor; diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/block_action_add_button.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/block_action_add_button.dart index 2a5435bfa7..ecc02f7bd9 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/block_action_add_button.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/block_action_add_button.dart @@ -1,6 +1,7 @@ import 'dart:io'; import 'package:appflowy/core/raw_keyboard_extension.dart'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/actions/block_action_button.dart'; import 'package:appflowy_editor/appflowy_editor.dart'; @@ -26,7 +27,7 @@ class BlockAddButton extends StatelessWidget { @override Widget build(BuildContext context) { return BlockActionButton( - svgName: 'editor/add', + svg: FlowySvgs.add_s, richMessage: TextSpan( children: [ TextSpan( diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/block_action_button.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/block_action_button.dart index 25154cfcf1..e1d8f6d8f0 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/block_action_button.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/block_action_button.dart @@ -1,18 +1,18 @@ import 'dart:io'; -import 'package:flowy_infra/image.dart'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:flowy_infra_ui/widget/ignore_parent_gesture.dart'; import 'package:flutter/material.dart'; class BlockActionButton extends StatelessWidget { const BlockActionButton({ super.key, - required this.svgName, + required this.svg, required this.richMessage, required this.onTap, }); - final String svgName; + final FlowySvgData svg; final InlineSpan richMessage; final VoidCallback onTap; @@ -31,8 +31,8 @@ class BlockActionButton extends StatelessWidget { child: GestureDetector( onTap: onTap, behavior: HitTestBehavior.deferToChild, - child: svgWidget( - svgName, + child: FlowySvg( + svg, size: const Size.square(18.0), color: Theme.of(context).iconTheme.color, ), diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/block_action_option_button.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/block_action_option_button.dart index 4a33a72653..2130c1cf98 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/block_action_option_button.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/block_action_option_button.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/actions/block_action_button.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/actions/option_action.dart'; import 'package:appflowy/workspace/presentation/widgets/pop_up_action.dart'; @@ -57,7 +58,7 @@ class BlockOptionButton extends StatelessWidget { Widget _buildOptionButton(PopoverController controller) { return BlockActionButton( - svgName: 'editor/option', + svg: FlowySvgs.drag_element_s, richMessage: TextSpan( children: [ TextSpan( diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/option_action.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/option_action.dart index 987105c759..13aa48412e 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/option_action.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/option_action.dart @@ -1,10 +1,11 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/plugins.dart'; import 'package:appflowy/workspace/presentation/widgets/pop_up_action.dart'; import 'package:appflowy_editor/appflowy_editor.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; @@ -22,24 +23,24 @@ enum OptionAction { divider, align; - String get assetName { + FlowySvgData get svg { switch (this) { case OptionAction.delete: - return 'editor/delete'; + return FlowySvgs.delete_s; case OptionAction.duplicate: - return 'editor/duplicate'; + return FlowySvgs.copy_s; case OptionAction.turnInto: - return 'editor/turn_into'; + return const FlowySvgData('editor/turn_into'); case OptionAction.moveUp: - return 'editor/move_up'; + return const FlowySvgData('editor/move_up'); case OptionAction.moveDown: - return 'editor/move_down'; + return const FlowySvgData('editor/move_down'); case OptionAction.color: - return 'editor/color'; + return const FlowySvgData('editor/color'); case OptionAction.divider: - return 'editor/divider'; + return const FlowySvgData('editor/divider'); case OptionAction.align: - return 'editor/align/center'; + return FlowySvgs.align_center_s; } } @@ -83,14 +84,14 @@ enum OptionAlignType { } } - String get assetName { + FlowySvgData get svg { switch (this) { case OptionAlignType.left: - return 'editor/align/left'; + return FlowySvgs.align_left_s; case OptionAlignType.center: - return 'editor/align/center'; + return FlowySvgs.align_center_s; case OptionAlignType.right: - return 'editor/align/right'; + return FlowySvgs.align_right_s; } } @@ -126,7 +127,7 @@ class AlignOptionAction extends PopoverActionCell { @override Widget? leftIcon(Color iconColor) { return FlowySvg( - name: align.assetName, + align.svg, size: const Size.square(12), ).padding(all: 2.0); } @@ -218,7 +219,7 @@ class ColorOptionAction extends PopoverActionCell { @override Widget? leftIcon(Color iconColor) { return const FlowySvg( - name: 'editor/color_formatter', + FlowySvgs.color_format_m, size: Size.square(12), ).padding(all: 2.0); } @@ -287,7 +288,7 @@ class OptionActionWrapper extends ActionCell { final OptionAction inner; @override - Widget? leftIcon(Color iconColor) => FlowySvg(name: inner.assetName); + Widget? leftIcon(Color iconColor) => FlowySvg(inner.svg); @override String get name => inner.description; @@ -299,7 +300,7 @@ class OptionAlignWrapper extends ActionCell { final OptionAlignType inner; @override - Widget? leftIcon(Color iconColor) => FlowySvg(name: inner.assetName); + Widget? leftIcon(Color iconColor) => FlowySvg(inner.svg); @override String get name => inner.description; diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/option_action_button.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/option_action_button.dart index 1bbce0b5ad..a10920f635 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/option_action_button.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/actions/option_action_button.dart @@ -1,8 +1,9 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/actions/option_action.dart'; import 'package:appflowy/workspace/presentation/widgets/pop_up_action.dart'; import 'package:appflowy_editor/appflowy_editor.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/widget/ignore_parent_gesture.dart'; import 'package:flutter/material.dart'; @@ -155,8 +156,8 @@ class OptionActionButton extends StatelessWidget { child: GestureDetector( onTap: onTap, behavior: HitTestBehavior.deferToChild, - child: svgWidget( - 'editor/option', + child: FlowySvg( + FlowySvgs.drag_element_s, size: const Size.square(24.0), color: Theme.of(context).iconTheme.color, ), diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/built_in_page_widget.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/built_in_page_widget.dart index abae17604c..838089caf0 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/built_in_page_widget.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/built_in_page_widget.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/plugins.dart'; import 'package:appflowy/startup/plugin/plugin.dart'; import 'package:appflowy/startup/startup.dart'; @@ -13,7 +14,7 @@ import 'package:flowy_infra_ui/widget/spacing.dart'; import 'package:flutter/material.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:appflowy/workspace/application/view/view_ext.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:flowy_infra_ui/style_widget/icon_button.dart'; @@ -128,8 +129,8 @@ class _BuiltInPageWidgetState extends State { width: 24, height: 24, iconPadding: const EdgeInsets.all(3), - icon: svgWidget( - 'common/information', + icon: FlowySvg( + FlowySvgs.information_s, color: Theme.of(context).iconTheme.color, ), ), @@ -145,8 +146,8 @@ class _BuiltInPageWidgetState extends State { width: 24, height: 24, iconPadding: const EdgeInsets.all(3), - icon: svgWidget( - 'common/settings', + icon: FlowySvg( + FlowySvgs.settings_s, color: Theme.of(context).iconTheme.color, ), onPressed: () => controller.show(), diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/link_to_page_widget.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/link_to_page_widget.dart index 99c4479ea1..0796687dfd 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/link_to_page_widget.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/link_to_page_widget.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/base/insert_page_command.dart'; import 'package:appflowy/workspace/application/view/view_ext.dart'; import 'package:appflowy/workspace/application/view/view_service.dart'; @@ -5,7 +6,6 @@ import 'package:appflowy/workspace/presentation/widgets/dialogs.dart'; import 'package:appflowy_backend/protobuf/flowy-error/errors.pb.dart'; import 'package:appflowy_backend/protobuf/flowy-folder2/view.pb.dart'; import 'package:appflowy_editor/appflowy_editor.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra_ui/style_widget/button.dart'; import 'package:flowy_infra_ui/style_widget/text.dart'; import 'package:flowy_infra_ui/widget/error_page.dart'; @@ -208,8 +208,8 @@ class _LinkToPageMenuState extends State { children.add( FlowyButton( isSelected: index == _selectedIndex, - leftIcon: svgWidget( - view.iconName, + leftIcon: FlowySvg( + view.iconData, color: Theme.of(context).iconTheme.color, ), text: FlowyText.regular(view.name), diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/selectable_item_list_menu.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/selectable_item_list_menu.dart index c87bc3ee90..8832224367 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/selectable_item_list_menu.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/selectable_item_list_menu.dart @@ -1,4 +1,4 @@ -import 'package:flowy_infra/image.dart'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; @@ -48,7 +48,7 @@ class SelectableItem extends StatelessWidget { height: 32, child: FlowyButton( text: FlowyText.medium(item), - rightIcon: isSelected ? const FlowySvg(name: 'grid/checkmark') : null, + rightIcon: isSelected ? const FlowySvg(FlowySvgs.check_s) : null, onTap: onTap, ), ); diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/selectable_svg_widget.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/selectable_svg_widget.dart index 2a08f181cc..8f3e4b7477 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/selectable_svg_widget.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/base/selectable_svg_widget.dart @@ -1,23 +1,24 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy_editor/appflowy_editor.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flutter/material.dart'; class SelectableSvgWidget extends StatelessWidget { const SelectableSvgWidget({ super.key, - required this.name, + required this.data, required this.isSelected, required this.style, }); - final String name; + final FlowySvgData data; final bool isSelected; final SelectionMenuStyle style; @override Widget build(BuildContext context) { - return svgWidget( - name, + return FlowySvg( + data, size: const Size.square(18.0), color: isSelected ? style.selectionMenuItemSelectedIconColor diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/database/inline_database_menu_item.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/database/inline_database_menu_item.dart index 0576d6e4b4..8797d6d5eb 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/database/inline_database_menu_item.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/database/inline_database_menu_item.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/document/application/doc_bloc.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/base/insert_page_command.dart'; @@ -11,7 +12,7 @@ SelectionMenuItem inlineGridMenuItem(DocumentBloc documentBloc) => SelectionMenuItem( name: LocaleKeys.document_slashMenu_grid_createANewGrid.tr(), icon: (editorState, onSelected, style) => SelectableSvgWidget( - name: 'editor/grid', + data: FlowySvgs.grid_s, isSelected: onSelected, style: style, ), @@ -36,7 +37,7 @@ SelectionMenuItem inlineBoardMenuItem(DocumentBloc documentBloc) => SelectionMenuItem( name: LocaleKeys.document_slashMenu_board_createANewBoard.tr(), icon: (editorState, onSelected, style) => SelectableSvgWidget( - name: 'editor/board', + data: FlowySvgs.board_s, isSelected: onSelected, style: style, ), @@ -60,7 +61,7 @@ SelectionMenuItem inlineCalendarMenuItem(DocumentBloc documentBloc) => SelectionMenuItem( name: LocaleKeys.document_slashMenu_calendar_createANewCalendar.tr(), icon: (editorState, onSelected, style) => SelectableSvgWidget( - name: 'editor/calendar', + data: FlowySvgs.date_s, isSelected: onSelected, style: style, ), diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/database/referenced_database_menu_item.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/database/referenced_database_menu_item.dart index ca82324813..94d20d479c 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/database/referenced_database_menu_item.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/database/referenced_database_menu_item.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/base/link_to_page_widget.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/base/selectable_svg_widget.dart'; @@ -9,7 +10,7 @@ import 'package:flutter/material.dart'; SelectionMenuItem referencedGridMenuItem = SelectionMenuItem( name: LocaleKeys.document_plugins_referencedGrid.tr(), icon: (editorState, onSelected, style) => SelectableSvgWidget( - name: 'editor/grid', + data: FlowySvgs.grid_s, isSelected: onSelected, style: style, ), @@ -28,7 +29,7 @@ SelectionMenuItem referencedGridMenuItem = SelectionMenuItem( SelectionMenuItem referencedBoardMenuItem = SelectionMenuItem( name: LocaleKeys.document_plugins_referencedBoard.tr(), icon: (editorState, onSelected, style) => SelectableSvgWidget( - name: 'editor/board', + data: FlowySvgs.board_s, isSelected: onSelected, style: style, ), @@ -47,7 +48,7 @@ SelectionMenuItem referencedBoardMenuItem = SelectionMenuItem( SelectionMenuItem referencedCalendarMenuItem = SelectionMenuItem( name: LocaleKeys.document_plugins_referencedCalendar.tr(), icon: (editorState, onSelected, style) => SelectableSvgWidget( - name: 'editor/calendar', + data: FlowySvgs.date_s, isSelected: onSelected, style: style, ), diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/cover_editor.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/cover_editor.dart index d18900d66e..e00f8c56c7 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/cover_editor.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/cover_editor.dart @@ -1,11 +1,12 @@ import 'dart:io'; import 'dart:ui'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/plugins.dart'; import 'package:appflowy_editor/appflowy_editor.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/size.dart'; import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/style_widget/button.dart'; @@ -445,8 +446,8 @@ class _ImageGridItemState extends State { Theme.of(context).colorScheme.surface.withOpacity(0.8), iconPadding: const EdgeInsets.all(5), width: 28, - icon: svgWidget( - 'editor/delete', + icon: FlowySvg( + FlowySvgs.delete_s, color: Theme.of(context).colorScheme.tertiary, ), onPressed: widget.onImageDelete, diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/custom_cover_picker.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/custom_cover_picker.dart index 39f0d239d3..088869f180 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/custom_cover_picker.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/custom_cover_picker.dart @@ -1,4 +1,5 @@ import 'dart:io'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/header/custom_cover_picker_bloc.dart'; import 'package:easy_localization/easy_localization.dart'; @@ -6,7 +7,6 @@ import 'package:flowy_infra_ui/style_widget/snap_bar.dart'; import 'package:flowy_infra_ui/widget/spacing.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra/size.dart'; import 'package:flowy_infra_ui/style_widget/button.dart'; import 'package:flowy_infra_ui/style_widget/text.dart'; @@ -219,7 +219,7 @@ class _CoverImagePreviewWidgetState extends State { mainAxisAlignment: MainAxisAlignment.center, children: [ const FlowySvg( - name: 'editor/add', + FlowySvgs.add_s, size: Size(20, 20), ), const SizedBox( @@ -243,7 +243,7 @@ class _CoverImagePreviewWidgetState extends State { }, useIntrinsicWidth: true, leftIcon: const FlowySvg( - name: 'file_icon', + FlowySvgs.page_s, size: Size(20, 20), ), text: FlowyText( @@ -268,9 +268,9 @@ class _CoverImagePreviewWidgetState extends State { shape: BoxShape.circle, color: Theme.of(context).colorScheme.onPrimary, ), - child: svgWidget( - "editor/close", - size: const Size(20, 20), + child: const FlowySvg( + FlowySvgs.close_s, + size: Size(20, 20), ), ), ), diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/document_header_node_widget.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/document_header_node_widget.dart index 7386aa42e9..93c9887ee7 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/document_header_node_widget.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/document_header_node_widget.dart @@ -1,11 +1,12 @@ import 'dart:io'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/workspace/presentation/widgets/emoji_picker/emoji_picker.dart'; import 'package:appflowy_editor/appflowy_editor.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flowy_infra_ui/widget/rounded_button.dart'; import 'package:flutter/material.dart'; @@ -227,7 +228,7 @@ class _DocumentHeaderToolbarState extends State { cover: (CoverType.asset, builtInAssetImages.first), ), useIntrinsicWidth: true, - leftIcon: const FlowySvg(name: 'editor/image'), + leftIcon: const FlowySvg(FlowySvgs.image_s), text: FlowyText.regular( LocaleKeys.document_plugins_cover_addCover.tr(), ), @@ -434,8 +435,8 @@ class DeleteCoverButton extends StatelessWidget { fillColor: Theme.of(context).colorScheme.surface.withOpacity(0.5), iconPadding: const EdgeInsets.all(5), width: 28, - icon: svgWidget( - 'editor/delete', + icon: FlowySvg( + FlowySvgs.delete_s, color: Theme.of(context).colorScheme.tertiary, ), onPressed: onTap, diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/emoji_popover.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/emoji_popover.dart index d24e0682b1..89ab6c072b 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/emoji_popover.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/header/emoji_popover.dart @@ -1,10 +1,11 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/workspace/presentation/widgets/emoji_picker/emoji_picker.dart'; import 'package:appflowy_editor/appflowy_editor.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flowy_infra_ui/style_widget/button.dart'; import 'package:flowy_infra_ui/style_widget/text.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flutter/material.dart'; class EmojiPopover extends StatefulWidget { @@ -77,7 +78,7 @@ class DeleteButton extends StatelessWidget { text: FlowyText( LocaleKeys.document_plugins_cover_removeIcon.tr(), ), - leftIcon: const FlowySvg(name: 'editor/delete'), + leftIcon: const FlowySvg(FlowySvgs.delete_s), ), ); } diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/image/image_menu.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/image/image_menu.dart index 9aa4523df8..71e341d460 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/image/image_menu.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/image/image_menu.dart @@ -1,8 +1,9 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy_editor/appflowy_editor.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flowy_infra_ui/widget/ignore_parent_gesture.dart'; import 'package:flutter/material.dart'; @@ -97,7 +98,7 @@ class _ImageCopyLinkButton extends StatelessWidget { return GestureDetector( onTap: onTap, child: const FlowySvg( - name: 'editor/copy', + FlowySvgs.copy_s, size: Size.square(16), ), ); @@ -190,9 +191,21 @@ class _ImageAlignButtonState extends State<_ImageAlignButton> { ); } + FlowySvgData iconFor(String alignment) { + switch (alignment) { + case 'right': + return FlowySvgs.align_right_s; + case 'center': + return FlowySvgs.align_center_s; + case 'left': + default: + return FlowySvgs.align_left_s; + } + } + Widget buildAlignIcon() { return FlowySvg( - name: 'editor/align/$align', + iconFor(align), size: const Size.square(16), ); } @@ -214,17 +227,17 @@ class _AlignButtons extends StatelessWidget { children: [ const HSpace(4), _AlignButton( - align: 'left', + icon: FlowySvgs.align_left_s, onTap: () => onAlignChanged('left'), ), const _Divider(), _AlignButton( - align: 'left', + icon: FlowySvgs.align_center_s, onTap: () => onAlignChanged('center'), ), const _Divider(), _AlignButton( - align: 'left', + icon: FlowySvgs.align_right_s, onTap: () => onAlignChanged('right'), ), const HSpace(4), @@ -236,11 +249,11 @@ class _AlignButtons extends StatelessWidget { class _AlignButton extends StatelessWidget { const _AlignButton({ - required this.align, + required this.icon, required this.onTap, }); - final String align; + final FlowySvgData icon; final VoidCallback onTap; @override @@ -248,7 +261,7 @@ class _AlignButton extends StatelessWidget { return GestureDetector( onTap: onTap, child: FlowySvg( - name: 'editor/align/$align', + icon, size: const Size.square(16), ), ); @@ -267,7 +280,7 @@ class _ImageDeleteButton extends StatelessWidget { return GestureDetector( onTap: onTap, child: const FlowySvg( - name: 'editor/delete', + FlowySvgs.delete_s, size: Size.square(16), ), ); diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/infra/svg.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/infra/svg.dart index 0951b0bda3..e1a128ed92 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/infra/svg.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/infra/svg.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:flutter_svg/svg.dart'; +import 'package:flutter_svg/flutter_svg.dart'; class Svg extends StatelessWidget { const Svg({ diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/inline_math_equation/inline_math_equation_toolbar_item.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/inline_math_equation/inline_math_equation_toolbar_item.dart index 3e95e5abb7..21a8568a07 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/inline_math_equation/inline_math_equation_toolbar_item.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/inline_math_equation/inline_math_equation_toolbar_item.dart @@ -1,8 +1,9 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/plugins.dart'; import 'package:appflowy_editor/appflowy_editor.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; + import 'package:flutter/material.dart'; final ToolbarItem inlineMathEquationItem = ToolbarItem( @@ -18,8 +19,8 @@ final ToolbarItem inlineMathEquationItem = ToolbarItem( ); }); return SVGIconItemWidget( - iconBuilder: (_) => svgWidget( - 'editor/math', + iconBuilder: (_) => FlowySvg( + FlowySvgs.math_lg, size: const Size.square(16), color: isHighlight ? highlightColor : Colors.white, ), diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/inline_page/inline_page_reference.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/inline_page/inline_page_reference.dart index 65f598bc50..d3104cccf1 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/inline_page/inline_page_reference.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/inline_page/inline_page_reference.dart @@ -107,7 +107,7 @@ class InlinePageReferenceService { for (final view in views) { final SelectionMenuItem pageSelectionMenuItem = SelectionMenuItem( icon: (editorState, isSelected, style) => SelectableSvgWidget( - name: view.iconName, + data: view.iconData, isSelected: isSelected, style: style, ), diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mention/mention_page_block.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mention/mention_page_block.dart index 24ab28c421..80c9d224ad 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mention/mention_page_block.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mention/mention_page_block.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/document/presentation/more/cubit/document_appearance_cubit.dart'; import 'package:appflowy/plugins/trash/application/trash_service.dart'; import 'package:appflowy/startup/startup.dart'; @@ -9,7 +10,6 @@ import 'package:appflowy_backend/protobuf/flowy-folder2/protobuf.dart'; import 'package:appflowy_editor/appflowy_editor.dart' show EditorState, SelectionUpdateReason; import 'package:collection/collection.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flowy_infra_ui/style_widget/hover.dart'; import 'package:flutter/material.dart'; @@ -83,7 +83,7 @@ class _MentionPageBlockState extends State { children: [ const HSpace(4), FlowySvg( - name: view.layout.iconName, + view.layout.icon, size: const Size.square(18.0), ), const HSpace(2), diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/more/more_button.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/more/more_button.dart index 181ac2b225..4152cdde8b 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/more/more_button.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/more/more_button.dart @@ -1,8 +1,8 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/document/presentation/more/cubit/document_appearance_cubit.dart'; import 'package:appflowy/plugins/document/presentation/more/font_size_switcher.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -29,8 +29,8 @@ class DocumentMoreButton extends StatelessWidget { ), ]; }, - child: svgWidget( - 'editor/details', + child: FlowySvg( + FlowySvgs.details_s, size: const Size(18, 18), color: Theme.of(context).iconTheme.color, ), diff --git a/frontend/appflowy_flutter/lib/plugins/trash/menu.dart b/frontend/appflowy_flutter/lib/plugins/trash/menu.dart index 943670d03b..f48e477e65 100644 --- a/frontend/appflowy_flutter/lib/plugins/trash/menu.dart +++ b/frontend/appflowy_flutter/lib/plugins/trash/menu.dart @@ -1,10 +1,10 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/startup/plugin/plugin.dart'; import 'package:appflowy/startup/startup.dart'; import 'package:appflowy/workspace/application/tabs/tabs_bloc.dart'; import 'package:appflowy/workspace/presentation/home/menu/menu_shared_state.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flowy_infra/theme_extension.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra/size.dart'; import 'package:flowy_infra_ui/style_widget/extension.dart'; import 'package:flowy_infra_ui/style_widget/hover.dart'; @@ -49,8 +49,8 @@ class MenuTrash extends StatelessWidget { return Row( children: [ const FlowySvg( + FlowySvgs.trash_m, size: Size(16, 16), - name: 'home/trash', ), const HSpace(6), FlowyText.medium(LocaleKeys.trash_text.tr()), diff --git a/frontend/appflowy_flutter/lib/plugins/trash/src/trash_cell.dart b/frontend/appflowy_flutter/lib/plugins/trash/src/trash_cell.dart index 89c124d217..487bcb82aa 100644 --- a/frontend/appflowy_flutter/lib/plugins/trash/src/trash_cell.dart +++ b/frontend/appflowy_flutter/lib/plugins/trash/src/trash_cell.dart @@ -1,4 +1,4 @@ -import 'package:flowy_infra/image.dart'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:flowy_infra_ui/style_widget/icon_button.dart'; import 'package:flowy_infra_ui/style_widget/text.dart'; import 'package:flowy_infra_ui/widget/spacing.dart'; @@ -42,7 +42,7 @@ class TrashCell extends StatelessWidget { width: TrashSizes.actionIconWidth, onPressed: onRestore, iconPadding: const EdgeInsets.all(5), - icon: const FlowySvg(name: 'editor/restore'), + icon: const FlowySvg(FlowySvgs.restore_s), ), const HSpace(20), FlowyIconButton( @@ -50,7 +50,7 @@ class TrashCell extends StatelessWidget { width: TrashSizes.actionIconWidth, onPressed: onDelete, iconPadding: const EdgeInsets.all(5), - icon: const FlowySvg(name: 'editor/delete'), + icon: const FlowySvg(FlowySvgs.delete_s), ), ], ); diff --git a/frontend/appflowy_flutter/lib/plugins/trash/trash.dart b/frontend/appflowy_flutter/lib/plugins/trash/trash.dart index 920c04b793..cedac2622a 100644 --- a/frontend/appflowy_flutter/lib/plugins/trash/trash.dart +++ b/frontend/appflowy_flutter/lib/plugins/trash/trash.dart @@ -2,6 +2,7 @@ export "./src/sizes.dart"; export "./src/trash_cell.dart"; export "./src/trash_header.dart"; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/startup/plugin/plugin.dart'; import 'package:appflowy/workspace/presentation/home/home_stack.dart'; import 'package:easy_localization/easy_localization.dart'; @@ -21,7 +22,7 @@ class TrashPluginBuilder extends PluginBuilder { String get menuName => "TrashPB"; @override - String get menuIcon => "editor/delete"; + FlowySvgData get icon => FlowySvgs.trash_m; @override PluginType get pluginType => PluginType.trash; diff --git a/frontend/appflowy_flutter/lib/plugins/trash/trash_page.dart b/frontend/appflowy_flutter/lib/plugins/trash/trash_page.dart index 4ade561baa..9b0631b9b0 100644 --- a/frontend/appflowy_flutter/lib/plugins/trash/trash_page.dart +++ b/frontend/appflowy_flutter/lib/plugins/trash/trash_page.dart @@ -1,9 +1,9 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/trash/src/sizes.dart'; import 'package:appflowy/plugins/trash/src/trash_header.dart'; import 'package:appflowy/startup/startup.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra/size.dart'; import 'package:flowy_infra_ui/style_widget/button.dart'; import 'package:flowy_infra_ui/style_widget/scrolling/styled_list.dart'; @@ -96,7 +96,7 @@ class _TrashPageState extends State { IntrinsicWidth( child: FlowyButton( text: FlowyText.medium(LocaleKeys.trash_restoreAll.tr()), - leftIcon: const FlowySvg(name: 'editor/restore'), + leftIcon: const FlowySvg(FlowySvgs.restore_s), onTap: () => context.read().add( const TrashEvent.restoreAll(), ), @@ -106,7 +106,7 @@ class _TrashPageState extends State { IntrinsicWidth( child: FlowyButton( text: FlowyText.medium(LocaleKeys.trash_deleteAll.tr()), - leftIcon: const FlowySvg(name: 'editor/delete'), + leftIcon: const FlowySvg(FlowySvgs.delete_s), onTap: () => context.read().add(const TrashEvent.deleteAll()), ), diff --git a/frontend/appflowy_flutter/lib/startup/plugin/plugin.dart b/frontend/appflowy_flutter/lib/startup/plugin/plugin.dart index 3572fc6488..5a2444e91f 100644 --- a/frontend/appflowy_flutter/lib/startup/plugin/plugin.dart +++ b/frontend/appflowy_flutter/lib/startup/plugin/plugin.dart @@ -1,5 +1,6 @@ library flowy_plugin; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/startup/plugin/plugin.dart'; import 'package:appflowy/startup/startup.dart'; import 'package:appflowy/workspace/presentation/home/home_stack.dart'; @@ -45,7 +46,7 @@ abstract class PluginBuilder { String get menuName; - String get menuIcon; + FlowySvgData get icon; /// The type of this [Plugin]. Each [Plugin] should have a unique [PluginType] PluginType get pluginType; diff --git a/frontend/appflowy_flutter/lib/user/presentation/folder/folder_widget.dart b/frontend/appflowy_flutter/lib/user/presentation/folder/folder_widget.dart index 7ef1712ece..b064b90da2 100644 --- a/frontend/appflowy_flutter/lib/user/presentation/folder/folder_widget.dart +++ b/frontend/appflowy_flutter/lib/user/presentation/folder/folder_widget.dart @@ -1,9 +1,9 @@ import 'dart:io'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/workspace/application/settings/prelude.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flowy_infra/file_picker/file_picker_service.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra/size.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flowy_infra_ui/widget/buttons/secondary_button.dart'; @@ -86,7 +86,7 @@ class FolderOptionsWidget extends StatelessWidget { builder: (context, result) { final subtitle = result.hasData ? result.data! : ''; return _FolderCard( - icon: const FlowySvg(name: 'common/archive'), + icon: const FlowySvg(FlowySvgs.archive_m), title: LocaleKeys.settings_files_defineWhereYourDataIsStored.tr(), subtitle: subtitle, trailing: _buildTextButton( diff --git a/frontend/appflowy_flutter/lib/user/presentation/historical_user.dart b/frontend/appflowy_flutter/lib/user/presentation/historical_user.dart index 7fe2ee85e2..9e74e2c0ae 100644 --- a/frontend/appflowy_flutter/lib/user/presentation/historical_user.dart +++ b/frontend/appflowy_flutter/lib/user/presentation/historical_user.dart @@ -1,8 +1,8 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/user/application/historical_user_bloc.dart'; import 'package:appflowy_backend/protobuf/flowy-user/protobuf.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -71,7 +71,7 @@ class HistoricalUserItem extends StatelessWidget { @override Widget build(BuildContext context) { - final icon = isSelected ? const FlowySvg(name: "grid/checkmark") : null; + final icon = isSelected ? const FlowySvg(FlowySvgs.check_s) : null; final isDisabled = isSelected || user.authType != AuthTypePB.Local; final outputFormat = DateFormat('MM/dd/yyyy hh:mm a'); final date = diff --git a/frontend/appflowy_flutter/lib/user/presentation/sign_in_screen.dart b/frontend/appflowy_flutter/lib/user/presentation/sign_in_screen.dart index d29dac34c8..ee7ed27b7c 100644 --- a/frontend/appflowy_flutter/lib/user/presentation/sign_in_screen.dart +++ b/frontend/appflowy_flutter/lib/user/presentation/sign_in_screen.dart @@ -2,6 +2,7 @@ import 'package:appflowy/core/config/kv.dart'; import 'package:appflowy/core/config/kv_keys.dart'; import 'package:appflowy/core/frameless_window.dart'; import 'package:appflowy/startup/entry_point.dart'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/startup/startup.dart'; import 'package:appflowy/user/application/historical_user_bloc.dart'; import 'package:appflowy/user/application/sign_in_bloc.dart'; @@ -19,7 +20,6 @@ import 'package:appflowy_backend/protobuf/flowy-user/protobuf.dart' import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:dartz/dartz.dart'; -import 'package:flowy_infra/image.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; class SignInScreen extends StatelessWidget { @@ -281,8 +281,8 @@ class PasswordTextField extends StatelessWidget { builder: (context, state) { return RoundedInputField( obscureText: true, - obscureIcon: svgWidget("home/hide"), - obscureHideIcon: svgWidget("home/show"), + obscureIcon: const FlowySvg(FlowySvgs.hide_m), + obscureHideIcon: const FlowySvg(FlowySvgs.show_m), hintText: LocaleKeys.signIn_passwordHint.tr(), errorText: context .read() @@ -357,7 +357,7 @@ class ThirdPartySignInButton extends StatelessWidget { required this.onPressed, }) : super(key: key); - final String icon; + final FlowySvgData icon; final VoidCallback onPressed; @override @@ -368,7 +368,7 @@ class ThirdPartySignInButton extends StatelessWidget { iconPadding: const EdgeInsets.all(8.0), radius: Corners.s10Border, onPressed: onPressed, - icon: svgWidget( + icon: FlowySvg( icon, ), ); @@ -388,7 +388,7 @@ class ThirdPartySignInButtons extends StatelessWidget { mainAxisAlignment: mainAxisAlignment, children: [ ThirdPartySignInButton( - icon: 'login/google-mark', + icon: FlowySvgs.google_mark_xl, onPressed: () { getIt().set(KVKeys.loginType, 'supabase'); context.read().add( diff --git a/frontend/appflowy_flutter/lib/user/presentation/sign_up_screen.dart b/frontend/appflowy_flutter/lib/user/presentation/sign_up_screen.dart index 95f9c2fef8..5736b30ae9 100644 --- a/frontend/appflowy_flutter/lib/user/presentation/sign_up_screen.dart +++ b/frontend/appflowy_flutter/lib/user/presentation/sign_up_screen.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/startup/startup.dart'; import 'package:appflowy/user/application/sign_up_bloc.dart'; import 'package:appflowy/user/presentation/router.dart'; @@ -14,7 +15,6 @@ import 'package:flowy_infra_ui/style_widget/snap_bar.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:dartz/dartz.dart'; -import 'package:flowy_infra/image.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; class SignUpScreen extends StatelessWidget { @@ -148,8 +148,8 @@ class PasswordTextField extends StatelessWidget { builder: (context, state) { return RoundedInputField( obscureText: true, - obscureIcon: svgWidget("home/hide"), - obscureHideIcon: svgWidget("home/show"), + obscureIcon: const FlowySvg(FlowySvgs.hide_m), + obscureHideIcon: const FlowySvg(FlowySvgs.show_m), hintText: LocaleKeys.signUp_passwordHint.tr(), normalBorderColor: Theme.of(context).colorScheme.outline, errorBorderColor: Theme.of(context).colorScheme.error, @@ -181,8 +181,8 @@ class RepeatPasswordTextField extends StatelessWidget { builder: (context, state) { return RoundedInputField( obscureText: true, - obscureIcon: svgWidget("home/hide"), - obscureHideIcon: svgWidget("home/show"), + obscureIcon: const FlowySvg(FlowySvgs.hide_m), + obscureHideIcon: const FlowySvg(FlowySvgs.show_m), hintText: LocaleKeys.signUp_repeatPasswordHint.tr(), normalBorderColor: Theme.of(context).colorScheme.outline, errorBorderColor: Theme.of(context).colorScheme.error, diff --git a/frontend/appflowy_flutter/lib/user/presentation/skip_log_in_screen.dart b/frontend/appflowy_flutter/lib/user/presentation/skip_log_in_screen.dart index 16a51826ea..be8845b6a4 100644 --- a/frontend/appflowy_flutter/lib/user/presentation/skip_log_in_screen.dart +++ b/frontend/appflowy_flutter/lib/user/presentation/skip_log_in_screen.dart @@ -1,4 +1,5 @@ import 'package:appflowy/core/frameless_window.dart'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/startup/entry_point.dart'; import 'package:appflowy/startup/launch_configuration.dart'; import 'package:appflowy/startup/startup.dart'; @@ -8,7 +9,6 @@ import 'package:appflowy/workspace/presentation/settings/widgets/settings_langua import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:dartz/dartz.dart' as dartz; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra/language.dart'; import 'package:flowy_infra/size.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; @@ -245,7 +245,7 @@ class LanguageSelectorOnWelcomePage extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.end, children: [ const FlowySvg( - name: 'login/language', + FlowySvgs.ethernet_m, size: Size.square(20), ), const HSpace(4), @@ -259,7 +259,7 @@ class LanguageSelectorOnWelcomePage extends StatelessWidget { }, ), const FlowySvg( - name: 'home/drop_down_hide', + FlowySvgs.drop_menu_hide_m, size: Size.square(20), ), ], diff --git a/frontend/appflowy_flutter/lib/user/presentation/widgets/background.dart b/frontend/appflowy_flutter/lib/user/presentation/widgets/background.dart index 779e7cf0ba..17fcf0e370 100644 --- a/frontend/appflowy_flutter/lib/user/presentation/widgets/background.dart +++ b/frontend/appflowy_flutter/lib/user/presentation/widgets/background.dart @@ -1,6 +1,6 @@ import 'dart:math'; -import 'package:flowy_infra/image.dart'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:flowy_infra/size.dart'; import 'package:flowy_infra_ui/style_widget/text.dart'; import 'package:flowy_infra_ui/widget/spacing.dart'; @@ -44,7 +44,7 @@ class FlowyLogoTitle extends StatelessWidget { children: [ SizedBox.fromSize( size: logoSize, - child: svgWidget('flowy_logo'), + child: const FlowySvg(FlowySvgs.flowy_logo_xl), ), const VSpace(40), FlowyText.regular( diff --git a/frontend/appflowy_flutter/lib/workspace/application/view/view_ext.dart b/frontend/appflowy_flutter/lib/workspace/application/view/view_ext.dart index f8d189220a..e42c8e988a 100644 --- a/frontend/appflowy_flutter/lib/workspace/application/view/view_ext.dart +++ b/frontend/appflowy_flutter/lib/workspace/application/view/view_ext.dart @@ -1,10 +1,10 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/database_view/board/presentation/board_page.dart'; import 'package:appflowy/plugins/database_view/calendar/presentation/calendar_page.dart'; import 'package:appflowy/plugins/database_view/grid/presentation/grid_page.dart'; import 'package:appflowy/plugins/database_view/tar_bar/tab_bar_view.dart'; import 'package:appflowy/plugins/document/document.dart'; import 'package:appflowy/startup/plugin/plugin.dart'; -import 'package:flowy_infra/image.dart'; import 'package:appflowy_backend/protobuf/flowy-folder2/view.pb.dart'; import 'package:flutter/material.dart'; @@ -39,21 +39,19 @@ extension FlowyPluginExtension on FlowyPlugin { extension ViewExtension on ViewPB { Widget renderThumbnail({Color? iconColor}) { - const String thumbnail = "file_icon"; - const Widget widget = FlowySvg(name: thumbnail); + const Widget widget = FlowySvg(FlowySvgs.page_s); return widget; } Widget defaultIcon() { - final iconName = switch (layout) { - ViewLayoutPB.Board => 'editor/board', - ViewLayoutPB.Calendar => 'editor/calendar', - ViewLayoutPB.Grid => 'editor/grid', - ViewLayoutPB.Document => 'editor/documents', - _ => 'file_icon', - }; return FlowySvg( - name: iconName, + switch (layout) { + ViewLayoutPB.Board => FlowySvgs.board_s, + ViewLayoutPB.Calendar => FlowySvgs.date_s, + ViewLayoutPB.Grid => FlowySvgs.grid_s, + ViewLayoutPB.Document => FlowySvgs.documents_s, + _ => FlowySvgs.documents_s, + }, ); } @@ -105,22 +103,20 @@ extension ViewExtension on ViewPB { throw UnimplementedError; } - String get iconName { - return layout.iconName; - } + FlowySvgData get iconData => layout.icon; } extension ViewLayoutExtension on ViewLayoutPB { - String get iconName { + FlowySvgData get icon { switch (this) { case ViewLayoutPB.Grid: - return 'editor/grid'; + return FlowySvgs.grid_s; case ViewLayoutPB.Board: - return 'editor/board'; + return FlowySvgs.board_s; case ViewLayoutPB.Calendar: - return 'editor/date'; + return FlowySvgs.date_s; case ViewLayoutPB.Document: - return 'editor/documents'; + return FlowySvgs.documents_s; default: throw Exception('Unknown layout type'); } diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/folder/personal_folder.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/folder/personal_folder.dart index 5f3c5bda2a..3a6df0be80 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/folder/personal_folder.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/folder/personal_folder.dart @@ -1,4 +1,5 @@ import 'package:appflowy/core/raw_keyboard_extension.dart'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/workspace/application/menu/menu_bloc.dart'; import 'package:appflowy/workspace/application/sidebar/folder/folder_bloc.dart'; @@ -6,7 +7,6 @@ import 'package:appflowy/workspace/application/tabs/tabs_bloc.dart'; import 'package:appflowy/workspace/presentation/home/menu/view/view_item.dart'; import 'package:appflowy_backend/protobuf/flowy-folder2/view.pb.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -115,7 +115,7 @@ class _PersonalFolderHeaderState extends State { iconPadding: const EdgeInsets.all(2), height: iconSize, width: iconSize, - icon: const FlowySvg(name: 'editor/add'), + icon: const FlowySvg(FlowySvgs.add_s), onPressed: () { context.read().add( MenuEvent.createApp( diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/import/import_type.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/import/import_type.dart index b07a8fffba..86a2797f1a 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/import/import_type.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/import/import_type.dart @@ -1,6 +1,6 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; @@ -28,21 +28,20 @@ enum ImportType { } WidgetBuilder get icon => (context) { - final String name; + final FlowySvgData svg; switch (this) { - case ImportType.historyDocument: - name = 'editor/board'; case ImportType.historyDatabase: - name = 'editor/documents'; + svg = FlowySvgs.documents_s; + case ImportType.historyDocument: case ImportType.databaseCSV: - name = 'editor/board'; case ImportType.databaseRawData: - name = 'editor/board'; + svg = FlowySvgs.board_s; case ImportType.markdownOrText: - name = 'editor/text'; + svg = FlowySvgs.text_s; } + return FlowySvg( - name: name, + svg, color: Theme.of(context).colorScheme.tertiary, ); }; diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_folder.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_folder.dart index 548c5bd3b7..74590d790d 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_folder.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_folder.dart @@ -25,11 +25,12 @@ class SidebarFolder extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.start, children: [ // favorite - if (favoriteViews.isNotEmpty) + if (favoriteViews.isNotEmpty) ...[ FavoriteFolder( views: favoriteViews, ), - const VSpace(10), + const VSpace(10), + ], // personal PersonalFolder(views: views), ], diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_new_page_button.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_new_page_button.dart index a94575cfcd..cec04264fe 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_new_page_button.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_new_page_button.dart @@ -1,7 +1,7 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/workspace/application/menu/menu_bloc.dart'; import 'package:appflowy/workspace/presentation/widgets/dialogs.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra_ui/style_widget/button.dart'; import 'package:flutter/material.dart'; import 'package:flowy_infra_ui/style_widget/extension.dart'; @@ -28,7 +28,7 @@ class SidebarNewPageButton extends StatelessWidget { shape: BoxShape.circle, color: Theme.of(context).colorScheme.surface, ), - child: svgWidget('home/new_app'), + child: const FlowySvg(FlowySvgs.new_app_s), ), padding: const EdgeInsets.all(0), ); diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_top_menu.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_top_menu.dart index 3a2493bdba..22671f787b 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_top_menu.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_top_menu.dart @@ -1,12 +1,12 @@ import 'dart:io' show Platform; import 'package:appflowy/core/frameless_window.dart'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/workspace/application/home/home_setting_bloc.dart'; import 'package:appflowy/workspace/application/menu/menu_bloc.dart'; import 'package:appflowy/workspace/presentation/home/home_sizes.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra_ui/style_widget/icon_button.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -47,9 +47,9 @@ class SidebarTopMenu extends StatelessWidget { } final name = Theme.of(context).brightness == Brightness.dark - ? 'flowy_logo_dark_mode' - : 'flowy_logo_with_text'; - return svgWidget( + ? FlowySvgs.flowy_logo_dark_mode_xl + : FlowySvgs.flowy_logo_text_xl; + return FlowySvg( name, size: const Size(92, 17), ); @@ -77,7 +77,7 @@ class SidebarTopMenu extends StatelessWidget { .add(const HomeSettingEvent.collapseMenu()), iconPadding: const EdgeInsets.fromLTRB(4, 4, 4, 4), icon: const FlowySvg( - name: 'home/hide_menu', + FlowySvgs.hide_menu_m, ), ), ); diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_trash.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_trash.dart index 36014021b1..b4a6eb344a 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_trash.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_trash.dart @@ -1,10 +1,10 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/startup/plugin/plugin.dart'; import 'package:appflowy/startup/startup.dart'; import 'package:appflowy/workspace/application/tabs/tabs_bloc.dart'; import 'package:appflowy/workspace/presentation/home/menu/menu_shared_state.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flowy_infra/theme_extension.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra_ui/style_widget/hover.dart'; import 'package:flowy_infra_ui/style_widget/text.dart'; import 'package:flowy_infra_ui/widget/spacing.dart'; @@ -50,8 +50,8 @@ class SidebarTrashButton extends StatelessWidget { children: [ const HSpace(6), const FlowySvg( + FlowySvgs.trash_m, size: Size(16, 16), - name: 'home/trash', ), const HSpace(6), FlowyText.medium( diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_user.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_user.dart index f95d111d64..e5bc7c5626 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_user.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/sidebar/sidebar_user.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/document/presentation/more/cubit/document_appearance_cubit.dart'; import 'package:appflowy/startup/entry_point.dart'; import 'package:appflowy/startup/startup.dart'; @@ -5,7 +6,6 @@ import 'package:appflowy/util/color_generator/color_generator.dart'; import 'package:appflowy/workspace/application/menu/menu_user_bloc.dart'; import 'package:appflowy/workspace/presentation/settings/settings_dialog.dart'; import 'package:appflowy/workspace/presentation/settings/widgets/settings_user_view.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra/size.dart'; import 'package:flowy_infra_ui/style_widget/text.dart'; import 'package:flowy_infra_ui/widget/spacing.dart'; @@ -84,7 +84,10 @@ class SidebarUser extends StatelessWidget { borderRadius: Corners.s5Border, child: CircleAvatar( backgroundColor: Colors.transparent, - child: svgWidget('emoji/$iconUrl'), + child: FlowySvg( + FlowySvgData('emoji/$iconUrl'), + overrideColor: false, + ), ), ), ); @@ -140,8 +143,8 @@ class SidebarUser extends StatelessWidget { }, icon: SizedBox.square( dimension: 20, - child: svgWidget( - 'home/settings', + child: FlowySvg( + FlowySvgs.settings_m, color: Theme.of(context).colorScheme.tertiary, ), ), diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_action_type.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_action_type.dart index cce5ef0e13..9fda07d7d2 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_action_type.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_action_type.dart @@ -1,6 +1,6 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flutter/material.dart'; enum ViewMoreActionType { @@ -39,21 +39,21 @@ extension ViewMoreActionTypeExtension on ViewMoreActionType { Widget icon(Color iconColor) { switch (this) { case ViewMoreActionType.delete: - return const FlowySvg(name: 'editor/delete'); + return const FlowySvg(FlowySvgs.delete_s); case ViewMoreActionType.favorite: - return const FlowySvg(name: 'home/unfavorite'); + return const FlowySvg(FlowySvgs.unfavorite_s); case ViewMoreActionType.unFavorite: - return const FlowySvg(name: 'home/favorite'); + return const FlowySvg(FlowySvgs.favorite_s); case ViewMoreActionType.duplicate: - return const FlowySvg(name: 'editor/copy'); + return const FlowySvg(FlowySvgs.copy_s); case ViewMoreActionType.copyLink: return const Icon(Icons.copy); case ViewMoreActionType.rename: - return const FlowySvg(name: 'editor/edit'); + return const FlowySvg(FlowySvgs.edit_s); case ViewMoreActionType.moveTo: return const Icon(Icons.move_to_inbox); case ViewMoreActionType.openInNewTab: - return const FlowySvg(name: 'grid/expander'); + return const FlowySvg(FlowySvgs.full_view_s); } } } diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_add_button.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_add_button.dart index 799a6ca138..e020751e0b 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_add_button.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_add_button.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/plugins/document/document.dart'; import 'package:appflowy/startup/plugin/plugin.dart'; import 'package:appflowy/startup/startup.dart'; @@ -5,7 +6,6 @@ import 'package:appflowy/workspace/presentation/home/menu/sidebar/import/import_ import 'package:appflowy/workspace/presentation/widgets/pop_up_action.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; @@ -57,7 +57,7 @@ class ViewAddButton extends StatelessWidget { hoverColor: Colors.transparent, iconPadding: const EdgeInsets.all(2), width: 26, - icon: const FlowySvg(name: 'editor/add'), + icon: const FlowySvg(FlowySvgs.add_s), onPressed: () { onEditing(true); popover.show(); @@ -108,7 +108,7 @@ class ViewAddButtonActionWrapper extends ActionCell { final PluginBuilder pluginBuilder; @override - Widget? leftIcon(Color iconColor) => FlowySvg(name: pluginBuilder.menuIcon); + Widget? leftIcon(Color iconColor) => FlowySvg(pluginBuilder.icon); @override String get name => pluginBuilder.menuName; @@ -124,7 +124,7 @@ class ViewImportActionWrapper extends ActionCell { final DocumentPluginBuilder pluginBuilder; @override - Widget? leftIcon(Color iconColor) => const FlowySvg(name: 'editor/import'); + Widget? leftIcon(Color iconColor) => const FlowySvg(FlowySvgs.import_s); @override String get name => LocaleKeys.moreAction_import.tr(); diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_item.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_item.dart index 4c56858b0c..742ceba2a8 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_item.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_item.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/startup/startup.dart'; import 'package:appflowy/workspace/application/favorite/favorite_bloc.dart'; @@ -12,7 +13,6 @@ import 'package:appflowy/workspace/presentation/home/menu/view/view_add_button.d import 'package:appflowy/workspace/presentation/home/menu/view/view_more_action_button.dart'; import 'package:appflowy/workspace/presentation/widgets/dialogs.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:appflowy_backend/protobuf/flowy-folder2/view.pb.dart'; import 'package:flowy_infra_ui/style_widget/hover.dart'; @@ -320,11 +320,12 @@ class _SingleInnerViewItemState extends State { return const _DotIconWidget(); } - final name = - widget.isExpanded ? 'home/drop_down_show' : 'home/drop_down_hide'; + final svg = widget.isExpanded + ? FlowySvgs.drop_menu_show_m + : FlowySvgs.drop_menu_hide_m; return GestureDetector( child: FlowySvg( - name: name, + svg, size: const Size.square(16.0), ), onTap: () => context diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_more_action_button.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_more_action_button.dart index d236157fe8..ed6001a2f7 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_more_action_button.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/view_more_action_button.dart @@ -1,7 +1,7 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/workspace/presentation/home/menu/view/view_action_type.dart'; import 'package:appflowy_backend/protobuf/flowy-folder2/view.pb.dart'; import 'package:flutter/material.dart'; -import 'package:flowy_infra/image.dart'; import 'package:appflowy/workspace/presentation/widgets/pop_up_action.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; @@ -42,7 +42,7 @@ class ViewMoreActionButton extends StatelessWidget { hoverColor: Colors.transparent, iconPadding: const EdgeInsets.all(2), width: 26, - icon: const FlowySvg(name: 'editor/details'), + icon: const FlowySvg(FlowySvgs.details_s), onPressed: () { onEditing(true); popover.show(); diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/navigation.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/navigation.dart index aa34984374..d71e42ac0d 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/navigation.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/navigation.dart @@ -1,10 +1,10 @@ import 'dart:io'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/workspace/application/home/home_setting_bloc.dart'; import 'package:appflowy/workspace/presentation/home/home_stack.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra/size.dart'; import 'package:flowy_infra_ui/style_widget/icon_button.dart'; import 'package:flowy_infra_ui/style_widget/text.dart'; @@ -79,8 +79,8 @@ class FlowyNavigation extends StatelessWidget { .add(const HomeSettingEvent.collapseMenu()); }, iconPadding: const EdgeInsets.fromLTRB(2, 2, 2, 2), - icon: svgWidget( - "home/hide_menu", + icon: FlowySvg( + FlowySvgs.hide_menu_m, color: Theme.of(context).iconTheme.color, ), ), diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/tabs/flowy_tab.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/tabs/flowy_tab.dart index 0b97774c36..0d12894b47 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/tabs/flowy_tab.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/tabs/flowy_tab.dart @@ -1,7 +1,7 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/workspace/application/tabs/tabs_bloc.dart'; import 'package:appflowy/workspace/presentation/home/home_sizes.dart'; import 'package:appflowy/workspace/presentation/home/home_stack.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra_ui/style_widget/icon_button.dart'; import 'package:flutter/material.dart'; @@ -53,7 +53,7 @@ class _FlowyTabState extends State { child: FlowyIconButton( onPressed: _closeTab, icon: const FlowySvg( - name: 'editor/close', + FlowySvgs.close_s, size: Size.fromWidth(16), ), ), diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_appearance_view.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_appearance_view.dart index d10ce90361..0964def3fa 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_appearance_view.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_appearance_view.dart @@ -1,3 +1,4 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/plugins/document/presentation/more/cubit/document_appearance_cubit.dart'; import 'package:appflowy/workspace/application/appearance.dart'; @@ -6,7 +7,6 @@ import 'package:appflowy/workspace/presentation/widgets/dialogs.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:collection/collection.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra/plugins/bloc/dynamic_plugin_bloc.dart'; import 'package:flowy_infra/plugins/bloc/dynamic_plugin_event.dart'; import 'package:flowy_infra/plugins/bloc/dynamic_plugin_state.dart'; @@ -86,7 +86,7 @@ class ThemeUploadOverlayButton extends StatelessWidget { Widget build(BuildContext context) { return FlowyIconButton( width: 24, - icon: const FlowySvg(name: 'folder'), + icon: const FlowySvg(FlowySvgs.folder_m), iconColorOnHover: Theme.of(context).colorScheme.onPrimary, onPressed: () => Dialogs.show( context, @@ -190,7 +190,7 @@ class ThemeSelectionPopover extends StatelessWidget { child: FlowyButton( text: FlowyText.medium(theme), rightIcon: currentTheme == theme - ? const FlowySvg(name: 'grid/checkmark') + ? const FlowySvg(FlowySvgs.check_s) : null, onTap: () { if (currentTheme != theme) { @@ -201,7 +201,7 @@ class ThemeSelectionPopover extends StatelessWidget { ), if (!isBuiltin) FlowyIconButton( - icon: const FlowySvg(name: 'home/close'), + icon: const FlowySvg(FlowySvgs.close_m), width: 20, onPressed: () => bloc.add(DynamicPluginEvent.removePlugin(name: theme)), @@ -254,7 +254,7 @@ class BrightnessSetting extends StatelessWidget { child: FlowyButton( text: FlowyText.medium(_themeModeLabelText(themeMode)), rightIcon: currentThemeMode == themeMode - ? const FlowySvg(name: 'grid/checkmark') + ? const FlowySvg(FlowySvgs.check_s) : null, onTap: () { if (currentThemeMode != themeMode) { @@ -376,7 +376,7 @@ class _ThemeFontFamilySettingState extends State { ), rightIcon: buttonFontFamily == parseFontFamilyName(widget.currentFontFamily) - ? const FlowySvg(name: 'grid/checkmark') + ? const FlowySvg(FlowySvgs.check_s) : null, onTap: () { if (parseFontFamilyName(widget.currentFontFamily) != diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_export_file_widget.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_export_file_widget.dart index b381305607..d97b8a5631 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_export_file_widget.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_export_file_widget.dart @@ -1,5 +1,5 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/workspace/presentation/settings/widgets/settings_file_exporter_widget.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flutter/material.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; @@ -65,8 +65,8 @@ class _OpenExportedDirectoryButton extends StatelessWidget { return FlowyIconButton( hoverColor: Theme.of(context).colorScheme.secondaryContainer, tooltipText: LocaleKeys.settings_files_export.tr(), - icon: svgWidget( - 'common/open_folder', + icon: FlowySvg( + FlowySvgs.open_folder_lg, color: Theme.of(context).iconTheme.color, ), onPressed: onTap, diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_file_customize_location_view.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_file_customize_location_view.dart index 5451cd5632..ff57d91172 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_file_customize_location_view.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_file_customize_location_view.dart @@ -1,9 +1,9 @@ import 'dart:io'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/startup/entry_point.dart'; import 'package:flowy_infra/file_picker/file_picker_service.dart'; import 'package:appflowy/workspace/application/settings/settings_location_cubit.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra_ui/style_widget/hover.dart'; import 'package:flowy_infra_ui/widget/buttons/secondary_button.dart'; import 'package:flutter/material.dart'; @@ -203,8 +203,8 @@ class _OpenStorageButton extends StatelessWidget { return FlowyIconButton( hoverColor: Theme.of(context).colorScheme.secondaryContainer, tooltipText: LocaleKeys.settings_files_openCurrentDataFolder.tr(), - icon: svgWidget( - 'common/open_folder', + icon: FlowySvg( + FlowySvgs.open_folder_lg, color: Theme.of(context).iconTheme.color, ), onPressed: () async { @@ -236,8 +236,8 @@ class _RecoverDefaultStorageButtonState return FlowyIconButton( hoverColor: Theme.of(context).colorScheme.secondaryContainer, tooltipText: LocaleKeys.settings_files_recoverLocationTooltips.tr(), - icon: svgWidget( - 'common/recover', + icon: FlowySvg( + FlowySvgs.restore_s, color: Theme.of(context).iconTheme.color, ), onPressed: () async { diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_language_view.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_language_view.dart index 78bf071d0b..b22861a36c 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_language_view.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_language_view.dart @@ -1,8 +1,8 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/workspace/application/appearance.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; import 'package:flowy_infra/language.dart'; @@ -99,9 +99,8 @@ class LanguageItem extends StatelessWidget { text: FlowyText.medium( languageFromLocale(locale), ), - rightIcon: currentLocale == locale - ? const FlowySvg(name: 'grid/checkmark') - : null, + rightIcon: + currentLocale == locale ? const FlowySvg(FlowySvgs.check_s) : null, onTap: () { if (currentLocale != locale) { context.read().setLocale(context, locale); diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_user_view.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_user_view.dart index f103ff799f..0730d6f39e 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_user_view.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/settings_user_view.dart @@ -2,6 +2,7 @@ import 'dart:convert'; import 'dart:async'; import 'package:appflowy/env/env.dart'; +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/startup/startup.dart'; import 'package:appflowy/user/application/auth/auth_service.dart'; @@ -10,7 +11,6 @@ import 'package:appflowy/workspace/application/user/settings_user_bloc.dart'; import 'package:appflowy/workspace/presentation/widgets/dialogs.dart'; import 'package:appflowy_backend/protobuf/flowy-user/protobuf.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra/size.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flutter/material.dart'; @@ -302,7 +302,7 @@ class _CurrentIcon extends StatelessWidget { LocaleKeys.settings_user_selectAnIcon.tr(), fontSize: FontSizes.s16, ), - children: [ + children: [ SizedBox( height: 300, width: 300, @@ -315,9 +315,10 @@ class _CurrentIcon extends StatelessWidget { }, child: Container( margin: const EdgeInsets.fromLTRB(0, 5, 5, 5), - child: svgWidget( - 'emoji/$iconUrl', + child: FlowySvg( + FlowySvgData('emoji/$iconUrl'), size: _iconSize, + overrideColor: false, ), ), ), @@ -357,7 +358,11 @@ class IconGallery extends StatelessWidget { padding: const EdgeInsets.all(20), crossAxisCount: 5, children: (snapshot.data ?? []).map((String iconUrl) { - return IconOption(iconUrl, setIcon); + return IconOption( + FlowySvgData('emoji/$iconUrl'), + iconUrl, + setIcon, + ); }).toList(), ); } else { @@ -371,21 +376,20 @@ class IconGallery extends StatelessWidget { } class IconOption extends StatelessWidget { + final FlowySvgData emoji; final String iconUrl; final Function setIcon; - IconOption(this.iconUrl, this.setIcon, {Key? key}) - : super(key: ValueKey(iconUrl)); + IconOption(this.emoji, this.iconUrl, this.setIcon, {Key? key}) + : super(key: ValueKey(emoji)); @override Widget build(BuildContext context) { return InkWell( borderRadius: Corners.s6Border, hoverColor: Theme.of(context).colorScheme.tertiaryContainer, - onTap: () { - setIcon(iconUrl); - }, - child: svgWidget('emoji/$iconUrl', size: _iconSize), + onTap: () => setIcon(iconUrl), + child: FlowySvg(emoji, size: _iconSize, overrideColor: false), ); } } diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/theme_upload/theme_upload_failure_widget.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/theme_upload/theme_upload_failure_widget.dart index 77f8fcdc68..68b8fe6425 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/theme_upload/theme_upload_failure_widget.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/theme_upload/theme_upload_failure_widget.dart @@ -1,6 +1,6 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra_ui/style_widget/text.dart'; import 'package:flutter/material.dart'; @@ -23,8 +23,8 @@ class ThemeUploadFailureWidget extends StatelessWidget { mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.center, children: [ - svgWidget( - 'home/close', + FlowySvg( + FlowySvgs.close_m, size: ThemeUploadWidget.iconSize, color: Theme.of(context).colorScheme.onBackground, ), diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/theme_upload/upload_new_theme_widget.dart b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/theme_upload/upload_new_theme_widget.dart index 8e05c66a8a..2d62c23830 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/theme_upload/upload_new_theme_widget.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/settings/widgets/theme_upload/upload_new_theme_widget.dart @@ -1,8 +1,8 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/workspace/presentation/settings/widgets/theme_upload/theme_upload_button.dart'; import 'package:appflowy/workspace/presentation/widgets/dialogs.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; import 'package:flowy_infra_ui/widget/error_page.dart'; import 'package:flutter/material.dart'; @@ -28,8 +28,8 @@ class UploadNewThemeWidget extends StatelessWidget { mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.center, children: [ - svgWidget( - 'folder', + FlowySvg( + FlowySvgs.folder_m, size: ThemeUploadWidget.iconSize, color: Theme.of(context).colorScheme.onBackground, ), diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/widgets/float_bubble/question_bubble.dart b/frontend/appflowy_flutter/lib/workspace/presentation/widgets/float_bubble/question_bubble.dart index 16dd0f14bc..199d236114 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/widgets/float_bubble/question_bubble.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/widgets/float_bubble/question_bubble.dart @@ -1,9 +1,9 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; import 'package:appflowy/startup/tasks/rust_sdk.dart'; import 'package:appflowy/workspace/presentation/home/toast.dart'; import 'package:appflowy/workspace/presentation/widgets/pop_up_action.dart'; import 'package:appflowy_popover/appflowy_popover.dart'; import 'package:easy_localization/easy_localization.dart'; -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra/size.dart'; import 'package:flowy_infra_ui/style_widget/button.dart'; import 'package:flowy_infra_ui/style_widget/text.dart'; @@ -219,11 +219,11 @@ extension QuestionBubbleExtension on BubbleAction { case BubbleAction.markdown: return const FlowyText.regular('✨'); case BubbleAction.github: - return Padding( - padding: const EdgeInsets.all(3.0), - child: svgWidget( - 'login/github-light', - size: const Size.square(12), + return const Padding( + padding: EdgeInsets.all(3.0), + child: FlowySvg( + FlowySvgs.archive_m, + size: Size.square(12), ), ); } diff --git a/frontend/appflowy_flutter/packages/flowy_infra/lib/image.dart b/frontend/appflowy_flutter/packages/flowy_infra/lib/image.dart deleted file mode 100644 index 6e4dd11943..0000000000 --- a/frontend/appflowy_flutter/packages/flowy_infra/lib/image.dart +++ /dev/null @@ -1,46 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_svg/flutter_svg.dart'; - -/// For icon that needs to change color when it is on hovered -/// -/// Get the hover color from ThemeData -class FlowySvg extends StatelessWidget { - const FlowySvg({ - super.key, - required this.name, - this.size, - this.color, - }); - - final String name; - final Size? size; - final Color? color; - - @override - Widget build(BuildContext context) { - return svgWidget( - name, - size: size, - color: color ?? Theme.of(context).iconTheme.color, - ); - } -} - -Widget svgWidget(String name, {Size? size, Color? color}) { - if (size != null) { - return SizedBox.fromSize( - size: size, - child: SvgPicture.asset( - 'assets/images/$name.svg', - colorFilter: - color != null ? ColorFilter.mode(color, BlendMode.srcIn) : null, - ), - ); - } else { - return SvgPicture.asset( - 'assets/images/$name.svg', - colorFilter: - color != null ? ColorFilter.mode(color, BlendMode.srcIn) : null, - ); - } -} diff --git a/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/style_widget/color_picker.dart b/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/style_widget/color_picker.dart index bc372e24d8..55354d7713 100644 --- a/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/style_widget/color_picker.dart +++ b/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/style_widget/color_picker.dart @@ -1,5 +1,5 @@ -import 'package:flowy_infra/image.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; +import 'package:flowy_svg/flowy_svg.dart'; import 'package:flutter/material.dart'; class FlowyColorOption { @@ -54,7 +54,7 @@ class FlowyColorPicker extends StatelessWidget { ) { Widget? checkmark; if (selected == option.color) { - checkmark = svgWidget("grid/checkmark"); + checkmark = const FlowySvg(FlowySvgData("grid/checkmark")); } final colorIcon = SizedBox.square( diff --git a/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/style_widget/icon_button.dart b/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/style_widget/icon_button.dart index 26798b165d..8e3fe50c23 100644 --- a/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/style_widget/icon_button.dart +++ b/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/style_widget/icon_button.dart @@ -1,8 +1,9 @@ import 'dart:math'; -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra/size.dart'; import 'package:flowy_infra_ui/style_widget/hover.dart'; +import 'package:flowy_svg/flowy_svg.dart'; import 'package:flutter/material.dart'; class FlowyIconButton extends StatelessWidget { @@ -106,7 +107,7 @@ class FlowyDropdownButton extends StatelessWidget { return FlowyIconButton( width: 16, onPressed: onPressed, - icon: svgWidget("home/drop_down_show"), + icon: const FlowySvg(FlowySvgData("home/drop_down_show")), ); } } diff --git a/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/widget/error_page.dart b/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/widget/error_page.dart index 59fb068b3a..b7f19a0dc6 100644 --- a/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/widget/error_page.dart +++ b/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/widget/error_page.dart @@ -1,5 +1,6 @@ -import 'package:flowy_infra/image.dart'; + import 'package:flowy_infra_ui/flowy_infra_ui.dart'; +import 'package:flowy_svg/flowy_svg.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -190,9 +191,9 @@ class GitHubRedirectButton extends StatelessWidget { "AppFlowy", ), useIntrinsicWidth: true, - leftIcon: Padding( - padding: const EdgeInsets.all(4.0), - child: svgWidget('login/github-mark'), + leftIcon: const Padding( + padding: EdgeInsets.all(4.0), + child: FlowySvg(FlowySvgData('login/github-mark')), ), onTap: () async { if (await canLaunchUrl(_gitHubNewBugUri)) { diff --git a/frontend/appflowy_flutter/packages/flowy_infra_ui/pubspec.yaml b/frontend/appflowy_flutter/packages/flowy_infra_ui/pubspec.yaml index 69afe449df..f55e604091 100644 --- a/frontend/appflowy_flutter/packages/flowy_infra_ui/pubspec.yaml +++ b/frontend/appflowy_flutter/packages/flowy_infra_ui/pubspec.yaml @@ -31,6 +31,8 @@ dependencies: path: ../appflowy_popover flowy_infra: path: ../flowy_infra + flowy_svg: + path: ../flowy_svg dev_dependencies: flutter_test: diff --git a/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/bug_report.md b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000000..50a4c7b8b7 --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,29 @@ +--- +name: Bug Report +about: Create a report to help us improve +title: "fix: " +labels: bug +--- + +**Description** + +A clear and concise description of what the bug is. + +**Steps To Reproduce** + +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected Behavior** + +A clear and concise description of what you expected to happen. + +**Screenshots** + +If applicable, add screenshots to help explain your problem. + +**Additional Context** + +Add any other context about the problem here. diff --git a/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/build.md b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/build.md new file mode 100644 index 0000000000..0cf8e62cdb --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/build.md @@ -0,0 +1,14 @@ +--- +name: Build System +about: Changes that affect the build system or external dependencies +title: "build: " +labels: build +--- + +**Description** + +Describe what changes need to be done to the build system and why. + +**Requirements** + +- [ ] The build system is passing diff --git a/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/chore.md b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/chore.md new file mode 100644 index 0000000000..498ebfd821 --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/chore.md @@ -0,0 +1,14 @@ +--- +name: Chore +about: Other changes that don't modify src or test files +title: "chore: " +labels: chore +--- + +**Description** + +Clearly describe what change is needed and why. If this changes code then please use another issue type. + +**Requirements** + +- [ ] No functional changes to the code diff --git a/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/ci.md b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/ci.md new file mode 100644 index 0000000000..fa2dd9e2d0 --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/ci.md @@ -0,0 +1,14 @@ +--- +name: Continuous Integration +about: Changes to the CI configuration files and scripts +title: "ci: " +labels: ci +--- + +**Description** + +Describe what changes need to be done to the ci/cd system and why. + +**Requirements** + +- [ ] The ci system is passing diff --git a/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/config.yml b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000..ec4bb386bc --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false \ No newline at end of file diff --git a/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/documentation.md b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/documentation.md new file mode 100644 index 0000000000..f494a4d98b --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/documentation.md @@ -0,0 +1,14 @@ +--- +name: Documentation +about: Improve the documentation so all collaborators have a common understanding +title: "docs: " +labels: documentation +--- + +**Description** + +Clearly describe what documentation you are looking to add or improve. + +**Requirements** + +- [ ] Requirements go here diff --git a/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/feature_request.md b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000000..ddd2fcca97 --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,18 @@ +--- +name: Feature Request +about: A new feature to be added to the project +title: "feat: " +labels: feature +--- + +**Description** + +Clearly describe what you are looking to add. The more context the better. + +**Requirements** + +- [ ] Checklist of requirements to be fulfilled + +**Additional Context** + +Add any other context or screenshots about the feature request go here. diff --git a/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/performance.md b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/performance.md new file mode 100644 index 0000000000..699b8d45f2 --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/performance.md @@ -0,0 +1,14 @@ +--- +name: Performance Update +about: A code change that improves performance +title: "perf: " +labels: performance +--- + +**Description** + +Clearly describe what code needs to be changed and what the performance impact is going to be. Bonus point's if you can tie this directly to user experience. + +**Requirements** + +- [ ] There is no drop in test coverage. diff --git a/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/refactor.md b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/refactor.md new file mode 100644 index 0000000000..1626c57047 --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/refactor.md @@ -0,0 +1,14 @@ +--- +name: Refactor +about: A code change that neither fixes a bug nor adds a feature +title: "refactor: " +labels: refactor +--- + +**Description** + +Clearly describe what needs to be refactored and why. Please provide links to related issues (bugs or upcoming features) in order to help prioritize. + +**Requirements** + +- [ ] There is no drop in test coverage. diff --git a/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/revert.md b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/revert.md new file mode 100644 index 0000000000..9d121dc56f --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/revert.md @@ -0,0 +1,16 @@ +--- +name: Revert Commit +about: Reverts a previous commit +title: "revert: " +labels: revert +--- + +**Description** + +Provide a link to a PR/Commit that you are looking to revert and why. + +**Requirements** + +- [ ] Change has been reverted +- [ ] No change in test coverage has happened +- [ ] A new ticket is created for any follow on work that needs to happen diff --git a/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/style.md b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/style.md new file mode 100644 index 0000000000..02244a7bdd --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/style.md @@ -0,0 +1,14 @@ +--- +name: Style Changes +about: Changes that do not affect the meaning of the code (white space, formatting, missing semi-colons, etc) +title: "style: " +labels: style +--- + +**Description** + +Clearly describe what you are looking to change and why. + +**Requirements** + +- [ ] There is no drop in test coverage. diff --git a/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/test.md b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/test.md new file mode 100644 index 0000000000..431a7ea764 --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/.github/ISSUE_TEMPLATE/test.md @@ -0,0 +1,14 @@ +--- +name: Test +about: Adding missing tests or correcting existing tests +title: "test: " +labels: test +--- + +**Description** + +List out the tests that need to be added or changed. Please also include any information as to why this was not covered in the past. + +**Requirements** + +- [ ] There is no drop in test coverage. diff --git a/frontend/appflowy_flutter/packages/flowy_svg/.github/PULL_REQUEST_TEMPLATE.md b/frontend/appflowy_flutter/packages/flowy_svg/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000000..116993637f --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,27 @@ + + +## Status + +**READY/IN DEVELOPMENT/HOLD** + +## Description + + + +## Type of Change + + + +- [ ] ✨ New feature (non-breaking change which adds functionality) +- [ ] 🛠️ Bug fix (non-breaking change which fixes an issue) +- [ ] ❌ Breaking change (fix or feature that would cause existing functionality to change) +- [ ] 🧹 Code refactor +- [ ] ✅ Build configuration change +- [ ] 📝 Documentation +- [ ] 🗑️ Chore diff --git a/frontend/appflowy_flutter/packages/flowy_svg/.github/cspell.json b/frontend/appflowy_flutter/packages/flowy_svg/.github/cspell.json new file mode 100644 index 0000000000..29ea2f8e4b --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/.github/cspell.json @@ -0,0 +1,21 @@ +{ + "version": "0.2", + "$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json", + "dictionaries": ["vgv_allowed", "vgv_forbidden"], + "dictionaryDefinitions": [ + { + "name": "vgv_allowed", + "path": "https://raw.githubusercontent.com/verygoodopensource/very_good_dictionaries/main/allowed.txt", + "description": "Allowed VGV Spellings" + }, + { + "name": "vgv_forbidden", + "path": "https://raw.githubusercontent.com/verygoodopensource/very_good_dictionaries/main/forbidden.txt", + "description": "Forbidden VGV Spellings" + } + ], + "useGitignore": true, + "words": [ + "flowy_svg" + ] +} diff --git a/frontend/appflowy_flutter/packages/flowy_svg/.github/dependabot.yaml b/frontend/appflowy_flutter/packages/flowy_svg/.github/dependabot.yaml new file mode 100644 index 0000000000..63b035cdea --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/.github/dependabot.yaml @@ -0,0 +1,11 @@ +version: 2 +enable-beta-ecosystems: true +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + - package-ecosystem: "pub" + directory: "/" + schedule: + interval: "daily" diff --git a/frontend/appflowy_flutter/packages/flowy_svg/.github/workflows/main.yaml b/frontend/appflowy_flutter/packages/flowy_svg/.github/workflows/main.yaml new file mode 100644 index 0000000000..cf84703df4 --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/.github/workflows/main.yaml @@ -0,0 +1,25 @@ +name: ci + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + pull_request: + branches: + - main + +jobs: + semantic_pull_request: + uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/semantic_pull_request.yml@v1 + + spell-check: + uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/spell_check.yml@v1 + with: + includes: "**/*.md" + modified_files_only: false + + build: + uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 + with: + flutter_channel: stable diff --git a/frontend/appflowy_flutter/packages/flowy_svg/.gitignore b/frontend/appflowy_flutter/packages/flowy_svg/.gitignore new file mode 100644 index 0000000000..8e19df2d9d --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/.gitignore @@ -0,0 +1,43 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# VSCode related +.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ +pubspec.lock + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Test related +coverage \ No newline at end of file diff --git a/frontend/appflowy_flutter/packages/flowy_svg/analysis_options.yaml b/frontend/appflowy_flutter/packages/flowy_svg/analysis_options.yaml new file mode 100644 index 0000000000..9749d57481 --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/analysis_options.yaml @@ -0,0 +1,3 @@ +include: package:very_good_analysis/analysis_options.5.0.0.yaml + +linter: diff --git a/frontend/appflowy_flutter/packages/flowy_svg/bin/flowy_svg.dart b/frontend/appflowy_flutter/packages/flowy_svg/bin/flowy_svg.dart new file mode 100644 index 0000000000..cbf114156d --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/bin/flowy_svg.dart @@ -0,0 +1,284 @@ +import 'dart:async'; +import 'dart:developer'; +import 'dart:io'; + +import 'package:args/args.dart'; +import 'package:path/path.dart' as path; + +import 'options.dart'; + +const languageKeywords = [ + 'abstract', + 'else', + 'import', + 'show', + 'as', + 'enum', + 'static', + 'assert', + 'export', + 'interface', + 'super', + 'async', + 'extends', + 'is', + 'switch', + 'await', + 'extension', + 'late', + 'sync', + 'base', + 'external', + 'library', + 'this', + 'break', + 'factory', + 'mixin', + 'throw', + 'case', + 'false', + 'new', + 'true', + 'catch', + 'final', + 'variable', + 'null', + 'try', + 'class', + 'final', + 'class', + 'on', + 'typedef', + 'const', + 'finally', + 'operator', + 'var', + 'continue', + 'for', + 'part', + 'void', + 'covariant', + 'Function', + 'required', + 'when', + 'default', + 'get', + 'rethrow', + 'while', + 'deferred', + 'hide', + 'return', + 'with', + 'do', + 'if', + 'sealed', + 'yield', + 'dynamic', + 'implements', + 'set', +]; + +void main(List args) { + if (_isHelpCommand(args)) { + _printHelperDisplay(); + } else { + generateSvgData(_generateOption(args)); + } +} + +bool _isHelpCommand(List args) { + return args.length == 1 && (args[0] == '--help' || args[0] == '-h'); +} + +void _printHelperDisplay() { + final parser = _generateArgParser(null); + log(parser.usage); +} + +Options _generateOption(List args) { + final generateOptions = Options(); + _generateArgParser(generateOptions).parse(args); + return generateOptions; +} + +ArgParser _generateArgParser(Options? generateOptions) { + final parser = ArgParser() + ..addOption( + 'source-dir', + abbr: 'S', + defaultsTo: '/assets/flowy_icons', + callback: (String? x) => generateOptions!.sourceDir = x, + help: 'Folder containing localization files', + ) + ..addOption( + 'output-dir', + abbr: 'O', + defaultsTo: '/lib/generated', + callback: (String? x) => generateOptions!.outputDir = x, + help: 'Output folder stores for the generated file', + ) + ..addOption( + 'name', + abbr: 'N', + defaultsTo: 'flowy_svgs.g.dart', + callback: (String? x) => generateOptions!.outputFile = x, + help: 'The name of the output file that this tool will generate', + ); + + return parser; +} + +Directory source(Options options) => Directory( + [ + Directory.current.path, + Directory.fromUri( + Uri.file( + options.sourceDir!, + windows: Platform.isWindows, + ), + ).path, + ].join(), + ); + +File output(Options options) => File( + [ + Directory.current.path, + Directory.fromUri( + Uri.file(options.outputDir!, windows: Platform.isWindows), + ).path, + Platform.pathSeparator, + File.fromUri( + Uri.file( + options.outputFile!, + windows: Platform.isWindows, + ), + ).path, + ].join(), + ); + +/// generates the svg data +Future generateSvgData(Options options) async { + // the source directory that this is targeting + final src = source(options); + + // the output directory that this is targeting + final out = output(options); + + var files = await dirContents(src); + files = files.where((f) => f.path.contains('.svg')).toList(); + + await generate(files, out, options); +} + +/// List the contents of the directory +Future> dirContents(Directory dir) { + final files = []; + final completer = Completer>(); + + dir.list(recursive: true).listen( + files.add, + onDone: () => completer.complete(files), + ); + return completer.future; +} + +/// Generate the abstract class for the FlowySvg data. +Future generate( + List files, + File output, + Options options, +) async { + final generated = File(output.path); + + // create the output file if it doesn't exist + if (!generated.existsSync()) { + generated.createSync(recursive: true); + } + + // content of the generated file + final builder = StringBuffer()..writeln(prelude); + files.whereType().forEach( + (element) => builder.writeln(lineFor(element, options)), + ); + builder.writeln(postlude); + + generated.writeAsStringSync(builder.toString()); +} + +String lineFor(File file, Options options) { + final name = varNameFor(file, options); + return " static const $name = FlowySvgData('${pathFor(file)}');"; +} + +String pathFor(File file) { + final relative = path.relative(file.path, from: Directory.current.path); + final uri = Uri.file(relative); + return uri.toFilePath(windows: false); +} + +String varNameFor(File file, Options options) { + final from = source(options).path; + + final relative = Uri.file(path.relative(file.path, from: from)); + + final parts = relative.pathSegments; + + final cleaned = parts.map(clean).toList(); + + var simplified = cleaned.reversed + // join all cleaned path segments with an underscore + .join('_') + // there are some cases where the segment contains a dart reserved keyword + // in this case, the path will be suffixed with an underscore which means + // there will be a double underscore, so we have to replace the double + // underscore with one underscore + .replaceAll(RegExp('_+'), '_'); + + // rename icon based on relative path folder name (16x, 24x, etc.) + for (final key in sizeMap.keys) { + simplified = simplified.replaceAll(key, sizeMap[key]!); + } + + return simplified; +} + +const sizeMap = {r'$16x': 's', r'$24x': 'm', r'$32x': 'lg', r'$40x': 'xl'}; + +/// cleans the path segment before rejoining the path into a variable name +String clean(String segment) { + final cleaned = segment + // replace all dashes with underscores (dash is invalid in + // a variable name) + .replaceAll('-', '_') + // replace all spaces with an underscore + .replaceAll(RegExp(r'\s+'), '_') + // replace all file extensions with an empty string + .replaceAll(RegExp(r'\.[^.]*$'), '') + // convert everything to lower case + .toLowerCase(); + + if (languageKeywords.contains(cleaned)) { + return '${cleaned}_'; + } else if (cleaned.startsWith(RegExp('[0-9]'))) { + return '\$$cleaned'; + } + return cleaned; +} + +/// The prelude for the generated file +const prelude = ''' +// DO NOT EDIT. This code is generated by the flowy_svg script + +// import the widget with from this package +import 'package:flowy_svg/flowy_svg.dart'; + +// export as convenience to the programmer +export 'package:flowy_svg/flowy_svg.dart'; + +/// A class to easily list all the svgs in the app +class FlowySvgs {'''; + +/// The postlude for the generated file +const postlude = ''' +} +'''; diff --git a/frontend/appflowy_flutter/packages/flowy_svg/bin/options.dart b/frontend/appflowy_flutter/packages/flowy_svg/bin/options.dart new file mode 100644 index 0000000000..d3476975d4 --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/bin/options.dart @@ -0,0 +1,21 @@ +/// The options for the command line tool +class Options { + /// The source directory which the tool will use to generate the output file + String? sourceDir; + + /// The output directory which the tool will use to output the file(s) + String? outputDir; + + /// The name of the file that will be generated + String? outputFile; + + @override + String toString() { + return ''' +Options: + sourceDir: $sourceDir + outputDir: $outputDir + name: $outputFile +'''; + } +} diff --git a/frontend/appflowy_flutter/packages/flowy_svg/coverage_badge.svg b/frontend/appflowy_flutter/packages/flowy_svg/coverage_badge.svg new file mode 100644 index 0000000000..499e98ce2f --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/coverage_badge.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + coverage + coverage + 100% + 100% + + diff --git a/frontend/appflowy_flutter/packages/flowy_svg/lib/flowy_svg.dart b/frontend/appflowy_flutter/packages/flowy_svg/lib/flowy_svg.dart new file mode 100644 index 0000000000..8e32c3e97c --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/lib/flowy_svg.dart @@ -0,0 +1,4 @@ +/// A Flutter package to generate Dart code for SVG files. +library flowy_svg; + +export 'src/flowy_svg.dart'; diff --git a/frontend/appflowy_flutter/packages/flowy_svg/lib/src/flowy_svg.dart b/frontend/appflowy_flutter/packages/flowy_svg/lib/src/flowy_svg.dart new file mode 100644 index 0000000000..39efc06a2e --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/lib/src/flowy_svg.dart @@ -0,0 +1,83 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; + +/// The class for FlowySvgData that the code generator will implement +class FlowySvgData { + /// The svg data + const FlowySvgData( + this.path, + ); + + /// The path to the svg data in appflowy assets/images + final String path; +} + +/// For icon that needs to change color when it is on hovered +/// +/// Get the hover color from ThemeData +class FlowySvg extends StatelessWidget { + /// Construct a FlowySvg Widget + const FlowySvg( + this.svg, { + super.key, + this.size, + this.color, + this.overrideColor = true, + }); + + /// The data for the flowy svg. Will be generated by the generator in this + /// package within bin/flowy_svg.dart + final FlowySvgData svg; + + /// The size of the svg + final Size? size; + + /// The color of the svg + final Color? color; + + /// If true a color filter is applied to the SVG, otherwise not applied. + /// + /// Defaults to true + /// + final bool overrideColor; + + @override + Widget build(BuildContext context) { + final iconColor = color ?? Theme.of(context).iconTheme.color; + + final child = SvgPicture.asset( + _normalized(), + colorFilter: iconColor != null && overrideColor + ? ColorFilter.mode(iconColor, BlendMode.srcIn) + : null, + ); + + if (size != null) { + return SizedBox.fromSize( + size: size, + child: child, + ); + } + + return child; + } + + /// If the SVG's path does not start with `assets/`, it is + /// normalized and directed to `assets/images/` + /// + /// If the SVG does not end with `.svg`, then we append the file extension + /// + String _normalized() { + var path = svg.path; + + if (!path.toLowerCase().startsWith('assets/')) { + path = 'assets/images/$path'; + } + + if (!path.toLowerCase().endsWith('.svg')) { + path = '$path.svg'; + } + + return path; + } +} diff --git a/frontend/appflowy_flutter/packages/flowy_svg/pubspec.yaml b/frontend/appflowy_flutter/packages/flowy_svg/pubspec.yaml new file mode 100644 index 0000000000..5f012d5014 --- /dev/null +++ b/frontend/appflowy_flutter/packages/flowy_svg/pubspec.yaml @@ -0,0 +1,18 @@ +name: flowy_svg +description: AppFlowy Svgs +version: 0.1.0+1 +publish_to: none + +environment: + sdk: ">=3.0.0 <4.0.0" + flutter: 3.10.0 + +dependencies: + args: ^2.4.2 + flutter: + sdk: flutter + flutter_svg: ^2.0.7 + path: ^1.8.3 + +dev_dependencies: + very_good_analysis: ^5.0.0 diff --git a/frontend/appflowy_flutter/pubspec.lock b/frontend/appflowy_flutter/pubspec.lock index 88f883f923..933b28a8f5 100644 --- a/frontend/appflowy_flutter/pubspec.lock +++ b/frontend/appflowy_flutter/pubspec.lock @@ -77,10 +77,10 @@ packages: dependency: transitive description: name: args - sha256: c372bb384f273f0c2a8aaaa226dad84dc27c8519a691b888725dec59518ad53a + sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" async: dependency: transitive description: @@ -461,6 +461,13 @@ packages: relative: true source: path version: "0.0.1" + flowy_svg: + dependency: "direct main" + description: + path: "packages/flowy_svg" + relative: true + source: path + version: "0.1.0+1" flutter: dependency: "direct main" description: flutter @@ -521,10 +528,10 @@ packages: dependency: "direct main" description: name: flutter_svg - sha256: "6ff8c902c8056af9736de2689f63f81c42e2d642b9f4c79dbf8790ae48b63012" + sha256: "8c5d68a82add3ca76d792f058b186a0599414f279f00ece4830b9b231b570338" url: "https://pub.dev" source: hosted - version: "2.0.6" + version: "2.0.7" flutter_test: dependency: "direct dev" description: flutter @@ -701,10 +708,10 @@ packages: dependency: transitive description: name: intl_utils - sha256: a509a2ada4d12c4dc70f9ca35c2fddf75f8b402409ac1a9e1b3dd8065681986b + sha256: "0d38f605f292321c0729f8c0632b845be77aa12d272b7bc5e3022bb670a7309e" url: "https://pub.dev" source: hosted - version: "2.8.3" + version: "2.8.4" io: dependency: transitive description: @@ -805,10 +812,10 @@ packages: dependency: transitive description: name: markdown - sha256: "8e332924094383133cee218b676871f42db2514f1f6ac617b6cf6152a7faab8e" + sha256: acf35edccc0463a9d7384e437c015a3535772e09714cf60e07eeef3a15870dcd url: "https://pub.dev" source: hosted - version: "7.1.0" + version: "7.1.1" matcher: dependency: transitive description: @@ -1611,26 +1618,26 @@ packages: dependency: transitive description: name: vector_graphics - sha256: b96f10cbdfcbd03a65758633a43e7d04574438f059b1043104b5d61b23d38a4f + sha256: "670f6e07aca990b4a2bcdc08a784193c4ccdd1932620244c3a86bb72a0eac67f" url: "https://pub.dev" source: hosted - version: "1.1.6" + version: "1.1.7" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: "57a8e6e24662a3bdfe3b3d61257db91768700c0b8f844e235877b56480f31c69" + sha256: "7451721781d967db9933b63f5733b1c4533022c0ba373a01bdd79d1a5457f69f" url: "https://pub.dev" source: hosted - version: "1.1.6" + version: "1.1.7" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "7430f5d834d0db4560d7b19863362cd892f1e52b43838553a3c5cdfc9ab28e5b" + sha256: "80a13c613c8bde758b1464a1755a7b3a8f2b6cec61fbf0f5a53c94c30f03ba2e" url: "https://pub.dev" source: hosted - version: "1.1.6" + version: "1.1.7" vector_math: dependency: transitive description: diff --git a/frontend/appflowy_flutter/pubspec.yaml b/frontend/appflowy_flutter/pubspec.yaml index 12b9cda8e5..fec9a75a2b 100644 --- a/frontend/appflowy_flutter/pubspec.yaml +++ b/frontend/appflowy_flutter/pubspec.yaml @@ -37,6 +37,8 @@ dependencies: path: packages/flowy_infra_ui flowy_infra: path: packages/flowy_infra + flowy_svg: + path: packages/flowy_svg appflowy_board: # path: packages/appflowy_board git: @@ -84,6 +86,7 @@ dependencies: linked_scroll_controller: ^0.2.0 hotkey_manager: ^0.1.7 fixnum: ^1.1.0 + flutter_svg: ^2.0.7 protobuf: "2.0.0" charcode: ^1.3.1 collection: ^1.17.1 @@ -97,7 +100,6 @@ dependencies: path: ^1.8.3 mocktail: ^0.3.0 archive: ^3.3.7 - flutter_svg: ^2.0.6 nanoid: ^1.0.0 supabase_flutter: ^1.10.4 envied: ^0.3.0+3 @@ -175,15 +177,13 @@ flutter: # To add assets to your application, add an assets section, like this: assets: - assets/images/ - - assets/images/home/ - - assets/images/editor/align/ - - assets/images/editor/ - - assets/images/grid/ + - assets/flowy_icons/ + - assets/flowy_icons/16x/ + - assets/flowy_icons/24x/ + - assets/flowy_icons/32x/ + - assets/flowy_icons/40x/ - assets/images/emoji/ - - assets/images/grid/field/ - - assets/images/common/ - assets/images/login/ - - assets/images/grid/setting/ - assets/translations/ # The following assets will be excluded in release. @@ -192,4 +192,4 @@ flutter: - assets/template/ - assets/test/workspaces/markdowns/ - assets/test/workspaces/database/ - # END: EXCLUDE_IN_RELEASE \ No newline at end of file + # END: EXCLUDE_IN_RELEASE diff --git a/frontend/appflowy_flutter/assets/images/editor/add.svg b/frontend/resources/flowy_icons/16x/add.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/add.svg rename to frontend/resources/flowy_icons/16x/add.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/align/center.svg b/frontend/resources/flowy_icons/16x/align_center.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/align/center.svg rename to frontend/resources/flowy_icons/16x/align_center.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/align/left.svg b/frontend/resources/flowy_icons/16x/align_left.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/align/left.svg rename to frontend/resources/flowy_icons/16x/align_left.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/align/right.svg b/frontend/resources/flowy_icons/16x/align_right.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/align/right.svg rename to frontend/resources/flowy_icons/16x/align_right.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Arrow/left.svg b/frontend/resources/flowy_icons/16x/arrow_left.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Arrow/left.svg rename to frontend/resources/flowy_icons/16x/arrow_left.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Arrow/right.svg b/frontend/resources/flowy_icons/16x/arrow_right.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Arrow/right.svg rename to frontend/resources/flowy_icons/16x/arrow_right.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/attach.svg b/frontend/resources/flowy_icons/16x/attach.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/attach.svg rename to frontend/resources/flowy_icons/16x/attach.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/board.svg b/frontend/resources/flowy_icons/16x/board.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/board.svg rename to frontend/resources/flowy_icons/16x/board.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/bold.svg b/frontend/resources/flowy_icons/16x/bold.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/bold.svg rename to frontend/resources/flowy_icons/16x/bold.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/check.svg b/frontend/resources/flowy_icons/16x/check.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/check.svg rename to frontend/resources/flowy_icons/16x/check.svg diff --git a/frontend/resources/flowy_icons/16x/check_filled.svg b/frontend/resources/flowy_icons/16x/check_filled.svg new file mode 100644 index 0000000000..f1c4e67731 --- /dev/null +++ b/frontend/resources/flowy_icons/16x/check_filled.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/frontend/appflowy_flutter/assets/images/editor/checkbox.svg b/frontend/resources/flowy_icons/16x/checkbox.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/checkbox.svg rename to frontend/resources/flowy_icons/16x/checkbox.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/checklist.svg b/frontend/resources/flowy_icons/16x/checklist.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/checklist.svg rename to frontend/resources/flowy_icons/16x/checklist.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/clear.svg b/frontend/resources/flowy_icons/16x/clear.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/clear.svg rename to frontend/resources/flowy_icons/16x/clear.svg diff --git a/frontend/appflowy_flutter/assets/images/grid/clock.svg b/frontend/resources/flowy_icons/16x/clock_alarm.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/grid/clock.svg rename to frontend/resources/flowy_icons/16x/clock_alarm.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/close.svg b/frontend/resources/flowy_icons/16x/close.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/close.svg rename to frontend/resources/flowy_icons/16x/close.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Color/default.svg b/frontend/resources/flowy_icons/16x/color_default.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Color/default.svg rename to frontend/resources/flowy_icons/16x/color_default.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Color/select.svg b/frontend/resources/flowy_icons/16x/color_select.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Color/select.svg rename to frontend/resources/flowy_icons/16x/color_select.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/comment.svg b/frontend/resources/flowy_icons/16x/comment.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/comment.svg rename to frontend/resources/flowy_icons/16x/comment.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/comments.svg b/frontend/resources/flowy_icons/16x/comments.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/comments.svg rename to frontend/resources/flowy_icons/16x/comments.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/copy.svg b/frontend/resources/flowy_icons/16x/copy.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/copy.svg rename to frontend/resources/flowy_icons/16x/copy.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/dashboard.svg b/frontend/resources/flowy_icons/16x/dashboard.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/dashboard.svg rename to frontend/resources/flowy_icons/16x/dashboard.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/date.svg b/frontend/resources/flowy_icons/16x/date.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/date.svg rename to frontend/resources/flowy_icons/16x/date.svg diff --git a/frontend/appflowy_flutter/assets/images/grid/delete.svg b/frontend/resources/flowy_icons/16x/delete.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/grid/delete.svg rename to frontend/resources/flowy_icons/16x/delete.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/details.svg b/frontend/resources/flowy_icons/16x/details.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/details.svg rename to frontend/resources/flowy_icons/16x/details.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/documents.svg b/frontend/resources/flowy_icons/16x/documents.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/documents.svg rename to frontend/resources/flowy_icons/16x/documents.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Status/done.svg b/frontend/resources/flowy_icons/16x/done.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Status/done.svg rename to frontend/resources/flowy_icons/16x/done.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/drag_element.svg b/frontend/resources/flowy_icons/16x/drag_element.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/drag_element.svg rename to frontend/resources/flowy_icons/16x/drag_element.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/drop_menu/hide.svg b/frontend/resources/flowy_icons/16x/drop_menu_hide.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/drop_menu/hide.svg rename to frontend/resources/flowy_icons/16x/drop_menu_hide.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/drop_menu/show.svg b/frontend/resources/flowy_icons/16x/drop_menu_show.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/drop_menu/show.svg rename to frontend/resources/flowy_icons/16x/drop_menu_show.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/edit.svg b/frontend/resources/flowy_icons/16x/edit.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/edit.svg rename to frontend/resources/flowy_icons/16x/edit.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/inline_block.svg b/frontend/resources/flowy_icons/16x/embed_link.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/inline_block.svg rename to frontend/resources/flowy_icons/16x/embed_link.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/euro.svg b/frontend/resources/flowy_icons/16x/euro.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/euro.svg rename to frontend/resources/flowy_icons/16x/euro.svg diff --git a/frontend/appflowy_flutter/assets/images/home/favorite.svg b/frontend/resources/flowy_icons/16x/favorite.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/favorite.svg rename to frontend/resources/flowy_icons/16x/favorite.svg diff --git a/frontend/appflowy_flutter/assets/images/grid/setting/filter.svg b/frontend/resources/flowy_icons/16x/filter.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/grid/setting/filter.svg rename to frontend/resources/flowy_icons/16x/filter.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/full_view.svg b/frontend/resources/flowy_icons/16x/full_view.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/full_view.svg rename to frontend/resources/flowy_icons/16x/full_view.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/grid.svg b/frontend/resources/flowy_icons/16x/grid.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/grid.svg rename to frontend/resources/flowy_icons/16x/grid.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/group.svg b/frontend/resources/flowy_icons/16x/group.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/group.svg rename to frontend/resources/flowy_icons/16x/group.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/H1.svg b/frontend/resources/flowy_icons/16x/h1.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/H1.svg rename to frontend/resources/flowy_icons/16x/h1.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/H2.svg b/frontend/resources/flowy_icons/16x/h2.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/H2.svg rename to frontend/resources/flowy_icons/16x/h2.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/H3.svg b/frontend/resources/flowy_icons/16x/h3.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/H3.svg rename to frontend/resources/flowy_icons/16x/h3.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/hide.svg b/frontend/resources/flowy_icons/16x/hide.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/hide.svg rename to frontend/resources/flowy_icons/16x/hide.svg diff --git a/frontend/resources/flowy_icons/16x/hide_menu.svg b/frontend/resources/flowy_icons/16x/hide_menu.svg new file mode 100644 index 0000000000..ce88af8ea7 --- /dev/null +++ b/frontend/resources/flowy_icons/16x/hide_menu.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/appflowy_flutter/assets/images/editor/highlight.svg b/frontend/resources/flowy_icons/16x/highlight.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/highlight.svg rename to frontend/resources/flowy_icons/16x/highlight.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/image.svg b/frontend/resources/flowy_icons/16x/image.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/image.svg rename to frontend/resources/flowy_icons/16x/image.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/import.svg b/frontend/resources/flowy_icons/16x/import.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/import.svg rename to frontend/resources/flowy_icons/16x/import.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Status/inprogress.svg b/frontend/resources/flowy_icons/16x/in_progress.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Status/inprogress.svg rename to frontend/resources/flowy_icons/16x/in_progress.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Icons 16/Information.svg b/frontend/resources/flowy_icons/16x/information.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Icons 16/Information.svg rename to frontend/resources/flowy_icons/16x/information.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/italic.svg b/frontend/resources/flowy_icons/16x/italic.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/italic.svg rename to frontend/resources/flowy_icons/16x/italic.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/left.svg b/frontend/resources/flowy_icons/16x/left.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/left.svg rename to frontend/resources/flowy_icons/16x/left.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/level.svg b/frontend/resources/flowy_icons/16x/level.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/level.svg rename to frontend/resources/flowy_icons/16x/level.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Icons 16/Lira.svg b/frontend/resources/flowy_icons/16x/lira.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Icons 16/Lira.svg rename to frontend/resources/flowy_icons/16x/lira.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/list_dropdown.svg b/frontend/resources/flowy_icons/16x/list_dropdown.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/list_dropdown.svg rename to frontend/resources/flowy_icons/16x/list_dropdown.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/logout.svg b/frontend/resources/flowy_icons/16x/logout.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/logout.svg rename to frontend/resources/flowy_icons/16x/logout.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/persoin_1.svg b/frontend/resources/flowy_icons/16x/mention.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/persoin_1.svg rename to frontend/resources/flowy_icons/16x/mention.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/messages.svg b/frontend/resources/flowy_icons/16x/messages.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/messages.svg rename to frontend/resources/flowy_icons/16x/messages.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/more.svg b/frontend/resources/flowy_icons/16x/more.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/more.svg rename to frontend/resources/flowy_icons/16x/more.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/bullet_list.svg b/frontend/resources/flowy_icons/16x/multiselect.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/bullet_list.svg rename to frontend/resources/flowy_icons/16x/multiselect.svg diff --git a/frontend/resources/flowy_icons/16x/new_app.svg b/frontend/resources/flowy_icons/16x/new_app.svg new file mode 100644 index 0000000000..7952c685a5 --- /dev/null +++ b/frontend/resources/flowy_icons/16x/new_app.svg @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/frontend/appflowy_flutter/assets/images/editor/numbers.svg b/frontend/resources/flowy_icons/16x/numbers.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/numbers.svg rename to frontend/resources/flowy_icons/16x/numbers.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/page.svg b/frontend/resources/flowy_icons/16x/page.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/page.svg rename to frontend/resources/flowy_icons/16x/page.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/percent.svg b/frontend/resources/flowy_icons/16x/percent.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/percent.svg rename to frontend/resources/flowy_icons/16x/percent.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/person.svg b/frontend/resources/flowy_icons/16x/person.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/person.svg rename to frontend/resources/flowy_icons/16x/person.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/pound.svg b/frontend/resources/flowy_icons/16x/pound.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/pound.svg rename to frontend/resources/flowy_icons/16x/pound.svg diff --git a/frontend/appflowy_flutter/assets/images/grid/setting/properties.svg b/frontend/resources/flowy_icons/16x/properties.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/grid/setting/properties.svg rename to frontend/resources/flowy_icons/16x/properties.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/quote.svg b/frontend/resources/flowy_icons/16x/quote.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/quote.svg rename to frontend/resources/flowy_icons/16x/quote.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Icons 16/Real.svg b/frontend/resources/flowy_icons/16x/real.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Icons 16/Real.svg rename to frontend/resources/flowy_icons/16x/real.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Icons 16/Relation.svg b/frontend/resources/flowy_icons/16x/relation.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Icons 16/Relation.svg rename to frontend/resources/flowy_icons/16x/relation.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Icons 16/Reload.svg b/frontend/resources/flowy_icons/16x/reload.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Icons 16/Reload.svg rename to frontend/resources/flowy_icons/16x/reload.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/report.svg b/frontend/resources/flowy_icons/16x/report.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/report.svg rename to frontend/resources/flowy_icons/16x/report.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/resize.svg b/frontend/resources/flowy_icons/16x/resize.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/resize.svg rename to frontend/resources/flowy_icons/16x/resize.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/restore.svg b/frontend/resources/flowy_icons/16x/restore.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/restore.svg rename to frontend/resources/flowy_icons/16x/restore.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/right.svg b/frontend/resources/flowy_icons/16x/right.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/right.svg rename to frontend/resources/flowy_icons/16x/right.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Icons 16/Ruble.svg b/frontend/resources/flowy_icons/16x/ruble.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Icons 16/Ruble.svg rename to frontend/resources/flowy_icons/16x/ruble.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Icons 16/Rupee.svg b/frontend/resources/flowy_icons/16x/rupee.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Icons 16/Rupee.svg rename to frontend/resources/flowy_icons/16x/rupee.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Icons 16/Rupiah.svg b/frontend/resources/flowy_icons/16x/rupiah.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Icons 16/Rupiah.svg rename to frontend/resources/flowy_icons/16x/rupiah.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/search.svg b/frontend/resources/flowy_icons/16x/search.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/search.svg rename to frontend/resources/flowy_icons/16x/search.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/send.svg b/frontend/resources/flowy_icons/16x/send.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/send.svg rename to frontend/resources/flowy_icons/16x/send.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/settings.svg b/frontend/resources/flowy_icons/16x/settings.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/settings.svg rename to frontend/resources/flowy_icons/16x/settings.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/share.svg b/frontend/resources/flowy_icons/16x/share.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/share.svg rename to frontend/resources/flowy_icons/16x/share.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/show_menu.svg b/frontend/resources/flowy_icons/16x/show_menu.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/show_menu.svg rename to frontend/resources/flowy_icons/16x/show_menu.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/slash.svg b/frontend/resources/flowy_icons/16x/slash.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/slash.svg rename to frontend/resources/flowy_icons/16x/slash.svg diff --git a/frontend/appflowy_flutter/assets/images/grid/setting/ascending.svg b/frontend/resources/flowy_icons/16x/sort_ascending.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/grid/setting/ascending.svg rename to frontend/resources/flowy_icons/16x/sort_ascending.svg diff --git a/frontend/appflowy_flutter/assets/images/grid/setting/descending.svg b/frontend/resources/flowy_icons/16x/sort_descending.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/grid/setting/descending.svg rename to frontend/resources/flowy_icons/16x/sort_descending.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Icons 16/Sort/High.svg b/frontend/resources/flowy_icons/16x/sort_high.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Icons 16/Sort/High.svg rename to frontend/resources/flowy_icons/16x/sort_high.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Icons 16/Sort/Low.svg b/frontend/resources/flowy_icons/16x/sort_low.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Icons 16/Sort/Low.svg rename to frontend/resources/flowy_icons/16x/sort_low.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/status.svg b/frontend/resources/flowy_icons/16x/status.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/status.svg rename to frontend/resources/flowy_icons/16x/status.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/strikethrough.svg b/frontend/resources/flowy_icons/16x/strikethrough.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/strikethrough.svg rename to frontend/resources/flowy_icons/16x/strikethrough.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/tag.svg b/frontend/resources/flowy_icons/16x/tag.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/tag.svg rename to frontend/resources/flowy_icons/16x/tag.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/tag_block.svg b/frontend/resources/flowy_icons/16x/tag_block.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/tag_block.svg rename to frontend/resources/flowy_icons/16x/tag_block.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/template.svg b/frontend/resources/flowy_icons/16x/template.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/template.svg rename to frontend/resources/flowy_icons/16x/template.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/text.svg b/frontend/resources/flowy_icons/16x/text.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/text.svg rename to frontend/resources/flowy_icons/16x/text.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/time.svg b/frontend/resources/flowy_icons/16x/time.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/time.svg rename to frontend/resources/flowy_icons/16x/time.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/timer_finish.svg b/frontend/resources/flowy_icons/16x/timer_finish.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/timer_finish.svg rename to frontend/resources/flowy_icons/16x/timer_finish.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/timer_start.svg b/frontend/resources/flowy_icons/16x/timer_start.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/timer_start.svg rename to frontend/resources/flowy_icons/16x/timer_start.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Status/todo.svg b/frontend/resources/flowy_icons/16x/to_do.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Status/todo.svg rename to frontend/resources/flowy_icons/16x/to_do.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/toggle_list.svg b/frontend/resources/flowy_icons/16x/toggle_list.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/toggle_list.svg rename to frontend/resources/flowy_icons/16x/toggle_list.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/editor_uncheck.svg b/frontend/resources/flowy_icons/16x/uncheck.svg similarity index 53% rename from frontend/appflowy_flutter/assets/images/editor/editor_uncheck.svg rename to frontend/resources/flowy_icons/16x/uncheck.svg index 6c487795c6..7ff8d222d7 100644 --- a/frontend/appflowy_flutter/assets/images/editor/editor_uncheck.svg +++ b/frontend/resources/flowy_icons/16x/uncheck.svg @@ -1,3 +1,3 @@ - - + + \ No newline at end of file diff --git a/frontend/appflowy_flutter/assets/images/editor/underline.svg b/frontend/resources/flowy_icons/16x/underline.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/underline.svg rename to frontend/resources/flowy_icons/16x/underline.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Favorite/default.svg b/frontend/resources/flowy_icons/16x/unfavorite.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Favorite/default.svg rename to frontend/resources/flowy_icons/16x/unfavorite.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/USD.svg b/frontend/resources/flowy_icons/16x/usd.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/USD.svg rename to frontend/resources/flowy_icons/16x/usd.svg diff --git a/frontend/appflowy_flutter/assets/images/editor/Icons 16/Won.svg b/frontend/resources/flowy_icons/16x/won.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/editor/Icons 16/Won.svg rename to frontend/resources/flowy_icons/16x/won.svg diff --git a/frontend/resources/flowy_icons/16x/yen.svg b/frontend/resources/flowy_icons/16x/yen.svg new file mode 100644 index 0000000000..b7cf1d361d --- /dev/null +++ b/frontend/resources/flowy_icons/16x/yen.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/appflowy_flutter/assets/images/home/add.svg b/frontend/resources/flowy_icons/24x/add.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/add.svg rename to frontend/resources/flowy_icons/24x/add.svg diff --git a/frontend/resources/flowy_icons/24x/archive.svg b/frontend/resources/flowy_icons/24x/archive.svg new file mode 100644 index 0000000000..77c7085cda --- /dev/null +++ b/frontend/resources/flowy_icons/24x/archive.svg @@ -0,0 +1,12 @@ + + + + + + + + + + \ No newline at end of file diff --git a/frontend/appflowy_flutter/assets/images/home/arrow_left.svg b/frontend/resources/flowy_icons/24x/arrow_left.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/arrow_left.svg rename to frontend/resources/flowy_icons/24x/arrow_left.svg diff --git a/frontend/appflowy_flutter/assets/images/home/arrow_right.svg b/frontend/resources/flowy_icons/24x/arrow_right.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/arrow_right.svg rename to frontend/resources/flowy_icons/24x/arrow_right.svg diff --git a/frontend/resources/flowy_icons/24x/calendar_layout.svg b/frontend/resources/flowy_icons/24x/calendar_layout.svg new file mode 100644 index 0000000000..52e06e9111 --- /dev/null +++ b/frontend/resources/flowy_icons/24x/calendar_layout.svg @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/frontend/resources/flowy_icons/24x/close.svg b/frontend/resources/flowy_icons/24x/close.svg new file mode 100644 index 0000000000..f0733a398b --- /dev/null +++ b/frontend/resources/flowy_icons/24x/close.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/appflowy_flutter/assets/images/editor/color_formatter.svg b/frontend/resources/flowy_icons/24x/color_format.svg similarity index 65% rename from frontend/appflowy_flutter/assets/images/editor/color_formatter.svg rename to frontend/resources/flowy_icons/24x/color_format.svg index 35d6d2ed67..796287a64d 100644 --- a/frontend/appflowy_flutter/assets/images/editor/color_formatter.svg +++ b/frontend/resources/flowy_icons/24x/color_format.svg @@ -1,13 +1,10 @@ - - + + - - + -585 -203 -43 -395 15 -545 164 -190 188 -233 466 -108 704 42 81 164 203 245 245 77 41 198 72 277 72 326 1 780 374 949 780 74 178 76 355 5 494 -11 21 -59 80 -108 132 -110 117 -135 164 -135 259 0 131 3 136 324 458 l286 287 847 --847 848 -848 -282 -282z"/> - - - +-847 848 -848 -282 -282z" /> + + + \ No newline at end of file diff --git a/frontend/appflowy_flutter/assets/images/home/dashboard.svg b/frontend/resources/flowy_icons/24x/dashboard.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/dashboard.svg rename to frontend/resources/flowy_icons/24x/dashboard.svg diff --git a/frontend/resources/flowy_icons/24x/database_layout.svg b/frontend/resources/flowy_icons/24x/database_layout.svg new file mode 100644 index 0000000000..240a5065d8 --- /dev/null +++ b/frontend/resources/flowy_icons/24x/database_layout.svg @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/frontend/appflowy_flutter/assets/images/home/details.svg b/frontend/resources/flowy_icons/24x/details.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/details.svg rename to frontend/resources/flowy_icons/24x/details.svg diff --git a/frontend/appflowy_flutter/assets/images/home/drop_down_hide.svg b/frontend/resources/flowy_icons/24x/drop_menu_hide.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/drop_down_hide.svg rename to frontend/resources/flowy_icons/24x/drop_menu_hide.svg diff --git a/frontend/appflowy_flutter/assets/images/home/drop_down_show.svg b/frontend/resources/flowy_icons/24x/drop_menu_show.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/drop_down_show.svg rename to frontend/resources/flowy_icons/24x/drop_menu_show.svg diff --git a/frontend/appflowy_flutter/assets/images/home/eathernet.svg b/frontend/resources/flowy_icons/24x/ethernet.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/eathernet.svg rename to frontend/resources/flowy_icons/24x/ethernet.svg diff --git a/frontend/resources/flowy_icons/24x/favorite.svg b/frontend/resources/flowy_icons/24x/favorite.svg new file mode 100644 index 0000000000..3d862a56f9 --- /dev/null +++ b/frontend/resources/flowy_icons/24x/favorite.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/flowy_icons/24x/folder.svg b/frontend/resources/flowy_icons/24x/folder.svg new file mode 100644 index 0000000000..2db17d41fc --- /dev/null +++ b/frontend/resources/flowy_icons/24x/folder.svg @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/frontend/appflowy_flutter/assets/images/home/hide.svg b/frontend/resources/flowy_icons/24x/hide.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/hide.svg rename to frontend/resources/flowy_icons/24x/hide.svg diff --git a/frontend/appflowy_flutter/assets/images/home/hide_menu.svg b/frontend/resources/flowy_icons/24x/hide_menu.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/hide_menu.svg rename to frontend/resources/flowy_icons/24x/hide_menu.svg diff --git a/frontend/appflowy_flutter/assets/images/home/level.svg b/frontend/resources/flowy_icons/24x/level.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/level.svg rename to frontend/resources/flowy_icons/24x/level.svg diff --git a/frontend/appflowy_flutter/assets/images/home/messages.svg b/frontend/resources/flowy_icons/24x/messages.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/messages.svg rename to frontend/resources/flowy_icons/24x/messages.svg diff --git a/frontend/resources/flowy_icons/24x/page.svg b/frontend/resources/flowy_icons/24x/page.svg new file mode 100644 index 0000000000..0846ad2335 --- /dev/null +++ b/frontend/resources/flowy_icons/24x/page.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/appflowy_flutter/assets/images/home/person.svg b/frontend/resources/flowy_icons/24x/person.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/person.svg rename to frontend/resources/flowy_icons/24x/person.svg diff --git a/frontend/appflowy_flutter/assets/images/home/search.svg b/frontend/resources/flowy_icons/24x/search.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/search.svg rename to frontend/resources/flowy_icons/24x/search.svg diff --git a/frontend/appflowy_flutter/assets/images/home/settings.svg b/frontend/resources/flowy_icons/24x/settings.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/settings.svg rename to frontend/resources/flowy_icons/24x/settings.svg diff --git a/frontend/appflowy_flutter/assets/images/home/share.svg b/frontend/resources/flowy_icons/24x/share.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/share.svg rename to frontend/resources/flowy_icons/24x/share.svg diff --git a/frontend/appflowy_flutter/assets/images/home/show.svg b/frontend/resources/flowy_icons/24x/show.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/show.svg rename to frontend/resources/flowy_icons/24x/show.svg diff --git a/frontend/appflowy_flutter/assets/images/home/Sort/high.svg b/frontend/resources/flowy_icons/24x/sort_high.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/Sort/high.svg rename to frontend/resources/flowy_icons/24x/sort_high.svg diff --git a/frontend/appflowy_flutter/assets/images/home/Sort/low.svg b/frontend/resources/flowy_icons/24x/sort_low.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/Sort/low.svg rename to frontend/resources/flowy_icons/24x/sort_low.svg diff --git a/frontend/appflowy_flutter/assets/images/home/trash.svg b/frontend/resources/flowy_icons/24x/trash.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/trash.svg rename to frontend/resources/flowy_icons/24x/trash.svg diff --git a/frontend/appflowy_flutter/assets/images/home/close.svg b/frontend/resources/flowy_icons/32x/close.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/close.svg rename to frontend/resources/flowy_icons/32x/close.svg diff --git a/frontend/resources/flowy_icons/32x/favorite_active.svg b/frontend/resources/flowy_icons/32x/favorite_active.svg new file mode 100644 index 0000000000..0f7ba51f4d --- /dev/null +++ b/frontend/resources/flowy_icons/32x/favorite_active.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/flowy_icons/32x/favorite_inactive.svg b/frontend/resources/flowy_icons/32x/favorite_inactive.svg new file mode 100644 index 0000000000..a6e84e8e91 --- /dev/null +++ b/frontend/resources/flowy_icons/32x/favorite_inactive.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/appflowy_flutter/assets/images/home/image.svg b/frontend/resources/flowy_icons/32x/image.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/image.svg rename to frontend/resources/flowy_icons/32x/image.svg diff --git a/frontend/resources/flowy_icons/32x/math.svg b/frontend/resources/flowy_icons/32x/math.svg new file mode 100644 index 0000000000..baf7e0a882 --- /dev/null +++ b/frontend/resources/flowy_icons/32x/math.svg @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/frontend/resources/flowy_icons/32x/open_folder.svg b/frontend/resources/flowy_icons/32x/open_folder.svg new file mode 100644 index 0000000000..7ef9866085 --- /dev/null +++ b/frontend/resources/flowy_icons/32x/open_folder.svg @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/frontend/appflowy_flutter/assets/images/home/page.svg b/frontend/resources/flowy_icons/32x/page.svg similarity index 100% rename from frontend/appflowy_flutter/assets/images/home/page.svg rename to frontend/resources/flowy_icons/32x/page.svg diff --git a/frontend/resources/flowy_icons/40x/favorite_active.svg b/frontend/resources/flowy_icons/40x/favorite_active.svg new file mode 100644 index 0000000000..818c2f3703 --- /dev/null +++ b/frontend/resources/flowy_icons/40x/favorite_active.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/flowy_icons/40x/favorite_inactive.svg b/frontend/resources/flowy_icons/40x/favorite_inactive.svg new file mode 100644 index 0000000000..d1d116b31d --- /dev/null +++ b/frontend/resources/flowy_icons/40x/favorite_inactive.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/resources/flowy_icons/40x/flowy_logo.svg b/frontend/resources/flowy_icons/40x/flowy_logo.svg new file mode 100644 index 0000000000..3958a1a253 --- /dev/null +++ b/frontend/resources/flowy_icons/40x/flowy_logo.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/resources/flowy_icons/40x/flowy_logo_dark_mode.svg b/frontend/resources/flowy_icons/40x/flowy_logo_dark_mode.svg new file mode 100644 index 0000000000..8e37a1c747 --- /dev/null +++ b/frontend/resources/flowy_icons/40x/flowy_logo_dark_mode.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/resources/flowy_icons/40x/flowy_logo_text.svg b/frontend/resources/flowy_icons/40x/flowy_logo_text.svg new file mode 100644 index 0000000000..a45a05e2e7 --- /dev/null +++ b/frontend/resources/flowy_icons/40x/flowy_logo_text.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/resources/flowy_icons/40x/google_mark.svg b/frontend/resources/flowy_icons/40x/google_mark.svg new file mode 100644 index 0000000000..bcc2c72c02 --- /dev/null +++ b/frontend/resources/flowy_icons/40x/google_mark.svg @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/frontend/scripts/code_generation/flowy_icons/generate_flowy_icons.cmd b/frontend/scripts/code_generation/flowy_icons/generate_flowy_icons.cmd new file mode 100644 index 0000000000..d7ada3b641 --- /dev/null +++ b/frontend/scripts/code_generation/flowy_icons/generate_flowy_icons.cmd @@ -0,0 +1,26 @@ +@echo off + +echo 'Generating flowy icon files' + +REM Store the current working directory +set "original_dir=%CD%" + +REM Change the current working directory to the script's location +cd /d "%~dp0" + +cd ..\..\..\appflowy_flutter + +REM copy the resources/translations folder to +REM the appflowy_flutter/assets/translation directory +echo Copying resources/flowy_icons to appflowy_flutter/assets/flowy_icons +xcopy /E /Y /I ..\resources\flowy_icons assets\flowy_icons + +call flutter packages pub get + +echo Generating FlowySvg class +call dart run flowy_svg + +echo Done generating icon files. + +REM Return to the original directory +cd /d "%original_dir%" diff --git a/frontend/scripts/code_generation/flowy_icons/generate_flowy_icons.sh b/frontend/scripts/code_generation/flowy_icons/generate_flowy_icons.sh new file mode 100644 index 0000000000..fb6eee67c6 --- /dev/null +++ b/frontend/scripts/code_generation/flowy_icons/generate_flowy_icons.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +echo "Generating flowy icon files" + +# Store the current working directory +original_dir=$(pwd) + +cd "$(dirname "$0")" + +# Navigate to the project root +cd ../../../appflowy_flutter + +rm -rf assets/flowy_icons/ +mkdir -p assets/flowy_icons/ +rsync -r ../resources/flowy_icons/ assets/flowy_icons/ + +flutter packages pub get + +echo "Generating FlowySvg classes" +dart run flowy_svg + +echo "Done generating icon files." + +# Return to the original directory +cd "$original_dir" diff --git a/frontend/scripts/code_generation/generate.cmd b/frontend/scripts/code_generation/generate.cmd index 45dafb42c0..1dc853d2a2 100644 --- a/frontend/scripts/code_generation/generate.cmd +++ b/frontend/scripts/code_generation/generate.cmd @@ -22,6 +22,8 @@ cd freezed REM Allow execution permissions on CI chmod +x generate_freezed.cmd call generate_freezed.cmd %* + +REM Return to the main script directory cd .. echo Generating env files using build_runner @@ -30,5 +32,14 @@ REM Allow execution permissions on CI chmod +x generate_env.cmd call generate_env.cmd %* +REM Return to the main script directory +cd .. + +echo Generating svg files using flowy_svg +cd flowy_icons +REM Allow execution permissions on CI +chmod +x generate_flowy_icons.cmd +call generate_flowy_icons.cmd %* + REM Return to the original directory cd /d "%original_dir%" diff --git a/frontend/scripts/code_generation/generate.sh b/frontend/scripts/code_generation/generate.sh index 1fe2d41292..567feddc7d 100755 --- a/frontend/scripts/code_generation/generate.sh +++ b/frontend/scripts/code_generation/generate.sh @@ -22,6 +22,8 @@ cd freezed # Allow execution permissions on CI chmod +x ./generate_freezed.sh ./generate_freezed.sh "$@" + +# Return to the main script directory cd .. echo "Generating env files using build_runner" @@ -30,5 +32,14 @@ cd env chmod +x ./generate_env.sh ./generate_env.sh "$@" +# Return to the main script directory +cd .. + +echo "Generating svg files using flowy_svg" +cd flowy_icons +# Allow execution permissions on CI +chmod +x ./generate_flowy_icons.sh +./generate_flowy_icons.sh "$@" + # Return to the original directory cd "$original_dir" diff --git a/frontend/scripts/docker-buildfiles/Dockerfile b/frontend/scripts/docker-buildfiles/Dockerfile index 9f2348754a..9a3b39d4b3 100644 --- a/frontend/scripts/docker-buildfiles/Dockerfile +++ b/frontend/scripts/docker-buildfiles/Dockerfile @@ -47,7 +47,7 @@ RUN flutter doctor RUN dart pub global activate protoc_plugin 20.0.1 # Install build dependencies for AppFlowy -RUN sudo pacman -S --noconfirm git libkeybinder3 sqlite clang +RUN sudo pacman -S --noconfirm git libkeybinder3 sqlite clang rsync RUN source ~/.cargo/env && cargo install --force cargo-make duckscript_cli # Build AppFlowy