Compare commits

...
774 Commits
Author SHA1 Message Date
Richard Shiue e788c71602 fix: padding issue with the select tags (#3929)
* fix: padding issue with the select tags

* chore: better solution from Lucas
2023-11-13 21:41:25 +08:00
Emil 7de2131431 chore: update Russian translations (#3823) 2023-11-13 19:36:41 +08:00
Richard Shiue 47f3702ca9 fix: integration test on kanban (#3928) 2023-11-13 19:32:11 +08:00
Lucas.Xu 3708a5b86a feat: add alignment and indent/outdent toolbar item (#3927)
* chore: rename mobile list toolbar item

* feat: add alignment and indent/outdent toolbar item

* feat: adjust link menu on mobile platform
2023-11-13 18:08:39 +08:00
Richard ShiueandMathias Mogensen a63a7ea611 feat: hidden kanban groups (#3907)
* feat: hide/unhide ui

* chore: implement collapsible side bar and adjust group header (#2)

* refactor: hidden columns into own file

* chore: adjust new group button position

* fix: flowy icon buton secondary color bleed

* chore: some UI adjustments

* fix: some regressions

* chore: proper group is_visible fetching

* chore: use a bloc to manage hidden groups

* fix: hiding groups not working

* chore: implement hidden group popups

* chore: proper ungrouped item column management

* chore: remove ungrouped items button

* chore: flowy hover build

* fix: clean up code

* test: integration tests

* fix: not null promise on null value

* fix: hide and unhide multiple groups

* chore: i18n and code review

* chore: missed review

* fix: rust-lib-test

* fix: dont completely remove flowyiconhovercolor

* chore: apply suggest

* fix: number of rows inside hidden groups not updating properly

* fix: hidden groups disappearing after collapse

* fix: hidden group title alignment

* fix: insert newly unhidden groups into the correct position

* chore: adjust padding all around

* feat: reorder hidden groups

* chore: adjust padding

* chore: collapse hidden groups section persist

* chore: no status group at beginning

* fix: hiding groups when grouping with other types

* chore: disable rename groups that arent supported

* chore: update appflowy board ref

* chore: better naming

* test: fix tests

---------

Co-authored-by: Mathias Mogensen <mathias@appflowy.io>
2023-11-13 16:14:31 +08:00
Kilu.He 7867f0366e feat: support the operations of field in the grid of tauri (#3906)
* feat: support the operations of field in the grid of tauri

* fix: performance optimizate
2023-11-13 14:16:32 +08:00
Lucas.Xu 251c6d22b2 fix: 0.3.8 known issues (#3912)
* fix: add a left padding to align the document and grid field

* fix: emoji picker in the slash menu is too small

* fix: replace the delete icon color with black

* fix: improve snackbar background color

* fix: cannot add new line after toggle list

* feat: set ⭐ as the default icon of getting started

* fix: the titlebar overflows when the title level is too deep

* fix: integration test

* fix: openAI hint text overflow

* fix: integration tests
2023-11-13 12:00:03 +08:00
Lucas.Xu 7cee8e392f feat: adjust cover plugin and support recent section on mobile platform (#3921) 2023-11-13 10:07:46 +08:00
Richard Shiue 765103dd22 chore: share button text color (#3913) 2023-11-12 23:41:10 +08:00
Nathan.fooo 50e612511d feat: using workspace crate deps (#3924)
* chore: workspace deps

* chore: use workspace deps
2023-11-12 21:18:27 +08:00
Nathan.fooo 7eb20b232a feat: adding suffix for user data folder when current cloud type is appflowy cloud (#3918)
* fix: load database fail caused by spawning long run task

* chore: yield long run task

* chore: fmt

* chore: update client api

* feat: copy data between server

* ci: fix af cloud test
2023-11-12 18:00:07 +08:00
Kritarth Sharma 3c7e636b65 fix: added missing hover tooltip to toolbar item (#3786) 2023-11-10 15:42:40 +08:00
Mathias Mogensen 889a313cc2 chore: update to version 0.3.8 (#3902)
* chore: update to version 0.3.8

* chore: Update CHANGELOG.md

* chore: Update CHANGELOG.md
2023-11-09 13:11:33 +08:00
Lucas.Xu 9586ea0e6f feat: display the titles of a view's ancestors and the view's title on the title bar. (#3898)
* feat: add no pages inside tips

* feat: show view's ancestors (include itself) title on bar

* feat: show view's ancestors (include itself) title on bar

* test: add integration tests

* fix: integration tests
2023-11-09 13:11:13 +08:00
Mathias Mogensen 42e7317cd4 fix: notifications setting (#3903)
* fix: notifications setting

* fix: remove dependency in reminder bloc

* test: remove redundant lines
2023-11-09 00:32:10 +01:00
Mathias Mogensen 17651bf64c feat: show notes icon when notes is not empty (#3893)
* feat: show notes icon when notes is not empty

* fix: redundant clone

* chore: update collab and fix after merging main
2023-11-09 00:30:50 +01:00
Nathan.fooo 73f1c211c2 fix: Invalid refresh token (#3879)
* chore: update client api

* chore: update client api

* chore: update client api

* chore: fix clippy

* chore: fix clippy

* ci: fix

* chore: update client api
2023-11-08 21:48:17 +08:00
Lucas.Xu afc6473582 feat: adjust toggle list, callout, quote and divider on mobile (#3894)
* feat: adjust toggle list block

* feat: show block actions when tapping divider

* feat: add toggle list and callout to toolbar

* feat: refactor the emoji picker button

* fix: toggle list integration tests
2023-11-08 21:10:29 +08:00
Kilu.He 663f9d3423 fix: support inserting grid block in editor (#3875)
* fix: support inserting grid block in editor

* feat: support adding view in table

* feat: support the operations of row in tauri grid
2023-11-08 14:13:17 +08:00
Generic-Ripe 5d4142d5b6 chore: update sv.json (#3896)
* Update sv.json

Some small typos

* Rename sv.json to sv-SE.json
2023-11-08 10:14:13 +08:00
Mathias Mogensen fe23183aef feat: add placeholder to card editor (#3870) 2023-11-07 15:58:22 +01:00
Lucas.Xu 8116ea1dba feat: adjust math_equation block and image block on mobile platform (#3890)
* feat: add image toolbar entry

* feat: add ... buttos on math_equation and image block

* fix: review issues

* feat: add copy link and save image to gallery

* feat: support redo / undo on mobile toolbar
2023-11-07 15:24:32 +08:00
Lucas.Xu 3e6529aeb8 chore: add Roboto Mono font family and its regular and italic variants as assets (#3876) 2023-11-06 16:44:21 +08:00
Richard Shiueandnathan c4fc60612f feat: add new group (#3854)
* feat: implement backend logic

* fix: did_create_row not working properly

* fix: did_delete_group not working properly

* fix: test

* chore: fix clippy

* fix: new card not editable and in wrong position

* feat: imlement UI for add new stack

* test: add integration test

* chore: i18n

* chore: remove debug message

* chore: merge conflict

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-11-06 16:17:05 +08:00
Richard Shiue 4d82bb5322 chore: move field width to field settings (#3830)
* refactor: remove unnecessary builder

* feat: add width to field settings

* refactor: field settings logic

* chore: oopsies

* chore: implement UI

* chore: remove GridFieldCellEquatable

* test: rust-lib test fix
2023-11-06 14:48:59 +08:00
Nathan.foooandRichard Shiue 2b684ae7bf test: rename group test (#3790)
* refactor: rename group

* test: add rename group test

* chore: add group operation interceptor

* refactor: impl interceptor trait

* chore: update type option when group change

---------

Co-authored-by: Richard Shiue <71320345+richardshiue@users.noreply.github.com>
2023-11-06 14:39:31 +08:00
Richard Shiue eb54cf99d4 fix: calendar event editor field name overflow (#3877) 2023-11-06 13:03:32 +08:00
Affif MukhlashinandLucas.Xu 85af82acbe chore: update translations for Indonesian (#3864)
Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-11-06 11:05:42 +08:00
Nathan.fooo 3434d447a7 chore: update collab rev (#3874) 2023-11-06 00:47:20 +08:00
Nathan.fooo 1025b6d553 fix: af cloud sync auth (#3873)
* feat: open workspace

* chore: update env docs

* fix: invalid user callback

* fix: token invalid

* chore: update

* chore: update

* chore: update

* chore: fix test

* chore: fix tauri build
2023-11-05 14:00:24 +08:00
Mathias Mogensen b35d6131d4 feat: inline page reference (#3859)
* feat: more methods of inserting page reference

* test: add tests for inserting document reference

* chore: remove unused import

* chore: update editor ref

* tests: fix test with an interim solution
2023-11-03 21:30:24 +01:00
Yijing Huang bc502c9c5b chore: improve share button text color (#3868) 2023-11-03 12:09:12 -07:00
Kilu.Heandfangwufeng-v 5f49c1748f Fix/tauri warning to error (#3869)
* feat: sort basic function

* fix: eslint error

* fix: deal with conflict

* fix: prevent submit eslint warning code

* fix: modify tauri warning to error

---------

Co-authored-by: fangwufeng-v <fangwufeng.v@gmail.com>
2023-11-03 15:13:49 +08:00
Yijing HuangandLucas.Xu 73ea1a0685 feat:add toast in trash and confirm dialog + fix issues from launch review (#3787)
* chore: improve trash button

* feat: improve restore all&delete all

* refactor: add showFlowyMobileConfirmDialog

* feat: add toast in delete/restore single file

* refactor: refactor to TrashActionType enum

* fix: text invisible in signin page in dark mode

* feat: add FlowyMobileErrorStateContainer to display error state

* refactor: add FlowyMobileStateContainer to handle empty or error state

- Replace MobileErrorPage by FlowyMobileStateContainer.error
- Implement app version in reporting issue on github
- Implement FlowyMobileStateContainer in trash,setting,favorite and mobile view page

* refactor: unify bottom sheet style

- Unify bottom sheet style in add new page, page action, and trash action
- Add icon color in BottomSheetActionWidget for future use
- Add theme color in MobileBottomSheetDragHandle

* chore: unify Appbar style

* chore: remove the more button when trash list is empty

* fix: show bottom sheet error

* fix: fix merge and ui issue

* refactor: refactor ViewPageBottomSheet and origanize code

* chore: add icon color for favorite button

* fix: add missing icon color and delete comments

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-11-02 11:15:15 -07:00
Mathias Mogensen a93d325e6a fix: notification actions lemonade darkmode (#3862) 2023-11-02 17:17:30 +01:00
Kilu.He dc0af0f4c1 feat: support convert external data to nested json (#3848)
* feat: support convert external data to nested json

* fix: add some comment

* fix: code review

* fix: code review

* fix: code view

* fix: code view

* fix: update tauri cargo lock file

* fix: remove reduant function

* fix: parse dir attribute in element

* fix: add comment about parse dir

* fix: code review

* fix: code review

* fix: code review

* fix: code review
2023-11-02 22:13:29 +08:00
Lucas.Xu 1ad85416d8 fix: unable to build macOS universal package on x86 machine (#3863)
* chore: don't use cache when building release package

* fix: set ARCHS = ARCHS_STANDARD on macOS
2023-11-02 15:24:35 +08:00
Lucas.Xu c34a7a92fb feat: support customizing page icon (#3849)
* chore: don't use cache when building release package

* feat: refactor icon widget design

* feat: sync the emoji between page and view

* feat: use cache to store the emoji data to prevent reloading

* feat: customize the emoji item builder

* feat: add i18n and shuffle emoji button

* fix: integration test

* feat: replace emoji picker in Grid and slash menu

* feat: support adding icon on mobile platform

* feat: support adding and removing icon on mobile

* test: add integration tests
2023-11-02 15:24:17 +08:00
Nathan.fooo 21d34d1fe0 chore: update collab rev (#3852) 2023-11-01 14:47:25 +08:00
Nathan.fooo 3e088d48ac refactor: fav and workspace (#3837)
* refactor: workspace

* chore: update collab rev

* test: add data migration test

* fix: test

* fix: tauri build

* test: fix bloc test

* test: fix bloc test

* test: fix bloc test

* chore: restore magic codde
2023-11-01 11:45:35 +08:00
Mathias Mogensen 54dbcb7c5e fix: link to page dialog offset (#3840) 2023-10-31 20:11:32 +01:00
Lucas.Xu 59dff54edb chore: bump version 0.3.7 (#3832) 2023-10-31 09:49:14 +08:00
Mathias Mogensen d358e18f33 fix: add card at the beginning (#3835) 2023-10-30 17:34:37 +01:00
Kilu.He dd9b1fb78f feat: support converting documents to JSON, HTML, or TEXT. (#3811)
* feat: support converting documents to JSON, HTML, or TEXT

* fix: modify the comment

* fix: modify the comment
2023-10-30 12:50:31 +08:00
Nathan.fooo e08a1a6974 feat: enable dispatch event using single thread (#3828)
* refactor: lib dispatch

* chore: type def

* chore: type def

* fix: local set spawn

* chore: replace tokio spawn

* chore: update log

* chore: boxed event

* chore: tauri lock
2023-10-30 12:35:06 +08:00
Richard Shiue 7f4e7e6aa0 chore: bump af board ver (#3825)
* chore: bump af board ver

* fix: select card cell popover opening
2023-10-30 10:13:47 +08:00
Richard Shiue 18bd91936c fix: more board fixes (#3821)
* fix: null check value

* refactor: remove unnecessary blocbuilder

* fix: missing checkbox icon at top of board column
2023-10-29 12:51:34 +08:00
Richard Shiue b9a25f449f refactor: hide ungrouped feature (#3817)
* refactor: remove unused notification and listener

* revert: remove hide_ungrouped from group settings

* chore: add board layout setting

* chore: listen to layout settings on ui

* fix: duplicated group controller initialization

* chore: add a tooltip to the ungrouped items button

* chore: trailing comma
2023-10-29 11:26:49 +08:00
Richard Shiue 993532a2f0 fix: edit card title not working (#3819) 2023-10-28 23:13:27 +08:00
Nikhil RajandRichard Shiue 8a735799c6 Added tooltip when hovering over No-Data (#3612)
* Added tooltip when hovering over NO-Data

* chore: i18n for tooltip

* fix: wrong token

* chore: use flowytooltip

---------

Co-authored-by: Richard Shiue <71320345+richardshiue@users.noreply.github.com>
2023-10-28 22:11:32 +08:00
Kritarth Sharma 197da5f425 fix: removed the parent padding and instead applied padding individually. (#3814)
* fix: Removed the parent padding and instead applied individual padding to each child to ensure it doesn't affect the sidebar divider.

* chore: Addressed comments and made changes
2023-10-28 19:11:52 +08:00
Nathan.fooo e28e5a0649 refactor: rename group (#3815)
* chore: add group operation interceptor

* refactor: impl interceptor trait

* chore: update type option when group change

* test: fix test
2023-10-28 11:48:28 +08:00
Lucas.Xu 09b4e19c9d feat: enable mobile view item drag-and-drop reordering (#3812)
* feat: enable mobile view item draggable

* fix: dragging the view doesn't disable hover effect
2023-10-27 22:42:35 +08:00
Richard Shiue 653c831473 fix: board unit test fix (#3813)
* fix: board unit test fix

* fix: oopsies
2023-10-27 22:33:45 +08:00
Lucas.Xu a2f2cdebb7 feat: set the default font family to Poppins on mobile (#3810) 2023-10-27 15:19:37 +08:00
Lucas.Xu 59e0a1325e fix: mobile page issues and improvements (#3809)
* chore: update connectivity plus to 5.0.1

* feat: update favorite status on time

* fix: text overflow

* feat: implement ... button in editor page

* fix: align the icon and the text on the favorite page

* feat: enable feedback when tapping icons
2023-10-27 13:36:09 +08:00
Mayur Mahajan c0446d7a96 chore: update de translation for select option (#3804) 2023-10-27 13:34:44 +08:00
Devas45 1fbee02731 fix: german date format (#3806) 2023-10-27 11:44:44 +08:00
dodaucy 102fdbce5c fix: change appflowy.io link from http to https (#3808) 2023-10-27 11:38:58 +08:00
Richard Shiue 71c6beb882 chore: adjust placeholder color for dark theme (#3799) 2023-10-26 22:39:43 +08:00
Richard Shiue ce83042317 chore: improve checklist ui (#3798) 2023-10-26 22:24:23 +08:00
Bryan Olivares 03598d3f22 fix: plus symbol in select option overflows (#3789)
* Fixed overflow problem for plus symbol

* Wrapping SizedBox with Flexible is not needed
2023-10-26 22:03:43 +08:00
Shreesh Nautiyal c2eb2014a3 feat: segmented checklist progress bar (#3770)
* feat: added segments to the checklist progress bar

* chore: display empty progress bar in checklist editor when no tasks added

* refactor: used Container to represent segments

* refactor: implemented segments using Flexible and generated them using List.generate
2023-10-26 18:28:55 +08:00
Lucas.Xu 9416ba1bfc feat: add new database on mobile platform (#3788)
* chore: downgrade clipboard package

* fix: update i18n in the favorite page

* fix: update the favorite icon

* feat: support add new database

* chore: disable cache in unit test

* chore: bump version 0.3.7
2023-10-26 11:57:14 +08:00
Richard Shiue 8c3984d21a feat: allow hiding ungrouped stack (#3752)
* feat: allow hiding ungrouped stack

* chore: add notifications and listeners

* chore: implement UI

* fix: field info update

* chore: more responsive notification

* chore: read the right configurations

* feat: add ungrouped button

* fix: new board not getting isGroupField

* feat: refresh the counter

* fix: item count update

* chore: apply code suggestions from Mathias

* chore: yolo through tests

* chore: UI fix

* chore: code cleanup

* chore: ungrouped item count fix

* chore: same as above
2023-10-26 11:48:58 +08:00
Generic-Ripe 1883dd6d7c Update sv.json (#3778)
Some small changes of errors and small improvements of readability.
2023-10-26 10:44:50 +08:00
Regulus Corneas a354f9fe52 chore: update french translation (#3774)
* inlang: update translations

* inlang: update translations

* inlang: update translations
2023-10-26 10:44:18 +08:00
Richard Shiue 41e2c74b5e feat: save card orders (#3730) 2023-10-26 10:05:43 +08:00
Mathias Mogensen 74d9d427bd feat: show block in notification item (#3736)
* feat: show block in notification item

* feat: jump to block action

* fix: conflict after merge main

* fix: missing import after merge main
2023-10-26 09:41:03 +08:00
Mathias MogensenandRichard Shiue aa27c4e6d4 Feat: rename stack inline (#3781)
* feat: rename stack in-line

* feat: rename stack in-line

* chore: compiler issues

* fix: conflicts and cleaning

* fix: code lost after merge

* test: fix failing rust tests

* fix: tauri localization wrong keys

---------

Co-authored-by: Richard Shiue <71320345+richardshiue@users.noreply.github.com>
2023-10-26 09:38:37 +08:00
Mathias Mogensen f40ae9ff25 fix: what is new button broken link (#3785) 2023-10-25 21:05:28 +02:00
Mathias Mogensen e66087861b feat: insert date from slash menu (#3783) 2023-10-25 19:31:21 +02:00
Lucas.Xu 147637fcf5 fix: iOS TestFlight issues (#3776)
* fix: transparent icons on iOS platform

* fix: remove unused unit tests

* chore: update flutter version

* feat: support building release packages for iOS and Android

* fix: integration test failed randomly

* chore: remove windows CI cache

* chore: update info.plist

* feat: build iOS and Android in Release mode

* chore: update editor version

* chore: don't cache flutter when testing

* chore: run unit test on Windwos
2023-10-25 23:33:46 +08:00
Nathan.fooo 48582cb718 test: Af cloud workspace member (#3779)
* chore: implement workspace memeber events

* chore: add workspace member test

* chore: fix fmt
2023-10-25 21:35:47 +08:00
Yijing Huang ad21a61ffb feat: mobile setting page, trash page and recent file UI with mock data (#3734) 2023-10-25 21:29:50 +08:00
Nathan.fooo d34eec1d99 chore: rename files name that might cause ci fail (#3777) 2023-10-25 15:25:31 +08:00
Lucas.Xu 95aeac201f chore: remove the unit tests of Windows and macOS (#3771)
* chore: remove the unit tests of Windows and macOS

* chore: update pubspec

* chore: update languages
2023-10-25 09:21:20 +08:00
Nathan.fooo cceee80799 fix: anon user error (#3772)
* fix: anon user error

* ci: fix tests
2023-10-24 23:13:51 +08:00
Nathan.fooo 71f80be8f7 feat: save user metadata (#3754)
* feat: save user metadata

* chore: update client api

* refactor: separate test methods

* chore: save updated at

* chore: clippy

* chore: fix test
2023-10-24 20:11:06 +08:00
16a4babdca fix: The appearance of slash menu didn't change along with theme mode changes (#3630) (#3706)
* fix: The appearance of slash menu didn't change along with theme mode changes (#3630)

* revert: pubspec.lock change

* fix: use context inside of function

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
Co-authored-by: Yijing Huang <hyj891204@gmail.com>
2023-10-24 17:43:25 +08:00
Nebiyu 85c0622245 feat: add amharic translation (#3732) 2023-10-24 17:41:46 +08:00
Pedro Coelho e3410ec568 chore: update pt-PT translations (#3712)
* inlang: update translations

* inlang: update translations
2023-10-24 17:16:48 +08:00
ZakandLucas.Xu c0b0f12b0d fix: font size text being displayed out of range. (#3766)
* fix: font size text being displayed out of range.

* chore: refactor code

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-10-24 14:04:13 +08:00
Mayur Mahajan 70a2b7d9ab fix: add light and dark theme for codeblock (#3748)
* feat: add separate themes for codeblock

* feat: light and dark themes in codeblock
2023-10-24 14:01:34 +08:00
Lucas.Xu a84c47dc33 feat: android deeplink and update icons (#3769)
* feat: android deeplink and update icons

* chore: remove integration test
2023-10-24 13:52:55 +08:00
Lucas.Xu 56c5d69b0f feat: redefine i18n for editor (#3768) 2023-10-24 13:39:05 +08:00
Richard Shiue 6c3d7d2079 feat: show checklist items inline in row page (#3737)
* feat: show checklist items inline in row page

* fix: tauri build
2023-10-24 10:15:28 +08:00
Mohammad Zolfaghari 25a98cda81 ci: reduce build time (#3519) 2023-10-23 22:17:11 +08:00
Mathias Mogensen cd6e133c86 fix: notification settings initial state (#3763) 2023-10-23 14:51:59 +02:00
Richard Shiue b16a102f85 chore: improve setting tab bar dropdown (#3756)
* chore: improve setting tab bar dropdown

* test: fix integration tests
2023-10-23 19:23:27 +08:00
Lucas.Xu d51c7f382f feat: implement personal / favorites folder on the mobile platform (#3723) 2023-10-23 18:35:07 +08:00
Richard Shiue a57ca5c0cb fix: integration tests failing on Sundays (#3753) 2023-10-23 11:44:04 +08:00
Nathan.fooo 1e9137fcfe chore: update client api commit id (#3745)
* chore: update client api commit id

* chore: fix test

* chore: remove check_visual_studio_installation task

* chore: update client api
2023-10-23 11:43:31 +08:00
Shreesh Nautiyal 8e5b6b6e27 fix: the horizontal scrollbar disappearing in grid view (#3751) 2023-10-23 10:30:47 +08:00
Kilu.He 7e101b8bf1 fix: slash command panel bugs (#3722) 2023-10-23 10:25:47 +08:00
Lucas.Xu bf0cfa798c fix: windows CI build failed (#3741) 2023-10-22 01:04:38 +08:00
Richard Shiue 1793a28cbc fix: calendar event card not displaying as intended (#3731) 2023-10-19 18:19:50 +08:00
Lucas.Xu e565d0ee32 feat: support building on Android (#3713)
* feat: support building on Android

* chore: add CI for mobile platform
2023-10-19 09:55:23 +08:00
Sumit BanwakadeandRichard Shiue f60462a853 fix: side panel animation (#3605)
* fix: side panel animation

* Fix: Side Panel Animation Changes

* Fix:Panel Animation

* fix:updated animation to easeOutQuad

* fix: updated animation to easeOutQuad

* Fix:Panel Side Animation

* fix:panel side animation

* chore: restore settings.json

---------

Co-authored-by: Richard Shiue <71320345+richardshiue@users.noreply.github.com>
2023-10-18 15:48:26 +08:00
Mathias Mogensen 966547faa0 fix: reminder launch review (#3716) 2023-10-17 14:48:58 +08:00
Muhammad Saad Tanveer 3647af44c9 fix: Shortcut settings Reset to default is missing bottom margin #3710 (#3715) 2023-10-17 05:47:07 +02:00
Lucas.Xu 25b4a647b0 fix: unable to export image to markdown (#3709) 2023-10-16 15:56:30 +08:00
Lucas.Xu c6e3c1fd7c feat: customizing the background of a block with theme color (#3691) 2023-10-16 14:11:05 +08:00
ルビーDog 4fd35d0de4 feat: improve translations ja_JP (#3702) (#3705) 2023-10-16 10:56:06 +08:00
Lucas.Xu 7406c5e6a5 feat: add toggle list and callout node parser (#3700) 2023-10-16 10:09:33 +08:00
CrazyRikin aa70885b21 feat: added hindi translation (#3575) 2023-10-15 22:13:14 +08:00
Yijing Huang 8699c9c125 fix: lemonade theme issues (#3686) 2023-10-15 22:12:25 +08:00
Pedro Coelho bc758e0b06 chore: update translations pt-PT (#3687) 2023-10-15 22:12:01 +08:00
Jakob Gerhardt e38980ccc3 chore: update translations de-DE (#3693) 2023-10-15 22:11:28 +08:00
Verdy Bangkit 8dd180046f chore: update translations id_ID and ru_RU (#3701) 2023-10-15 22:10:41 +08:00
Lucas.Xu 0cd2726752 chore: disable toolbar in code block (#3682) 2023-10-15 22:01:17 +08:00
Lucas.Xu 11daa15b89 feat: auto pop up the menu after inserting image block (#3698) 2023-10-15 13:04:24 +08:00
Lucas.Xu 8436bc6144 fix: the disk space of CI machines always runs out (#3689) 2023-10-14 20:37:44 +08:00
Ekaksh JanwejaandLucas.Xu 59851f46b7 feat: edit the field by clicking on the drag icon (#3656)
* feat: edit the field by clicking on the drag icon

* Added localization

* Added .tr() function

* fix: BlockActionButton only show when _isFieldHover is true.

* fix: BlockActionButton only show when _isFieldHover is true.

* fix: Worked on requested changes

* fix: Fixed Location of Field Popover

* fixed pubspec.lock

* Updated pubspec.lock

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-10-13 23:47:49 +08:00
Sarthak Kimtani 62f1d6eb82 fix: 3620 unchecked checkbox color (#3685) 2023-10-13 21:06:13 +08:00
Nathan.fooo ec80f72c8f feat: af cloud database (#3684)
* chore: forece user to logout when token is invalid

* chore: update client api rev
2023-10-12 20:25:00 +08:00
Richard Shiue b2c80981cc fix: build app (#3681) 2023-10-11 22:46:32 -07:00
Yijing Huang 8fa425a76c chore: bump version 0.3.6 (#3680) 2023-10-12 13:14:37 +08:00
Mathias Mogensen ebe112581d feat: toggle notifications on/off (#3672) 2023-10-12 12:54:08 +08:00
Mathias Mogensen bc8f35d7db feat: reminder improvements (#3658) 2023-10-12 10:19:36 +08:00
Nathan.fooo 058eeec932 feat: implement file storage using appflowy cloud (#3675)
* feat: implement file storage using appflowy cloud

* chore: clippy
2023-10-12 09:54:45 +08:00
Lucas.Xu 8e10cba8e5 feat: support toggling the markdown style by shortcuts (#3674) 2023-10-11 23:12:23 +08:00
Yijing Huang 7a24f6b6f0 feat: add lemonade theme color (#3666) 2023-10-11 22:01:05 +08:00
Richard Shiue 4f40945458 fix: integration tests (#3673)
* fix: fix integration tests

* fix: initiate isScreenSmall properly
2023-10-11 20:36:10 +08:00
Nathan.fooo e59870e421 refactor: rename flowy-test to event-integration (#3667) 2023-10-11 20:02:09 +08:00
Tran Nguyen Sinh cf521fe20b chore: update translations for Vietnamese (#3632) 2023-10-11 17:15:59 +07:00
Mathias Mogensen f0d47ee50c fix: esc to close date picker dialog (#3648) 2023-10-11 05:49:32 +02:00
Lucas.Xu 2a5d393c9f fix: missing dependency (libnotify) in appimage (#3665) 2023-10-11 09:46:59 +08:00
Shreesh Nautiyal 98e0b832ec feat: 1674 Auto-hide sidebar when re-sizing the window (#3659)
* feat: 1674 Auto-hide sidebar when re-sizing the window

* chore: removed unnecessary print statements

* chore: updated to a more approprite name for 'screenSmall' event
2023-10-10 19:26:11 +02:00
Nathan.fooo 77e7cbe9ec chore: sync document (#3653)
* chore: sync document

* chore: update collab rev

* chore: update collab rev
2023-10-10 19:05:55 +08:00
Dhruv Sharma acd53eb640 fix: correct svg for row actions (#3664)
Closes: #3450
2023-10-10 17:30:44 +08:00
Lucas.Xu ffdf5d24a0 fix: openAI image expiration (#3660)
* feat: save the openAI image to local storage

* feat: support rendering error block

* fix: enter on Toggle list moves heading down without contents
2023-10-10 12:43:31 +08:00
Dhruv Sharma b247a49417 chore: resolve issue (#3621) 2023-10-09 20:47:24 +02:00
Lucas.Xu dace02d34d feat: generate image by Stability AI / openAI (#3642) 2023-10-09 23:14:24 +08:00
Muhammad Saad Tanveer 41d4351176 feat: 3625 Added Ukrainian Language (#3644) 2023-10-09 12:19:35 +08:00
Lucas.Xu d4bc575c03 fix: image block issues (#3637) 2023-10-07 13:45:38 +08:00
Nathan.fooo a59561aee3 chore: sign in with provider (#3592)
* chore: sign in with provider

* feat: implement oauth flow of appflowy cloud

* chore: rename env

* chore: fix deadlock

* fix: login bugs

* chore: clippyt

* chore: update client api

* chore: fmt
2023-10-07 09:58:44 +08:00
Mathias Mogensen 92523321f1 fix: notification button delayed tooltip (#3635) 2023-10-06 09:29:36 +02:00
Richard Shiue 537c9d0865 fix: wrong date selected in CDT (#3627) 2023-10-06 10:13:46 +08:00
Richard Shiue b4051c7e9f fix: url underline issue (#3618) 2023-10-05 17:35:50 +08:00
Richard Shiue 9e61133886 chore: bump version 0.3.5 (#3616) 2023-10-05 12:01:38 +08:00
Lucas.Xu 36f47f3636 feat: image block revamp (#3615) 2023-10-05 10:40:41 +08:00
Mayur Mahajan 40dcd13394 refactor: ui improvement in appearance (#3553) 2023-10-05 09:48:19 +08:00
Yijing Huang eb20c7c117 feat: emoji picker improvement (#3591) 2023-10-05 09:36:29 +08:00
Devanshu Rawat e9852a3934 fix: restore page banner ui improvement (#3604) 2023-10-05 09:34:36 +08:00
Alazar GeneneandAlazar Genene 78d8ec9a3e fix: use Image.file instead of DecoratedBox and FileImage (#3606)
Co-authored-by: Alazar Genene <alazargenene@Alazars-MacBook-Pro-2.local>
2023-10-04 23:48:31 +02:00
Juan David 4220309cf8 Updated translation part in project readme (#3609) 2023-10-04 15:50:42 +02:00
Jaskeerat Singh 812af0979e Fix: Missing WhiteSpace b/w Primary Field Text and Row Icon (#3602)
* Update link to OS Specific Development

* fix: Missing white space b/w primary field text & row's icon

* fix: Updated emoji padding
2023-10-04 11:50:26 +02:00
Narayan cca5005541 fix: remove current page link option in page reference (#3600)
* fix: remove current page link option in page reference

* fix: removed context and added view id as parameter
2023-10-04 11:49:22 +02:00
Mathias Mogensen 9306d4a4ee docs: update links in readm (#3589) 2023-10-04 11:35:37 +02:00
Ahsan AhmadandLucas.Xu 3ab1ff5e73 fix:The placeholder text for URL cells shouldn't be underlined (#3565)
* fix:The placeholder text for URL cells shouldn't be underlined

* Update frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/url_cell/url_cell.dart

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-10-04 11:35:02 +02:00
Aditya AroraandMathias Mogensen 05fa306782 feat: Delay tooltip presentations by 300ms (#3558)
* feat:added wait duration to ToolTip widgets

* feat:added wait Duration to more tooltips

* feat:added wait Duration to more_button tooltip

* fix: use flowytooltip

* fix:undo install_macos.sh file

* fix:undo install_macos.sh file

* fix:refactored FlowyTooltip.delayedTooltip to FlowyTooltip.delayed

---------

Co-authored-by: Mathias Mogensen <mathias@appflowy.io>
2023-10-04 11:34:44 +02:00
Mathias Mogensen d054439df4 fix: provide default options for inline actions always (#3601) 2023-10-03 18:07:46 +02:00
Jaskeerat Singh 15aaacc4b7 Update link to OS Specific Development (#3590) 2023-10-02 20:12:02 +02:00
Mathias Mogensen ef9de52cbc docs: update link to conventions (#3581) 2023-10-02 15:48:02 +02:00
Lucas.Xu 8d9d0e9358 chore: bump version 0.3.4 (#3572)
* chore: bump version 0.3.4

* fix: docker file build
2023-10-02 20:48:56 +08:00
7f44b181bd feat: integrate client-api (#3430)
* chore: update client-api rev

* chore: update collab rev id

* feat: add sign_in_request and import shared entity

* feat: added to userworkspace from af_workspace

* chore: add script to update the client-api rev id

* chore: update client-api rev

* feat: add workspaces api

* feat: added check user

* chore: config

* chore: update client_api version

* chore: ws connect

* chore: ws connect

* chore: update crate versions

* chore: rename event

* chore: update client-appi

* chore: set appflowy cloud env

* chore: add env template

* chore: update env name

* docs: update docs

* fix: check_user

* feat: impl sign_in_with_url

* feat: add file storage placeholders

* chore: update client-api

* chore: disable test

* feat: impl workspace add and remove

* chore: sign up test

* feat: select cover image on upload (#3488)

* fix: close popover after item selection in settings view (#3362)

* fix: close popover after item selection in settings view

* fix: add missing await before closing popover

* fix: find popover container by context instead of passing controllers around

* fix: add requested changes

* feat: close text direction settings popups after selection

* fix: clean up

* fix: restore theme value dropdown as StatefulWidget

* feat: openai and stabilityai integration (#3439)

* chore: create trait

* test: add tests

* chore: remove log

* chore: disable log

* chore: checklist ux flow redesign (#3418)

* chore: ux flow redesign

* chore: remove unused imports

* fix: allow creation of tasks of the same name

* chore: apply code suggestions from Mathias

* fix: add padding below field title text field (#3440)

* Fixed Issue no #3426

* Reversed the pubspec.lock mistaken update

* FIXED PADDING

* Fixed Padding issue on calender field edit popup

* chore: rename package name (#3501)

* fix: right icon size sam as left one (#3494)

* feat: enable removing user icon (#3487)

* feat: enable removing user icon

* fix: generate to true

* fix: review comments

* fix: more review comments

* fix: integration test and final changes

* fix: made cursor grab and background color when hovering on Appearance Options Buttons (#3498)

* chore: calendar UI polish (#3484)

* chore: update calendar theming

* feat: add event popup editor

* chore: new event button redesign and add card shadows

* chore: unscheduled events button

* chore: event title text field

* fix: focus node double dispose

* chore: show popover when create new event

* test: integrate some tests for integration testing purposes

* fix: some fixes and more integration tests

* chore: add more space between font item and font menu

* feat: add reset font button in toolbar

* feat: only show text direction toolbar item when RTL is enabled

* fix:  unable to change RTL of heading block

* test: add integration test for ltr/rtl mode

* chore: update inlang project settings (#3441)

* feat: using script to update the collab source. (#3508)

* chore: add script

* chore: update script

* chore: update bytes version

* chore: submit lock file

* chore: update test

* chore: update test

* chore: bump version

* chore: update

* ci: fix

* ci: fix

* chore: update commit id

* chore: update commit id

* chore: update commit id

* fix: is cloud enable

---------

Co-authored-by: Fu Zi Xiang <speed2exe@live.com.sg>
Co-authored-by: Mathias Mogensen <42929161+Xazin@users.noreply.github.com>
Co-authored-by: Vincenzo De Petris <37916223+vincendep@users.noreply.github.com>
Co-authored-by: Richard Shiue <71320345+richardshiue@users.noreply.github.com>
Co-authored-by: Aryan More <61151896+aryan-more@users.noreply.github.com>
Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
Co-authored-by: Lakhan Baheti <94619783+1akhanBaheti@users.noreply.github.com>
Co-authored-by: Nitin-Poojary <70025277+Nitin-Poojary@users.noreply.github.com>
Co-authored-by: Jannes Blobel <72493222+jannesblobel@users.noreply.github.com>
2023-10-02 17:22:22 +08:00
Aman Negi 01c3fec5aa feat: improve snackbar UI style (#3562) 2023-10-02 15:14:40 +08:00
Mathias Mogensen 94a3a59001 fix: avoid non-null promise on null value (#3569) 2023-10-02 15:13:39 +08:00
Mathias Mogensen 4a433a3176 feat: reminder (#3374) 2023-10-02 15:12:24 +08:00
Ricky Putra f7749bdccc chore: add integration tests for user language settings (#3560) 2023-10-02 13:55:57 +08:00
Lucas.Xu c864e836ee feat: integrate find and replace into AppFlowy (#3566)
* chore: update editor version

* feat: redesign find and replace ui

* chore: update language file
2023-10-02 13:54:51 +08:00
Richard Shiue 0738b5f87d feat: show hidden fields in row detail page (#3545) 2023-10-02 10:52:22 +08:00
Anurag De 6198c3907f fix: updated githook helper link (#3563) 2023-10-02 10:07:51 +08:00
Ahsan AhmadandMathias Mogensen 891d794900 fix:Spacing above New row in grid (#3564)
* fix:Spacing above New row in grid

* revert: update frontend/appflowy_flutter/ios/Podfile.lock

---------

Co-authored-by: Mathias Mogensen <42929161+Xazin@users.noreply.github.com>
2023-10-01 23:22:21 +02:00
Yijing Huang 890f52a00a feat: dandelion theme improvement (#3550) 2023-09-28 14:18:40 +08:00
Yijing Huang d007f98af6 fix: emoji picker menu issue (#3551) 2023-09-28 14:18:01 +08:00
Yijing Huang 15e9d65798 feat: go_router refactor and bottom navigation bar in mobile (#3459) 2023-09-28 14:17:38 +08:00
Lakhan Baheti 0626f0deb7 fix: on hover change_cover button correct mouse cursor (#3548) 2023-09-27 22:59:33 +08:00
Richard Shiue 007c649c31 fix: still show drag icon while dragging (#3547)
* fix: still show drag icon while dragging

* chore: use click cursor on windows
2023-09-27 20:02:44 +08:00
Norbert 34ea508f5b chore: update pl-PL translations (#3539) 2023-09-27 15:35:45 +08:00
fangwufeng-v f70aef68be feat: drag and drop a row in the Grid (#3376)
* feat: new style ui

* feat: drag row

* feat: hooks for auto scroll feature when dragging

* feat: shared UI status that control auto scroll when dragging row.

* feat: optimize the drag interaction UI effect

* feat: refactor drag positon

* feat: drag column header

* feat: fix review issue
2023-09-27 15:13:25 +08:00
Borris 61a31c90ee chore: update translations for id-ID (#3518) 2023-09-27 11:32:49 +08:00
Richard Shiue c7e3ed805a fix: checklist cell style for checklist cells (#3538) 2023-09-26 22:31:15 +08:00
Lucas.Xu d36a846425 chore: update CHANGELOG.md 2023-09-26 16:55:49 +08:00
Lucas.Xu a02ec98e9c fix: undo failed in nested list 2023-09-26 16:55:49 +08:00
Lucas.Xu 32c06cf1bf fix: clear selection when editing inline database view 2023-09-26 16:55:49 +08:00
Lucas.Xu cf1096b516 fix: undo failed in nested list 2023-09-26 16:55:49 +08:00
Lucas.Xu 938953d7b3 fix: unable to parse html text which contains <mark> tag (#3529) 2023-09-26 14:37:10 +08:00
Mathias Mogensen 949dab9afe fix: on hover/enter issue for view items (#3528) 2023-09-25 12:12:43 +02:00
Narayan 0996f5fd24 fix: missing the hand gesture icon in the text alignment options (#3509) 2023-09-24 21:42:11 +08:00
Lucas.Xu 6e887f1f12 chore: bump version 0.3.3 (#3517) 2023-09-24 20:28:31 +08:00
Richard Shiue ab9338eb89 fix: some issues with the end date (#3495) 2023-09-24 20:26:18 +08:00
Lakhan Baheti fd4088aed0 fix: grid theming to bottom row count number (#3510)
* fix: theming to bottom count number

* refactor: Row to RichText
2023-09-24 20:25:47 +08:00
Richard Shiue 375ff5ed6d refactor: use same bloc in grid and cards (#3511) 2023-09-24 20:24:38 +08:00
Ahsan Ahmad 847290d9a4 fix: remove max length of 30 while creating a new select option (#3513) 2023-09-24 19:14:25 +08:00
Nathan.fooo 56687581f2 feat: using script to update the collab source. (#3508)
* chore: add script

* chore: update script

* chore: update bytes version

* chore: submit lock file
2023-09-24 15:50:58 +08:00
Jannes Blobel 3be39f5e7b chore: update inlang project settings (#3441) 2023-09-23 23:41:56 +08:00
Lucas.Xu 1997231adf Merge pull request #3500 from LucasXu0/fix_032_launch_review_issues
fix launch review(v0.3.3) issues
2023-09-23 12:50:57 +08:00
Lucas.Xu 89face4f02 test: add integration test for ltr/rtl mode 2023-09-23 11:31:08 +08:00
Richard Shiue 37ddce3a29 chore: calendar UI polish (#3484)
* chore: update calendar theming

* feat: add event popup editor

* chore: new event button redesign and add card shadows

* chore: unscheduled events button

* chore: event title text field

* fix: focus node double dispose

* chore: show popover when create new event

* test: integrate some tests for integration testing purposes

* fix: some fixes and more integration tests
2023-09-23 09:47:48 +08:00
Nitin-Poojary 593df96b10 fix: made cursor grab and background color when hovering on Appearance Options Buttons (#3498) 2023-09-22 19:03:18 +02:00
Mathias Mogensen 1b966171c4 feat: enable removing user icon (#3487)
* feat: enable removing user icon

* fix: generate to true

* fix: review comments

* fix: more review comments

* fix: integration test and final changes
2023-09-22 15:20:07 +02:00
Lakhan Baheti 047f1a0b39 fix: right icon size sam as left one (#3494) 2023-09-22 12:25:27 +02:00
Lucas.Xu f2f3506b29 fix: unable to change RTL of heading block 2023-09-22 17:13:08 +08:00
Lucas.Xu 0ccced4b54 chore: rename package name (#3501) 2023-09-22 16:32:18 +08:00
Lucas.Xu f762a564b5 feat: only show text direction toolbar item when RTL is enabled 2023-09-22 15:59:21 +08:00
Lucas.Xu 57b78ee3c6 feat: add reset font button in toolbar 2023-09-22 15:49:11 +08:00
Lucas.Xu 5dfc470873 chore: add more space between font item and font menu 2023-09-22 13:53:14 +08:00
Aryan More d5f8ce5435 fix: add padding below field title text field (#3440)
* Fixed Issue no #3426

* Reversed the pubspec.lock mistaken update

* FIXED PADDING

* Fixed Padding issue on calender field edit popup
2023-09-22 11:15:18 +08:00
Richard Shiue 3c65a96b04 chore: checklist ux flow redesign (#3418)
* chore: ux flow redesign

* chore: remove unused imports

* fix: allow creation of tasks of the same name

* chore: apply code suggestions from Mathias
2023-09-22 09:33:24 +08:00
Nathan.fooo 6ba7fc0317 feat: openai and stabilityai integration (#3439)
* chore: create trait

* test: add tests

* chore: remove log

* chore: disable log
2023-09-21 12:41:52 +08:00
Vincenzo De Petris 37a5054ebd fix: close popover after item selection in settings view (#3362)
* fix: close popover after item selection in settings view

* fix: add missing await before closing popover

* fix: find popover container by context instead of passing controllers around

* fix: add requested changes

* feat: close text direction settings popups after selection

* fix: clean up

* fix: restore theme value dropdown as StatefulWidget
2023-09-21 11:23:28 +08:00
Mathias Mogensen 048434024b feat: select cover image on upload (#3488) 2023-09-21 04:02:39 +02:00
Nitin-Poojary 2c757e9b6c fix: set minimum width for grid fields to 50px (#3397)
* fix: set minimum width for grid field to 100px

* test: add grid field width test

* fix: field width should not be less then 50px

* test: grid field width should not be less then 50px

* fix: cursor-based resizing issue

* test: updated tests
2023-09-21 09:39:13 +08:00
Lucas.Xu 9c59e1487e feat: customize text font (#3467)
* feat: update UI in settings page

* feat: customzing font in document page

* fix: flutter analyze and format issues
2023-09-21 09:12:25 +08:00
Mathias Mogensen 4b9b723521 fix: add bottom border to new property column (#3486) 2023-09-21 03:10:41 +02:00
Vyshnav Ajith a389836897 Added Language Support for Urdu. Issue#3372 (#3469)
* Create ur.json

* Add files via upload

* changes

* Added Locale change to the supported Locales List

* Added Urdu in Language.dart

* Delete .vscode/launch.json

* Changed the icon for Calendar
2023-09-20 17:31:17 +02:00
Mathias Mogensen eec7723ce0 fix: tests for interacting with viewitem (#3472) 2023-09-20 23:14:04 +08:00
Lucas.Xu 2f938a331f Merge pull request #3468 from LucasXu0/fix_build_error_on_xcode15
fix: build error on Xcode 15
2023-09-20 20:32:28 +08:00
Lucas.Xu 847d7cb35a fix: build error on Xcode 15 2023-09-20 15:28:27 +08:00
Onyedika Israel Ukwueze 094f8fc307 fix: visual bug on board accessory 2023-09-19 16:02:19 +08:00
Yatendra Kumarandnathan e3f11ea9c0 feat: integrated openAI rust plugin (#3302)
* feat: create flowy-plugins

* feat: integrated openai service with interface

* feat: integrated openai api call

* fix: response in api

* fix: removed unused imports

* fix: remove parse.rs

* fix: macos version + removed print

* fix: removed debugPrint + changed deployment target

* fix: android project+removed gesture detector

* fix: removed unused imports

* chore: fix compile

* chore: rever changes

* chore: rever changes

* chore: fix clippy warnings

* chore: rename

* chore: fix compile error

* chore: remove dart ai

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-09-19 10:37:37 +08:00
Richard Shiueandnathan 124d435f09 feat: add end date to time cell data (#3369)
* feat: add end date to time cell data

* feat: implement ui for end time

* test: add date to text test

* chore: clippy warnings

* fix: unexpected time parsing

* fix: fix the date logic when toggling end date

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-09-19 09:58:15 +08:00
Mathias Mogensen b700f95c7f fix: do not rebuild hover on item selection (#3423) 2023-09-18 16:39:30 +08:00
Lucas.Xu daf9b48c73 chore: update CHANGELOG (#3433) 2023-09-18 14:39:25 +08:00
Lucas.Xu 0ea5b3c483 fix: rtl related issues 2023-09-18 14:33:51 +08:00
Nathan.fooo f3148640eb chore: update collab rev id (#3432) 2023-09-18 12:45:16 +08:00
Zackandnathan 1c84ee1d53 feat: integrate appflowy-cloud (#3359)
* feat: draft: code dependency

* chore: update ref

* feat: signup using client_api

* feat: support auto sign_in after sign_up if already confirmed(WIP)

* chore: update collab commit id

* chore: fix compile errors

* chore: user AFServer trait to provide optional service

* chore: refactor workspace

* chore: disable aws config

* chore: return ws connect

* chore: update collab rev

* chore: fmt and clippy

* chore: fix test

* chore: update chrono version

* chore: add script to update the collab crates commit id

* chore: update

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-09-17 17:14:34 +08:00
xfarrow cecd4f48ab Italian translation fix (#3395)
* Update it-IT.json
2023-09-15 15:43:05 +02:00
Richard Shiue 1e001640aa fix: cannot open popovers (#3410) 2023-09-15 19:01:22 +08:00
Lucas.Xu 3426e5b53e fix: launch review issues (#3413) 2023-09-15 17:51:29 +08:00
Yijing Huang 936b49a63f fix: alignment issue in login page (#3399) 2023-09-15 16:07:23 +08:00
Richard Shiue f6f80b48c9 fix: some UI issues (#3403) 2023-09-14 19:30:33 +08:00
Lucas.Xu 759cb27a43 chore: update version to 0.3.2 (#3404) 2023-09-14 19:23:39 +08:00
Lucas.Xu 26a2bffcd1 fix: some UI issues were present in version 0.3.1. (#3401) 2023-09-14 19:22:32 +08:00
Aman Negi fe55452c79 fix: restore banner theme issues (#3299) 2023-09-14 18:48:42 +08:00
Generic-Ripe 16adacac38 chore: update sv.json (#3386)
In this context board is tavla in Swedish.
Styrelse is board of directors.
2023-09-14 18:47:55 +08:00
Vincenzo De Petris d86531ac92 fix: add left padding to TabsManager widget (#3396) 2023-09-14 12:08:44 +02:00
Nathan.fooo 9231455f0d chore: update collab rev and fix compile (#3398) 2023-09-13 22:11:51 +08:00
Richard Shiue 0c6a1d4ae7 chore: revamp checklist ui (#3380)
* chore: revamp checklist editor  ui

* chore: checklist progress bar

* test: integration tests

* fix: flutter analyzer errors

* fix: checklist percentage complete
2023-09-13 20:44:04 +08:00
Richard Shiue 524efc2620 test: fi convert text to date cell test (#3377) 2023-09-13 19:12:40 +08:00
Richard Shiue 50a4f03931 chore: date editor ui polish (#3367) 2023-09-13 19:12:26 +08:00
Richard Shiue a4681a4042 fix: don't use timestamp fields to make calendar (#3366) 2023-09-13 19:11:46 +08:00
Richard Shiue 1ca130d7de feat: revamp row detail page UI (#3328)
* feat: revamp row detail page UI

* chore: some minor details and fix tests

* fix: fix tests

* chore: remove unused field

* chore: code cleanup

* test: add reordering fields in row page tests

* chore: remove duplicate and delete row events

* chore: timestamp cell ui adjustment

* chore: remove unused code

* test: fix new integration tests
2023-09-13 19:10:08 +08:00
Mathias Mogensen ef6f9a3175 fix: reorder rows on windows (#3279)
* fix: reorder rows on windows

Closes: #3208

* fix: unused import
2023-09-13 11:36:22 +08:00
Vincenzo De Petris aa25aa4474 fix: DateCardCellState date formatting (#3387)
* fix: DateCardCellState date formatting

* refactor: use string interpolation
2023-09-13 11:18:07 +08:00
c7af04b317 feat: support incremental updates for textblock's delta. (#3216)
* feat: support incremental to update textblock's delta

* fix: update test code

* fix: remove console

* fix: update test

* feat: integrate increamental delta in Flutter

* fix: delete quill editor

* fix: delete quill editor

* feat: add csharp in codeblock (#3371)

* chore: pt-PT & pt-BR translation updated  (#3353)

* chore: Ensure Cargo.lock Is Updated Alongside Changes to Cargo.toml (#3361)

* ci: add cargo check workflow

* ci: test cargo.toml

* fix: update test

* fix: code review

* fix: update cargo.toml and cargo.lock

* fix: code review

* fix: rust format

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
Co-authored-by: Mayur Mahajan <47064215+MayurSMahajan@users.noreply.github.com>
Co-authored-by: Carlos Silva <mtbf99@gmail.com>
2023-09-12 20:49:03 +08:00
Mohammad ZolfaghariandLucas.Xu 9565173baf feat: text and layout direction settings (#3247)
* feat: text and layout direction settings

Added ltr|rtl|auto direction button to appflowy toolbar.
Introduced layout and default direction settings.

* chore: formate code

* feat: added hint for direction settings

* fix: flutter analyze

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-09-12 19:11:13 +08:00
Lucas.Xu 5f4e3ecc76 fix: unable to paste texts contains section or font tag (#3379) 2023-09-12 15:53:39 +08:00
Lucas.Xu 043c68a333 fix: downgrade the folder path to io.appflowy.appflowy (#3344) 2023-09-12 14:31:05 +08:00
Yijing Huang f639d51c11 feat: auth pages improvement for mobile and desktop platform (#3217) 2023-09-12 10:32:26 +08:00
Lucas.Xu 71071b60b2 feat: improve performance of document page (#3357) 2023-09-12 10:29:41 +08:00
Kilu.He 608255fa0f chore: Ensure Cargo.lock Is Updated Alongside Changes to Cargo.toml (#3361)
* ci: add cargo check workflow

* ci: test cargo.toml
2023-09-11 18:59:35 +08:00
Carlos Silva f8b0a26acc chore: pt-PT & pt-BR translation updated (#3353) 2023-09-11 15:24:08 +08:00
Mayur Mahajan 133dab934b feat: add csharp in codeblock (#3371) 2023-09-11 15:02:57 +08:00
fangwufeng-v a81670c447 feat: new grid (#3167)
* feat: implement database database service by functions

* feat: define database data type

* feat: basic grid store and component

* feat: data communication mechanism and simple table ui. Can add new filed and update field name.

* feat: add grid text cell and grid checkbox cell

* feat: single select cell and multiselect cell

* refactor: fix code review problems

* feat: add new row

* feat: fix tsc error
2023-09-11 10:27:56 +08:00
Richard Shiue 35f84e42cc fix: one-frame glitch when deleting all sorts (#3330) 2023-09-10 15:50:49 +08:00
Yijing Huang 2f6df6a17d chore: remove default ImageFilter (#3349) 2023-09-08 10:09:16 +08:00
Richard Shiue 8bcc6384f2 refactor: different TypeOption between DateTime and LastModified/CreatedAt (#3356)
* fix: stringify date cell includes time if true

* refactor: LastModified and CreatedAt type option

* chore: frontend implementation

* chore: some adjustments and fix tests

* fix: integration tests

* chore: timestamp type option ui
2023-09-08 10:07:24 +08:00
Nathan.fooo a0fc4b86b0 chore: update collab libs rev (#3342) 2023-09-06 16:00:23 +08:00
Nathan.fooo 790580eea4 chore: update cargo build profile (#3332) 2023-09-05 09:31:23 +08:00
Lucas.Xu 3db9024a2d chore: release 0.3.1 (#3326)
* chore: update editor version

* fix: export name (with CJK) doesn't match the document name

* chore: bump version 0.3.1
2023-09-04 17:28:19 +08:00
Nathan.fooo a821740469 refactor: remove http server ref (#3327) 2023-09-04 15:50:38 +08:00
Lucas.Xu af0ae2e375 feat: enable heading in the table plugin (#3325) 2023-09-04 13:35:11 +08:00
Nils Jacobsen 7d6fa0b159 chore: update inlang.config.js and language files 2023-09-04 13:33:56 +08:00
Richard Shiueandnathan b73a34ed94 refactor: remove date cell persistence (#3095)
* refactor: remove date cell persistence

* refactor: use i64 rather than String in DateChangeset

* chore: code cleanup

* fix: tauri build

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-09-02 11:50:16 +08:00
Richard Shiue f3aaff77b9 chore: per-view field visibility UI (#3296)
* chore: default field settings if not exist

* chore: field settings listeners and services

* chore: don't need to updateFieldInfos

* feat: per-view field visibilty UI

* fix: remove unresolved imports
2023-09-02 00:42:46 +08:00
Vedant PandeyandRichard Shiue 9b7ff375b2 fix: trigger option selection on tap down (#2915)
* fix: trigger option selection on tap down

* chore: add TODO comment

---------

Co-authored-by: Richard Shiue <71320345+richardshiue@users.noreply.github.com>
2023-09-01 22:58:21 +08:00
Richard Shiueandnathan 18498c0479 feat: field settings application domain (#3284)
* chore: default field settings if not exist

* chore: field settings listeners and services

* chore: don't need to updateFieldInfos

* chore: load default field settings if none found

* chore: update collab ref

* chore: fix remidner compile errors

* fix: fix tests

* chore: update tauri project setting

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-09-01 22:40:17 +08:00
Nathan.fooo c652c32575 feat File storage (#3306)
* refactor: file upload

* refactor: support upload plan

* test: add tests
2023-09-01 22:27:29 +08:00
Mohammad Zolfaghari df8642d446 feat: support table plugin (#3280) 2023-09-01 14:45:21 +08:00
Nathan.fooo abb6eff23d fix: disable sync if keys aren't provided (#3304) 2023-09-01 11:32:45 +08:00
Nathan.fooo 3b4f8e53a2 feat: storage file (#3303) 2023-08-31 16:40:40 +08:00
Nathan.fooo 4847b8b114 chore: enable discord and github login (#3293) 2023-08-31 15:45:01 +08:00
Lucas.Xu e8f124b97c feat: support editing name when creating page (#3297) 2023-08-30 22:16:12 +08:00
Lucas.Xu f73d59fb57 feat: support text align and block align (#3292)
* feat: support text align and block align

* test: add test
2023-08-30 17:21:32 +08:00
Nathan.fooo 897d7980f6 chore: remove jwt secret env variable (#3291) 2023-08-30 11:51:33 +08:00
Mayur MahajanandLucas.Xu b88aed887a fix: paste multiple lines in codeblock (#3151)
* fix: paste multiple lines in codeblock

* fix: works with non collapsed selection

* chore: localize code block

* test: multiline paste in codeblock

* chore: remove unused import

* fix: only hanlde code block paste command if all the selected nodes are code block

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-08-30 09:58:56 +08:00
Alex Wallen 4e863bc87f feat: add hover color to question bubble like mockup (#3222) 2023-08-29 21:03:58 +02:00
nathan 507554a596 chore: only show email if supabase is enabled 2023-08-29 09:52:41 +08:00
Nathan.fooo 0806436c19 chore: share database via csv (#3285)
* chore: share database via csv

* fix: flutter test
2023-08-28 23:20:56 +08:00
Nathan.fooo 1205f0ebf7 chore: enable edit user email (#3286) 2023-08-28 21:00:55 +08:00
Aryan Arora 26e56194ea fix: nightmode support for no recents text on the emoji menu (#3239) 2023-08-28 17:09:20 +08:00
Nathan.fooo 4e67282f2b feat: Data sync on signup (#3283)
* chore: sync all data

* chore: sync database row and document in the row

* chore: sync inline view id

* chore: sync row and document in row

* fix: tests

* fix: migrate document in row

* chore: retry when create collab fail

* fix: invalid secret cause rerun application

* chore: fix clippy warnnings
2023-08-28 13:28:24 +08:00
Lucas.Xu 41ec2d992e feat: improve CJK IME support (#3278) 2023-08-28 10:58:26 +08:00
Richard Shiue f0e4f3db61 chore: per-view field settings (#3199)
* chore: field-setting entities-events-notifications

* chore: update field settings

* chore: add tests

* chore: add docs

* chore: use an enum for field visibility

* chore: clippy warnings

* fix: deps fields

* chore: collab merge main

* chore: collab ref

* test: fix tests

* fix: tauri bump collab rev
2023-08-27 22:31:32 +08:00
Lucas.Xu 6634a0ecb3 chore: update supabase version and setup new deeplink for linux (#3272) 2023-08-25 18:06:23 +08:00
Lucas.Xu 255f30590f feat: add custom context menu items for copy, cut, and paste commands 2023-08-24 22:23:50 +08:00
Nathan.fooo 1ba7224088 docs: improve documentation (#3265) 2023-08-24 14:00:34 +08:00
Richard Shiue 4d7c0a7c67 chore: use vendored openssl 2023-08-23 14:55:36 +08:00
Lucas.Xu a0481e8020 chore: bump version 0.3.0 (#3252) 2023-08-23 10:43:18 +07:00
Lucas.Xu affd253e21 feat: support AppImage (#3248)
* feat: add build deb shell script

* feat: update release.yml

* chore: add flatpak readme

* feat: support appimage builder

* feat: support appimage builder

* Update release.yml
2023-08-23 08:46:11 +08:00
Alex Wallen 773b09c2f7 fix: create release regardless of run (#3256) 2023-08-22 11:00:01 -10:00
Nathan.fooo ea37128359 fix: reopen the application lost the theme (#3254) 2023-08-22 22:41:52 +08:00
Richard Shiue e9f31ea0f8 fix: arrow keys on field name text field (#3162) 2023-08-22 22:38:07 +08:00
Richard ShiueandMathias Mogensen 72363921b0 fix: use empty event title and add placeholder (#3234)
* fix: use empty event title and add placeholder

* chore: update frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_event_card.dart

Co-authored-by: Mathias Mogensen <42929161+Xazin@users.noreply.github.com>

* chore: remove unnecessary visible for testing

* chore: apply suggestions from code review

Co-authored-by: Mathias Mogensen <42929161+Xazin@users.noreply.github.com>

* fix: typo on suggested changes

---------

Co-authored-by: Mathias Mogensen <42929161+Xazin@users.noreply.github.com>
2023-08-22 22:30:41 +08:00
Nathan.fooo 7fa15615df chore: enable continue last session after logout (#3253) 2023-08-22 21:19:04 +08:00
Amir Lavasani ad596b3165 feat: add the Persian language translations (#3242) 2023-08-22 14:48:42 +07:00
Lucas.Xu 724fc895e1 feat: format the selected text to url if available (#3245) 2023-08-22 14:46:27 +07:00
Nathan.fooo 77637ff461 test: add supabase auth tests (#3250)
* test: add supabase auth tests

* chore: format before test

* chore: fix warnings

* ci: rust test

* chore: disable clicking get started button when logining through the google OAuth
2023-08-22 15:40:22 +08:00
Nathan.fooo 12d6cbd46a chore: optimize the UI if fail to open the workspace (#3246)
* chore: async load user profile

* chore: enable reset workspace

* chore: add confirm dialog
2023-08-22 00:19:15 +08:00
Lucas.Xu bd30e31f6c feat: improve copy paste plugins, and support in-app copy-paste (#3233) 2023-08-21 13:54:26 +08:00
Nathan.fooo 30155924a9 docs: documentation for encryption functions (#3243) 2023-08-20 15:38:52 +08:00
Nathan.fooo a1647bee78 feat: realtime user event (#3241)
* feat: update user profile after receiving realtime user event

* chore: logout if other deivce enable encyrption

* test: fix test

* chore: fix checkbox UI

* chore: fix tauri build

* chore: fix device id

* chore: fix duplicate run appflowy
2023-08-20 14:13:54 +08:00
Alex Wallen c5719be7ae fix: svg sizes (#3238)
* refactor: svg impl

* fix: icon sizes in appearance settings

* chore: change button icon

* fix: size of restore button

* chore: fix iconbutton api

* fix: analyzer issues
2023-08-19 09:53:10 +08:00
Nathan.fooo de01bf70cd fix: only encrypt if enable (#3236)
* fix: error page display issue

* fix: override document with empty data

* chore: add logs

* fix: encrypt errors

* fix: encrypt errors
2023-08-18 22:32:51 +08:00
Aryan Arora 23a34af30f chore: changed some german translations (#3203) 2023-08-18 16:22:22 +08:00
Alex Wallen 1cc78b87ab fix: some svgs do not have the correct color (#3221)
* fix: svg colors

* chore: rename variable name bc it doesn't make sense

* fix: google sign in button blend mode
2023-08-18 15:39:02 +08:00
Nathan.fooo c1bba7e48b fix: realtime event parser (#3231)
* chore: decrypt realtime event

* fix: realtime event parser
2023-08-18 15:13:34 +08:00
Lucas.Xu 78c33a4dd2 fix: macOS build error(Library not loaded) in debug mode (#3230) 2023-08-18 11:01:07 +08:00
Nathan.fooo 649b0a135a feat: encrypt collab update (#3215)
* feat: implement encrypt and decrypt

* feat: encrypt and decrypt

* feat: update user profile with encrypt

* chore: store encryption sign

* fix: login in setting menu

* chore: show encryption account name

* chore: fix test

* ci: fix warnings

* test: enable supabase test

* chore: fix test and rename column

* fix: update user profile after set the secret

* fix: encryption with wrong secret

* fix: don't save user data if the return value of did_sign_up is err

* chore: encrypt snapshot data

* chore: refactor snapshots interface

* ci: add tests

* chore: update collab rev
2023-08-17 23:46:39 +08:00
Alex Wallen 103f56922f fix: windows release build (#3168)
* refactor: build tool

* chore: update release.yml

* chore: skip creating release if already created
2023-08-17 21:03:29 +08:00
Yijing Huang 07cf7287d6 fix: color issues related to hover effect (#3206)
* fix: fix hover color on information and setting button

* chore: update the hover color of icon in SelectOptionTag

* chore: change hover color for add icon button

* chore: change the SelectOptionTag text color and _SelectOptionCell icon hover color

* fix: change hover color in tab close button #3172

* chore: add spacing in SelectOptionTag

* chore: remove the hover color on close tag icon

* chore: dart fix
2023-08-17 21:02:24 +08:00
Lucas.Xu 8a277b7380 chore: codesign macOS packages 2023-08-17 21:01:08 +08:00
Lucas.Xu 7f7fd4958f feat: support deeplink on Linux 2023-08-17 17:45:26 +08:00
Lucas.Xu de4f47b2a1 chore: migrate to the latest api 2023-08-17 17:43:05 +08:00
Lucas.Xu e226eaad45 feat: imporve the functionality of pasting from html 2023-08-17 17:43:05 +08:00
Alex Wallen a1f1559936 Reset theme buttons (#3137)
* feat: add translation for tooltip

* feat: add defaults for theme settings

* feat: refactor appearance view so that all theme settings can be reset

* chore: add keys for reset button

* chore: add tests for the reset button

* feat: register appearance test in runner

* chore: remove comment

* feat: add default file for appearance

* chore: move around files

* feat: make reset button respond to hover

* fix: incorrect use of resetTheme

* refactor: use maybeWhen

* fix: icon button style

* fix: rebase errors
2023-08-15 18:28:58 -10:00
Alex Wallen f994f50ef9 [fix] transparent svgs (#3213)
* fix: transparent emojis

* chore: enhance documentation
2023-08-15 12:14:22 -10:00
Yijing Huang 29431b3038 fix: replace svgWidget by FlowySv (#3212) 2023-08-15 18:15:09 +02:00
Mathias Mogensen ee14d31194 fix: overflow and alignment in sort editor (#3201)
* fix: overflow and alignment in sort editor

Closes: #3196 #3197

* fix: add and delete button on row
2023-08-15 16:28:55 +02:00
Alex Wallen 00ee4be723 [feat] improve svg widget api (#3205)
* feat: change api

* fix: api upgrade errors
2023-08-14 16:26:11 -07:00
243f80b6d5 [chore] svg improvements (#3145)
* chore: remove use of svgWidget()

* refactor: redundant code in svg

* feat: add generator to generate flowy_svgs.g.dart

* chore: reference new package in pubspec

* chore: remove svg widget from flowy_infra

* refactor: update usage in flowy_infra_ui

* refactor: usage in appflowy_flutter

* fix: error with script not running

* fix: error with script not running

* fix: use unix style file path

* feat: use generation script for flowy svgs

* feat: add task

* fix: add required missing semicolon

* fix: rebase errors

* feat: update generate build script

* fix: solve duplicate entries in the generated file

* fix: compilation errors

* fix: replace all spaces with an underscore

* feat: use FlowySvgs

* feat: reduce assets and simplify

* refactor: do not return empty svg widget

* fix: rebase errors

* fix: analyzer warnings

* chore: remove flowy_icons from tracking

* chore: fix generate flowy icons script linux

* chore: macos/linux script

* chore: add rsync

---------

Co-authored-by: Mathias Mogensen <mathiasrieckm@gmail.com>
Co-authored-by: Mathias Mogensen <mathias@appflowy.io>
2023-08-14 10:34:01 -10:00
6fc8072459 feat: tauri grid changes and fixes (#2995)
* (feat) implement row drag and drop functionality

* (feat) implement grid row actions options ui

* (feat) add delete row function

* (feat) implemet grid filter and sort popup layout

* chore: move row methods to database controller

* (feat) integrate delete and duplicate row functions

* chore: add option on field popup

* chore: padding on edit row

* fix: change option color

* chore: stick to corner on resize

* fix: stick to corner

* chore: grid row popup changes

* chore: grid title

* chore: add field width

* chore: replace table layout with fixed column size

* chore: resize column WIP

* chore: save column width and draggable WIP

* chore: nav panel resize fix

* chore: database filter store

* chore: filter popups

* chore: filter value options

* chore: remove console

* chore: database filter refactor

* chore: prevent jitter and dont include used fields

* chore: checked field type

* chore: reset operator

* chore: filter icon

* chore: database sort popup

* chore: add icons into ref page

* chore: sort icon in column header

* chore: grid title fix

* chore: change text and border colors

* chore: grid rows dnd and optimise components

* chore: select option color change fix

* chore: filter service and controller

* chore: wire filter UI to service WIP

* chore: show only fields/cells with visiblity set to true

* fix: grid visible column exception

* chore: add update text filter backend

* chore: select option filter save modify get

* fix: filter reload and new filter

* fix: new filter order

* chore: sort backend service

* chore: database sort UI

* chore: field select popover component

* chore: operator select popover

* chore: select options popover

* chore: change text color

* chore: post merge

* chore: sort popover

* chore: bg body

* chore: grid row actions popover

* chore: dragging row change

* chore: new field column fix

* chore: field actions popover and field type popover

* chore: hide and delete field actions

* chore: duplicate field

* fix: pnpm lock file has error and button color update

* fix: tsc error

* chore: add field to left and right

---------

Co-authored-by: Mikias Tilahun Abebe <mikiastilahun@gmail.com>
Co-authored-by: qinluhe <qinluhe.twodog@gmail.com>
2023-08-14 17:06:27 +08:00
Nathan.fooo 27b1f00e17 feat: user awareness (#3185)
* refactor: separate functions

* feat: init user awareness object

* test: create reminder event test

* docs: add documentation
2023-08-14 12:57:59 +08:00
Mohammad Zolfaghariandnathan 2f8edf1fd1 feat: group by date (#2641)
* feat: group by date

* test: added more tests for group by date

* fix: print month in abbrev format

* chore: adapt group event changes

* style: remove comment

* fix: change date on changing group

* fix: dont count time in relative group

* fix: check beginning of month is within 30 days

* refactor: unify group id date format

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-08-14 11:37:35 +08:00
Lucas.Xu 9643315d5f Merge pull request #3183 from LucasXu0/fix_029_bugs
fix: some known bugs in v0.2.9
2023-08-13 18:22:36 +07:00
Lucas.Xu a1e2d97388 chore: update editor version 2023-08-13 18:15:59 +08:00
Lucas.Xu 9863000f4a feat: support DidUpdateChildViews callback 2023-08-13 17:32:52 +08:00
Lucas.Xu d0a343ee36 chore: remove the unused code 2023-08-13 17:14:58 +08:00
Lucas.Xu 7a6c829187 chore: enable macOS build on 10.14 2023-08-13 16:59:14 +08:00
Lucas.Xu a47e065f30 fix: windows release build failed 2023-08-13 16:58:28 +08:00
Lucas.Xu fc0ded4990 fix: universal build for macOS 2023-08-13 16:58:28 +08:00
Nathan.fooo 9063b40e06 feat: enable collaboration update synchronization between different devices (#3169)
* feat: bypass realtime event

* chore: use user device id

* chore: send realtime update

* chore: setup realtime recever

* chore: setup realtime recever

* chore: clippy

* chore: update collab rev

* chore: update realtime subscription

* chore: fix test

* chore: fmt

* test: fix flutter test
2023-08-12 17:36:31 +08:00
Lucas.Xu 764b4db166 chore: bump version 0.2.9 (#3144) 2023-08-10 21:18:31 +08:00
Lucas.Xu 7701533ed2 chore: remove the unused value in supabase_task (#3157) 2023-08-10 21:06:02 +08:00
ferreira-fp 29c89013f0 chore: update PT-BR translations (#3156) 2023-08-10 20:59:53 +08:00
Yijing Huang 1fad5aa804 feat: callout improvement (#3090) 2023-08-10 20:59:24 +08:00
Johan Sutrisno 675e23e971 fix: scroll to heading is too slow (#2952) (#3045) 2023-08-10 18:36:53 +08:00
Lucas.Xu c9ee82ec75 chore: update editor version to 1.2.3 (#3153) 2023-08-10 18:35:27 +08:00
Nathan.fooo 0c9935ccf2 fix: using freeze to refactor the FieldInfo class (#3152) 2023-08-10 15:46:16 +08:00
Lucas.Xu d28846bbaa chore: update German translations 2023-08-10 09:18:18 +07:00
Richard Shiue 58ecf62240 feat: selectOption sort + fix logic in edge cases (#3109) 2023-08-09 12:43:03 +08:00
Nathan.fooo a5eaf15548 refactor: login session (#3149) 2023-08-09 10:13:49 +08:00
fbiere 4589d86d81 inlang: update translations 2023-08-08 18:18:46 +02:00
Richard Shiue 9330df4ce1 fix: overlapped scrollbar in calendar (#3075)
* fix: height for calendar view in document

* fix: hide overlapped scrollbars

* chore: merge remote branch 'upstream/main' into fix-#2618
2023-08-08 16:58:04 +08:00
Richard Shiue 7cdd47757b chore: database tab bar ui improvements (#3093)
* chore: tab bar ui polish

* chore: toolbar buttons ui

* chore: minor padding radius and spacing adjustment

* fix: padding issues

* chore: add view button size and padding

* chore: the carelessness is real

* fix: dark mode colors

* fix: selected icon color
2023-08-08 16:57:25 +08:00
Alex Wallen 9d18e9de40 fix: use dart build script on Windows (#3141) 2023-08-08 16:08:34 +08:00
Lucas.Xu e2dd179001 Merge pull request #3140 from LucasXu0/url_protocol_in_windows_installer 2023-08-08 12:19:56 +07:00
Mathias Mogensen 35a47bfe5d feat: tabs shortcuts (#3112) 2023-08-08 13:09:17 +08:00
Lucas.Xu 9dc209bda7 fix: loading status widget on the signup page flickers. 2023-08-08 11:24:06 +08:00
Lucas.Xu 104851d330 chore: optimize the logout button 2023-08-08 10:58:14 +08:00
Lucas.Xu a1db5bff5c fix: user page inside setting overflow 2023-08-08 10:46:52 +08:00
Lucas.Xu 453346e69c fix: the minHeight of the personal header is too small 2023-08-08 10:32:08 +08:00
Kilu.He 923285bfcf feat: support mention a page (#3117) 2023-08-08 10:07:59 +08:00
Lucas.Xu 0de8b92db6 fix: deeplink doesn't work in windows exe installer 2023-08-08 10:06:29 +08:00
Nathan.fooo 125bcbc9db fix: rebuild application when setting the theme or font (#3139) 2023-08-08 09:08:24 +08:00
Nathan.fooo ef9596f4ab chore: enable single instance desktop application on windows (#3136) 2023-08-07 23:30:14 +08:00
Nathan.fooo 3c04b72932 fix: push to sign in screen when logout (#3127)
* fix: push to sign in screen when logout

* chore: show historical login users

* chore: open historical user

* chore: show historical user

* chore: reload app widget with unique key

* chore: add tooltip for user history
2023-08-07 22:24:04 +08:00
StarAtt a3bea472bf chore: update zh-TW translations (#3131) 2023-08-07 20:59:36 +08:00
Dan Zheng 5ac7b8e165 fix: automatically wrap the date, number or URL cells. 2023-08-07 17:58:24 +08:00
Lucas.Xu 95a938657b feat: support windows supabase deeplink callback (#3133) 2023-08-07 17:54:50 +08:00
Richard Shiue fbb1753350 fix: euro currency number format (#3115) 2023-08-07 17:49:03 +08:00
Lucas.Xu c6401da0b5 feat: support customizing the supabase auth path (#3130) 2023-08-07 14:31:20 +08:00
Lucas.Xu f724185f1c chore: Support CI build universal macOS package (#3124)
* fix: macos release build

* feat: support build arm64 macOS package on CI

* feat: support build arm64 macOS package on CI
2023-08-06 16:06:43 +08:00
Nathan.fooo 63a12a1d2b test: add subscription test (#3126) 2023-08-06 15:54:18 +08:00
Mihir 890f7573f3 fix: favorite selection and context menu doesn't work (#3114) 2023-08-06 12:31:47 +08:00
Nathan.fooo 6f159e741b refactor: remove shared instance KV (#3123)
* refactor: remove shared instance KV

* test: enable document test
2023-08-06 11:51:03 +08:00
Nathan.fooo 9a72f31d60 feat: show loading indicator when loading data from remote (#3120)
* chore: show circle indicator if fetch the data from remote

* chore: fix the lb warnings

* chore: create sdk-build for macOS
2023-08-05 15:02:05 +08:00
Mayur MahajanandMathias Mogensen ab7acbd5de chore: german translation for new property and shortcuts (#3116)
* chore: translation for new property nd shortcuts

* Update frontend/resources/translations/de-DE.json

---------

Co-authored-by: Mathias Mogensen <42929161+Xazin@users.noreply.github.com>
2023-08-04 20:46:09 +02:00
Lucas.Xu b7dfc85208 fix: macos release build (#3118) 2023-08-04 21:22:28 +08:00
Kilu.HeandLucas.Xu 16a01e11ed feat: support updating the view name and icon through document (#3099)
* feat: support updating the view name and icon through document

* fix: store expand pages

* fix: refactor text link

* fix: update cargo.toml

* fix: update test

* fix: update event map

* fix: move deal with icon codes to a single file

* fix: delete useless code from flutter

* fix: document banner

* fix: build error

* fix: update rust library

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-08-04 19:27:14 +08:00
Lucas.Xu 70914e6228 chore: support building universal macos package (#3110) 2023-08-03 20:02:44 +08:00
Lucas.Xu 45cbd70bf4 chore: bump version 0.2.8 (#3105) 2023-08-03 15:07:01 +08:00
Lucas.Xu fb9bc359b8 feat: disable moving page into the database (#3107) 2023-08-03 15:06:02 +08:00
Nathan.fooo 135d8a811e chore: fix historical user open issue (#3106) 2023-08-03 12:07:42 +08:00
Nathan.fooo 03518c951c ci: disable document test (#3104) 2023-08-03 10:33:25 +08:00
Nathan.fooo 03b8f2ccb2 feat: Get started doc migration (#3102)
* feat: migrate empty document

* chore: update collab rev

* chore: fmt
2023-08-03 09:14:52 +08:00
Lucas.Xu a40c639a96 fix: dispose the listener when the favorite bloc dispose (#3103) 2023-08-03 08:50:56 +08:00
Nathan.foooandMathias Mogensen ea0c4e96d2 feat: implement magic link login (#3086)
* feat: implement magic link login

* ci: create env file

* ci: generate flutter env files

* ci: disable inject env

* chore: update table name

* Update frontend/appflowy_flutter/lib/env/env.dart

Co-authored-by: Mathias Mogensen <42929161+Xazin@users.noreply.github.com>

* chore: fix compile

---------

Co-authored-by: Mathias Mogensen <42929161+Xazin@users.noreply.github.com>
2023-08-03 08:48:04 +08:00
Mihir a1143e24f3 feat: support favorites folder 2023-08-02 21:20:51 +08:00
Richard Shiue ff79635b2b fix: height for calendar view in document (#3073) 2023-08-02 18:07:44 +08:00
Lucas.Xu f0d2cf7da3 fix: insert reference page in nested page 2023-08-01 21:47:20 +08:00
Richard Shiue 5e2ed56f5b fix: move translation jsons to right folder (#3050) 2023-08-01 14:19:45 +08:00
Mayur Mahajan 70963a55f1 chore: add c/cpp/auto options in code langauges 2023-08-01 14:16:01 +08:00
Lucas.Xu 62be81395d fix: missing c++ library when building iOS (#3092) 2023-08-01 14:15:19 +08:00
Vedant Pandey 7c21f61d2e feat: add duplicate in context menu (#2921) 2023-08-01 11:19:48 +08:00
Lucas.Xu ad4c68a353 chore: update iOS flowy infra UI name (#3091) 2023-08-01 10:07:12 +08:00
Yijing Huang 355061d415 fix: fix theme color (#3089) 2023-07-31 23:01:24 +08:00
Yijing Huang 3039944c74 feat: welcome screen UI improvement (#3057) 2023-07-31 23:01:12 +08:00
Yijing Huang 338e342410 feat: lavender theme refactor 2023-07-31 20:22:56 +08:00
Aman Negi 8c544bc8c4 fix: improve readability in callout 2023-07-31 20:18:43 +08:00
Lucas.Xu 266209caeb feat: implement draggable folder (#3083) 2023-07-31 20:06:01 +08:00
Kilu.He eb77346e5a feat: support add cover and icon in tauri document (#3069)
* feat: support add cover and icon

* feat: emoji picker

* feat: emoji picker
2023-07-31 11:39:44 +08:00
dejvizelo f28c5d849c feat: clear date value (#2700)
* chore: Add _ClearDateFieldButton

* chore: Add new DateCellCalendarEvent to clear date

* chore: Add grid_field_clearDate translation token

* refactor: _ClearDateFieldButton -> _ClearDateButton

* fix: Fix dart(unused_element) in _ClearDateButton

* feat: Handle clearDate

* Revert "feat: Handle clearDate"

This reverts commit fd145ef8e9589f3b4aa1a16e5d72c15b6d0b53c4.

* feat: Handle clearDate

* feat: Add clear_flag field

* feat: check clear_flag to clear date

* chore: update exisitng tests

* fix: add mssing import

* refactor: remove check for timeFormatError

* fix: fix margin on _ClearDateButton

* refactor: _ClearDateButton -> ClearDateButton

* test: add clear date backend unit test

* test: add clear date integration test

* test: add clear date to edit time cell test

* chore: mark ClearDateButton visible for testing

* feat: close date editor popover on clear date

* style: make AppFlowyPopover taller

* fix: trim dateStr in _dateStrFromCellData

* fix: don't dismiss CellEditor after clearDate
2023-07-31 10:23:20 +08:00
Richard ShiueandLucas.Xu ea37f46f88 fix: date field created when reference a calendar (#2910)
* fix: date field created when reference a calendar

* fix: make everything one transaction

* chore: apply suggestions from Lucas

* chore: do the same for board

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-07-31 10:12:26 +08:00
Nathan.fooo e68d3f1c71 tests: add supabase tests (#3084) 2023-07-30 08:39:01 +08:00
Jannes Blobel 5741feb7cc Add Transaltion section README.md (#2751)
* Add Transaltion section README.md

AppFlowy has a lot of missing translations. 
I thought you could use your community for the missing translation.

* Fix typo and add backticks for readability in README.md

* Update README.md
2023-07-29 15:00:25 +08:00
Nathan.foooandFu Zi Xiang 2cd88594e8 feat: migrate user data to cloud (#3078)
* refactor: weak passed-in params in handler

* refactor: rename struct

* chore: update tables

* chore: update schema

* chore: add permission

* chore: update tables

* chore: support transaction mode

* chore: workspace database id

* chore: add user workspace

* feat: return list of workspaces

* chore: add user to workspace

* feat: separate database row table

* refactor: update schema

* chore: partition table

* chore: use transaction

* refactor: dir

* refactor: collab db ref

* fix: collab db lock

* chore: rename files

* chore: add tables descriptions

* chore: update readme

* docs: update documentation

* chore: rename crate

* chore: update ref

* chore: update tests

* chore: update tests

* refactor: crate deps

* chore: update crate ref

* chore: remove unused deps

* chore: remove unused deps

* chore: update collab crate refs

* chore: replace client with transaction in pooler

* refactor: return error type

* refactor: use anyhow error in deps

* feat: supabase postgrest user signin (wip)

* fix: Cargo.toml source git deps, changed Error to anyhow::Error

* fix: uuid serialization

* chore: fix conflict

* chore: extend the response

* feat: add implementation place holders

* feat: impl get_user_workspaces

* feat: impl get_user_profile

* test: create workspace

* fix: postgrest: field names and alias

* chore: implement folder restful api

* chore: implement collab storate with restful api

* feat: added placeholders for impl: update_user_profile, check_user

* feat: impl: update_user_profile

* feat: impl: check_user

* fix: use UidResponse, add more debug info for serde serialization error

* fix: get_user_profile: use Optional<UserProfileResponse>

* chore: imple init sync

* chore: support soft delete

* feat: postgresql: add migration test

* feat: postgresql migration test: added UID display and colored output

* feat: postgresql migration test: workspace role

* feat: postgresql migration test: create shared common utils

* feat: postgresql migration test: fixed shebang

* chore: add flush_collab_update pg function

* chore: implement datbaase and document restful api

* chore: migrate to use restful api

* chore: update table schema

* chore: fix tests

* chore: remove unused code

* chore: format code

* chore: remove unused env

* fix: tauri build

* fix: tauri build

---------

Co-authored-by: Fu Zi Xiang <speed2exe@live.com.sg>
2023-07-29 09:46:24 +08:00
Kilu.He a885170869 feat: support editor format text color and bg color (#3061) 2023-07-27 20:40:18 +08:00
Kilu.He 915ce02157 fix: implement the interface of move nested views (#3042)
* fix: implement the interface of move nested views

* fix: update rust ci ubuntu version

* fix: update rust ci version
2023-07-26 16:49:50 +08:00
Lucas.Xu 6e9a5a16a6 fix: windows relesae job (#3038) 2023-07-25 16:41:03 +08:00
Richard Shiue 13c72a31b7 fix: cursor for block options on Windows (#3052) 2023-07-25 16:40:25 +08:00
Richard Shiue 96410b2d32 fix: text overflow when editing a filter 2023-07-25 09:07:21 +07:00
Lucas.Xu d32c2082b6 feat: support building on iOS platform (#3033) 2023-07-21 15:53:57 +08:00
Richard Shiue c368d855c7 feat: enable sort by date + sort fix (#2953) 2023-07-21 15:51:20 +08:00
Mayur Mahajan b1378b4545 feat: customize command shortcuts (#2848) 2023-07-20 16:11:00 +08:00
Kilu.He 5ab64f8835 feat: support views drag and drop (#3004) 2023-07-19 17:59:32 +08:00
Lucas.Xu 0fb004aee0 chore: bump version 0.2.7 (#3022)
* chore: bump version 0.2.7

* chore: update language files using inlang machine translation
2023-07-18 19:59:35 +08:00
Alex Wallen 06bbc06fff fix: focus is clickable if text field is being edited (#3020) 2023-07-18 18:25:25 +08:00
unknown f6edd4b32b fix: pasting a link in a URL grid crashes the app 2023-07-18 17:04:19 +07:00
Lucas.Xu 706a5e784f fix: cannot click on links (#3017) 2023-07-18 15:59:41 +08:00
Mayur Mahajan 1f720efc8a chore: clean unnecessary todos (#3018) 2023-07-18 10:47:55 +08:00
Mathias Mogensen 778e462523 feat: enable reordering properties from settings 2023-07-18 10:47:42 +08:00
Lucas.Xu 2da37122e4 feat: support toggle list (#3016) 2023-07-18 10:45:20 +08:00
Serge Brainin a00dd5498e feat: the application remembers being resized (#2907) 2023-07-18 10:45:06 +08:00
Yatendra Kumar 7dcc7c221f fix: row banner overlay (#3009) 2023-07-17 17:39:44 +08:00
Muhammad Usman Shahid bcd116797d chore: added a tooltip to theme mode for toggling theme 2023-07-17 17:39:20 +08:00
Harmon 70915df5ad fix: add newlines after device info entries for debug info (#3008) 2023-07-17 10:06:43 +08:00
Mayur Mahajan 1b582c3870 chore: change github logo (#3003) 2023-07-15 09:46:08 +08:00
Lucas.Xu 26f078128a test: add an option test (#3006) 2023-07-15 09:45:44 +08:00
Kilu.He c65584d23c feat: support navigator and trash page
* refactor: navigator

* feat: support trash
2023-07-14 20:33:22 +08:00
Lucas.Xu 098c085d96 chore: upgrade editor to 1.2.1 (#2997) 2023-07-14 17:08:40 +08:00
Richard Shiue 39988f6785 fix: field hide/delete icon color in dark mode (#2998) 2023-07-14 17:07:57 +08:00
GitStartandgitstart e69e72e3bd fix: Filter UI popover pixels overflow with dynamic width and height (#2554)
Co-authored-by: gitstart <gitstart@users.noreply.github.com>
2023-07-14 11:06:32 +02:00
Nathan.fooo f9e7b5ffa4 feat: reload UI (#2999)
* chore: reload folder

* chore: reload folder

* chore: init sync

* chore: update tables

* chore: update database

* chore: load row

* chore: update

* chore: reload row

* test: fit test

* chore: retry

* chore: support batch fetch

* chore: enable sync

* chore: sync switch

* chore: sync switch

* chore: migration user data

* chore: migrate data

* chore: migrate folder

* chore: save user email

* chore: refresh user profile

* chore: fix test

* chore: delete translation files

* test: clippy format
2023-07-14 13:37:13 +08:00
Mathias Mogensen 5085ea115f feat: alt+click to add block above (#2988) 2023-07-13 18:33:16 +08:00
Daiki Nakashita c12aa66b2a fix: wrong grid row count (#2973) 2023-07-13 11:01:22 +08:00
Mohammad ZolfaghariandLucas.Xu d4a23657d7 fix: send database notification on create row (#2926)
Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-07-13 09:39:16 +08:00
Mathias Mogensen 5b1afeb85d feat: open apps in tabs (#2962)
* feat: open apps in tabs

Closes: #2942 Relates: #2312

* fix: resolve comments

* fix: unfocus editor to close toolbar on open/change tab

* test: abstract open in a new tab helper
2023-07-12 13:13:18 +02:00
Richard Shiue d0747afbf2 fix: use same base width for all screen sizes (#2961) 2023-07-12 17:30:37 +08:00
Ikko Eltociear Ashimine 88405ad316 chore: fix typo in Dockerfile (#2966) 2023-07-12 17:28:53 +08:00
Roopesh Saravanan 5f3f681591 feat: add installation script for linux users (#2976) 2023-07-12 17:28:17 +08:00
Kilu.He 0dae8cf2f9 feat: support i18n in typescript (#2948) 2023-07-12 11:54:50 +08:00
Lucas.Xu 3d72b6fa12 chore: move language files to the root directory to share them with both Flutter and Tauri. (#2970) 2023-07-11 20:27:40 +08:00
Lucas.Xu 2c669f1b85 chore: bump version 0.2.6 (#2963) 2023-07-11 19:49:48 +08:00
Lucas.Xu b9976b072e fix: unable to cancel the inline math equation format (#2974)
* fix: unable to cancel the inline math equation format

* fix: bold font style used in the document is not suitable

* chore: add flutter clean before executing the release task

* fix: integration test
2023-07-11 19:49:29 +08:00
Felix HäberleandNathan.fooo 409e3bf1e3 feat: update translations (#2823)
Co-authored-by: Nathan.fooo <86001920+appflowy@users.noreply.github.com>
2023-07-10 21:37:22 +08:00
Lucas.Xu ff9b3c56c5 feat:IInline math equation (#2949) 2023-07-09 11:03:22 +08:00
Kilu.He 4c17298432 feat: support dark mode (#2945) 2023-07-07 21:58:15 +08:00
Kilu.He 0401fc4b22 fix: tauri check user failed (#2946) 2023-07-06 16:40:20 +08:00
Mathias Mogensen 4805d0c568 Merge pull request #2939 from MayurSMahajan/fr_toggle_theme_shortcut_2304
feat: toggle theme mode shortcut
2023-07-06 09:34:00 +02:00
Nathan.foooandLucas.Xu edc7933c66 feat: support pg storage (#2935)
* refactor: using tokio-postgres

* chore: update

* chore: update env

* chore: update

* chore: upgrade supabase and add logout button

* refactor: update

* chore: update

* refactor: using message queue to handle the pg connection

* refactor: move test

* refactor: update sql

* chore: create pg database when user login

* chore: update scheme

* chore: generic user service

* chore: update

* chore: create statistics

* chore: create snapshot

* chore: add test

* chore: add database cloud service

* chore: add document cloud service

* chore: update interface

* test: add document test

* refactor: document interface

* chore: fix test

* chore: update

* chore: update test

* test: add test

* test: add test

* test: add test

* chore: update collab rev

* fix: flutter analyzer

* chore: update

* chore: update

* chore: update

* fix: tests

* chore: update

* chore: update collab rev

* ci: rust fmt

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-07-05 20:57:09 +08:00
MayurSMahajan 89ff44b035 test: hotkeys integration test 2023-07-05 17:46:10 +05:30
MayurSMahajan 793884427c feat: toggle theme mode shortcut 2023-07-05 10:58:36 +05:30
Richard Shiue e0ad364fa3 test: improve stability of calendar integration test (#2930) 2023-07-05 11:05:05 +08:00
Richard Shiue 5d76a7864d chore: restore default vscode build task (#2931) 2023-07-05 11:04:18 +08:00
Alex WallenandYijing Huang 323cb3b60f [feat] Allow user to select any Google Font (#2895)
* chore: add label for font selection drop down

* chore: add method to set font family

* feat: add drop down to setting appearance view

* feat: add fontFamily to document appearance cubit

* feat: add bloc provider to root for document appearance style

* feat: syncFont family from setting appearance dialog

* feat: plumbing for font style in editor

* fix: add blocprovider before pushing overlay

* chore: add kv_keys

* fix: use fontFamily in document appearance cubit

* fix: remove bloc providers because bloc is supplied in ancestor

* fix: remove unecessary bloc provider

* chore: add constraints to popover

* chore: add translation for search box

* feat: add levenshtein for string sort

* feat: add search bar view

* refactor: levenshtein

* chore: add tests for levenshtein algorithm

* feat: add unit tests for appearance cubit

* fix: analyzer warnings

* feat: sort by ascending if query is empty

* chore: add test for the font family setting widget

* feat: make comparison case insensitive

* feat: lazy load with listview.builder

Co-authored-by: Yijing Huang <hyj891204@gmail.com>

* fix: fonts loaded on open application

* fix: checkmark doesn't show

* fix: try catch before getFont

* fix: clear text editing value on close

* fix: remove autofocus for search text field

* chore: add tests

* feat: use sliver protocol

Co-authored-by: Yijing Huang <hyj891204@gmail.com>

* fix: avoid using intrinsic height

Co-authored-by: Yijing Huang <hyj891204@gmail.com>

* fix: extra paren caused build failure

* feat: switch order of font family setting

---------

Co-authored-by: Yijing Huang <hyj891204@gmail.com>
2023-07-04 11:30:38 -10:00
Kilu.He 9fb8f221cf chore: add document test (#2932) 2023-07-04 17:17:25 +08:00
8dfbfe3c42 feat: Dynamically Load Themes in AppFlowy (#2670)
* feat: dynamic theme plugin (init)

* feat: provide fallback color if plugin becomes out of date (transparent)

* feat: use applicationDocumentsDirectory to store plugins

* chore: remove json files

* fix: add toJson to resolve analyzer errors

* fix: analyzer (unused imports)

* feat: add code generation scripts for freezed files (call recursively in packages)

* fix: revert changes to dry generation

* feat: call directly into script

* refactor: scripts try to be stateless :)

* fix: path to code generation in toml

* fix: generate script permissions

* fix: path not correct in generate.sh

* feat: modify execution permissions before executing scripts

* chore: switch order of build_runner and easy_localizations

* fix: fs is not valid duckscript cmd

* chore: clean build_runner before executing

* chore: upgrade freezed and build_runner attempt to resolve InvalidType error

* fix: use exec cmd.exe to chmod

* feat: add task to generate all files

* chore: remove redundant task (Code Gen)

* chore: remove json_annoation to dev_dependencies

* fix: dropped & between commands

* chore: rename file and class to FlowyDynamicPlugin

* fix: dependency hell

* fix: json annotation in colorscheme

* fix: analyzer warnings

* fix: duckscript runner for code generator

* fix: try without setting file permissions

* chore: move file picker to infra

* chore: restructure project directory

* feat: add BLoC components for consumers

* chore: update dependencies in pubspec.yaml file

* fix: file picker imports

* feat: add new translations for features

* feat: add new widgets to render upload

* fix: import

* feat: add text overflow

* feat: use animated switcher

* chore: export FileType

* fix: directory was not created, only files were copied

* chore: separate some logic

* feat: add saveFile to FilePickerService

* fix: analyzer error with unused imports

* feat: add translations for uploading

* feat: add builtins property to apptheme

* feat: add theme preview widget

* fix: upload widgets need to fill whole space and account for overflow

* refactor: do not watch file system for changes

* feat: add deletion confirmation dialog

* feat: add form factor resolution for dyanmic layout

* feat: trigger rebuild only when plugins are loaded

* feat: make all methods static

* chore: remove TODO comment, requires further design

* chore: move models to subfolder

* fix: references to plugin service instance

* fix: rebase errors

* fix: more rebasing errors

* feat: remove multiple themes from one plugin

* refactor: use pattern to resolve widget in settings_appearance_view

* refactor: remove commented code

* feat: add translations

* fix: import error

* refactor: separate concerns a bit more

* fix: bug in toJson serialization code

* feat: add package to use represent memory files

* fix: analyzer warnings

* chore: add translation

* chore: remove unused exceptions

* chore: use join

* chore: add documentation

* feat: add tests on theme

* fix: fix scripts for macOS

* feat: use appFlowyDocumentDirectory

* fix: remove unused import

* fix: imports

* feat: allow plugin service to be passed

* fix: theme tests

* feat: separate themes by built-in and plugin

* fix: rebase change name of appFlowyDocumentDirectory

* chore: add test to check that initial state falls back to initial theme

* chore: theme upload preview widget

* chore: rename to brightness setting

* refactor: appearance for settings appearance view

* feat: change show dialog api and use it

* fix: handle plugin compilation exception when incorrect format supplied

* fix: style of theme upload

* fix: always change state so that ui updates

* chore: style of loading widget

* fix: analyzer errors

* feat: add learn more button to documentation

---------

Co-authored-by: Yijing Huang <hyj891204@gmail.com>
Co-authored-by: nathan <nathan@appflowy.io>
2023-07-03 22:07:11 +08:00
Nathan.fooo 453be8352a chore: add ref (#2927) 2023-07-03 11:14:45 +08:00
Kilu.He 452d7eb6d0 feat: support image block (#2912) 2023-07-03 10:04:40 +08:00
f0d5f51703 fix: windows integration test (#2917)
* fix:windows integration test

* fix: load asset

* fix: windows test

* fix: test

* test: refactor the folder test

---------

Co-authored-by: vedon <vedon.fu@gmail.com>
Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-07-02 23:37:30 +08:00
Lucas.Xu 2c513be305 chore: bump version 0.2.5 (#2924) 2023-07-02 15:15:57 +08:00
Lucas.Xu 11d05b303d feat: support inserting local image (#2913) 2023-07-02 11:46:45 +08:00
Richard Shiue c870dbeac4 test: add more cover integration tests (#2922) 2023-07-01 23:13:09 +08:00
Richard ShiueandLucas.Xu 3acd36e580 test: fix calendar integration test #2919 (#2920)
* test: fix calendar integration test #2919

* chore: update frontend/appflowy_flutter/integration_test/database_calendar_test.dart

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>

* test: fix date cell test

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-07-01 20:29:49 +08:00
Aman Negi 95d4fb6865 feat: add outline block (#2750) 2023-06-29 20:28:30 +08:00
Muhammad Rizwan 30b52a29fd feat: support Inline page reference #2196 (#2898) 2023-06-29 10:04:24 +08:00
Richard Shiue a17d6b7eec test: fix integration test (#2906)
* test: fix calendar integration test

* test: add comment for workaround
2023-06-28 22:11:50 +08:00
Kilu.He 18ed553296 feat: support equation block (#2903) 2023-06-28 12:39:04 +08:00
Richard Shiue 7f74fd6149 refactor: cover node widget code (#2899)
* chore: change initial cover type's name to none

* chore: refactor cover node widget

* chore: use a constant instead of magic value

* fix: make the size of icon hover effect smaller

* chore: improve appearance of selected color

* test: add cover integration tests

* fix: inner ring of selected color in dark mode

* refactor: cover node to document header node

* test: simplify tests

* chore: rename files
2023-06-27 15:17:51 +08:00
LainHE a3e09f6021 chore: update language zh-CN (#2900) 2023-06-27 11:11:09 +08:00
Kilu.He 5e0a0f92ff feat: support text equation (#2876) 2023-06-27 10:44:06 +08:00
Alex Wallen 2a2b5fe246 [feat] Add actions to error widget. (#2865)
* chore: rebase error?

* fix: revert changes in Cargo.toml

* feat: add actions row
2023-06-27 09:55:10 +08:00
rmri f914e7aa33 chore: Update hu-HU.json (#2837)
Fixed typos and added missing items in Hungarian translation.
2023-06-27 09:54:46 +08:00
Alex Wallen 386d3f2ba7 feat github redirect (#2867)
* feat: add GitHub to question bubble

* feat: translate to feedback
2023-06-27 09:53:38 +08:00
Nathan.fooo 88faa0f02a feat: using cached view (#2877) 2023-06-23 23:19:34 +08:00
Lucas.Xu f3d6c66f5c chore: bump version 0.2.4 (#2890) 2023-06-23 15:36:44 +08:00
Lucas.Xu d665153a9f fix: 0.2.3 known issues (#2886)
* fix: option menu position

* fix: rename helps highlight the text for the user

* fix: export as markdown file name invalid

* chore: align the emoji in callout

* fix: leave more space in the editor

* fix: 0.2.3 known issues

* chore: add flutter pub get in flutter.toml
2023-06-23 10:54:35 +08:00
Askarbek Zadaulyandqinluhe eee32110f4 feat: nested views
* chore: remove folder code merge page and folder into navitem component

* chore: test fix

* fix: nav item expand fix

* fix: unfold page and active page

* fix: nav item click area fix

* chore: remove old components

* chore: remove old code

* chore: cell controller reorganize

* chore: nav item optimizations

* fix: add async queue to fix data problem

* chore: change semantics of new folder button

* chore: move row methods to database controller

---------

Co-authored-by: qinluhe <qinluhe.twodog@gmail.com>
2023-06-23 10:17:50 +08:00
Richard Shiue 9834eccc7b fix: remove icon button not working in popover (#2885) 2023-06-23 10:01:06 +08:00
Richard Shiue bef7fe87aa test: add more calendar integration tests (#2883)
* test: make sure that the row details page opens

* test: add more calendar tests
2023-06-22 23:40:49 +08:00
Lucas.Xu feceb430cf chore: optimize CI (#2875) 2023-06-22 21:22:46 +08:00
Nathan.foooandvedon a29c8ab27a fix: cell focus issue on windows (#2880)
* fix: cell focus issue on windows

* fix: try to fix

* fix: cell focus not working on Windows platform there are multiple text cells

* docs: add documentation

* chore: adjust row detail page ui

* test: add test

* test: fix test

---------

Co-authored-by: vedon <vedon.fu@gmail.com>
2023-06-22 20:16:31 +08:00
Nathan.foooandvedon f1bfcb6066 feat: only allow one windows instance (#2879)
Co-authored-by: vedon <vedon.fu@gmail.com>
2023-06-22 13:25:01 +08:00
Richard Shiue 99cfda0a5c test: more integration tests (#2871)
* test: date cell integration tests

* test: single/multi-select integration tests
2023-06-21 22:53:49 +08:00
Lucas.Xu 9bd629aaef fix: undo redo for the transforming block will raise an error (#2869)
* fix: undo redo for the transforming block will raise an error

* test: add golden for editing document

* test: add undo redo test
2023-06-21 19:53:29 +08:00
Nathan.fooo d302f6b3fb chore: adjust ui (#2872) 2023-06-21 19:47:30 +08:00
Nathan.foooandLucas.Xu 5595649f53 chore: add database sort integration test (#2866)
* chore: add sort test

* chore: add tests

* chore: update tests

* fix: switch folder test

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-06-21 19:10:16 +08:00
Nathan.fooo 7de17ab0b8 chore: bump version 0.2.3 (#2864)
* chore: bump version 0.2.3

* chore: update version in pubspec
2023-06-21 15:13:36 +08:00
Nathan.fooo 13ff38756f feat: put all user data into a folder when choosing a custom storage path (#2861) 2023-06-21 12:15:32 +08:00
Lucas.Xu 197e5b3a79 feat: upgrade editor version to latest 0.1.4 2023-06-21 11:36:50 +08:00
Alex Wallen 5cced92646 [feat] make error widget sexy (#2825)
* feat: add translations

* feat: style error page

* chore: update api usage

* feat: add GitHub redirect

* chore: rebase error?

* chore: remove todo comment

* chore: remove impossible code

* fix: update url launcher invocation

* chore: use new api

* fix: analyzer errors

* fix: revert changes in Cargo.toml
2023-06-21 10:03:39 +08:00
Nathan.fooo e50d708c21 feat: create database view on same database (#2829)
* feat: create database view on same database

* feat: switch tag between views

* fix: calendar tool bar

* fix: set layout setting

* chore: update collab rev

* fix: board layout issue

* test: add integration tests

* test: add calendar start from day test
2023-06-20 23:48:34 +08:00
Nathan.fooo 79fc7c4cfe fix: import markdown file (#2841) 2023-06-19 21:20:53 +08:00
Kilu.He 202cd90711 fix: build tauri app failed in macOS (#2828) 2023-06-17 22:02:03 +08:00
Kilu.He 177f7c4fa3 Support document multiple instance and change doc_id from String to &str (#2808)
* fix: support multiple document

* fix: change the doc_id params to ref

* fix: function to converge subscription state

* fix: mousedown behavior update

* fix: turn to textblock when the enter pressed in empty block

* fix: support cut

* fix: emoji caret

* fix: support slash arrow key

* fix: eslint padding-line-between-statements

* fix: add comment

* fix: block side menu bugs

* fix: support key event to select block menu option

* fix: support side menu arrow key

* fix: optimizate selectOptionByUpDown

* fix: format
2023-06-17 14:25:30 +08:00
Lucas.Xu d986e01d3e chore: use retry action v1.0.36 2023-06-16 20:28:31 +08:00
Daniil Golubev 8a8915c662 chore: update russian localization (#2787)
* feat(locale): add missing lines

* feat(locale): update russian translations
2023-06-16 15:33:48 +08:00
efc857d752 chore: some ui improvements (#2791)
* chore: some ui improvements

* fix: integration test

* feat: language selector on welcome page (#2796)

* feat: add language selector on welcome page

* feat: add hover effect and refactor layout

* test: add basic languge selector testing

* chore: increate place holder width

* fix: add catch error for setLocale and finish the testing

* chore: update comment

* feat: refactor the skip login in page and add tests

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>

* feat: row document (#2792)

* chore: create orphan view handler

* feat: save icon url and cover url in view

* feat: implement emoji picker UI

* chore: config ui

* chore: config ui again

* chore: replace RowPB with RowMetaPB to exposing more row information

* fix: compile error

* feat: show emoji in row

* chore: update

* test: insert emoji test

* test: add update emoji test

* test: add remove emoji test

* test: add create field tests

* test: add create row and delete row integration tests

* test: add create row from row menu

* test: document in row detail page

* test: delete, duplicate row in row detail page

* test: check the row count displayed in grid page

* test: rename existing field in grid page

* test: update field type of exisiting field in grid page

* test: delete field test

* test: add duplicate field test

* test: add hide field test

* test: add edit text cell test

* test: add insert text to text cell test

* test: add edit number cell test

* test: add edit multiple number cells

* test: add edit checkbox cell test

* feat: integrate editor into database row

* test: add edit create time and last edit time cell test

* test: add edit date cell by selecting a date test

* chore: remove unused code

* chore: update checklist bg color

* test: add update database layout test

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>

* test: fix test

* test: add create select option test

---------

Co-authored-by: Yijing Huang <hyj891204@gmail.com>
Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
Co-authored-by: Nathan.fooo <86001920+appflowy@users.noreply.github.com>
Co-authored-by: nathan <nathan@appflowy.io>
2023-06-16 15:32:28 +08:00
Nathan.fooo 14dee6b797 test: filter integration (#2821)
* test: add checklist filter test

* fix: widget reference to invalid databaseController

* fix: SelectOptionFilterList doesn't expand to fill the CustomScrollView

* test: add single select and multi-select filter test

* ci: set protoc version
2023-06-16 14:32:32 +08:00
Lucas.Xu 63eee8b415 chore: retry codecov 2023-06-16 13:32:24 +08:00
Nathan.fooo d96a1d8bd4 test: import database integration (#2803)
* feat: support importing database raw data

* feat: verify import database test

* test: fix test

* ci: update integration test ci config

* ci: codecov with os flag

* ci: update docker command

* ci: update docker command

* ci: update docker command

* ci: update docker command

* test: add filter test
2023-06-15 22:43:07 +08:00
Lucas.Xu 430325c731 chore: bump version 0.2.2 (#2804) 2023-06-15 18:55:21 +08:00
Lucas.Xu d5884ad2b5 fix: unable insert a reference database (#2798)
* fix: unable insert a reference database

* test: add reference database tests

* feat: set min height for document inside database
2023-06-15 16:33:44 +08:00
Kilu.He 95f8b2e9a4 chore: create redo/undo bridge (#2760)
* chore: create redo/undo bridge

* chore: update test

* chore: review update

* chore: review update

* chore: react redo/undo

* chore: review update

* chore: add test

* chore: review update

* chore: generate document id

* chore: update undo/redo

* chore: update cargo lock
2023-06-15 10:37:51 +08:00
Nathan.foooandLucas.Xu 27dd719aa8 feat: row document (#2792)
* chore: create orphan view handler

* feat: save icon url and cover url in view

* feat: implement emoji picker UI

* chore: config ui

* chore: config ui again

* chore: replace RowPB with RowMetaPB to exposing more row information

* fix: compile error

* feat: show emoji in row

* chore: update

* test: insert emoji test

* test: add update emoji test

* test: add remove emoji test

* test: add create field tests

* test: add create row and delete row integration tests

* test: add create row from row menu

* test: document in row detail page

* test: delete, duplicate row in row detail page

* test: check the row count displayed in grid page

* test: rename existing field in grid page

* test: update field type of exisiting field in grid page

* test: delete field test

* test: add duplicate field test

* test: add hide field test

* test: add edit text cell test

* test: add insert text to text cell test

* test: add edit number cell test

* test: add edit multiple number cells

* test: add edit checkbox cell test

* feat: integrate editor into database row

* test: add edit create time and last edit time cell test

* test: add edit date cell by selecting a date test

* chore: remove unused code

* chore: update checklist bg color

* test: add update database layout test

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-06-14 22:16:33 +08:00
Yijing HuangandLucas.Xu b8983e4466 feat: language selector on welcome page (#2796)
* feat: add language selector on welcome page

* feat: add hover effect and refactor layout

* test: add basic languge selector testing

* chore: increate place holder width

* fix: add catch error for setLocale and finish the testing

* chore: update comment

* feat: refactor the skip login in page and add tests

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-06-14 19:14:41 +08:00
Kilu.HeandLucas.Xu 00c0934df6 Support text block add link (#2730)
* feat: support text block href attribute

* fix: double click didn't select range

* fix: link update

* chore: ts lint

* chore: add new line

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>

* chore: update get word indices function

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-06-13 15:59:18 +08:00
Lucas.Xu aca3c90eb3 chore: optimize the integration test UI 2023-06-12 21:53:39 +08:00
Lucas.Xu 8b4d1868e5 test: add integration test 2023-06-12 20:13:25 +08:00
Lucas.Xu 5bcf48a4f9 fix: the markdown file name doesn't update after renaming the document (#2777)
* fix: the markdown file name doesn't update after renaming the document

* test: add integration test
2023-06-12 14:29:09 +08:00
Lucas.Xu 335861706e feat: support importing multiple md files all at once (#2778) 2023-06-12 14:27:38 +08:00
Nathan.foooandLucas.Xu 4f5672c2af refactor: create view interface (#2772)
* refactor: create view interface

* chore: update doc

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-06-12 12:57:01 +08:00
Lucas.Xu b5d9a73194 chore: bump version 0.2.1 (#2762) 2023-06-11 17:02:09 +08:00
Nathan.fooo 619d82f115 chore: bump up collab ref (#2764) 2023-06-11 16:24:41 +08:00
Lucas.Xu d5887b0a12 chore: enable codecov action (#2741)
* chore: enable codecov action

* test: fix integration test

* test: fix switch_folder_test
2023-06-11 14:19:44 +08:00
c7f73551c7 fix: update database layout in document (#2757)
* fix: update database layout in document

* feat: create or ref calendar

* Update frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/calendar/calendar_menu_item.dart

Co-authored-by: Mathias Mogensen <42929161+Xazin@users.noreply.github.com>

* fix: stop listen

* feat: remove the redundant database view files

* chore: rename the grid state

---------

Co-authored-by: Mathias Mogensen <42929161+Xazin@users.noreply.github.com>
Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-06-11 08:49:10 +08:00
Lucas.Xu ed04e247ba fix: the share markdown feature doesn't work in 0.2.0 (#2756)
* chore: bump version 0.2.0

* fix: the share markdown feature doesn't work in 0.2.0

* test: add integration test for share button
2023-06-10 22:38:25 +08:00
Nathan.fooo 2ecd0a67ad feat: hide url cell accessory when the content is empty (#2754) 2023-06-10 15:48:56 +08:00
Nathan.fooo 4ce94a9ceb fix: adding vertical padding for progress bar (#2753) 2023-06-10 14:57:52 +08:00
Nathan.fooo d4e39389d2 fix: show calendar layout (#2752) 2023-06-10 13:23:29 +08:00
Nathan.fooo ab5a3dae3c chore: upgrade rust version to 1.70 (#2749)
* chore: upgrade rust version to 1.70

* ci: fix wanrings

* ci: fix clippy warings
2023-06-09 22:23:07 +08:00
Nathan.fooo 133ac72317 ci: fix docker ci (#2745)
* ci: fix permission
2023-06-09 19:48:16 +08:00
Nathan.fooo e9be37a961 test: add database event tests (#2744)
* chore: add tests

* test: add tests

* test: add tests
2023-06-09 18:57:29 +08:00
chirag paneliyaandLucas.Xu 0f9f5251f2 feat: added enter icon in add field. (#2707)
* [FR] Added Enter Icon In Add Field.

* Update frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/select_option_cell/select_option_editor.dart

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>

* Update frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/select_option_cell/select_option_editor.dart

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>

* Update frontend/appflowy_flutter/lib/plugins/database_view/widgets/row/cells/select_option_cell/select_option_editor.dart

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>

* fix : missing trailing comma and code enhancement.

* chore: format code

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-06-08 21:07:41 +08:00
Lucas.Xu 02b7149514 fix: can't input url in Grid (#2737)
* fix: launch url in url cell

* fix: can't input url in Grid

* feat: support selecting or deselecting all items in export page

* fix: remove the circle shape

* fix: light mode toolbar color

* chore: update language and adjust the launch page
2023-06-08 15:46:33 +08:00
Nathan.fooo 37547a6485 chore: bump up collab (#2740)
* chore: update collab version

* chore: log the error when open collab db

* chore: add log
2023-06-08 14:20:31 +08:00
Nathan.fooo 6e27d551d9 chore: bump up collab version (#2736) 2023-06-08 12:20:18 +08:00
Kilu.He d02b8c609b Copy and paste appflowy editor data (#2714)
* feat: copy and paste appflowy editor data

* fix: review suggestion
2023-06-08 12:17:00 +08:00
Lucas.Xu f86a98cd51 fix: add cover image using url issue (#2733)
* fix: add cover image using url issue

* chore: update editor
2023-06-08 08:34:11 +08:00
Nathan.fooo 3e3bdb59ae chore: update workspace id from nanoid to uuid (#2731)
* chore: update workspace id

* ci: enable RUST_BACKTRACE

* chore: update patch
2023-06-07 22:27:13 +08:00
Yatendra KumarandLucas.Xu 95d620931f feat: added analysis options + formatted complete code (#2725)
* feat: added analysis options + formatted complete code

* fix: formatted code

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-06-07 16:25:37 +08:00
Lucas.Xu cb7bb390e6 chore: update editor 1.0.0 (#2727)
* chore: update editor version 1.0.0

* chore: enable integration test on develop branch

* chore: disable flutter integration test
2023-06-07 15:04:32 +08:00
Nathan.fooo ce8cee5637 test: add databaase event test (#2728)
* test: add tests and fix modify primary field bug

* test: add more test

* fix: tauri buiuld

* chore: disable share link button
2023-06-07 14:52:35 +08:00
nathan 1b56538a2f feat: update folder snapshot config 2023-06-07 14:33:12 +08:00
Mathias MogensenandLucas.Xu b1729ab3eb fix: add new row issue (#2723)
* fix: add new row issue

* fix: remove redundant dispose

* fix: review comments

* chore: remove the unused anmaition key

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-06-07 12:56:02 +08:00
chirag paneliya bfe6c8074a fix: http:// prefix issue fix (#2719) 2023-06-07 07:57:12 +08:00
Nathan.fooo 381d2e6c71 fix: reorder view when sibling view was deleted (#2724)
* fix: reorder view when sibling view was deleted

* ci: fix test

* ci: rust fmt
2023-06-07 00:05:27 +08:00
Lucas.Xuandnathan e3eee76609 feat: support align and upgrade appflowy_editor (#2712)
* feat: support align and upgrade appflowy_editor

* chore: try to fix linux analyze error

* fix: error after inserting callout block

* feat: add inline board / grid plugin

* feat: refactor insert_page

* fix: ref view in document

* chore: add asset name and description to option align type

* fix: linux flutter analyze

* chore: disable file export and log

* fix: the window always back to center after relaunching

* fix: potential data lost in nested list

* feat: re-design login page

* fix: can't remove background color

* chore: rename bundle id and change the macos app to non sandbox app

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-06-06 17:19:53 +08:00
Nathan.fooo e96bea0de5 chore: auto focus checklist editing (#2720) 2023-06-06 17:15:33 +08:00
Nathan.fooo bf121623ae feat: save snapshot to sqlite db (#2718)
* chore: snapshot

* chore: impl sqlite snapshot

* feat: snapshot config

* feat: update patch

* ci: fix tauri ci

* ci: add cache path

* chore: save snapshot

* chore: update patch

* ci: fix s fmt
2023-06-06 16:03:29 +08:00
Nathan.fooo f2dd58a4f1 chore: remove unused sqlite table (#2704)
* chore: remove unused sqlite table

* ci: fix tests
2023-06-05 18:30:14 +08:00
Nathan.foooandLucas.Xu e24a8aabeb chore: implement import csv ui (#2710)
* chore: implement import csv ui

* feat: support importing CSV

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-06-05 18:29:52 +08:00
Nathan.fooo 5b59800449 ci: cache target (#2711) 2023-06-05 18:28:36 +08:00
Askarbek Zadaulyandqinluhe 6a43dd871d Fix/tauri board events (#2678)
* chore: focus name input on field edit

* fix: remove random id for duplicated view

* fix: use alias for imports

* fix: folder, grid, board bugs

* chore: remove log

* fix: update options list on add

* chore: close on delete option

* chore: show and hide field

* chore: add field with specific type

* chore: small cleanup

* fix: create view on another folder and views notifier reorganize

---------

Co-authored-by: qinluhe <qinluhe.twodog@gmail.com>
2023-06-05 16:48:34 +08:00
Nathan.fooo 4f2585baed test: Folder event test (#2709)
* test: add event tests

* test: add folder event test

* ci: rust fmt
2023-06-05 16:09:18 +08:00
Lucas.Xuandnathan 80a273edae fix: create document (#2701)
* fix: create a new document

* fix: the banner don't show after deleteing the page

* fix: inserting a divider through the slash menu the cursor should stay active in the next line

* fix: the overlay doesn't dismiss after selecting a page

* fix: typo

* fix: delete the page in document if it has been deleted

* chore: l10n

* chore: rename events

* ci: rm install_diesel in ci

* fix: cover color not working

* ci: fix tauri build

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-06-05 13:10:14 +08:00
Lucas.Xu 2bd90ba7ab chore: speed up flutter_ci (#2702) 2023-06-05 09:49:13 +08:00
Nathan.fooo a50c940282 feat: delete the view from the db when the view is deleted (#2703) 2023-06-05 09:42:11 +08:00
Nathan.fooo bec8122178 fix: disable edit primary field (#2695)
* refactor: field editor

* chore: disable edit type option of primary field
2023-06-04 09:28:13 +08:00
Nathan.fooo edd58ede45 refactor: updated at and created at (#2692)
* refactor: updated at and created at

* chore: update patch ref

* ci: fix tests
2023-06-03 23:35:55 +08:00
Lucas.Xu 561d0f0808 feat: public the json to document data pb api (#2694)
* feat: public the json to document data pb api

* test: add test for convert_data_to_document_internal

* chore: apply review suggestion

* chore: update folder path
2023-06-03 20:43:46 +08:00
Lucas.Xuandnathan ee52bf4b0e fix: create build in document (#2687)
* feat: support create multiple level views

* refactor: rm document data wrapper

* chore: add docs

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-06-03 13:55:43 +08:00
Nathan.fooo 4fa39f298c fix: ref view in document (#2685)
* fix: remove set ref view in document as the current view

* ci: fix tests

* ci: fix tauri build
2023-06-03 13:40:12 +08:00
chirag paneliya 5994cc135f fix: update ar language not found issue. (#2599) 2023-06-03 12:36:05 +08:00
Nathan.fooo 265177e444 feat: hide ref database view (#2682) 2023-06-02 12:04:14 +08:00
Nathan.fooo 82dcd4b99e feat: save csv data to local file (#2681) 2023-06-02 12:02:47 +08:00
Kilu.He 8cee792b94 Refactor text block delta and across block selection (#2671)
* fix: add block menu comment

* refactor: separation of abstract delta and editor, and optimization across block selections
2023-06-02 10:05:38 +08:00
Nathan.foooandLucas.Xu 33e0f8d26d feat: switch database layout (#2677)
* chore: rename update at and create at

* chore: support switching view layout

* chore: implement ui

* chore: update layout type

* refactor: board/calendar/grid setting button

* chore: update UI after switch to other layout type

* fix: no date display in calendar

* chore: update patch

* chore: fix create ref view in document

* chore: fix flutter analyze

* ci: warnings

* chore: rename board and grid keys

* fix: calendar row event update

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-06-01 20:23:27 +08:00
Lucas.Xuandnathan 2ef72f3203 feat: load the readme file when first time launch (#2676)
* chore: bump version 0.2.0

* test: add migration test

* feat: support exporting document data to afdoc format (#2610)

* feat: support exporting document data to afdoc format

* feat: export database

* fix: resolve comment issues

* fix: add error tips when exporting files failed

---------

Co-authored-by: nathan <nathan@appflowy.io>

* feat: rename delta

* feat: add built-in readme

* fix: use independent children id

* fix: comment typo

* chore: add icons

* fix: floating toolbar style

* fix: markdown export test

* chore: disbale moveup/movedown action

* fix: unit test

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-06-01 20:18:40 +08:00
Nathan.fooo 012b6c0066 feat: cloud storage test (#2663)
* chore: show default user name

* chore: update

* feat: change collab storage type after auth type changed

* chore: reload folder

* chore: initial the group controller if need

* chore: update patch

* chore: update patch ref
2023-05-31 17:42:14 +08:00
Nathan.fooo 09d61c79c9 chore: rename update at and create at (#2672) 2023-05-31 17:34:41 +08:00
Richard Shiueandnathan 80f08d4bec feat: drag and drop events to reschedule (#2558)
* chore: send DateCellDataPB instead of timestamp

* chore: separate event card into own widget

* chore: add hover effect to event card itself

* feat: draggable event cards

* feat: drag target WIP

* chore: revert "chore: send DateCellDataPB instead of timestamp"

This reverts commit 1faaf21c6a50ac67da70ddf3bcfa8278ca5963d4.

* chore: remove timezone from date cell data

* fix: #2498 open calendar event faster

* chore: remove unused timezone

* feat: implement logic for rescheduling events

* fix: reschedule doesn't show up on UI

* fix: reorganize gesture detection layering

* fix: layout fix

* test: fix date single sort test

* chore: remove unused chrono-tz

* chore: add hint to unscheduled event popover

* chore: apply suggestions to 3 files

* fix: #2569 fix overflow

* chore: add timezone data to DateTypeOption

* test: make date tests run on Etc/UTC timezone

* chore: fix clippy warnings

* fix: use the right get db function

* chore: code cleanup

* test: run tests in utc

* test: fix tests

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-05-31 16:52:37 +08:00
Nathan.fooo 188b36cae6 feat: import cvs from file (#2667)
* refactor: import file

* chore: fix tarui build
2023-05-31 14:08:54 +08:00
Nathan.fooo 2247fa8edb chore: add default text when adding a new field (#2664) 2023-05-30 17:11:16 +08:00
Daniyar Nurmukhamet acc1d779c5 feature: changed url field ux to be directly editable (#2523)
* feature: changed url field ux to be directly editable

* feature: added link svg icon
2023-05-30 15:27:26 +08:00
Lucas.XuandAkarsh Jain dac4bd88e0 feat: Implement window size settings saving (#2648)
This commit addresses the feature request to save the window size settings.
The application will now remember the user's preferred window size, allowing
for a more personalized and seamless user experience.

Fixes: #2544

Co-authored-by: Akarsh Jain <akarsh.jain.790@gmail.com>
2023-05-30 11:06:23 +08:00
Nathan.fooo 65a910291b fix: disable edit update or create field (#2657)
* feat: enable hide the grid property in row detail page

* feat: disable update the updatedAt or createdAt cell
2023-05-30 10:43:19 +08:00
Nathan.fooo f0c440dcad feat: enable hide the grid property in row detail page (#2656) 2023-05-30 10:30:32 +08:00
Nathan.fooo 107662dceb feat: checklist improve (#2653)
* feat: improve checklist

* feat: reimplement checklist

* test: fix
2023-05-30 09:41:33 +08:00
Lucas.Xu dc73df4203 chore: update editor version (#2654)
* fix: revert remove action container space in mobile

* fix: setup the background color of the slash menu when clicking the add button

* fix: #2634 Visual bug in divider between main editor area and top area

* fix: v0.2 bugs

* feat: implement auto scroll when selection updated

* chore: update intl
2023-05-30 07:55:58 +08:00
chirag paneliya 57389d1fdd fix: color not show issue when change cover photo color. (#2624)
* fixe: color not show issue when change cover photo color.

* fix:added missing a required comma. and toColor() extension
2023-05-29 22:08:56 +08:00
Nathan.fooo 6bbdc7ceff refactor: group event (#2640)
* refactor: group event

* fix: tauri build
2023-05-28 22:54:03 +08:00
Nathan.fooo 75d40b79d0 fix: some bugs (#2639)
* fix: invalid index when insert row

* fix: auto fill 0 in front of number start with .

* fix: #2591

* chore: split the update at and create at test

* chore: fix tauri build
2023-05-28 16:14:25 +08:00
Mathias Mogensen cdfb634aa6 chore: upgrade flutter to 3.10.1 (#2619)
* chore: upgrade flutter and dart

* ci: upgrade flutter in cicd

* fix: remove textstyle_extensions from flowy_infra

* ci: upgrade flutter in cicd

* fix: update flutter.toml

* fix: deprecations and ffi

* fix: move json_annotation to dependencies

Must have accidentally moved it to dev_dependencies when upgrading dependencies

* fix: update editor ref and use fold

* chore: try with generate true
2023-05-28 12:09:39 +08:00
Nathan.fooo 45d0d41830 chore: import history database (#2638) 2023-05-27 21:29:18 +08:00
Askarbek Zadauly 6935653e15 chore: Edit Row changes (#2564)
* chore: checklist value and popup

* chore: properties side panel

* chore: reorganize checklist field

* chore: delete property promt

* chore: delete property reorganize

* fix: dnd bug of checklist field

* fix: whitespace on empty fields

* chore: new checklist item

* fix: duplicate view

* fix: named checklist bars

* chore: checklist padding

* fix: onclick

* chore: change to nullish coalescing operator

* chore: remove empty string from use translation

* fix: add missing translations

* chore: refactor select option and checklist field editors
2023-05-27 21:12:14 +08:00
Mohammad Zolfaghariandnathan 9a213fa562 feat: created at and updated at field type (#2572)
* feat: created at and updated at field type

* style: context for rust asserts, change checks in flutter

* fix: mistake in if condition

* style: add comma end of array

* feat: created at and updated at field type

* fix: typo in const variable

* style: cargo fmt

* refactor: opti cell insert

* chore: remove redundant clone

* refactor: date type option

* fix: tauri build

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-05-26 18:34:17 +08:00
Richard Shiue a85cc62a58 fix: flutter windows ci (#2621) 2023-05-26 09:55:40 +08:00
Lucas.Xu 386182e295 fix: slash menu background color (#2616) 2023-05-26 09:52:47 +08:00
Nathan.fooo 70bb7f2ad6 Feat: import and export csv (#2617)
* feat: import csv

* feat: export

* chore: implement import export csv in the backend

* chore: patch
2023-05-25 23:22:23 +08:00
Lucas.Xu 2746666123 feat: optimzie the hover block action (#2607)
* feat: optimzie the hover block action

* fix: duplicate view CI error
2023-05-24 10:45:28 +08:00
Nathan.fooo 65cc2040e5 fix: view name update (#2606)
* fix: update the view name

* fix: pass invalid view id
2023-05-24 08:57:58 +08:00
Nathan.fooo 056e2d49d0 feat: integrate postgres storage (#2604)
* chore: env config

* chore: get user workspace

* feat: enable postgres storage

* chore: add new env

* chore: add set env ffi

* chore: pass env before backend init

* chore: update

* fix: ci tests

* chore: commit the generate env file

* chore: remove unused import
2023-05-23 23:55:21 +08:00
Lucas.Xu 51a7954af7 fix: always open the readme file (#2603) 2023-05-23 19:55:43 +08:00
Lucas.Xu 74ff6772db feat: support import document from v0.1.x (#2601) 2023-05-23 19:42:53 +08:00
Lucas.Xu ffff628359 feat: document migration from 0.1.x to 0.2.0 (#2583)
* chore: migrate the rewrite feature

* chore: rename flowy-document

* feat: add initial_data interface

* chore: rename the document event

* fix: font name error

* fix: export page UI issues

* feat: implement editor migration 0.1.x -> 0.2.0

* feat: support import old json

* fix: nested list error

* chore: update pubspec
2023-05-23 16:13:12 +08:00
Mathias Mogensen f8d09e4894 fix: select all in code block handler (#2538)
* fix: select all in code block handler

Closes: #2320

* fix: do not force unwrap in toDocument

* fix: refactor unwrapping and selection
2023-05-22 10:54:08 +08:00
Kilu.He b41b212b0d Support block toolbar (#2566)
* feat: support block toolbar in left side

* fix: export delete and duplicate

* feat: slash menu
2023-05-22 09:33:37 +08:00
Nathan.fooo ca7777e891 fix: implement move row in backend (#2575) 2023-05-21 22:47:08 +08:00
Lucas.Xuandnathan d842f228e8 feat: Integrate supabase (#2551)
* feat: integrate supabase auth service

* chore: ignore the sercet

* feat: separate and inject the auth service

* chore: integrate auth service into sign in/up page

* feat: integrate github and google sign in

* chore: update user trait

* feat: box any params in UserCloudService trait

* feat: add flowy-server crate

* refactor: user trait

* docs: doc ThirdPartyAuthPB

* feat: server provider

* feat: pass the uuid to rust side

* feat: pass supabase config to rust side

* feat: integrate env file

* feat: implement login as guest

* feat: impl postgrest

* test: use env

* chore: upper case key

* feat: optimize the file storage

* fix: don't call set auth when user login in local

* docs: add docs

* feat: create/update/get user using postgrest

* feat: optimize the login as guest

* feat: create user workspace

* feat: create user default workspace

* feat: redesign the setting path location page

* feat: use uuid as view id

* feat: send auth info to rust backend

* fix: sign up

* fix: skip to wrong page after login

* fix: integrate test error

* fix: indent command error

* feat: add discord login in type

* fix: flutter analyze

* ci: fix rust tests

* ci: fix tauri build

* ci: fix tauri build

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-05-21 18:53:59 +08:00
Nathan.fooo 5cc8340e05 chore: Merge main 521 (#2574)
* chore: merge main branch

* chore: remove document plugins

* chore: add color generator

* ci: tests
2023-05-21 15:08:50 +08:00
Nathan.fooo eaa1dcdeb9 chore: refresh UI after deleting all sorts (#2573)
* chore: disable snapshot for now

* chore: notify the fronted to refresh after deleting all the sorts
2023-05-21 12:08:14 +08:00
Nathan.fooo 6c31cf9555 fix: number sort (#2570)
* chore: remove sign

* fix: sort number

* chore: update patch

* ci: fix dart test

* chore: fmt
2023-05-21 11:13:22 +08:00
Richard Shiue bb681bdd1e refactor: clean up code (#2550) 2023-05-19 18:28:13 +08:00
Kilu.He f23c6098a7 Support to show text action toolbar when the selection exists and the range is not collapsed (#2525)
* feat: support text action menu

* fix: selection bugs

* fix: review suggestions

* fix: ci tsc failed
2023-05-19 14:56:43 +08:00
Nathan.fooo f04d64a191 feat: config (#2552)
* feat: save project config

* feat: implement dart key value store
2023-05-17 16:33:44 +08:00
Lucas.Xu d01afab96e feat: optimize startup task and integrate supabase 2023-05-17 13:54:26 +08:00
Nathan.foooandLucas.Xu 19ee0ea44d refactor: kv (#2548)
* refactor: kv

* Update frontend/rust-lib/flowy-sqlite/src/kv/kv.rs

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
2023-05-17 12:46:48 +08:00
Lucas.Xu 623f182bba feat: add toggle list and integrate add block button (#2547) 2023-05-17 11:02:55 +08:00
Nathan.fooo bc66f43f47 Refactor: delete unused crates (#2543)
* refactor: delete user model

* refactor: delete user model crate

* refactor: rm flowy-server-sync crate

* refactor: rm flowy-database and flowy-folder

* refactor: rm folder-model

* refactor: rm database model

* refactor: rm flowy-sync

* refactor: rm document-model

* refactor: rm flowy-document

* refactor: rm flowy-client-sync

* refactor: rm ws-model

* refactor: rm flowy-revisoin

* refactor: rm revision-model

* refactor: rm flowy-folder

* refactor: rm flowy-client-ws

* refactor: move crates

* chore: move configuration file

* ci: fix tauri build'

* ci: fix flutter build

* ci: rust test script

* ci: tauri pnpm version conflict

* ci: tauri build
2023-05-17 09:49:39 +08:00
Lucas.Xuandnathan 2202326278 feat: integrate new editor (#2536)
* feat: update editor

* feat: integrate new editor

* feat: integrate the document2 into folder2

* feat: integrate the new editor

* chore: cargo fix

* chore: active document feature for flowy-error

* feat: convert the editor action to collab action

* feat: migrate the grid and board

* feat: migrate the callout block

* feat: migrate the divider

* chore: migrate the callout and math equation

* feat: migrate the code block

* feat: add shift + enter command in code block

* feat: support tab and shift+tab in code block

* fix: cursor error after inserting divider

* feat: migrate the grid and board

* feat: migrate the emoji picker

* feat: migrate openai

* feat: integrate floating toolbar

* feat: migrate the smart editor

* feat: migrate the cover

* feat: add option block action

* chore: implement block selection and delete option

* feat: support background color

* feat: dismiss color picker afer setting color

* feat: migrate the cover block

* feat: resize the font

* chore: cutomsize the padding

* chore: wrap the option button with ignore widget

* feat: customize the heading style

* chore: optimize the divider line height

* fix: the option button can't dismiss

* ci: rust test

* chore: flutter analyze

* fix: code block selection

* fix: dismiss the emoji picker after selecting one

* chore: optimize the transaction adapter

* fix: can't save the new content

* feat: show export page when some errors happen

* feat: implement get_view_data for document

---------

Co-authored-by: nathan <nathan@appflowy.io>
2023-05-16 14:58:24 +08:00
Kilu.He 99c48f7100 Support range selection and refactor data update mechanism and optimize outdent/indent operations (#2514)
* refactor: simplify data update logic and optimize outdent/indent operations

* feat: support range selection

* fix: review suggestions
2023-05-16 10:54:40 +08:00
Nathan.fooo f9862c501c chore: fix typo (#2540) 2023-05-16 08:53:09 +08:00
Nathan.fooo 6dcf69f151 chore: build collab with appflowy collab builder (#2537) 2023-05-15 22:16:05 +08:00
a978b29748 chore: merge remote-tracking branch 'main' into develop (#2530)
* feat: show unscheduled events in calendar toolbar (#2411)

* refactor: use same show row detail function

* fix: adjust popover offset

* feat: show unscheduled events in toolbar

* chore: apply suggestions from Xazin

* refactor: refactor list item into separate widget

---------

Co-authored-by: Nathan.fooo <86001920+appflowy@users.noreply.github.com>

* fix: default include time (#2444)

* fix: default include time

* chore: clarify logic and add comments

* chore: bump version 0.1.4 (#2455)

* chore: Update README.md

Update product screenshots

* fix: wrong day of week (#2468)

* feat: select which properties to show in calendar (#2482)

* feat: improve sidebar item dragged appearance (#2471)

* fix: show delete icon for document icon properly (#2475)

* feat: add hover effect on an event card (#2487)

* chore: delete unncessary openCard method in RowCardContainer

* chore: delete unnessary code and add comment

* chore: update editor v0.1.12 and format the readme (#2489)

* fix: number sort (#2507)

* bump version 0.1.5 (#2506)

* chore: bump version 0.1.5

* fix: could not trigger slash menu after inserting an emoji

* Revert "feat: add hover effect on an event card (#2487)"

This reverts commit f0a4b4b77d.

* feat: add hover effect on an event card

* fix: #2469 duplicated cover

* chore: update changelog.md (#2510)

* chore: Update README.md

Add a screenshot of the calendar view

* fix: some regressions

---------

Co-authored-by: Nathan.fooo <86001920+appflowy@users.noreply.github.com>
Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
Co-authored-by: Annie <anqi.annie.wang@gmail.com>
Co-authored-by: Yijing Huang <hyj891204@gmail.com>
2023-05-15 11:18:08 +08:00
Nathan.fooo 17a0a79379 fix: tests (#2516) 2023-05-15 10:56:01 +08:00
Kilu.He 37345578c1 fix: rectangular selection (#2480) 2023-05-12 08:24:24 +08:00
Nathan.fooo a2b592a59b fix: number sort (#2508) 2023-05-11 18:35:51 +08:00
Nathan.fooo 2a35787dd1 Feat/rename views (#2495)
* refactor: rename belongings to child views

* test: fix test
2023-05-10 19:43:32 +08:00
Kilu.He bc723f8d0f chore: update node version to 18.16.0 and update pnpm version to 8.5.0 (#2492) 2023-05-10 17:21:41 +08:00
Kilu.He dad0419da0 feat: support code block (#2464) 2023-05-10 15:53:30 +08:00
Nathan.fooo 0b343f7ee1 ci: tauri ci with path (#2490) 2023-05-10 14:45:39 +08:00
Nathan.foooandqinluhe a9c06632ad ci: tauri build (#2485)
* ci: tauri build

* ci: tauri build

* chore: update appflowy-collab version

* ci: fix build

* ci: tauri with pnpm

* ci: fix build

* ci: comment out includetime

* chore: add the --quiet option (to only output errors and not warnings) to the configuration file

* ci: enable linux platform

---------

Co-authored-by: qinluhe <qinluhe.twodog@gmail.com>
2023-05-10 13:27:50 +08:00
Richard Shiue 376f2d887d feat: rewrite date logic (#2390)
* chore: remove unused fields

* chore: rewrite date logic

* chore: apply suggestions from Alex

* chore: add space in date format

* chore: re-add error handling in apply-changeset
2023-05-09 22:37:20 +08:00
Kilu.He ba8cbe170c Support divider block and callout block (#2457)
* feat: divider block

* feat: callout block
2023-05-08 10:31:35 +08:00
nathan 96c058db9b chore: fix compile 2023-05-08 10:30:24 +08:00
Kilu.He 12151d1f3b feat: support toggle list (#2456) 2023-05-05 10:13:39 +08:00
Kilu.He e2ced6524f Feat/number list block (#2453)
* feat: support bulleted list block

* feat: support number list block
2023-05-04 17:20:23 +08:00
nathan ad99998d33 chore: Merge branch 'main' into develop 2023-05-04 13:34:55 +08:00
Kilu.He cf97c8ba9c Support block config (#2419)
* fix: refactor block config
2023-05-04 11:24:35 +08:00
Nathan.fooo 1f187a3917 fix: number format (#2445) 2023-05-03 16:47:02 +08:00
Kilu.He 76b94e363e Support quote block (#2415)
* feat: support quote block

* fix: database ts error
2023-05-03 14:54:07 +08:00
Kilu.He 7db36e3f1e feat: checkbox block (#2413) 2023-05-03 11:18:25 +08:00
Nathan.fooo 93d787a9ae Fix: flutter test (#2421)
* fix: tauri compile

* ci: update

* fix: flutter test
2023-05-02 17:10:35 +08:00
Kilu.He f5b23e5fc1 feat: Support heading block (#2376)
* feat: support transform heading block according to markdown

* fix: folder scroll
2023-05-01 15:40:56 +08:00
Askarbek Zadaulyandqinluhe 55cb7acc7f feat: tauri kanban fixes (#2273)
* chore: group cards count

* chore: delete board card

* chore: date time format read and update

* fix: move field

* fix: dnd fields

* chore: number format popup

* chore: refactor date options

* chore: replace button in DateFormatPopup with PopupItem

---------

Co-authored-by: qinluhe <qinluhe.twodog@gmail.com>
2023-04-30 17:01:25 +08:00
Nathan.fooo 2838cd5e0c Feat/tauri build (#2378)
* fix: tauri compile

* ci: update
2023-04-28 20:47:40 +08:00
qinluhe 070ac051b1 fix: support up/down/left/right keyboard event to move cursor (#2365) 2023-04-28 17:08:58 +08:00
Nathan.fooo 32bd0ffca2 feat: migrate flowy-database (#2373)
* feat: add flowy-database2

* chore: config type option data

* chore: impl type option

* feat: config group

* fix: group compile

* feat: add sort

* chore: setting

* chore: insert with specific type

* chore: custom group

* chore: rename any map

* chore: use group setting

* chore: update

* chore: open database event

* chore: update database editor

* chore: update

* chore: update view editor

* chore: update

* chore: update view editor

* chore: sort feat

* chore: update handler

* chore: update

* chore: config handler event

* feat: impl handlers

* feat: impl handlers

* chore: layout setting

* feat: impl handlers

* chore: remove flowy-folder ref

* chore: integrate flowy-database2

* feat: get cell

* chore: create database with data

* chore: create view

* chore: fix dart compile

* fix: some bugs

* chore: update

* chore: merge develop

* chore: fix warning

* chore: integrate rocksdb

* fix: rocksdb compile errros

* fix: update cell

* chore: update the bundle identifier

* fix: create row

* fix: switch to field

* fix: duplicate grid

* test: migrate tests

* test: migrate tests

* test: update test

* test: migrate tests

* chore: add patch
2023-04-28 14:08:53 +08:00
qinluhe 243f062d4f feat: support to break wrap the text block when triggering shift+enter (#2360)
* fix: make TextBlock's keydown event code easier to maintain

* fix: support  to break wrap the text block
2023-04-27 15:39:16 +08:00
qinluhe a0efd206a9 fix: modify some eslint rule (#2359) 2023-04-27 10:53:22 +08:00
qinluhe 9717dfa3c4 fix: refactor match change code (#2352) 2023-04-26 13:14:38 +08:00
qinluhe eb78f9d36a fix: make it unidirectional data flow by listening to document updates (#2347) 2023-04-25 19:10:08 +08:00
qinluhe 1ad2f6cef5 fix: set cursor after operation (#2343) 2023-04-25 15:52:57 +08:00
973cd9194d feat: Support ui update when receive doc changes (#2270)
* fix: add  method

* fix: update text block and doc title

* fix: support ui update when receive doc changes

* fix: modify the subscribe change

* chore: add test for document manager

* chore: add test for document manager

* chore: add insert and update test for document manager

* fix: load document data

* fix: add update page block test

* fix: try fix again

* fix: node can not rerender when the node data change

* fix: it should cover all content when the text delta updated

* fix: add insert and delete operation in left menu

* fix: put the UI Actions in async thunks

* fix: remove log

* fix: split text block

* fix: review code

---------

Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
Co-authored-by: nathan <nathan@appflowy.io>
2023-04-24 14:25:00 +08:00
Nathan.fooo 0068c7e731 fix: compile errors (#2310) 2023-04-21 17:02:26 +08:00
Lucas.Xu c009347735 Merge remote-tracking branch 'origin/main' into develop
# Conflicts:
#	frontend/appflowy_flutter/lib/plugins/database_view/application/database_view_service.dart
#	frontend/appflowy_flutter/lib/plugins/document/presentation/plugins/base/link_to_page_widget.dart
#	frontend/appflowy_flutter/lib/plugins/trash/application/trash_bloc.dart
#	frontend/appflowy_flutter/lib/plugins/trash/application/trash_service.dart
#	frontend/appflowy_flutter/lib/workspace/application/app/app_bloc.dart
#	frontend/appflowy_flutter/lib/workspace/application/app/app_service.dart
#	frontend/appflowy_flutter/lib/workspace/application/menu/menu_bloc.dart
#	frontend/appflowy_flutter/lib/workspace/application/workspace/workspace_service.dart
#	frontend/appflowy_flutter/lib/workspace/presentation/home/menu/app/header/header.dart
#	frontend/appflowy_flutter/test/bloc_test/grid_test/filter/filter_util.dart
#	frontend/appflowy_flutter/test/bloc_test/grid_test/grid_bloc_test.dart
#	frontend/appflowy_flutter/test/bloc_test/grid_test/util.dart
#	frontend/appflowy_flutter/test/bloc_test/home_test/view_bloc_test.dart
#	frontend/rust-lib/flowy-database/src/services/database/database_editor.rs
#	frontend/rust-lib/flowy-database/src/services/persistence/migration/database_view_migration.rs
2023-04-18 19:06:21 +08:00
qinluhe 07947db98b feat: split create document and open document (#2261)
* fix: add  method

* fix: update text block and doc title
2023-04-17 10:12:04 +08:00
Lucas.Xu 3b1152615a chore: add tracing to document2 (#2263) 2023-04-14 20:14:47 +08:00
qinluhe 0e5a03a282 Merge pull request #2258 from qinluhe/feat/refactor-tauri-document
Feat/refactor tauri document
2023-04-14 10:14:29 +08:00
qinluhe 4582413e89 fix: modify blocks pb 2023-04-14 09:23:22 +08:00
qinluhe 9ed5bfa51e fix: delete useless files 2023-04-13 19:41:31 +08:00
Lucas.Xu ec89e9517b feat: init flowy document 2 (#2248)
* feat: init flowy document 2

* feat: convert inner document to document PB

* feat: integrate colla document into Flutter

* feat: integrate colla document into tauri

* fix: cargo clippy
2023-04-13 18:53:51 +08:00
qinluhe c7eb490db4 Merge pull request #2230 from Ascarbek/feat/tauri-grid
Feat: tauri grid
2023-04-13 10:55:07 +08:00
ascarbek 125eaf49a9 refactor: color item 2023-04-11 22:10:28 +06:00
ascarbek 73c4a33191 fix: separate icons page 2023-04-11 16:37:21 +06:00
Mikias Tilahun Abebe 68bfa0b9cd fix: remove try catch for global error boundary 2023-04-11 11:03:18 +03:00
qinluhe d42084f242 Merge branch 'develop' of github.com:AppFlowy-IO/AppFlowy into refactor-tauri-document 2023-04-11 10:45:11 +08:00
qinluhe 886766c887 refactor: document controller 2023-04-11 10:35:47 +08:00
Mikias Tilahun Abebe 37a6b54e82 feat/implement error boundary 2023-04-10 18:24:08 +03:00
Nathan.fooo 341dce67d4 test: add tauri format test (#2229) 2023-04-10 22:50:00 +08:00
ascarbek 43cafdd524 fix: change to url error 2023-04-09 21:15:29 +06:00
ascarbek 2d85afe168 chore: HOC popup window 2023-04-09 20:13:53 +06:00
ascarbek 44585079b6 chore: import reorganize and edit option on grid 2023-04-09 18:38:18 +06:00
Mike Abebe a33fc3dd60 feat/implement field options edit and change field option type functionality 2023-04-09 14:34:32 +03:00
ascarbek e3b7864a91 chore: edit option name and color 2023-04-07 22:03:40 +06:00
ascarbek 6bbf6873d6 chore: edit cell options wip 2023-04-07 21:02:04 +06:00
Mike Abebe bc9b1a5c33 fix: change grid type import 2023-04-07 14:51:16 +03:00
ascarbek 8b68b1390c Merge branch 'feat/tauri-kanban-fixes' into feat/tauri-grid 2023-04-07 17:39:18 +06:00
ascarbek 915494761a chore: close on esc 2023-04-07 17:25:04 +06:00
ascarbek e467481b75 chore: group popup 2023-04-07 16:52:34 +06:00
ascarbek c3a7f94cb3 chore: board toolbar 2023-04-07 16:22:11 +06:00
ascarbek 033a231b67 chore: board title and show icons on design page 2023-04-06 15:38:50 +06:00
ascarbek d2b0f7e6b0 chore: imports optimise 2023-04-06 14:46:49 +06:00
ascarbek 0c211188f0 Merge branch 'upstream-develop' into feat/tauri-kanban-fixes 2023-04-05 21:35:20 +06:00
Mike Abebe 4f08654fc3 feat/add new field functionality done 2023-04-05 17:25:07 +03:00
Mike Abebe db1184ff0d feat/add row functionality done 2023-04-05 17:13:52 +03:00
Mike Abebe 764ec73e94 feat/integrate number to grid 2023-04-05 16:56:59 +03:00
Mike Abebe 4d5a3ee13d feat/integrate url to grid 2023-04-05 16:07:15 +03:00
ascarbek 034d4d9bf4 chore: return database rows on open 2023-04-04 17:23:15 +06:00
ascarbek ed977868cf Merge branch 'feat/tauri-move-fields' into feat/tauri-grid
# Conflicts:
#	frontend/appflowy_tauri/src/appflowy_app/components/_shared/EditRow/DatePickerPopup.tsx
#	frontend/appflowy_tauri/src/appflowy_app/components/_shared/EditRow/EditCellWrapper.tsx
#	frontend/appflowy_tauri/src/appflowy_app/components/_shared/EditRow/EditCheckboxCell.tsx
#	frontend/appflowy_tauri/src/appflowy_app/components/_shared/EditRow/EditRow.tsx
#	frontend/appflowy_tauri/src/appflowy_app/components/board/BoardCell.tsx
#	frontend/appflowy_tauri/src/appflowy_app/stores/effects/database/database_bd_svc.ts
#	frontend/appflowy_tauri/src/appflowy_app/stores/effects/database/database_controller.ts
2023-04-04 17:16:05 +06:00
Mike Abebe 8ccc2414c8 feat/integrate checkbox to grid 2023-04-04 13:03:58 +03:00
Mike Abebe 6977e5e65c feat/integrate single select options to grid 2023-04-04 12:50:33 +03:00
Mike Abebe e38398e235 feat/integrate single select options to grid 2023-04-04 12:46:39 +03:00
nathan b8ade5af12 chore: Merge branch 'main' into develop 2023-04-04 14:40:13 +08:00
Mike Abebe da45531801 feat/show edit popup on expand icon click 2023-04-04 09:23:21 +03:00
Nathan.fooo ddd3fbb178 fix: tauri folder display (#2176)
* fix: tauri folder display

* refactor: rename layout type
2023-04-04 14:08:50 +08:00
Nathan.fooo e1c8135f5d refactor: folder with yrs
* feat: try using folder2

* feat: update

* feat: implement handlers

* fix: compile errors

* chore: add unsafe send + sync

* feat: remove unsafe impl

* fix: replace folder with foler2

* chore: dart compile errors

* test: fix test

* test: fix test

* test: bypass existing tests

* feat: open latest view

* chore: fix dart warnings

* chore: config notification

* fix: folder notification  bugs

* fix: doesn't open the new view after creating

* chore: rename struct

* refactor: user id

* test: fix test

* chore: remove unused user_id

* fix: fix read workspace views

* chore: rename appflowy data folder

* chore: update ref

* fix: tauri build
2023-04-04 08:41:16 +08:00
ascarbek 2f2736df20 chore: save and get checkbox cell 2023-04-03 21:33:33 +06:00
ascarbek 2c13cccb4f chore: save and get date cell 2023-04-03 21:07:59 +06:00
ascarbek 7970e7fae3 fix: gridpage error 2023-03-31 20:03:44 +06:00
ascarbek 75f7b9765d chore: edit grid row 2023-03-31 19:51:30 +06:00
ascarbek ac2a0c5b91 Merge branch 'feat/tauri-kanban' into feat/tauri-grid
# Conflicts:
#	frontend/appflowy_tauri/src/appflowy_app/components/_shared/EditRow/EditCellText.tsx
#	frontend/appflowy_tauri/src/appflowy_app/components/_shared/EditRow/EditCellWrapper.tsx
#	frontend/appflowy_tauri/src/appflowy_app/components/_shared/EditRow/EditFieldPopup.tsx
#	frontend/appflowy_tauri/src/appflowy_app/components/_shared/EditRow/EditRow.tsx
#	frontend/appflowy_tauri/src/appflowy_app/components/_shared/database-hooks/useCell.ts
#	frontend/appflowy_tauri/src/appflowy_app/components/_shared/database-hooks/useRow.ts
#	frontend/appflowy_tauri/src/appflowy_app/components/board/BoardTextCell.tsx
2023-03-31 19:30:53 +06:00
ascarbek c7acf9a594 chore: move fields dnd 2023-03-30 18:44:16 +06:00
ascarbek d1d667c497 chore: options in board 2023-03-30 16:32:37 +06:00
ascarbek b21ed2488b chore: small code cleanups 2023-03-30 16:02:12 +06:00
ascarbek 03eaf0b4cb chore: date picker 2023-03-30 03:29:23 +06:00
ascarbek b9e49f109d fix: save url cell 2023-03-29 13:30:42 +06:00
ascarbek b03b2705f0 Merge branch 'upstream-main' into feat/tauri-kanban 2023-03-29 13:18:07 +06:00
ascarbek 521fe13cfb fix: close popup on lang select 2023-03-27 19:28:26 +06:00
ascarbek 09445411a3 chore: language button 2023-03-27 19:09:51 +06:00
ascarbek f86254c8ef chore: edit url cell 2023-03-27 18:42:23 +06:00
qinluhe 35c21c0d84 refactor: document component 2023-03-27 14:40:07 +08:00
ascarbek c50c23bc3a fix: select options for new row 2023-03-27 02:58:12 +06:00
ascarbek a8a35dcbec chore: cell options write to backend 2023-03-27 02:39:15 +06:00
ascarbek f390658ee0 fix: cell options positions 2023-03-27 01:12:03 +06:00
ascarbek 994e204097 fix: padding fixes for cell wrapper 2023-03-27 01:09:38 +06:00
ascarbek 5825195b8e chore: cell options layout 2023-03-27 00:59:49 +06:00
qinluhe df66521f13 refactor: document data and update 2023-03-25 17:38:58 +08:00
Mike Abebe 8323614583 feat: write grid cell data to backend for only text fieldtype 2023-03-25 11:54:04 +03:00
ascarbek 5762419aae chore: fade in change 2023-03-24 20:56:48 +06:00
ascarbek bd8d816862 chore: update editing cell 2023-03-24 20:53:45 +06:00
ascarbek 5ddb5100ad chore: change field type 2023-03-24 20:20:56 +06:00
ascarbek 27a8eea6e2 chore: fade in, out 2023-03-24 20:02:52 +06:00
ascarbek 6e24af9c68 tempfix: rows misfire temp fix 2023-03-24 18:24:28 +06:00
ascarbek da19987f4b wip: edit cell type 2023-03-24 17:56:53 +06:00
ascarbek 6f4b11f468 chore: don't show group by field 2023-03-24 13:28:30 +03:00
ascarbek 98e9ba19d6 chore: edit row components reorganize 2023-03-24 13:28:30 +03:00
ascarbek 4545410703 chore: column rename 2023-03-24 13:28:30 +03:00
ascarbek c453d734ab chore: add column and edit text cell 2023-03-24 13:28:30 +03:00
ascarbek 0719f54dec chore: initial edit board modal 2023-03-24 13:28:30 +03:00
qinluhe 7781b912f0 feat: add left tool when hover on block 2023-03-24 16:51:07 +08:00
qinluhe c6c97f7c83 feat: the feature of delete block 2023-03-24 16:51:07 +08:00
qinluhe a38c213744 fix: Optimize the re-render node when the selection changes 2023-03-24 16:50:59 +08:00
Mike Abebe 073adf6268 feat/integrate table with backend 2023-03-23 13:29:30 +03:00
ascarbek d05cc4005b chore: don't show group by field 2023-03-23 00:54:28 +06:00
ascarbek da1ee430b0 chore: edit row components reorganize 2023-03-23 00:07:17 +06:00
ascarbek 13e9b29eef chore: column rename 2023-03-23 00:04:51 +06:00
ascarbek c0c302bdfd chore: add column and edit text cell 2023-03-22 19:54:42 +06:00
Mike Abebe 5da5d92b8a fix/move grid view options to dropdown 2023-03-22 08:51:27 +03:00
ascarbek 47429e2fd2 Merge branch 'feat/tauri-kanban' into feat/tauri-edit-kanban-row 2023-03-21 11:24:26 +06:00
ascarbek 07b183aef2 Merge remote-tracking branch 'origin/feat/tauri-kanban' into feat/tauri-kanban 2023-03-21 11:22:53 +06:00
ascarbek dc97912dba fix: kanban board rendering 2023-03-21 11:22:42 +06:00
ascarbek 2825e19465 chore: initial edit board modal 2023-03-21 10:50:59 +06:00
nathan baa67e2aed chore: fix import references 2023-03-21 08:18:11 +08:00
ascarbek d60c39d483 chore: dnd reordering 2023-03-17 15:13:51 +06:00
ascarbek 745ee264c8 Merge branch 'upstream-main' into feat/tauri-kanban
# Conflicts:
#	frontend/appflowy_tauri/src/appflowy_app/stores/effects/database/database_bd_svc.ts
2023-03-17 13:22:05 +06:00
ascarbek 4b1f45a4be fix: groups observer dispose 2023-03-17 13:13:04 +06:00
ascarbek fa427fe650 chore: move row into other block 2023-03-16 18:59:05 +06:00
ascarbek ab5b40fa51 chore: move rows in group 2023-03-16 18:55:06 +06:00
ascarbek 60676fdc41 fix: dispose cell controller 2023-03-15 21:42:44 +06:00
ascarbek 96be3c6ebe fix: dispose group controller 2023-03-15 20:19:09 +06:00
appflowy 1d6f74180f chore: update refs 2023-03-15 16:14:36 +08:00
ascarbek 6e028c4f64 Merge branch 'upstream-main' into feat/tauri-kanban
# Conflicts:
#	frontend/appflowy_tauri/src/appflowy_app/components/_shared/database-hooks/useCell.ts
#	frontend/appflowy_tauri/src/appflowy_app/components/_shared/database-hooks/useDatabase.ts
#	frontend/appflowy_tauri/src/appflowy_app/components/board/Board.tsx
#	frontend/appflowy_tauri/src/appflowy_app/components/board/BoardBlock.tsx
2023-03-15 11:34:21 +06:00
ascarbek d92c0bffd6 bug: kanban new row 2023-03-15 11:18:14 +06:00
ascarbek a66d457f10 chore: import beautiful dnd 2023-03-13 17:41:51 +06:00
appflowy 88e0f6a32c fix: appflowy session name 2023-03-13 16:09:11 +08:00
appflowy 34cb2b2a09 fix: create kanban board row 2023-03-13 15:57:45 +08:00
appflowy 5fb86c4002 Merge branch 'main' into feat/appflowy_tauri_3 2023-03-13 15:19:12 +08:00
appflowy 25707edbdd chore: set log level & remove empty line 2023-03-13 15:16:41 +08:00
appflowy 85f36ad877 chore: Merge branch 'main' into feat/appflowy_tauri_3 2023-03-13 15:14:11 +08:00
ascarbek c80e77ab16 chore: get board groups and rows 2023-03-12 22:29:03 +06:00
ascarbek a9c8bad599 Merge branch 'upstream-main' into feat/appflowy_tauri_3
# Conflicts:
#	frontend/appflowy_tauri/package.json
#	frontend/appflowy_tauri/src/appflowy_app/components/layout/HeaderPanel/Breadcrumbs.tsx
#	frontend/appflowy_tauri/src/appflowy_app/components/layout/MainPanel.tsx
#	frontend/appflowy_tauri/src/appflowy_app/components/layout/NavigationPanel/NavigationPanel.hooks.ts
#	frontend/appflowy_tauri/src/appflowy_app/components/layout/NavigationPanel/NavigationPanel.tsx
#	frontend/appflowy_tauri/src/appflowy_app/components/layout/NavigationPanel/PageItem.hooks.ts
#	frontend/appflowy_tauri/src/appflowy_app/components/layout/NavigationPanel/PageItem.tsx
#	frontend/appflowy_tauri/src/appflowy_app/components/layout/Screen.tsx
2023-03-12 17:19:06 +06:00
ascarbek 268b6ce926 chore: back and forward buttons nav scroll fix 2023-03-11 20:57:25 +06:00
ascarbek da8c39d0b6 fix: breadcrumbs 2023-03-10 19:50:10 +06:00
ascarbek 7e3273c708 chore: smooth scroll and scroll to new folder 2023-03-10 18:58:14 +06:00
ascarbek 67e396aadf chore: scroll down to new page 2023-03-10 18:33:54 +06:00
ascarbek 6304c7d95b chore: remove floating menu functions 2023-03-10 16:59:11 +06:00
ascarbek ad0a6d01d2 chore: remove offset top 2023-03-09 23:04:31 +06:00
ascarbek f556e50be4 fix: page rename position 2023-03-09 22:54:38 +06:00
ascarbek 593446bffe fix: nav item popup overflow 2023-03-09 22:22:55 +06:00
ascarbek 91e5219627 chore: move constants 2023-03-09 16:12:27 +06:00
ascarbek 2d8182c503 chore: save offset top of nav items 2023-03-09 15:16:41 +06:00
ascarbek 8e63f97f77 Merge remote-tracking branch 'origin/feat/appflowy_tauri_3' into feat/appflowy_tauri_3 2023-03-09 12:38:51 +06:00
ascarbek 3f3d30856d chore: add tauri clean 2023-03-08 09:19:00 +08:00
ascarbek 0a3231cd9a chore: add tauri clean 2023-03-07 13:28:49 +06:00
ascarbek aab62f4048 Merge branch 'upstream-main' into feat/appflowy_tauri_3
# Conflicts:
#	frontend/appflowy_tauri/src/appflowy_app/components/TestApiButton/TestGrid.tsx
#	frontend/appflowy_tauri/src/appflowy_app/stores/effects/database/database_controller.ts
2023-03-07 13:25:56 +06:00
ascarbek 79c1568295 chore: refactor row hook 2023-03-06 20:01:41 +06:00
ascarbek c8569d3c62 chore: move cell hook into custom cell component 2023-03-06 17:47:37 +06:00
ascarbek 3635b6b63e chore: create cell component for each field type 2023-03-06 17:39:11 +06:00
ascarbek 7ca4da0966 fix: change IDatabaseField fix eslint errors 2023-03-06 16:13:43 +06:00
ascarbek 557a524648 fix: remove warnings 2023-03-06 11:35:23 +06:00
ascarbek 88eeb6bd36 fix: post merge fix 2023-03-06 00:01:59 +06:00
ascarbek d1c29ec3e7 fix: post merge fixes 2023-03-05 23:43:59 +06:00
ascarbek fb8a81eca5 Merge remote-tracking branch 'origin/feat/appflowy_tauri_3' into feat/appflowy_tauri_3
# Conflicts:
#	frontend/appflowy_tauri/src/appflowy_app/components/layout/NavigationPanel/NavigationPanel.tsx
2023-03-05 23:38:19 +06:00
ascarbek e297769ac2 fix: highlight active page 2023-03-05 23:34:46 +06:00
ascarbek 543846c241 fix: nav panel and main panel animation on hide menu 2023-03-05 23:22:43 +06:00
ascarbek 84f41cec76 fix: min width for nav panel 2023-03-05 22:28:33 +06:00
ascarbek 3afca2b482 fix: new folder trash overflow 2023-03-05 22:19:46 +06:00
nathan b417fb5fdf ci: compile error 2023-03-04 19:27:18 +08:00
Nathan.fooo 0b2dc415af Merge branch 'feat/appflowy_tauri_3' into feat/appflowy_tauri_3 2023-03-04 19:18:17 +08:00
ascarbek d0558e4da1 fix: ci warning 2023-03-03 19:18:15 +06:00
ascarbek 7839ad26c4 fix: initially authenticated and serializable fix 2023-03-03 18:37:50 +06:00
ascarbek 075bf8f2fc Merge branch 'upstream-feat/appflowy_tauri_3' into feat/appflowy_tauri_3
# Conflicts:
#	frontend/appflowy_tauri/src/appflowy_app/components/TestApiButton/TestGrid.tsx
2023-03-03 17:17:11 +06:00
ascarbek 11649ef16d chore: (unstable) using controllers 2023-03-03 17:14:58 +06:00
nathan 24340f3091 chore: fix tauri build 2023-03-03 19:06:57 +08:00
nathan a2bdb08a84 chore: setup auto login 2023-03-03 17:58:45 +08:00
nathan 47ccfbf4ed chore: add profiling feature 2023-03-03 12:05:52 +08:00
nathan 24bf1c1893 chore: config tokio runtime subscriber 2023-03-03 10:05:19 +08:00
nathan 9b0fccbdda chore: update tokio version 2023-03-03 10:04:53 +08:00
nathan dcf8fd538d chore: format code 2023-03-02 20:28:46 +08:00
nathan c35db5c2a2 fix: high cpu usage 2023-03-02 19:47:37 +08:00
ascarbek 08bb4e4116 Merge remote-tracking branch 'origin/feat/appflowy_tauri_3' into feat/appflowy_tauri_3 2023-03-01 18:41:32 +06:00
nathan 2e4df44c29 chore: add get single select type option data 2023-03-01 20:16:25 +08:00
nathan f58c91fb3f fix: filter notification with id 2023-03-01 19:05:56 +08:00
nathan fd135fb664 chore: set tracing log to debug level 2023-03-01 18:45:52 +08:00
nathan c74308999d chore: delete/create row 2023-03-01 18:23:39 +08:00
ascarbek e5a1bd2c52 chore: change log class arguments 2023-03-01 16:04:51 +06:00
nathan a3f4dfacba chore: add delete field test 2023-03-01 14:17:17 +08:00
nathan 3619fadf57 chore: add edit / create field test 2023-03-01 14:04:59 +08:00
3139 changed files with 193876 additions and 98067 deletions

No files matched your search

+1 -1
View File
@@ -44,7 +44,7 @@ test "" = "$(grep '^Signed-off-by: ' "$1" |
if [ $? -ne 0 ]
then
printError "Please fix your commit message to match AppFlowy coding standards"
printError "https://appflowy.gitbook.io/docs/essential-documentation/contribute-to-appflowy/software-contributions/submitting-code/code-submission-guidelines#commit-message-guidelines"
printError "https://docs.appflowy.io/docs/documentation/software-contributions/conventions/git-conventions"
exit 1
fi
+1 -1
View File
@@ -21,7 +21,7 @@ Before you mark this PR ready for review, run through this checklist!
#### PR Checklist
- [ ] My code adheres to the [AppFlowy Style Guide](https://appflowy.gitbook.io/docs/essential-documentation/contribute-to-appflowy/software-contributions/submitting-code/style-guides)
- [ ] My code adheres to [AppFlowy's Conventions](https://docs.appflowy.io/docs/documentation/software-contributions/conventions)
- [ ] I've listed at least one issue that this PR fixes in the description above.
- [ ] I've added a test(s) to validate changes in this PR, or this PR only contains semantic changes.
- [ ] All existing tests are passing.
+4 -3
View File
@@ -21,12 +21,13 @@ on:
- unlocked
- ready_for_review
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build-app:
if: github.event.pull_request.draft != true
concurrency:
group: docker_ci-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
runs-on: ubuntu-latest
steps:
- name: Checkout source code
+309 -23
View File
@@ -4,25 +4,316 @@ on:
push:
branches:
- "main"
- "develop"
- "release/*"
paths:
- ".github/workflows/flutter_ci.yaml"
- "frontend/**"
- "!frontend/appflowy_tauri/**"
pull_request:
branches:
- "main"
- "develop"
- "release/*"
paths:
- ".github/workflows/flutter_ci.yaml"
- "frontend/**"
- "!frontend/appflowy_tauri/**"
env:
FLUTTER_VERSION: "3.7.5"
RUST_TOOLCHAIN: "1.65"
CARGO_TERM_COLOR: always
FLUTTER_VERSION: "3.10.4"
RUST_TOOLCHAIN: "1.70"
CARGO_MAKE_VERSION: "0.36.6"
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
prepare:
if: github.event.pull_request.draft != true
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
include:
- os: ubuntu-latest
flutter_profile: development-linux-x86_64
target: x86_64-unknown-linux-gnu
- os: macos-latest
flutter_profile: development-mac-x86_64
target: x86_64-apple-darwin
- os: windows-latest
flutter_profile: development-windows-x86
target: x86_64-pc-windows-msvc
runs-on: ${{ matrix.os }}
steps:
# the following step is required to avoid running out of space
- name: Maximize build space
if: matrix.os == 'ubuntu-latest'
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /opt/ghc
sudo rm -rf "/usr/local/share/boost"
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
- name: Checkout source code
uses: actions/checkout@v2
- name: Install Rust toolchain
id: rust_toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.RUST_TOOLCHAIN }}
target: ${{ matrix.target }}
override: true
profile: minimal
- name: Install flutter
id: flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
- uses: Swatinem/rust-cache@v2
with:
prefix-key: ${{ matrix.os }}
workspaces: |
frontend/rust-lib
cache-all-crates: true
- uses: taiki-e/install-action@v2
with:
tool: cargo-make@${{ env.CARGO_MAKE_VERSION }}, duckscript_cli
- name: Install prerequisites
working-directory: frontend
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub
sudo wget -qO /etc/apt/sources.list.d/dart_stable.list https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list
sudo apt-get update
sudo apt-get install -y dart curl build-essential libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev keybinder-3.0 libnotify-dev
elif [ "$RUNNER_OS" == "Windows" ]; then
vcpkg integrate install
elif [ "$RUNNER_OS" == "macOS" ]; then
echo 'do nothing'
fi
cargo make appflowy-flutter-deps-tools
shell: bash
- name: Build AppFlowy
working-directory: frontend
run: |
cargo make --profile ${{ matrix.flutter_profile }} appflowy-core-dev
- name: Run code generation
working-directory: frontend
run: |
cargo make code_generation
- name: Flutter Analyzer
working-directory: frontend/appflowy_flutter
run: |
flutter analyze .
- name: Compress appflowy_flutter
run: tar -czf appflowy_flutter.tar.gz frontend/appflowy_flutter
- uses: actions/upload-artifact@v3
with:
name: ${{ github.run_id }}-${{ matrix.os }}
path: appflowy_flutter.tar.gz
unit_test:
needs: [prepare]
if: github.event.pull_request.draft != true
strategy:
fail-fast: false
matrix:
os: [macos-latest]
include:
- os: macos-latest
flutter_profile: development-mac-x86_64
target: x86_64-apple-darwin
runs-on: ${{ matrix.os }}
steps:
- name: Checkout source code
uses: actions/checkout@v2
- name: Install Rust toolchain
id: rust_toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.RUST_TOOLCHAIN }}
target: ${{ matrix.target }}
override: true
profile: minimal
- name: Install flutter
id: flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
- uses: Swatinem/rust-cache@v2
with:
prefix-key: ${{ matrix.os }}
workspaces: |
frontend/rust-lib
cache-all-crates: true
- uses: taiki-e/install-action@v2
with:
tool: cargo-make@${{ env.CARGO_MAKE_VERSION }}, duckscript_cli
- name: Install prerequisites
working-directory: frontend
run: |
if [ "$RUNNER_OS" == "macOS" ]; then
cargo make appflowy-flutter-deps-tools
fi
shell: bash
- name: Run Flutter unit tests
working-directory: frontend
run: |
if [ "$RUNNER_OS" == "macOS" ]; then
flutter config --enable-macos-desktop
cargo make --profile ${{ matrix.flutter_profile }} appflowy-dev
cargo make dart_unit_test
else
cargo make dart_unit_test_no_build
fi
shell: bash
- name: Upload coverage to Codecov
uses: Wandalen/wretry.action@v1.0.36
with:
action: codecov/codecov-action@v3
with: |
name: appflowy
flags: appflowy_flutter_unit_test
fail_ci_if_error: true
verbose: true
os: ${{ matrix.os }}
token: ${{ secrets.CODECOV_TOKEN }}
attempt_limit: 20
attempt_delay: 10000
integration_test:
needs: [prepare]
if: github.event.pull_request.draft != true
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest,windows-latest]
include:
- os: ubuntu-latest
flutter_profile: development-linux-x86_64
target: x86_64-unknown-linux-gnu
- os: windows-latest
flutter_profile: development-windows-x86
target: x86_64-pc-windows-msvc
runs-on: ${{ matrix.os }}
steps:
- name: Checkout source code
uses: actions/checkout@v2
- name: Install Rust toolchain
id: rust_toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.RUST_TOOLCHAIN }}
target: ${{ matrix.target }}
override: true
profile: minimal
- name: Install flutter
id: flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
- uses: taiki-e/install-action@v2
with:
tool: cargo-make@${{ env.CARGO_MAKE_VERSION }}
- name: Install prerequisites
working-directory: frontend
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub
sudo wget -qO /etc/apt/sources.list.d/dart_stable.list https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list
sudo apt-get update
sudo apt-get install -y dart curl build-essential libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev keybinder-3.0 libnotify-dev
fi
shell: bash
- name: Enable Flutter Desktop
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
flutter config --enable-linux-desktop
elif [ "$RUNNER_OS" == "macOS" ]; then
flutter config --enable-macos-desktop
elif [ "$RUNNER_OS" == "Windows" ]; then
git config --system core.longpaths true
flutter config --enable-windows-desktop
fi
shell: bash
- uses: actions/download-artifact@v3
with:
name: ${{ github.run_id }}-${{ matrix.os }}
- name: Uncompress appflowy_flutter
run: tar -xf appflowy_flutter.tar.gz
- name: Run code generation
working-directory: frontend
run: |
cargo make code_generation
- name: Run Flutter integration tests
working-directory: frontend/appflowy_flutter
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
export DISPLAY=:99
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 &
sudo apt-get install network-manager
flutter test integration_test/runner.dart -d Linux --coverage
elif [ "$RUNNER_OS" == "macOS" ]; then
flutter test integration_test/runner.dart -d macOS --coverage
elif [ "$RUNNER_OS" == "Windows" ]; then
flutter test integration_test/runner.dart -d Windows --coverage
fi
shell: bash
- name: Upload coverage to Codecov
uses: Wandalen/wretry.action@v1.0.36
with:
action: codecov/codecov-action@v3
with: |
name: appflowy
flags: appflowy_flutter_integrateion_test
fail_ci_if_error: true
verbose: true
os: ${{ matrix.os }}
token: ${{ secrets.CODECOV_TOKEN }}
attempt_limit: 20
attempt_delay: 10000
build:
needs: [prepare]
if: github.event.pull_request.draft != true
strategy:
fail-fast: false
matrix:
@@ -58,29 +349,20 @@ jobs:
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@v2
with:
prefix-key: ${{ matrix.job.os }}
tool: cargo-make@${{ env.CARGO_MAKE_VERSION }}
- name: Install prerequisites
working-directory: frontend
run: |
cargo install --force cargo-make
cargo install --force duckscript_cli
if [ "$RUNNER_OS" == "Linux" ]; then
sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub
sudo wget -qO /etc/apt/sources.list.d/dart_stable.list https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list
sudo apt-get update
sudo apt-get install -y dart curl build-essential libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev
sudo apt-get install keybinder-3.0
elif [ "$RUNNER_OS" == "Windows" ]; then
vcpkg integrate install
elif [ "$RUNNER_OS" == "macOS" ]; then
echo 'do nothing'
sudo apt-get install -y dart curl build-essential libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev keybinder-3.0 libnotify-dev
fi
cargo make appflowy-flutter-deps-tools
shell: bash
- name: Enable Flutter Desktop
@@ -90,21 +372,25 @@ jobs:
elif [ "$RUNNER_OS" == "macOS" ]; then
flutter config --enable-macos-desktop
elif [ "$RUNNER_OS" == "Windows" ]; then
git config --system core.longpaths true
flutter config --enable-windows-desktop
fi
shell: bash
- name: Build AppFlowy
- uses: actions/download-artifact@v3
with:
name: ${{ github.run_id }}-${{ matrix.os }}
- name: Uncompress appflowy_flutter
run: tar -xf appflowy_flutter.tar.gz
- name: Run code generation
if: matrix.os == 'windows-latest'
working-directory: frontend
run: |
cargo make --profile ${{ matrix.flutter_profile }} appflowy-dev
cargo make code_generation
- name: Flutter Analyzer
working-directory: frontend/appflowy_flutter
run: |
flutter analyze .
- name: Run Flutter unit tests
- name: Build flutter product
working-directory: frontend
run: |
cargo make dart_unit_test
cargo make --profile ${{ matrix.flutter_profile }} appflowy-make-product-dev
-125
View File
@@ -1,125 +0,0 @@
name: integration test
on:
push:
branches:
- "main"
- "release/*"
paths:
- "frontend/appflowy_flutter/**"
pull_request:
branches:
- "main"
- "release/*"
paths:
- "frontend/appflowy_flutter/**"
env:
CARGO_TERM_COLOR: always
jobs:
tests:
strategy:
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: "stable-2022-04-07"
- uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: "3.7.5"
cache: true
- name: Cache Cargo
uses: actions/cache@v2
with:
path: |
~/.cargo
key: ${{ runner.os }}-cargo-${{ steps.rust_toolchain.outputs.rustc_hash }}-${{ hashFiles('./frontend/rust-lib/Cargo.toml') }}
- name: Cache Rust
id: cache-rust-target
uses: actions/cache@v2
with:
path: |
frontend/rust-lib/target
shared-lib/target
key: ${{ runner.os }}-rust-rust-lib-share-lib-${{ steps.rust_toolchain.outputs.rustc_hash }}-${{ hashFiles('./frontend/rust-lib/Cargo.toml') }}
- name: Setup Environment
run: |
cargo install --force cargo-make
cargo install --force duckscript_cli
if [ "$RUNNER_OS" == "Linux" ]; then
sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub
sudo wget -qO /etc/apt/sources.list.d/dart_stable.list https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list
sudo apt-get update
sudo apt-get install -y dart curl build-essential libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev
sudo apt-get install keybinder-3.0
elif [ "$RUNNER_OS" == "Windows" ]; then
vcpkg integrate install
elif [ "$RUNNER_OS" == "macOS" ]; then
echo 'do nothing'
fi
shell: bash
- if: steps.cache-cargo.outputs.cache-hit != 'true'
name: Rust Deps
working-directory: frontend
run: |
cargo install cargo-make
cargo make appflowy-flutter-deps-tools
- name: Config Flutter
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
flutter config --enable-linux-desktop
elif [ "$RUNNER_OS" == "macOS" ]; then
flutter config --enable-macos-desktop
elif [ "$RUNNER_OS" == "Windows" ]; then
flutter config --enable-windows-desktop
fi
shell: bash
- name: Build Test lib
working-directory: frontend
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
cargo make --profile development-linux-x86_64 appflowy-dev
elif [ "$RUNNER_OS" == "macOS" ]; then
cargo make --profile development-mac-x86_64 appflowy-dev
elif [ "$RUNNER_OS" == "Windows" ]; then
cargo make --profile development-windows-x86 appflowy-dev
fi
shell: bash
- name: Run AppFlowy tests
working-directory: frontend/appflowy_flutter
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
export DISPLAY=:99
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 &
sudo apt-get install network-manager
flutter test integration_test/runner.dart -d Linux --coverage --verbose
elif [ "$RUNNER_OS" == "macOS" ]; then
flutter test integration_test/runner.dart -d macOS --coverage --verbose
elif [ "$RUNNER_OS" == "Windows" ]; then
flutter test integration_test/runner.dart -d Windows --coverage --verbose
fi
shell: bash
# - uses: codecov/codecov-action@v3
# with:
# name: appflowy
# flags: appflowy
# env_vars: ${{ matrix.os }}
# fail_ci_if_error: true
# verbose: true
+113
View File
@@ -0,0 +1,113 @@
name: Mobile-CI
on:
push:
branches:
- "main"
paths:
- ".github/workflows/mobile_ci.yaml"
- "frontend/**"
- "!frontend/appflowy_tauri/**"
pull_request:
branches:
- "main"
paths:
- ".github/workflows/mobile_ci.yaml"
- "frontend/**"
- "!frontend/appflowy_tauri/**"
env:
FLUTTER_VERSION: "3.10.1"
RUST_TOOLCHAIN: "1.70"
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build:
if: github.event.pull_request.draft != true
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
include:
- os: ubuntu-latest
target: aarch64-linux-android
runs-on: ${{ matrix.os }}
steps:
# the following step is required to avoid running out of space
- name: Maximize build space
if: matrix.os == 'ubuntu-latest'
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /opt/ghc
sudo rm -rf "/usr/local/share/boost"
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
- name: Checkout source code
uses: actions/checkout@v2
- name: Install Rust toolchain
id: rust_toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.RUST_TOOLCHAIN }}
target: ${{ matrix.target }}
override: true
profile: minimal
- name: Install flutter
id: flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- uses: nttld/setup-ndk@v1
id: setup-ndk
with:
ndk-version: "r24"
add-to-path: true
- uses: Swatinem/rust-cache@v2
with:
prefix-key: ${{ matrix.os }}
workspaces: |
frontend/rust-lib
- uses: davidB/rust-cargo-make@v1
with:
version: "0.36.6"
- name: Install prerequisites
working-directory: frontend
run: |
rustup target install aarch64-linux-android
rustup target install x86_64-linux-android
cargo install --force duckscript_cli
cargo install cargo-ndk
if [ "$RUNNER_OS" == "Linux" ]; then
sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub
sudo wget -qO /etc/apt/sources.list.d/dart_stable.list https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list
sudo apt-get update
sudo apt-get install -y dart curl build-essential libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev
sudo apt-get install keybinder-3.0 libnotify-dev
sudo apt-get install gcc-multilib
elif [ "$RUNNER_OS" == "Windows" ]; then
vcpkg integrate install
elif [ "$RUNNER_OS" == "macOS" ]; then
echo 'do nothing'
fi
cargo make appflowy-flutter-deps-tools
shell: bash
- name: Build AppFlowy
working-directory: frontend
env:
ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}
run: |
cargo make --profile development-android appflowy-android-dev
+165 -61
View File
@@ -6,8 +6,8 @@ on:
- "*"
env:
FLUTTER_VERSION: "3.7.5"
RUST_TOOLCHAIN: "1.65"
FLUTTER_VERSION: "3.10.1"
RUST_TOOLCHAIN: "1.70"
jobs:
create-release:
@@ -35,13 +35,15 @@ jobs:
release_name: v${{ github.ref }}
body_path: ${{ env.RELEASE_NOTES_PATH }}
# the package name should be with the format: AppFlowy-<version>-<os>-<arch>
build-for-windows:
name: ${{ matrix.job.target }} (${{ matrix.job.os }})
needs: create-release
env:
WINDOWS_APP_RELEASE_PATH: frontend\appflowy_flutter\product\${{ github.ref_name }}\windows
WINDOWS_ZIP_NAME: AppFlowy_${{ github.ref_name }}_windows-x86_64.zip
WINDOWS_INSTALLER_NAME: AppFlowy_${{ github.ref_name }}_windows-x86_64
WINDOWS_ZIP_NAME: AppFlowy-${{ github.ref_name }}-windows-x86_64.zip
WINDOWS_INSTALLER_NAME: AppFlowy-${{ github.ref_name }}-windows-x86_64
runs-on: ${{ matrix.job.os }}
strategy:
fail-fast: false
@@ -57,7 +59,6 @@ jobs:
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
@@ -68,11 +69,6 @@ jobs:
components: rustfmt
profile: minimal
- uses: Swatinem/rust-cache@v2
with:
prefix-key: appflowy-lib-cache
key: ${{ matrix.job.os }}-${{ matrix.job.target }}
- name: Install prerequisites
working-directory: frontend
run: |
@@ -82,9 +78,12 @@ jobs:
- name: Build Windows app
working-directory: frontend
# the cargo make script has to be run separately because of file locking issues
run: |
flutter config --enable-windows-desktop
dart ./scripts/flutter_release_build/build_flowy.dart exclude-directives . ${{ github.ref_name }}
cargo make --env APP_VERSION=${{ github.ref_name }} --profile production-windows-x86 appflowy
dart ./scripts/flutter_release_build/build_flowy.dart include-directives . ${{ github.ref_name }}
- name: Archive Asset
uses: vimtor/action-zip@v1
@@ -124,23 +123,19 @@ jobs:
asset_name: ${{ env.WINDOWS_INSTALLER_NAME }}.exe
asset_content_type: application/octet-stream
build-for-macOS:
build-for-macOS-x86_64:
name: ${{ matrix.job.target }} (${{ matrix.job.os }}) [${{ matrix.job.extra-build-args }}]
runs-on: ${{ matrix.job.os }}
needs: create-release
env:
MACOS_APP_RELEASE_PATH: frontend/appflowy_flutter/product/${{ github.ref_name }}/macos/Release
MACOS_X86_ZIP_NAME: AppFlowy_${{ github.ref_name }}_macos-x86_64.zip
MACOS_DMG_NAME: AppFlowy_${{ github.ref_name }}_macos-x86_64
MACOS_X86_ZIP_NAME: AppFlowy-${{ github.ref_name }}-macos-x86_64.zip
MACOS_DMG_NAME: AppFlowy-${{ github.ref_name }}-macos-x86_64
strategy:
fail-fast: false
matrix:
job:
- {
target: x86_64-apple-darwin,
os: macos-10.15,
extra-build-args: "",
}
- { target: x86_64-apple-darwin, os: macos-11, extra-build-args: "" }
steps:
- name: Checkout source code
uses: actions/checkout@v3
@@ -150,7 +145,6 @@ jobs:
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
@@ -161,11 +155,6 @@ jobs:
components: rustfmt
profile: minimal
- uses: Swatinem/rust-cache@v2
with:
prefix-key: appflowy-lib-cache
key: ${{ matrix.job.os }}-${{ matrix.job.target }}
- name: Install prerequisites
working-directory: frontend
run: |
@@ -176,7 +165,17 @@ jobs:
working-directory: frontend
run: |
flutter config --enable-macos-desktop
dart ./scripts/flutter_release_build/build_flowy.dart . ${{ github.ref_name }}
dart ./scripts/flutter_release_build/build_flowy.dart run . ${{ github.ref_name }}
- name: Codesign AppFlowy
run: |
echo ${{ secrets.MACOS_CERTIFICATE }} | base64 --decode > certificate.p12
security create-keychain -p action build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p action build.keychain
security import certificate.p12 -k build.keychain -P ${{ secrets.MACOS_CERTIFICATE_PWD }} -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k action build.keychain
/usr/bin/codesign --force --options runtime --deep --sign "${{ secrets.MACOS_CODESIGN_ID }}" "${{ env.MACOS_APP_RELEASE_PATH }}/AppFlowy.app" -v
- name: Create macOS dmg
run: |
@@ -192,6 +191,10 @@ jobs:
"${{ env.MACOS_APP_RELEASE_PATH }}/${{ env.MACOS_DMG_NAME }}.dmg" \
"${{ env.MACOS_APP_RELEASE_PATH }}/AppFlowy.app"
- name: Notarize AppFlowy
run: |
xcrun notarytool submit ${{ env.MACOS_APP_RELEASE_PATH }}/${{ env.MACOS_DMG_NAME }}.dmg --apple-id ${{ secrets.MACOS_NOTARY_USER }} --team-id ${{ secrets.MACOS_TEAM_ID }} --password ${{ secrets.MACOS_NOTARY_PWD }} -v -f "json" --wait
- name: Archive Asset
working-directory: ${{ env.MACOS_APP_RELEASE_PATH }}
run: zip --symlinks -qr ${{ env.MACOS_X86_ZIP_NAME }} AppFlowy.app
@@ -216,15 +219,115 @@ jobs:
asset_name: ${{ env.MACOS_DMG_NAME }}.dmg
asset_content_type: application/octet-stream
build-for-macOS-universal:
name: ${{ matrix.job.target }} (${{ matrix.job.os }}) [${{ matrix.job.extra-build-args }}]
runs-on: ${{ matrix.job.os }}
needs: create-release
env:
MACOS_APP_RELEASE_PATH: frontend/appflowy_flutter/product/${{ github.ref_name }}/macos/Release
MACOS_AARCH64_ZIP_NAME: AppFlowy-${{ github.ref_name }}-macos-universal.zip
MACOS_DMG_NAME: AppFlowy-${{ github.ref_name }}-macos-universal
strategy:
fail-fast: false
matrix:
job:
- {
targets: "aarch64-apple-darwin,x86_64-apple-darwin",
os: macos-11,
extra-build-args: "",
}
steps:
- name: Checkout source code
uses: actions/checkout@v3
- name: Install flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ env.RUST_TOOLCHAIN }}
targets: ${{ matrix.job.targets }}
components: rustfmt
- name: Install prerequisites
working-directory: frontend
run: |
cargo install --force cargo-make
cargo install --force duckscript_cli
- name: Build AppFlowy
working-directory: frontend
run: |
flutter config --enable-macos-desktop
sh scripts/flutter_release_build/build_universal_package_for_macos.sh
- name: Codesign AppFlowy
run: |
echo ${{ secrets.MACOS_CERTIFICATE }} | base64 --decode > certificate.p12
security create-keychain -p action build.keychain
security default-keychain -s build.keychain
security unlock-keychain -p action build.keychain
security import certificate.p12 -k build.keychain -P ${{ secrets.MACOS_CERTIFICATE_PWD }} -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k action build.keychain
/usr/bin/codesign --force --options runtime --deep --sign "${{ secrets.MACOS_CODESIGN_ID }}" "${{ env.MACOS_APP_RELEASE_PATH }}/AppFlowy.app" -v
- name: Create macOS dmg
run: |
brew install create-dmg
create-dmg \
--volname ${{ env.MACOS_DMG_NAME }} \
--hide-extension "AppFlowy.app" \
--background frontend/scripts/dmg_assets/AppFlowyInstallerBackground.jpg \
--window-size 600 450 \
--icon-size 94 \
--icon "AppFlowy.app" 141 249 \
--app-drop-link 458 249 \
"${{ env.MACOS_APP_RELEASE_PATH }}/${{ env.MACOS_DMG_NAME }}.dmg" \
"${{ env.MACOS_APP_RELEASE_PATH }}/AppFlowy.app"
- name: Notarize AppFlowy
run: |
xcrun notarytool submit ${{ env.MACOS_APP_RELEASE_PATH }}/${{ env.MACOS_DMG_NAME }}.dmg --apple-id ${{ secrets.MACOS_NOTARY_USER }} --team-id ${{ secrets.MACOS_TEAM_ID }} --password ${{ secrets.MACOS_NOTARY_PWD }} -v -f "json" --wait
- name: Archive Asset
working-directory: ${{ env.MACOS_APP_RELEASE_PATH }}
run: zip --symlinks -qr ${{ env.MACOS_AARCH64_ZIP_NAME }} AppFlowy.app
- name: Upload Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: ${{ env.MACOS_APP_RELEASE_PATH }}/${{ env.MACOS_AARCH64_ZIP_NAME }}
asset_name: ${{ env.MACOS_AARCH64_ZIP_NAME }}
asset_content_type: application/octet-stream
- name: Upload DMG Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: ${{ env.MACOS_APP_RELEASE_PATH }}/${{ env.MACOS_DMG_NAME }}.dmg
asset_name: ${{ env.MACOS_DMG_NAME }}.dmg
asset_content_type: application/octet-stream
build-for-linux:
name: ${{ matrix.job.target }} (${{ matrix.job.os }}) [${{ matrix.job.extra-build-args }}]
runs-on: ${{ matrix.job.os }}
needs: create-release
env:
LINUX_APP_RELEASE_PATH: frontend/appflowy_flutter/product/${{ github.ref_name }}/linux/Release
LINUX_ZIP_NAME: AppFlowy_${{ matrix.job.target }}_${{ matrix.job.os }}.tar.gz
LINUX_PACKAGE_NAME: AppFlowy_${{ github.ref_name }}_${{ matrix.job.os }}.deb
# PKG_CONFIG_SYSROOT_DIR: /
LINUX_ZIP_NAME: AppFlowy-${{ matrix.job.target }}-x86_64.tar.gz
LINUX_PACKAGE_DEB_NAME: AppFlowy-${{ github.ref_name }}-linux-x86_64.deb
LINUX_PACKAGE_RPM_NAME: AppFlowy-${{ github.ref_name }}-linux-x86_64.rpm
LINUX_PACKAGE_TMP_RPM_NAME: AppFlowy-${{ github.ref_name }}-2.x86_64.rpm
strategy:
fail-fast: false
matrix:
@@ -245,7 +348,6 @@ jobs:
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
@@ -256,18 +358,14 @@ jobs:
components: rustfmt
profile: minimal
- uses: Swatinem/rust-cache@v2
with:
prefix-key: appflowy-lib-cache
key: ${{ matrix.job.os }}-${{ matrix.job.target }}
- name: Install prerequisites
working-directory: frontend
run: |
sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub
sudo apt-get update
sudo apt-get install -y build-essential libsqlite3-dev libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev
sudo apt-get install keybinder-3.0
sudo apt-get install keybinder-3.0 libnotify-dev
sudo apt-get -y install alien
source $HOME/.cargo/env
cargo install --force cargo-make
cargo install --force duckscript_cli
@@ -277,41 +375,31 @@ jobs:
if: ${{ matrix.job.target == 'aarch64-unknown-linux-gnu' }}
working-directory: frontend
run: |
sudo apt-get install -qy binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
sudo apt-get install -qy binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libgtk-3-0
- name: Build AppFlowy
working-directory: frontend
run: |
flutter config --enable-linux-desktop
dart ./scripts/flutter_release_build/build_flowy.dart . ${{ github.ref_name }}
dart ./scripts/flutter_release_build/build_flowy.dart run . ${{ github.ref_name }}
- name: Archive Assert
- name: Archive Asset
working-directory: ${{ env.LINUX_APP_RELEASE_PATH }}
run: tar -czf ${{ env.LINUX_ZIP_NAME }} *
- name: Configuring Linux Package
- name: Build Linux package (.deb)
working-directory: frontend
run: |
mkdir -p ../${{ env.LINUX_APP_RELEASE_PATH }}/package/opt
mkdir -p ../${{ env.LINUX_APP_RELEASE_PATH }}/package/usr/share/applications
cp -r ./scripts/linux_installer ../${{ env.LINUX_APP_RELEASE_PATH }}/package/DEBIAN
cd ../${{ env.LINUX_APP_RELEASE_PATH }}/package/DEBIAN
grep -rl "\[CHANGE_THIS\]" ./control | xargs sed -i "s/\[CHANGE_THIS\]/${{ github.ref_name }}/"
chmod 0755 {postinst,postrm}
sh scripts/linux_distribution/deb/build_deb.sh appflowy_flutter/product/${{ github.ref_name }}/linux/Release ${{ github.ref_name }} ${{ env.LINUX_PACKAGE_DEB_NAME }}
- name: Build Linux package
- name: Build Linux package (.rpm)
working-directory: ${{ env.LINUX_APP_RELEASE_PATH }}
run: |
mv AppFlowy package/opt/
cd package
# Update Exec & icon path in desktop entry
grep -rl "\[CHANGE_THIS\]" ./opt/AppFlowy/appflowy.desktop.temp | xargs sed -i "s/\[CHANGE_THIS\]/\/opt/"
# Add desktop entry in package
mv ./opt/AppFlowy/appflowy.desktop.temp ./usr/share/applications/appflowy.desktop
# Build
cd ../ && dpkg-deb --build --root-owner-group -Z xz package ${{ env.LINUX_PACKAGE_NAME }}
ls -a
sudo alien -r ${{ env.LINUX_PACKAGE_DEB_NAME }}
echo '------------'
cp -r ${{ env.LINUX_PACKAGE_TMP_RPM_NAME }} ${{ env.LINUX_PACKAGE_RPM_NAME }}
ls -a
- name: Upload Asset
id: upload-release-asset
@@ -324,16 +412,26 @@ jobs:
asset_name: ${{ env.LINUX_ZIP_NAME }}
asset_content_type: application/octet-stream
- name: Upload Asset Install Package
id: upload-release-asset-install-package
- name: Upload Debian package
id: upload-release-asset-install-package-deb
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: ${{ env.LINUX_APP_RELEASE_PATH }}/${{ env.LINUX_PACKAGE_NAME }}
asset_path: ${{ env.LINUX_APP_RELEASE_PATH }}/${{ env.LINUX_PACKAGE_DEB_NAME }}
asset_name: ${{ env.LINUX_PACKAGE_DEB_NAME }}
asset_content_type: application/octet-stream
asset_name: ${{ env.LINUX_PACKAGE_NAME }}
- name: Upload RPM package
id: upload-release-asset-install-package-rpm
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: ${{ env.LINUX_APP_RELEASE_PATH }}/${{ env.LINUX_PACKAGE_RPM_NAME }}
asset_name: ${{ env.LINUX_PACKAGE_RPM_NAME }}
asset_content_type: application/octet-stream
build-for-docker:
@@ -364,7 +462,13 @@ jobs:
notify-discord:
runs-on: ubuntu-latest
needs: [build-for-linux, build-for-windows, build-for-macOS]
needs:
[
build-for-linux,
build-for-windows,
build-for-macOS-x86_64,
build-for-macOS-universal,
]
steps:
- name: Notify Discord
run: |
+27 -32
View File
@@ -4,6 +4,7 @@ on:
push:
branches:
- "main"
- "develop"
- "release/*"
paths:
- "frontend/rust-lib/**"
@@ -12,6 +13,7 @@ on:
pull_request:
branches:
- "main"
- "develop"
- "release/*"
paths:
- "frontend/rust-lib/**"
@@ -19,11 +21,11 @@ on:
env:
CARGO_TERM_COLOR: always
RUST_TOOLCHAIN: "1.65"
FLUTTER_VERSION: "3.7.5"
RUST_TOOLCHAIN: "1.70"
jobs:
test-on-ubuntu:
environment: SUPABASE_CI
runs-on: ubuntu-latest
steps:
- name: Checkout source code
@@ -38,14 +40,6 @@ jobs:
components: rustfmt, clippy
profile: minimal
- name: Install flutter
id: flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- name: Install prerequisites
working-directory: frontend
run: |
@@ -54,33 +48,34 @@ jobs:
- uses: Swatinem/rust-cache@v2
with:
prefix-key: ${{ matrix.job.os }}
prefix-key: 'ubuntu-latest'
workspaces: |
frontend/rust-lib
- name: Build FlowySDK
working-directory: frontend
- name: Create .env file in flowy-server
working-directory: frontend/rust-lib/flowy-server
run: |
cargo make --profile development-linux-x86_64 appflowy-core-dev
touch .env.ci
echo SUPABASE_URL=${{ secrets.SUPABASE_URL }} >> .env.ci
echo SUPABASE_ANON_KEY=${{ secrets.SUPABASE_ANON_KEY }} >> .env.ci
echo SUPABASE_JWT_SECRET=${{ secrets.SUPABASE_JWT_SECRET }} >> .env.ci
- name: Create .env file in event-integration
working-directory: frontend/rust-lib/event-integration
run: |
touch .env.ci
echo SUPABASE_URL=${{ secrets.SUPABASE_URL }} >> .env.ci
echo SUPABASE_ANON_KEY=${{ secrets.SUPABASE_ANON_KEY }} >> .env.ci
echo SUPABASE_JWT_SECRET=${{ secrets.SUPABASE_JWT_SECRET }} >> .env.ci
- name: Run rust-lib tests
working-directory: frontend/rust-lib
run: RUST_LOG=info RUST_BACKTRACE=1 cargo test --no-default-features --features="rev-sqlite"
- name: rustfmt rust-lib
run: cargo fmt --all -- --check
working-directory: frontend/rust-lib/
- name: clippy rust-lib
run: cargo clippy --features="rev-sqlite"
working-directory: frontend/rust-lib
- name: Run rust-lib tests
working-directory: frontend/rust-lib
run: RUST_LOG=info cargo test --no-default-features --features="sync,rev-sqlite"
- name: rustfmt shared-lib
run: cargo fmt --all -- --check
working-directory: shared-lib
- name: clippy shared-lib
run: cargo clippy -- -D warnings
working-directory: shared-lib
- name: Run shared-lib tests
working-directory: shared-lib
run: RUST_LOG=info cargo test --no-default-features
run: cargo clippy --all
working-directory: frontend/rust-lib
+2 -2
View File
@@ -11,8 +11,8 @@ on:
env:
CARGO_TERM_COLOR: always
FLUTTER_VERSION: "3.7.5"
RUST_TOOLCHAIN: "1.65"
FLUTTER_VERSION: "3.10.1"
RUST_TOOLCHAIN: "1.70"
jobs:
tests:
+48 -20
View File
@@ -2,20 +2,27 @@ name: Tauri-CI
on:
pull_request:
paths:
- ".github/workflows/tauri_ci.yaml"
- "frontend/rust-lib/**"
- "frontend/appflowy_tauri/**"
env:
NODE_VERSION: "16"
RUST_TOOLCHAIN: "1.65"
NODE_VERSION: "18.16.0"
PNPM_VERSION: "8.5.0"
RUST_TOOLCHAIN: "1.70"
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
tauri-build:
if: github.event.pull_request.draft != true
strategy:
fail-fast: false
matrix:
# platform: [macos-latest, ubuntu-20.04, windows-latest]
platform: [macos-latest]
# platform: [macos-latest, ubuntu-latest, windows-latest]
platform: [ubuntu-latest]
runs-on: ${{ matrix.platform }}
steps:
@@ -25,6 +32,26 @@ jobs:
with:
node-version: ${{ env.NODE_VERSION }}
- name: Cache Rust Dependencies
uses: Swatinem/rust-cache@v2
with:
key: rust-dependencies-${{ runner.os }}
workspaces: |
frontend/rust-lib
frontend/appflowy_tauri/src-tauri
- name: Cache Node.js dependencies
uses: actions/cache@v2
with:
path: ~/.npm
key: npm-${{ runner.os }}
- name: Cache node_modules
uses: actions/cache@v2
with:
path: frontend/appflowy_tauri/node_modules
key: node-modules-${{ runner.os }}
- name: Install Rust toolchain
id: rust_toolchain
uses: actions-rs/toolchain@v1
@@ -33,10 +60,6 @@ jobs:
override: true
profile: minimal
- uses: Swatinem/rust-cache@v2
with:
prefix-key: ${{ matrix.platform }}
- name: install dependencies (windows only)
if: matrix.platform == 'windows-latest'
working-directory: frontend
@@ -45,15 +68,17 @@ jobs:
cargo install --force duckscript_cli
vcpkg integrate install
cargo make appflowy-tauri-deps-tools
npm install -g pnpm@${{ env.PNPM_VERSION }}
- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-20.04'
if: matrix.platform == 'ubuntu-latest'
working-directory: frontend
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
cargo install --force cargo-make
cargo make appflowy-tauri-deps-tools
npm install -g pnpm@${{ env.PNPM_VERSION }}
- name: install dependencies (macOS only)
if: matrix.platform == 'macos-latest'
@@ -61,21 +86,24 @@ jobs:
run: |
cargo install --force cargo-make
cargo make appflowy-tauri-deps-tools
npm install -g pnpm@${{ env.PNPM_VERSION }}
# - name: lint
# working-directory: frontend/appflowy_tauri
# run: |
# yarn --frozen-lockfile
# yarn test:prettier
# yarn test:code
- name: build
- name: Build
working-directory: frontend/appflowy_tauri
run: |
mkdir dist
npm install
cargo make --cwd .. tauri_build
yarn && yarn build
pnpm install
cargo make --cwd .. tauri_build
pnpm test
pnpm test:errors
- name: Check for uncommitted changes
run: |
diff_files=$(git status --porcelain)
if [ -n "$diff_files" ]; then
echo "There are uncommitted changes in the working tree. Please commit them before pushing."
exit 1
fi
- uses: tauri-apps/tauri-action@v0
env:
+8
View File
@@ -35,3 +35,11 @@ pubspec.lock
.githooks/gitlint
.githooks/gitlint.exe
.fvm/
**/AppFlowy-Collab/
# ignore the deb filegit
frontend/package
frontend/*.deb
**/Cargo.toml.bak
-23
View File
@@ -1,23 +0,0 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="ProtoBuf_Gen" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
<option name="command" value="run --manifest-path ${flowy_tool} -- pb-gen --rust_sources=${rust_lib},${shared_lib} --derive_meta=${derive_meta} --flutter_package_lib=${flutter_package_lib}" />
<option name="workingDirectory" value="file://$PROJECT_DIR$/frontend" />
<option name="channel" value="DEFAULT" />
<option name="allFeatures" value="false" />
<option name="emulateTerminal" value="false" />
<option name="backtrace" value="SHORT" />
<envs>
<env name="flowy_tool" value="${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/scripts/flowy-tool/Cargo.toml" />
<env name="rust_lib" value="${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/" />
<env name="shared_lib" value="${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/../shared_lib" />
<env name="flutter_lib" value="${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/packages" />
<env name="derive_meta" value="${shared_lib}/flowy-derive/src/derive_cache/derive_cache.rs" />
<env name="flutter_package_lib" value="${flutter_lib}/flowy_sdk/lib" />
</envs>
<option name="isRedirectInput" value="false" />
<option name="redirectInputPath" value="" />
<method v="2">
<option name="CARGO.BUILD_TASK_PROVIDER" enabled="true" />
</method>
</configuration>
</component>
-18
View File
@@ -1,18 +0,0 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Run backend" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
<option name="command" value="run --package backend --bin backend" />
<option name="workingDirectory" value="file://$PROJECT_DIR$/backend" />
<option name="channel" value="DEFAULT" />
<option name="allFeatures" value="false" />
<option name="emulateTerminal" value="false" />
<option name="backtrace" value="SHORT" />
<envs>
<env name="APP_ENVIRONMENT" value="production" />
</envs>
<option name="isRedirectInput" value="false" />
<option name="redirectInputPath" value="" />
<method v="2">
<option name="CARGO.BUILD_TASK_PROVIDER" enabled="true" />
</method>
</configuration>
</component>
-16
View File
@@ -1,16 +0,0 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="dart-event" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
<option name="command" value="run --manifest-path $PROJECT_DIR$/scripts/flowy-tool/Cargo.toml -- dart-event --rust_source=$PROJECT_DIR$/rust-lib/ --output=$PROJECT_DIR$/appflowy_flutter/packages/flowy_sdk/lib/dispatch/dart_event.dart" />
<option name="workingDirectory" value="file://$PROJECT_DIR$" />
<option name="channel" value="DEFAULT" />
<option name="allFeatures" value="false" />
<option name="emulateTerminal" value="false" />
<option name="backtrace" value="SHORT" />
<envs />
<option name="isRedirectInput" value="false" />
<option name="redirectInputPath" value="" />
<method v="2">
<option name="CARGO.BUILD_TASK_PROVIDER" enabled="true" />
</method>
</configuration>
</component>
+313
View File
@@ -1,5 +1,318 @@
# Release Notes
## Version 0.3.8 - 11/13/2023
### New Features
- Support hiding any stack in a board
- Support customizing page icons in menu
- Display visual hint when card contains notes
- Quick action for adding new stack to a board
- Support more ways of inserting page references in documents
- Shift + click on a checkbox to power toggle its children
### Bug fixes
- Improved color of the "Share"-button text
- Text overflow issue in Calendar properties
- Default font (Roboto) added to application
- Placeholder added for the editor inside a Card
- Toggle notifications in settings have been fixed
- Dialog for linking board/grid/calendar opens in correct position
- Quick add Card in Board at top, correctly adds a new Card at the top
## Version 0.3.7 - 10/30/2023
### New Features
- Support showing checklist items inline in row page.
- Support inserting date from slash menu.
- Support renaming a stack directly by clicking on the stack name.
- Show the detailed reminder content in the notification center.
- Save card order in Board view.
- Allow to hide the ungrouped stack.
- Segmented the checklist progress bar.
### Bug fixes
- Optimize side panel animation.
- Fix calendar with hidden date or title doesn't show options correctly.
- Fix the horizontal scroll bar disappears in Grid view.
- Improve setting tab UI in Grid view.
- Improve theme of the code block.
- Fix some UI issues.
## Version 0.3.6 - 10/16/2023
### New Features
- Support setting Markdown styles through keyboard shortcuts.
- Added Ukrainian language.
- Support auto-hiding sidebar feature, ensuring a streamlined view even when resizing to a smaller window.
- Support toggling the notifitcation on/off.
- Added Lemonade theme.
### Bug fixes
- Improve Vietnamese translations.
- Improve reminder feature.
- Fix some UI issues.
## Version 0.3.5 - 10/09/2023
### New Features
- Added support for browsing and inserting images from Unsplash.
- Revamp and unify the emoji picker throughout AppFlowy.
### Bug fixes
- Improve layout of the settings page.
- Improve design of the restore page banner.
- Improve UX of the reminders.
- Other UI fixes.
## Version 0.3.4 - 10/02/2023
### New Features
- Added support for creating a reminder.
- Added support for finding and replacing in the document page.
- Added support for showing the hidden fields in row detail page.
- Adjust the toolbar style in RTL mode.
### Bug fixes
- Improve snackbar UI design.
- Improve dandelion theme.
- Improve id-ID and pl-PL language translations.
## Version 0.3.3 - 09/24/2023
### New Features
- Added an end date field to the time cell in the database.
- Added Support for customizing the font family from GoogleFonts in the editor.
- Set the uploaded image to cover by default.
- Added Support for resetting the user icon on settings page
- Add Urdu language translations.
### Bug fixes
- Default colors for the blocks except for the callout were not transparent.
- Option/Alt + click to add a block above didn't work on the first line.
- Unable to paste HTML content containing `<mark>` tag.
- Unable to select the text from anywhere in the line.
- The selection in the editor didn't clear when editing the inline database.
- Added a bottom border to new property column in the database.
- Set minimum width of 50px for grid fields.
## Version 0.3.2 - 09/18/2023
### New Features
- Improve the performance of the editor, now it is much faster when editing a large document.
- Support for reordering the rows of the database on Windows.
- Revamp the row detail page of the database.
- Revamp the checklist cell editor of the database.
### Bug fixes
- Some UI issues
## Version 0.3.1 - 09/04/2023
### New Features
- Improve CJK (Chinese, Japanese, Korean) input method support.
- Share a database in CSV format.
- Support for aligning the block component with the toolbar.
- Support for editing name when creating a new page.
- Support for inserting a table in the document page.
- Database views allow for independent field visibility toggling.
### Bug fixes
- Paste multiple lines in code block.
- Some UI issues
## Version 0.3.0 - 08/22/2023
### New Features
- Improve paste features:
- Paste HTML content from website.
- Paste image from clipboard.
- Support Group by Date in Kanban Board.
- Notarize the macOS package, which is now verified by Apple.
- Add Persian language translations.
### Bug fixes
- Some UI issues
## Version 0.2.9 - 08/08/2023
### New Features
- Improve tab and shortcut, click with alt/option to open a page in new tab.
- Improve database tab bar UI.
### Bug fixes
- Add button and more action button of the favorite section doesn't work.
- Fix euro currency number format.
- Some UI issues
## Version 0.2.8 - 08/03/2023
### New Features
- Nestable personal folder that supports drag and drop
- Support for favorite folders.
- Support for sorting by date in Grid view.
- Add a duplicate button in the Board context menu.
### Bug fixes
- Improve readability in Callout
- Some UI issues
## Version 0.2.7 - 07/18/2023
### New Features
<img width="1147" src="https://github.com/AppFlowy-IO/AppFlowy/assets/11863087/ac464740-c685-4a85-ae99-1074c1c607e5">
- Open page in new tab
- Create toggle lists to keep things tidy in your pages
- Alt/Option + click to add a text block above
### Bug fixes
- Pasting into a Grid property crashed on Windows
- Double-click a link to open
## Version 0.2.6 - 07/11/2023
### New Features
- Dynamic load themes
- Inline math equation
## Version 0.2.5 - 07/02/2023
### New Features
- Insert local images
- Mention a page
- Outlines (Table of contents)
- Added support for aligning the image by image menu
### Bug fixes
- Some UI issues
## Version 0.2.4 - 06/23/2023
### Bug fixes:
- Unable to copy and paste a word
- Some UI issues
## Version 0.2.3 - 06/21/2023
### New Features
- Added support for creating multiple database views for existing database
## Version 0.2.2 - 06/15/2023
### New Features
- Added support for embedding a document in the database's row detail page
- Added support for inserting an emoji in the database's row detail page
### Other Updates
- Added language selector on the welcome page
- Added support for importing multiple markdown files all at once
## Version 0.2.1 - 06/11/2023
### New Features
- Added support for creating or referencing a calendar in the document
- Added `+` icon in grid's add field
### Other Updates
- Added vertical padding for progress bar
- Hide url cell accessory when the content is empty
### Bug fixes:
- Fixed unable to export markdown
- Fixed adding vertical padding for progress bar
- Fixed database view didn't update after the database layout changed.
## Version 0.2.0 - 06/08/2023
### New Features
- Improved checklists to support each cell having its own list
- Drag and drop calendar events
- Switch layouts (calendar, grid, kanban) of a database
- New database properties: 'Updated At' and 'Created At'
- Enabled hiding properties on the row detail page
- Added support for reordering and saving row order in different database views.
- Enabled each database view to have its own settings, including filter and sort options
- Added support to convert `“` (double quote) into a block quote
- Added support to convert `***` (three stars) into a divider
- Added support for an 'Add' button to insert a paragraph in a document and display the slash menu
- Added support for an 'Option' button to delete, duplicate, and customize block actions
### Other Updates
- Added support for importing v0.1.x documents and databases
- Added support for database import and export to CSV
- Optimized scroll behavior in documents.
- Redesigned the launch page
### Bug fixes
- Fixed bugs related to numbers
- Fixed issues with referenced databases in documents
- Fixed menu overflow issues in documents
### Data migration
The data format of this version is not compatible with previous versions. Therefore, to migrate your data to the new version, you need to use the export and import functions. Please follow the guide to learn how to export and import your data.
#### Export files in v0.1.6
https://github.com/AppFlowy-IO/AppFlowy/assets/11863087/0c89bf2b-cd97-4a7b-b627-59df8d2967d9
#### Import files in v0.2.0
https://github.com/AppFlowy-IO/AppFlowy/assets/11863087/7b392f35-4972-497a-8a7f-f38efced32e2
## Version 0.1.5 - 11/05/2023
### Bug Fixes
- Fix: calendar dates don't match with weekdays.
- Fix: sort numbers in Grid.
## Version 0.1.4 - 04/05/2023
### New features
- Use AppFlowy’s calendar views to plan and manage tasks and deadlines.
- Writing can be improved with the help of OpenAI.
## Version 0.1.3 - 24/04/2023
### New features
- Launch the official Dark Mode.
- Customize the font color and highlight color by setting a hex color value and an opacity level.
### Bug Fixes
- Fix: the slash menu can be triggered by all other keyboards than English.
- Fix: convert the single asterisk to italic text and the double asterisks to bold text.
## Version 0.1.2 - 03/28/2023
### Bug Fixes
+15 -5
View File
@@ -18,14 +18,16 @@ You are in charge of your data and customizations.
</p>
<p align="center">
<a href="http://www.appflowy.io"><b>Website</b></a> •
<a href="https://www.appflowy.io"><b>Website</b></a> •
<a href="https://discord.gg/9Q2xaN37tV"><b>Discord</b></a> •
<a href="https://twitter.com/appflowy"><b>Twitter</b></a>
</p>
<p align="center"><img src="https://user-images.githubusercontent.com/12026239/200787830-96be260b-d0a0-4152-864e-6730b19095cd.png" alt="The Open Source Alternative To Notion." width="1000px" /></p>
<p align="center"><img src="https://user-images.githubusercontent.com/12026239/174753177-98e4c899-2356-4137-bb42-374bba2b127b.png" alt="The Open Source Alternative To Notion." width="1000px" /></p>
<p align="center"><img src="https://user-images.githubusercontent.com/12026239/190650183-a940f1e0-a2c5-4797-ab3a-56758f6f696c.png" alt="The Open Source Alternative To Notion." width="1000px" /></p>
<p align="center"><img src="https://user-images.githubusercontent.com/12026239/236664610-fc209a97-815e-4716-af07-d94a859d1907.png" alt="AppFlowy Docs & Notes & Wikis" width="1000px" /></p>
<p align="center"><img src="https://user-images.githubusercontent.com/12026239/236664628-5def2450-914a-4b2d-b907-92b7476b9863.png" alt="AppFlowy Databases for Tasks and Projects" width="1000px" /></p>
<p align="center"><img src="https://user-images.githubusercontent.com/12026239/236664642-22e26c1b-5eae-4635-9aa6-b12ecf1c3c46.png" alt="AppFlowy Kanban Board for To-Dos" width="1000px" /></p>
<p align="center"><img src="https://github.com/AppFlowy-IO/AppFlowy/assets/12026239/6be93d2b-a5c5-48a9-b7cf-c599d5f5140c" alt="AppFlowy Calendars for Plan and Manage Content" width="1000px" /></p>
<p align="center"><img src="https://user-images.githubusercontent.com/12026239/236664657-dc5291f3-67b0-4a43-a818-640e92735deb.png" alt="AppFlowy OpenAI GPT Writers" width="1000px" /></p>
## User Installation
@@ -45,7 +47,7 @@ You are in charge of your data and customizations.
## Getting Started with development
Please view the [documentation](https://appflowy.gitbook.io/docs/essential-documentation/contribute-to-appflowy) for OS specific development instructions
Please view the [documentation](https://docs.appflowy.io/docs/documentation/appflowy/from-source) for OS specific development instructions
## Roadmap
@@ -66,6 +68,14 @@ Contributions make the open-source community a fantastic place to learn, inspire
If your Pull Request is accepted as it fixes a bug, adds functionality, or makes AppFlowy's codebase significantly easier to use or understand, **Congratulations!** If your administrative and managerial work behind the scenes sustains the community, **Congratulations!** You are now an official contributor to AppFlowy. Get in touch with us ([link](https://tally.so/r/mKP5z3)) to receive the very special Contributor T-shirt!
Proudly wear your T-shirt and show it to us by tagging [@appflowy](https://twitter.com/appflowy) on Twitter.
## Translations 🌎🗺
[![translation badge](https://inlang.com/badge?url=github.com/AppFlowy-IO/AppFlowy)](https://inlang.com/editor/github.com/AppFlowy-IO/AppFlowy?ref=badge)
To add translations, you can manually edit the JSON translation files in `/frontend/resources/translations`, use the [inlang online editor](https://inlang.com/editor/github.com/AppFlowy-IO/AppFlowy), or run `npx inlang machine translate` to add missing translations.
## Join the community to build AppFlowy together
<a href="https://github.com/AppFlowy-IO/AppFlowy/graphs/contributors">
+35 -46
View File
@@ -4,6 +4,18 @@
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
// This task only builds the Dart code of AppFlowy.
// It supports both the desktop and mobile version.
"name": "AF: Build Dart Only",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"env": {
"RUST_LOG": "debug",
},
"cwd": "${workspaceRoot}/appflowy_flutter"
},
{
// This task builds the Rust and Dart code of AppFlowy.
"name": "AF-desktop: Build All",
@@ -13,18 +25,7 @@
"preLaunchTask": "AF: Build Appflowy Core",
"env": {
"RUST_LOG": "trace",
// "RUST_LOG": "debug"
},
"cwd": "${workspaceRoot}/appflowy_flutter"
},
{
// This task only builds the Dart code of AppFlowy.
"name": "AF-desktop: Build Dart Only",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"env": {
"RUST_LOG": "debug"
"RUST_BACKTRACE": 1
},
"cwd": "${workspaceRoot}/appflowy_flutter"
},
@@ -44,46 +45,44 @@
"cwd": "${workspaceRoot}/appflowy_flutter"
},
{
"name": "AF-desktop: Debug Rust",
"request": "attach",
"type": "lldb",
"pid": "${command:pickMyProcess}"
},
// {
// "name": "AF-desktop: profile mode",
// "request": "launch",
// "program": "./lib/main.dart",
// "type": "dart",
// "flutterMode": "profile",
// "cwd": "${workspaceRoot}/appflowy_flutter"
// },
{
// This task builds the Rust and Dart code of AppFlowy for android.
"name": "AF-android: Build All",
"name": "AF-iOS: Clean + Rebuild All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: build_mobile_sdk",
"preLaunchTask": "AF: Clean + Rebuild All (iOS)",
"env": {
"RUST_LOG": "info"
"RUST_LOG": "trace"
},
"cwd": "${workspaceRoot}/appflowy_flutter"
},
{
// This task builds will:
// - call the clean task,
// - rebuild all the generated Files (including freeze and language files)
// - rebuild the the Rust and Dart code of AppFlowy.
"name": "AF-android: Clean + Rebuild All",
"name": "AF-iOS-Simulator: Clean + Rebuild All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: Clean + Rebuild All (iOS Simulator)",
"env": {
"RUST_LOG": "trace"
},
"cwd": "${workspaceRoot}/appflowy_flutter"
},
{
"name": "AF-Android: Clean + Rebuild All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: Clean + Rebuild All (Android)",
"env": {
"RUST_LOG": "info"
"RUST_LOG": "trace"
},
"cwd": "${workspaceRoot}/appflowy_flutter"
},
{
"name": "AF-desktop: Debug Rust",
"request": "attach",
"type": "lldb",
"pid": "${command:pickMyProcess}"
},
{
// https://tauri.app/v1/guides/debugging/vs-code
"type": "lldb",
@@ -99,15 +98,5 @@
"preLaunchTask": "AF: Tauri UI Dev",
"cwd": "${workspaceRoot}/appflowy_tauri/"
},
// {
// "type": "lldb",
// "request": "launch",
// "name": "AF-tauri: Production Debug",
// "cargo": {
// "args": ["build", "--release", "--manifest-path=./appflowy_tauri/src-tauri/Cargo.toml"]
// },
// "preLaunchTask": "AF: Tauri UI Build",
// "cwd": "${workspaceRoot}/appflowy_tauri/"
// },
]
}
+119 -26
View File
@@ -20,13 +20,70 @@
"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",
"panel": "new"
}
},
{
"label": "AF: Clean + Rebuild All (iOS)",
"type": "shell",
"dependsOrder": "sequence",
"dependsOn": [
"AF: Dart Clean",
"AF: Flutter Clean",
"AF: Build Appflowy Core For iOS",
"AF: Flutter Pub Get",
"AF: Flutter Package Get",
"AF: Generate Language Files",
"AF: Generate Freezed Files",
"AF: Generate Svg Files"
],
"presentation": {
"reveal": "always",
"panel": "new"
}
},
{
"label": "AF: Clean + Rebuild All (iOS Simulator)",
"type": "shell",
"dependsOrder": "sequence",
"dependsOn": [
"AF: Dart Clean",
"AF: Flutter Clean",
"AF: Build Appflowy Core For iOS Simulator",
"AF: Flutter Pub Get",
"AF: Flutter Package Get",
"AF: Generate Language Files",
"AF: Generate Freezed Files",
"AF: Generate Svg Files"
],
"presentation": {
"reveal": "always",
"panel": "new"
}
},
{
"label": "AF: Build Appflowy Core For iOS",
"type": "shell",
"command": "cargo make --profile development-ios-arm64 appflowy-core-dev-ios",
"group": "build",
"options": {
"cwd": "${workspaceFolder}"
}
},
{
"label": "AF: Build Appflowy Core For iOS Simulator",
"type": "shell",
"command": "cargo make --profile development-ios-arm64-sim appflowy-core-dev-ios",
"group": "build",
"options": {
"cwd": "${workspaceFolder}"
}
},
{
"label": "AF: Clean + Rebuild All (Android)",
"type": "shell",
@@ -34,11 +91,12 @@
"dependsOn": [
"AF: Dart Clean",
"AF: Flutter Clean",
"AF: Build Appflowy Core_for_android",
"AF: Build Appflowy Core For Android",
"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",
@@ -46,7 +104,7 @@
}
},
{
"label": "AF: Build Appflowy Core_for_android",
"label": "AF: Build Appflowy Core For Android",
"type": "shell",
"command": "cargo make --profile development-android appflowy-core-dev-android",
"group": "build",
@@ -80,7 +138,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",
@@ -118,15 +177,11 @@
{
"label": "AF: Generate Freezed Files",
"type": "shell",
"command": "flutter pub run build_runner build --delete-conflicting-outputs",
"command": "sh ./scripts/code_generation/freezed/generate_freezed.sh",
"options": {
"cwd": "${workspaceFolder}/appflowy_flutter"
}
},
{
"label": "AF: Generate Language Files",
"type": "shell",
"command": "sh ./scripts/generate_language_files.sh",
"cwd": "${workspaceFolder}"
},
"group": "build",
"windows": {
"options": {
"shell": {
@@ -134,7 +189,45 @@
"args": [
"/d",
"/c",
".\\scripts\\generate_language_files.cmd"
".\\scripts\\code_generation\\freezed\\generate_freezed.cmd"
]
}
}
}
},
{
"label": "AF: Generate Language Files",
"type": "shell",
"command": "sh ./scripts/code_generation/language_files/generate_language_files.sh",
"windows": {
"options": {
"shell": {
"executable": "cmd.exe",
"args": [
"/d",
"/c",
".\\scripts\\code_generation\\language_files\\generate_language_files.cmd"
]
}
}
},
"group": "build",
"options": {
"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"
]
}
}
@@ -157,10 +250,7 @@
"label": "AF: flutter build aar",
"type": "flutter",
"command": "flutter",
"args": [
"build",
"aar"
],
"args": ["build", "aar"],
"group": "build",
"problemMatcher": [],
"detail": "appflowy_flutter"
@@ -170,9 +260,7 @@
"type": "shell",
"isBackground": true,
"command": "yarn",
"args": [
"dev"
],
"args": ["dev"],
"options": {
"cwd": "${workspaceFolder}/appflowy_tauri"
}
@@ -180,7 +268,7 @@
{
"label": "AF: Tauri UI Build",
"type": "shell",
"command": "npm run build",
"command": "pnpm run build",
"options": {
"cwd": "${workspaceFolder}/appflowy_tauri"
}
@@ -205,10 +293,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}"
}
@@ -221,5 +306,13 @@
"cwd": "${workspaceFolder}/appflowy_tauri"
}
},
{
"label": "AF: Generate Env File",
"type": "shell",
"command": "dart run build_runner clean && dart run build_runner build --delete-conflicting-outputs ",
"options": {
"cwd": "${workspaceFolder}/appflowy_flutter"
}
},
]
}
+64 -21
View File
@@ -2,6 +2,7 @@
extend = [
{ path = "scripts/makefile/desktop.toml" },
{ path = "scripts/makefile/mobile.toml" },
{ path = "scripts/makefile/protobuf.toml" },
{ path = "scripts/makefile/tests.toml" },
{ path = "scripts/makefile/docker.toml" },
@@ -19,11 +20,12 @@ run_task = { name = ["restore-crate-type"] }
[env]
RUST_LOG = "info"
CARGO_PROFILE = "dev"
CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true
CARGO_MAKE_CRATE_FS_NAME = "dart_ffi"
CARGO_MAKE_CRATE_NAME = "dart-ffi"
LIB_NAME = "dart_ffi"
CURRENT_APP_VERSION = "0.1.3"
CURRENT_APP_VERSION = "0.3.8"
FLUTTER_DESKTOP_FEATURES = "dart,rev-sqlite"
PRODUCT_NAME = "AppFlowy"
# CRATE_TYPE: https://doc.rust-lang.org/reference/linkage.html
@@ -59,6 +61,8 @@ BUILD_FLAG = "debug"
FLUTTER_OUTPUT_DIR = "Debug"
PRODUCT_EXT = "app"
BUILD_ARCHS = "arm64"
BUILD_ACTIVE_ARCHS_ONLY = true
CRATE_TYPE = "staticlib"
[env.development-mac-x86_64]
RUST_LOG = "info"
@@ -68,8 +72,11 @@ BUILD_FLAG = "debug"
FLUTTER_OUTPUT_DIR = "Debug"
PRODUCT_EXT = "app"
BUILD_ARCHS = "x86_64"
BUILD_ACTIVE_ARCHS_ONLY = true
CRATE_TYPE = "staticlib"
[env.production-mac-arm64]
CARGO_PROFILE = "release"
BUILD_FLAG = "release"
TARGET_OS = "macos"
RUST_COMPILE_TARGET = "aarch64-apple-darwin"
@@ -77,8 +84,11 @@ FLUTTER_OUTPUT_DIR = "Release"
PRODUCT_EXT = "app"
APP_ENVIRONMENT = "production"
BUILD_ARCHS = "arm64"
BUILD_ACTIVE_ARCHS_ONLY = false
CRATE_TYPE = "staticlib"
[env.production-mac-x86_64]
CARGO_PROFILE = "release"
BUILD_FLAG = "release"
TARGET_OS = "macos"
RUST_COMPILE_TARGET = "x86_64-apple-darwin"
@@ -86,6 +96,17 @@ FLUTTER_OUTPUT_DIR = "Release"
PRODUCT_EXT = "app"
APP_ENVIRONMENT = "production"
BUILD_ARCHS = "x86_64"
BUILD_ACTIVE_ARCHS_ONLY = false
CRATE_TYPE = "staticlib"
[env.production-mac-universal]
CARGO_PROFILE = "release"
BUILD_FLAG = "release"
TARGET_OS = "macos"
FLUTTER_OUTPUT_DIR = "Release"
PRODUCT_EXT = "app"
BUILD_ACTIVE_ARCHS_ONLY = false
APP_ENVIRONMENT = "production"
[env.development-windows-x86]
TARGET_OS = "windows"
@@ -97,6 +118,7 @@ CRATE_TYPE = "cdylib"
LIB_EXT = "dll"
[env.production-windows-x86]
CARGO_PROFILE = "release"
BUILD_FLAG = "release"
TARGET_OS = "windows"
RUST_COMPILE_TARGET = "x86_64-pc-windows-msvc"
@@ -116,6 +138,7 @@ LIB_EXT = "so"
LINUX_ARCH = "x64"
[env.production-linux-x86_64]
CARGO_PROFILE = "release"
BUILD_FLAG = "release"
TARGET_OS = "linux"
RUST_COMPILE_TARGET = "x86_64-unknown-linux-gnu"
@@ -136,6 +159,7 @@ LINUX_ARCH = "arm64"
FLUTTER_DESKTOP_FEATURES = "dart,rev-sqlite,openssl_vendored"
[env.production-linux-aarch64]
CARGO_PROFILE = "release"
BUILD_FLAG = "release"
TARGET_OS = "linux"
RUST_COMPILE_TARGET = "aarch64-unknown-linux-gnu"
@@ -146,6 +170,45 @@ LINUX_ARCH = "arm64"
APP_ENVIRONMENT = "production"
FLUTTER_DESKTOP_FEATURES = "dart,rev-sqlite,openssl_vendored"
[env.development-ios-arm64-sim]
BUILD_FLAG = "debug"
TARGET_OS = "ios"
FLUTTER_OUTPUT_DIR = "Debug"
RUST_COMPILE_TARGET = "aarch64-apple-ios-sim"
BUILD_ARCHS = "arm64"
CRATE_TYPE = "staticlib"
[env.development-ios-arm64]
BUILD_FLAG = "debug"
TARGET_OS = "ios"
FLUTTER_OUTPUT_DIR = "Debug"
RUST_COMPILE_TARGET = "aarch64-apple-ios"
BUILD_ARCHS = "arm64"
CRATE_TYPE = "staticlib"
[env.production-ios-arm64]
BUILD_FLAG = "release"
TARGET_OS = "ios"
FLUTTER_OUTPUT_DIR = "Release"
RUST_COMPILE_TARGET = "aarch64-apple-ios"
BUILD_ARCHS = "arm64"
CRATE_TYPE = "staticlib"
[env.development-android]
BUILD_FLAG = "debug"
TARGET_OS = "android"
CRATE_TYPE = "cdylib"
FLUTTER_OUTPUT_DIR = "Debug"
LIB_EXT = "so"
FLUTTER_DESKTOP_FEATURES = "dart,rev-sqlite,openssl_vendored"
[env.production-android]
BUILD_FLAG = "release"
TARGET_OS = "android"
CRATE_TYPE = "cdylib"
FLUTTER_OUTPUT_DIR = "Release"
LIB_EXT = "so"
[tasks.echo_env]
script = ['''
echo "-------- Env Parameters --------"
@@ -161,26 +224,6 @@ script = ['''
''']
script_runner = "@shell"
[env.production-ios]
BUILD_FLAG = "release"
TARGET_OS = "ios"
FLUTTER_OUTPUT_DIR = "Release"
PRODUCT_EXT = "ipa"
[env.development-android]
BUILD_FLAG = "debug"
TARGET_OS = "android"
CRATE_TYPE = "cdylib"
FLUTTER_OUTPUT_DIR = "Debug"
FLUTTER_DESKTOP_FEATURES = "dart,rev-sqlite,openssl_vendored"
[env.production-android]
BUILD_FLAG = "release"
TARGET_OS = "android"
CRATE_TYPE = "cdylib"
FLUTTER_OUTPUT_DIR = "Release"
FLUTTER_DESKTOP_FEATURES = "dart,rev-sqlite,openssl_vendored"
[tasks.setup-crate-type]
private = true
script = [
+10
View File
@@ -68,3 +68,13 @@ windows/flutter/dart_ffi/
**/**/Brewfile.lock.json
**/.sandbox
**/.vscode/
.env
.env.*
coverage/
**/failures/*.png
assets/translations/
assets/flowy_icons/*
+7 -7
View File
@@ -4,8 +4,8 @@
# This file should be version controlled.
version:
revision: 135454af32477f815a7525073027a3ff9eff1bfd
channel: stable
revision: 682aa387cfe4fbd71ccd5418b2c2a075729a1c66
channel: unknown
project_type: app
@@ -13,11 +13,11 @@ project_type: app
migration:
platforms:
- platform: root
create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
- platform: windows
create_revision: 135454af32477f815a7525073027a3ff9eff1bfd
base_revision: 135454af32477f815a7525073027a3ff9eff1bfd
create_revision: 682aa387cfe4fbd71ccd5418b2c2a075729a1c66
base_revision: 682aa387cfe4fbd71ccd5418b2c2a075729a1c66
- platform: android
create_revision: 682aa387cfe4fbd71ccd5418b2c2a075729a1c66
base_revision: 682aa387cfe4fbd71ccd5418b2c2a075729a1c66
# User provided section
+2 -2
View File
@@ -1,7 +1,7 @@
.PHONY: freeze_build, free_watch
freeze_build:
flutter pub run build_runner build --delete-conflicting-outputs
dart run build_runner build -d
watch:
flutter pub run build_runner watch
dart run build_runner watch
+15 -17
View File
@@ -1,6 +1,6 @@
<h1 align="center" style="margin:0"> AppFlowy_Flutter</h1>
<div align="center">
<img src="https://img.shields.io/badge/Flutter-v3.7.5-blue"/>
<img src="https://img.shields.io/badge/Flutter-v3.10.1-blue"/>
<img src="https://img.shields.io/badge/Rust-v1.65-orange"/>
</div>
@@ -13,11 +13,13 @@ This Repository contains the codebase for the frontend of the application, curre
- Linux
- macOS
- Windows
> We later expect to extend support to Android and iOS devices using Flutter.
> We are actively working on support for Android & iOS!
_Additionally, we are working on a Web version built with Tauri!_
### Am I Eligible to Contribute?
Yes! You are eligible to contribute, check out the ways in which you can [contribute to AppFlowy](https://appflowy.gitbook.io/docs/essential-documentation/contribute-to-appflowy/contributing-to-appflowy). Some of the ways in which you can contribute are:
Yes! You are eligible to contribute, check out the ways in which you can [contribute to AppFlowy](https://docs.appflowy.io/docs/documentation/software-contributions/contributing-to-appflowy). Some of the ways in which you can contribute are:
- Non-Coding Contributions
- Documentation
@@ -26,27 +28,23 @@ Yes! You are eligible to contribute, check out the ways in which you can [contri
- Improve Translations
- Coding Contributions
To contribute to `AppFlowy_Flutter` codebase specifically (coding contribution) we suggest you to have basic knowledge of Flutter. In case you are new to Flutter, we may suggest you to learn the basics and then try to contribute, get started with Flutter [here](https://flutter.dev/docs/get-started/codelab).
To contribute to `AppFlowy_Flutter` codebase specifically (coding contribution) we suggest you to have basic knowledge of Flutter. In case you are new to Flutter, we suggest you learn the basics, and then contribute afterwards. To get started with Flutter read [here](https://flutter.dev/docs/get-started/codelab).
### What OS Should I Use for Development?
### What OS should I use for development?
We support all OS for Development i.e Linux, macOS and Windows. However, most of us promote macOS and Linux over Windows. We have detailed [docs](https://appflowy.gitbook.io/docs/essential-documentation/contribute-to-appflowy/software-contributions/environment-setup) on How to Setup `AppFlowy_Flutter` in your local system in each OS.
We support all OS for Development i.e. Linux, MacOS and Windows. However, most of us promote macOS and Linux over Windows. We have detailed [docs](https://docs.appflowy.io/docs/documentation/appflowy/from-source/environment-setup) on how to setup `AppFlowy_Flutter` on your local system respectively per operating system.
### Getting Started ❇
We have a detailed documentation, on how to [get started](https://appflowy.gitbook.io/docs/essential-documentation/contribute-to-appflowy/contributing-to-appflowy) with the project, and make your first contribution. However, we do have some specific picks for you.
We have detailed documentation on how to [get started](https://docs.appflowy.io/docs/documentation/software-contributions/contributing-to-appflowy) with the project, and make your first contribution. However, we do have some specific picks for you:
- [Code Architecture](https://appflowy.gitbook.io/docs/essential-documentation/contribute-to-appflowy/architecture/frontend/frontend/codemap)
- [Making Your First PR](https://appflowy.gitbook.io/docs/essential-documentation/contribute-to-appflowy/software-contributions/submitting-code/submitting-your-first-pull-request)
- [The Style Guide](https://appflowy.gitbook.io/docs/essential-documentation/contribute-to-appflowy/software-contributions/submitting-code/style-guides)
- [How to run/debug the application](https://appflowy.gitbook.io/docs/essential-documentation/contribute-to-appflowy/software-contributions/launcher-and-tasks)
- [Styleguide & Conventions](https://docs.appflowy.io/docs/documentation/software-contributions/conventions/naming-conventions)
- [Making Your First PR](https://docs.appflowy.io/docs/documentation/software-contributions/submitting-code/submitting-your-first-pull-request)
- [All AppFlowy Documentation](https://docs.appflowy.io/docs/documentation/appflowy) - Contribution guide, build and run, debugging, testing, localization, etc.
### Need Help?
- New to GitHub? Follow [these](https://appflowy.gitbook.io/docs/essential-documentation/contribute-to-appflowy/software-contributions/submitting-code/setting-up-your-repositories) steps to get started
- Stuck Somewhere? Join the [Discord](https://discord.gg/9Q2xaN37tV) Group and we are there to help you!
<!--
## release check
1. [entitlements](https://flutter.dev/desktop#setting-up-entitlements)
2. [symbols stripped](https://flutter.dev/docs/development/platform-integration/c-interop) -->
- New to GitHub? Follow [these](https://docs.appflowy.io/docs/documentation/software-contributions/submitting-code/setting-up-your-repositories) steps to get started
- Stuck Somewhere? Join our [Discord](https://discord.gg/9Q2xaN37tV), we're there to help you!
- Find out more about the [community initiatives](https://docs.appflowy.io/docs/appflowy/community).
@@ -30,6 +30,10 @@ linter:
rules:
- require_trailing_commas
- prefer_final_fields
- prefer_final_in_for_each
- prefer_final_locals
# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options
@@ -11,3 +11,5 @@ GeneratedPluginRegistrant.java
key.properties
**/*.keystore
**/*.jks
.cxx
@@ -26,7 +26,7 @@ apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
compileSdkVersion 31
compileSdkVersion 33
ndkVersion "24.0.8215888"
compileOptions {
@@ -46,11 +46,16 @@ android {
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "io.appflowy.appflowy"
minSdkVersion 19
minSdkVersion 23
targetSdkVersion 31
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
multiDexEnabled true
externalNativeBuild {
cmake {
arguments "-DANDROID_ARM_NEON=TRUE", "-DANDROID_STL=c++_shared"
}
}
}
buildTypes {
@@ -63,6 +68,14 @@ android {
signingConfig signingConfigs.debug
}
}
namespace 'io.appflowy.appflowy'
externalNativeBuild {
cmake {
path "src/main/CMakeLists.txt"
}
}
}
flutter {
@@ -1,5 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="io.appflowy.appflowy">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
@@ -1,42 +1,48 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="io.appflowy.appflowy">
<application
android:label="appflowy_flutter"
android:icon="@mipmap/ic_launcher"
android:name="${applicationName}">
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
<!-- Displays an Android View that continues showing the launch screen
Drawable until Flutter paints its first frame, then this splash
screen fades out. A splash screen is useful to avoid any visual
gap between the end of Android's launch screen and the painting of
Flutter's first frame. -->
<meta-data
android:name="io.flutter.embedding.android.SplashScreenDrawable"
android:resource="@drawable/launch_background"
/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data
android:name="flutterEmbedding"
android:value="2" />
</application>
</manifest>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application android:label="AppFlowy" android:icon="@mipmap/ic_launcher"
android:name="${applicationName}">
<activity android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true" android:windowSoftInputMode="adjustResize">
<!--
Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI.
-->
<meta-data android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme" />
<!--
Displays an Android View that continues showing the launch screen
Drawable until Flutter paints its first frame, then this splash
screen fades out. A splash screen is useful to avoid any visual
gap between the end of Android's launch screen and the painting of
Flutter's first frame.
-->
<meta-data android:name="io.flutter.embedding.android.SplashScreenDrawable"
android:resource="@drawable/launch_background" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="flutter_deeplinking_enabled" android:value="true" />
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:scheme="appflowy-flutter" />
<!-- <data android:host="login-callback" /> -->
</intent-filter>
</activity>
<!--
Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java
-->
<meta-data android:name="flutterEmbedding" android:value="2" />
</application>
</manifest>
@@ -0,0 +1,15 @@
cmake_minimum_required(VERSION 3.10.0)
project(AppFlowy)
# arm64-v8a
file(COPY
${ANDROID_NDK}/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_shared.so
DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/jniLibs/arm64-v8a
)
# x86_64
file(COPY
${ANDROID_NDK}/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_shared.so
DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/jniLibs/x86_64
)
@@ -0,0 +1,18 @@
#include <stdarg.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
int64_t init_sdk(char *path);
void async_event(int64_t port, const uint8_t *input, uintptr_t len);
const uint8_t *sync_event(const uint8_t *input, uintptr_t len);
int32_t set_stream_port(int64_t port);
void link_me_please(void);
void backend_log(int64_t level, const char *data);
void set_env(const char *data);
Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 442 B

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 721 B

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 16 KiB

@@ -1,5 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="io.appflowy.appflowy">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
@@ -1,12 +1,12 @@
buildscript {
ext.kotlin_version = '1.6.10'
ext.kotlin_version = '1.8.0'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
classpath 'com.android.tools.build:gradle:7.4.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
@@ -24,6 +24,6 @@ subprojects {
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
tasks.register("clean", Delete) {
delete rootProject.buildDir
}
@@ -2,3 +2,4 @@ org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
org.gradle.caching=true
android.suppressUnsupportedCompileSdk=33
@@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
@@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

@@ -1,5 +0,0 @@
<svg width="16" height="17" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8 14.0039C11.3137 14.0039 14 11.3176 14 8.00391C14 4.6902 11.3137 2.00391 8 2.00391C4.68629 2.00391 2 4.6902 2 8.00391C2 11.3176 4.68629 14.0039 8 14.0039Z" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="7.5" y="7.00391" width="1" height="4" rx="0.5" fill="#333333"/>
<rect x="7.5" y="5.00391" width="1" height="1" rx="0.5" fill="#333333"/>
</svg>

Before

Width:  |  Height:  |  Size: 482 B

@@ -1,4 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="2" y="2" width="12" height="12" rx="4" fill="#00BCF0"/>
<path d="M6 8L7.61538 9.5L10.5 6.5" stroke="white" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 268 B

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16px" height="16px" viewBox="0 0 16 16" version="1.1">
<g id="surface1">
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(12.941176%,12.941176%,12.941176%);fill-opacity:1;" d="M 8 1.332031 C 11.683594 1.332031 14.667969 4.316406 14.667969 8 C 14.667969 11.683594 11.683594 14.667969 8 14.667969 C 4.316406 14.667969 1.332031 11.683594 1.332031 8 C 1.332031 4.316406 4.316406 1.332031 8 1.332031 Z M 8 2.332031 C 4.871094 2.332031 2.332031 4.871094 2.332031 8 C 2.332031 11.128906 4.871094 13.667969 8 13.667969 C 11.128906 13.667969 13.667969 11.128906 13.667969 8 C 13.667969 4.871094 11.128906 2.332031 8 2.332031 Z M 5.640625 9.855469 C 6.207031 10.574219 7.066406 11 8 11 C 8.929688 11 9.789062 10.574219 10.355469 9.859375 C 10.527344 9.640625 10.84375 9.605469 11.058594 9.777344 C 11.277344 9.949219 11.3125 10.261719 11.140625 10.476562 C 10.386719 11.433594 9.238281 12 8 12 C 6.757812 12 5.609375 11.429688 4.855469 10.476562 C 4.683594 10.257812 4.722656 9.945312 4.9375 9.773438 C 5.15625 9.601562 5.46875 9.640625 5.640625 9.855469 Z M 6 5.835938 C 6.460938 5.835938 6.832031 6.207031 6.832031 6.667969 C 6.832031 7.125 6.460938 7.5 6 7.5 C 5.539062 7.5 5.167969 7.125 5.167969 6.667969 C 5.167969 6.207031 5.539062 5.835938 6 5.835938 Z M 10 5.835938 C 10.460938 5.835938 10.832031 6.207031 10.832031 6.667969 C 10.832031 7.125 10.460938 7.5 10 7.5 C 9.539062 7.5 9.167969 7.125 9.167969 6.667969 C 9.167969 6.207031 9.539062 5.835938 10 5.835938 Z M 10 5.835938 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16px" height="16px" viewBox="0 0 16 16" version="1.1">
<g id="surface1">
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(12.941176%,12.941176%,12.941176%);fill-opacity:1;" d="M 11.667969 8 C 13.691406 8 15.332031 9.640625 15.332031 11.667969 C 15.332031 13.691406 13.691406 15.332031 11.667969 15.332031 C 9.640625 15.332031 8 13.691406 8 11.667969 C 8 9.640625 9.640625 8 11.667969 8 Z M 8 1.332031 C 11.683594 1.332031 14.667969 4.316406 14.667969 8 C 14.667969 8.175781 14.660156 8.351562 14.648438 8.523438 C 14.355469 8.246094 14.023438 8.007812 13.664062 7.820312 C 13.570312 4.773438 11.070312 2.332031 8 2.332031 C 4.871094 2.332031 2.332031 4.871094 2.332031 8 C 2.332031 11.070312 4.773438 13.570312 7.820312 13.664062 C 8.007812 14.027344 8.246094 14.355469 8.523438 14.648438 C 8.351562 14.660156 8.175781 14.667969 8 14.667969 C 4.316406 14.667969 1.332031 11.683594 1.332031 8 C 1.332031 4.316406 4.316406 1.332031 8 1.332031 Z M 11.667969 9.332031 L 11.605469 9.339844 C 11.46875 9.363281 11.363281 9.46875 11.339844 9.605469 L 11.332031 9.667969 L 11.332031 11.332031 L 9.664062 11.332031 L 9.605469 11.339844 C 9.46875 11.363281 9.363281 11.46875 9.335938 11.605469 L 9.332031 11.667969 L 9.335938 11.726562 C 9.363281 11.863281 9.46875 11.96875 9.605469 11.996094 L 9.664062 12 L 11.332031 12 L 11.335938 13.667969 L 11.339844 13.730469 C 11.363281 13.863281 11.472656 13.972656 11.609375 13.996094 L 11.667969 14.003906 L 11.726562 13.996094 C 11.863281 13.972656 11.96875 13.863281 11.996094 13.730469 L 12 13.667969 L 12 12 L 13.667969 12 L 13.730469 11.996094 C 13.867188 11.96875 13.972656 11.863281 13.996094 11.726562 L 14.003906 11.667969 L 13.996094 11.605469 C 13.972656 11.46875 13.867188 11.363281 13.730469 11.339844 L 13.667969 11.332031 L 12 11.332031 L 12 9.667969 L 11.996094 9.605469 C 11.96875 9.46875 11.863281 9.363281 11.726562 9.339844 Z M 5.640625 9.855469 C 6.082031 10.414062 6.703125 10.796875 7.394531 10.941406 C 7.355469 11.175781 7.332031 11.417969 7.332031 11.667969 C 7.332031 11.761719 7.335938 11.855469 7.34375 11.945312 C 6.359375 11.785156 5.472656 11.261719 4.855469 10.476562 C 4.683594 10.257812 4.722656 9.945312 4.9375 9.773438 C 5.15625 9.601562 5.46875 9.640625 5.640625 9.855469 Z M 6 5.835938 C 6.460938 5.835938 6.832031 6.207031 6.832031 6.667969 C 6.832031 7.125 6.460938 7.5 6 7.5 C 5.539062 7.5 5.167969 7.125 5.167969 6.667969 C 5.167969 6.207031 5.539062 5.835938 6 5.835938 Z M 10 5.835938 C 10.460938 5.835938 10.832031 6.207031 10.832031 6.667969 C 10.832031 7.125 10.460938 7.5 10 7.5 C 9.539062 7.5 9.167969 7.125 9.167969 6.667969 C 9.167969 6.207031 9.539062 5.835938 10 5.835938 Z M 10 5.835938 "/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

@@ -1,4 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9 2.5V6C9 6.55228 9.44772 7 10 7H12" stroke="#333333"/>
<path d="M3.5 3.5C3.5 2.94771 3.94772 2.5 4.5 2.5H8H8.5C9.12951 2.5 9.72229 2.79639 10.1 3.3L12.1 5.96667C12.3596 6.31286 12.5 6.73393 12.5 7.16667V8V12.5C12.5 13.0523 12.0523 13.5 11.5 13.5H4.5C3.94772 13.5 3.5 13.0523 3.5 12.5V3.5Z" stroke="#333333"/>
</svg>

Before

Width:  |  Height:  |  Size: 423 B

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.5 15V6.9C3.5 6.05992 3.5 5.63988 3.66349 5.31901C3.8073 5.03677 4.03677 4.8073 4.31901 4.66349C4.63988 4.5 5.05992 4.5 5.9 4.5H8.47237C8.84808 4.5 9.03594 4.5 9.20646 4.55179C9.35741 4.59763 9.49785 4.6728 9.61972 4.77298C9.75739 4.88614 9.86159 5.04245 10.07 5.35507L10.93 6.64533C11.1384 6.95795 11.2426 7.11426 11.3803 7.22742C11.5022 7.3276 11.6426 7.40277 11.7935 7.44861C11.9641 7.5004 12.1519 7.5004 12.5276 7.5004H16.5004C16.965 7.5004 17.1973 7.5004 17.3879 7.55143C17.9058 7.69008 18.3103 8.09459 18.449 8.61248C18.5 8.80308 18.5 9.03539 18.5 9.5V9.5M10.5 13.5H16.5" stroke="#222222" stroke-linecap="round"/>
<path d="M4.5 18.5L16.7701 18.5004C17.3922 18.5004 17.7032 18.5004 17.9679 18.3963C18.2016 18.3044 18.4084 18.1553 18.5695 17.9626C18.752 17.7445 18.8503 17.4494 19.047 16.8593L20.4471 12.6592C20.8026 11.5927 20.9803 11.0595 20.8737 10.635C20.7804 10.2635 20.5485 9.94171 20.2255 9.7357C19.8566 9.50035 19.2945 9.50033 18.1703 9.5003L10.2299 9.50005C9.60784 9.50003 9.29681 9.50002 9.03216 9.60411C8.79846 9.69601 8.59157 9.84513 8.43047 10.0378C8.24804 10.2559 8.14968 10.551 7.95298 11.1411L5.7649 17.7057C5.60671 18.1803 5.16255 18.5004 4.66227 18.5004V18.5004C4.02037 18.5004 3.5 17.98 3.5 17.3381V14.5" stroke="#222222"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

@@ -1,3 +0,0 @@
<svg width="10" height="8" viewBox="0 0 10 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1 5.2L2.84615 7L9 1" stroke="#00BCF0" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 198 B

@@ -1,6 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3 4.3999H4.11111H13" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.77775 4.4V3.2C5.77775 2.88174 5.89481 2.57652 6.10319 2.35147C6.31156 2.12643 6.59418 2 6.88886 2H9.11108C9.40577 2 9.68838 2.12643 9.89676 2.35147C10.1051 2.57652 10.2222 2.88174 10.2222 3.2V4.4M11.8889 4.4V12.8C11.8889 13.1183 11.7718 13.4235 11.5634 13.6485C11.3551 13.8736 11.0724 14 10.7778 14H5.2222C4.92751 14 4.64489 13.8736 4.43652 13.6485C4.22815 13.4235 4.11108 13.1183 4.11108 12.8V4.4H11.8889Z" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M6.88892 7.3999V10.9999" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M9.11108 7.3999V10.9999" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 886 B

@@ -1,4 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.9743 6.33301H7.35889C6.79245 6.33301 6.33325 6.7922 6.33325 7.35865V11.974C6.33325 12.5405 6.79245 12.9997 7.35889 12.9997H11.9743C12.5407 12.9997 12.9999 12.5405 12.9999 11.974V7.35865C12.9999 6.7922 12.5407 6.33301 11.9743 6.33301Z" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M4.53846 9.66667H4.02564C3.75362 9.66667 3.49275 9.55861 3.3004 9.36626C3.10806 9.17392 3 8.91304 3 8.64103V4.02564C3 3.75362 3.10806 3.49275 3.3004 3.3004C3.49275 3.10806 3.75362 3 4.02564 3H8.64103C8.91304 3 9.17392 3.10806 9.36626 3.3004C9.55861 3.49275 9.66667 3.75362 9.66667 4.02564V4.53846" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 790 B

@@ -1,6 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6 13H3V10" stroke="#00BCF0" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M10 3H13V6" stroke="#00BCF0" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M3 13L7 9" stroke="#00BCF0" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M13 3L9 7" stroke="#00BCF0" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 449 B

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.9083 10.9011C10.4173 11.2751 9.83813 11.4814 9.09532 11.4814C7.93705 11.4814 6.82914 10.8367 6.45144 9.2765H10.027V8.50287H6.32554C6.31295 8.34814 6.31295 8.19341 6.31295 8.02579C6.31295 7.84527 6.32554 7.67765 6.33813 7.51003H10.027V6.73639H6.45144C6.81655 5.25358 7.82374 4.50573 9.09532 4.50573C9.72482 4.50573 10.304 4.69914 10.8201 5.06017L11.4371 4.24785C10.7194 3.73209 9.91367 3.5 9.09532 3.5C7.10612 3.5 5.72122 4.69914 5.31835 6.73639H4.5V7.51003H5.21763C5.20504 7.67765 5.20504 7.84527 5.20504 8.02579C5.20504 8.19341 5.20504 8.34814 5.21763 8.50287H4.5V9.2765H5.31835C5.7464 11.5716 7.40827 12.5 9.09532 12.5C10.0773 12.5 10.8705 12.1777 11.5 11.7264L10.9083 10.9011Z" fill="#333333"/>
</svg>

Before

Width:  |  Height:  |  Size: 814 B

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M2.201 6.4H3.001V12H2.081V7.384L0.953 7.704L0.729 6.92L2.201 6.4ZM3.91156 12V11.1L6.35156 8.61C6.9449 8.01667 7.24156 7.50333 7.24156 7.07C7.24156 6.73 7.13823 6.46667 6.93156 6.28C6.73156 6.08667 6.4749 5.99 6.16156 5.99C5.5749 5.99 5.14156 6.28 4.86156 6.86L3.89156 6.29C4.11156 5.82333 4.42156 5.47 4.82156 5.23C5.22156 4.99 5.6649 4.87 6.15156 4.87C6.7649 4.87 7.29156 5.06333 7.73156 5.45C8.17156 5.83667 8.39156 6.36333 8.39156 7.03C8.39156 7.74333 7.9949 8.50333 7.20156 9.31L5.62156 10.89H8.52156V12H3.91156ZM12.9025 7.032C13.5105 7.176 14.0025 7.46 14.3785 7.884C14.7625 8.3 14.9545 8.824 14.9545 9.456C14.9545 10.296 14.6705 10.956 14.1025 11.436C13.5345 11.916 12.8385 12.156 12.0145 12.156C11.3745 12.156 10.7985 12.008 10.2865 11.712C9.78253 11.416 9.41853 10.984 9.19453 10.416L10.3705 9.732C10.6185 10.452 11.1665 10.812 12.0145 10.812C12.4945 10.812 12.8745 10.692 13.1545 10.452C13.4345 10.204 13.5745 9.872 13.5745 9.456C13.5745 9.04 13.4345 8.712 13.1545 8.472C12.8745 8.232 12.4945 8.112 12.0145 8.112H11.7025L11.1505 7.284L12.9625 4.896H9.44653V3.6H14.6065V4.776L12.9025 7.032Z" fill="#333333"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.716 9.828C10.716 8.292 9.6 7.896 8.124 7.416C7.128 7.092 6.396 6.828 6.396 6.072C6.396 5.376 6.984 4.968 7.824 4.968C8.412 4.968 9.216 5.22 9.84 5.676L10.44 4.944C9.9 4.512 9.096 4.176 8.352 4.056V2.508H7.572V4.008C6.12 4.092 5.304 4.98 5.304 6.132C5.304 7.56 6.516 7.98 7.824 8.388C8.928 8.748 9.612 9.036 9.612 9.9C9.612 10.644 8.964 11.088 8.076 11.088C7.308 11.088 6.444 10.752 5.772 10.092L5.136 10.836C5.844 11.532 6.684 11.904 7.572 12.012V13.476H8.352V12.024C9.84 11.928 10.716 11.052 10.716 9.828Z" fill="#333333"/>
</svg>

Before

Width:  |  Height:  |  Size: 641 B

@@ -1,3 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.2301 4.25586H10.0181L8.02613 7.93986H8.00213L5.99813 4.25586H4.78613L7.06613 8.23986H5.43413V8.95986H7.47413L7.48613 8.98386V9.82386H5.43413V10.5319H7.48613V12.4999H8.53013V10.5319H10.4981V9.82386H8.53013V8.98386L8.54213 8.95986H10.4981V8.23986H8.95013L11.2301 4.25586Z" fill="#333333"/>
</svg>

Before

Width:  |  Height:  |  Size: 404 B

@@ -1,4 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.12265 11.5847C5.92255 12.1165 6.88538 12.5 8.00024 12.5C10.4842 12.5 12.2135 10.596 13.0675 9.39083C13.6624 8.55146 13.6624 7.44854 13.0675 6.60917C12.7341 6.13867 12.2673 5.56168 11.6743 5.03305L10.9661 5.74127C11.4908 6.20089 11.9225 6.72296 12.2516 7.18736C12.601 7.68035 12.601 8.31965 12.2516 8.81264C11.4276 9.97552 9.9599 11.5 8.00024 11.5C7.19618 11.5 6.47495 11.2434 5.84702 10.8603L5.12265 11.5847ZM5.03441 10.2587L4.32618 10.967C3.73316 10.4383 3.26636 9.86133 2.93294 9.39083C2.33811 8.55146 2.33811 7.44854 2.93294 6.60917C3.78701 5.40397 5.51627 3.5 8.00024 3.5C9.1151 3.5 10.0779 3.88354 10.8778 4.4153L10.1535 5.13966C9.52554 4.75665 8.80431 4.5 8.00024 4.5C6.04059 4.5 4.57293 6.02448 3.74884 7.18736C3.39948 7.68035 3.39948 8.31965 3.74884 8.81264C4.07794 9.27704 4.50968 9.79911 5.03441 10.2587ZM6.99269 9.71466C7.28548 9.8954 7.62952 10 8.00036 10C9.09422 10 9.95491 9.08996 9.95491 8C9.95491 7.64165 9.86187 7.30275 9.69811 7.00924L8.93118 7.77618C8.94668 7.84779 8.95491 7.92265 8.95491 8C8.95491 8.5669 8.51315 9 8.00036 9C7.91225 9 7.82623 8.98721 7.7442 8.96316L6.99269 9.71466ZM7.06951 8.22363L6.30253 8.99061C6.13882 8.69713 6.04582 8.35829 6.04582 8C6.04582 6.91005 6.9065 6 8.00036 6C8.37114 6 8.71513 6.10456 9.00789 6.28525L8.25635 7.03679C8.17436 7.01277 8.08841 7 8.00036 7C7.48757 7 7.04582 7.4331 7.04582 8C7.04582 8.07728 7.05403 8.15208 7.06951 8.22363Z" fill="#333333"/>
<path d="M11.667 3.33398L3.33366 11.6673" stroke="#333333" stroke-linecap="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

@@ -1,7 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10 2H13C13.5523 2 14 2.44772 14 3V6" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M6 2H3C2.44772 2 2 2.44772 2 3V6" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M6 14H3C2.44772 14 2 13.5523 2 13V10" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M10 14H13C13.5523 14 14 13.5523 14 13V10" stroke="#333333" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="6" y="6" width="4" height="4" rx="1" stroke="#333333"/>
</svg>

Before

Width:  |  Height:  |  Size: 620 B

@@ -1,4 +0,0 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.5221 3.21932C11.4366 2.6913 12.5634 2.6913 13.4779 3.21932L18.8653 6.32972C19.7799 6.85774 20.3433 7.83356 20.3433 8.88959V15.1104C20.3433 16.1664 19.7799 17.1423 18.8653 17.6703L13.4779 20.7807C12.5634 21.3087 11.4366 21.3087 10.5221 20.7807L5.13468 17.6703C4.22012 17.1423 3.65673 16.1664 3.65673 15.1104V8.88959C3.65673 7.83356 4.22012 6.85774 5.13467 6.32972L10.5221 3.21932Z" stroke="#333333" stroke-width="1.5"/>
<circle cx="12" cy="12" r="3.75" stroke="#333333" stroke-width="1.5"/>
</svg>

Before

Width:  |  Height:  |  Size: 606 B

@@ -1,4 +0,0 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="2.5" y="3" width="4" height="10" rx="1" stroke="#333333"/>
<rect x="9.5" y="7" width="4" height="6" rx="1" stroke="#333333"/>
</svg>

Before

Width:  |  Height:  |  Size: 238 B

@@ -1,17 +0,0 @@
<svg
width="16"
height="16"
viewBox="0 0 16 16"
fill="none"
version="1.1"
id="svg808"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs812" />
<path
id="path930"
style="fill:#00bcf0;fill-opacity:1"
transform="rotate(-90)"
d="M 0,7.9238281 A 8,8 0 0 0 -8.0585938,0 8,8 0 0 0 -16,8.0390625 8,8 0 0 0 -7.9804688,16 8,8 0 0 0 0,8 Z M -4,8 c 0,0.2769988 -0.2230012,0.5 -0.5,0.5 h -3 v 3 c 0,0.277 -0.2230012,0.5 -0.5,0.5 -0.2769988,0 -0.5,-0.223 -0.5,-0.5 v -3 h -3 C -11.777,8.5 -12,8.2769988 -12,8 c 0,-0.2769988 0.223,-0.5 0.5,-0.5 h 3 v -3 C -8.5,4.2230012 -8.2769988,4 -8,4 c 0.2769988,0 0.5,0.2230012 0.5,0.5 v 3 h 3 C -4.2230012,7.5 -4,7.7230012 -4,8 Z" />
</svg>

Before

Width:  |  Height:  |  Size: 766 B

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="127px" height="96px" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" xmlns:xlink="http://www.w3.org/1999/xlink">
<g><path style="opacity:0.982" fill="#5864f2" d="M 40.5,-0.5 C 42.5,-0.5 44.5,-0.5 46.5,-0.5C 46.7534,3.03777 48.5868,5.03777 52,5.5C 59.3333,4.16667 66.6667,4.16667 74,5.5C 77.4132,5.03777 79.2466,3.03777 79.5,-0.5C 81.8333,-0.5 84.1667,-0.5 86.5,-0.5C 93.6784,1.84095 100.845,4.50762 108,7.5C 117.556,21.9281 123.723,37.5947 126.5,54.5C 126.5,63.1667 126.5,71.8333 126.5,80.5C 117.234,86.2996 107.567,91.2996 97.5,95.5C 95.8333,95.5 94.1667,95.5 92.5,95.5C 90.2583,92.0205 88.2583,88.3538 86.5,84.5C 89.9621,82.9349 93.2954,81.1016 96.5,79C 95.8333,78.8333 95.1667,78.6667 94.5,78.5C 80.6757,84.0674 66.3424,85.9007 51.5,84C 44.0284,82.4993 36.6951,80.8327 29.5,79C 32.7046,81.1016 36.0379,82.9349 39.5,84.5C 37.7417,88.3538 35.7417,92.0205 33.5,95.5C 31.8333,95.5 30.1667,95.5 28.5,95.5C 18.4329,91.2996 8.76625,86.2996 -0.5,80.5C -0.5,71.8333 -0.5,63.1667 -0.5,54.5C 2.27734,37.5947 8.44401,21.9281 18,7.5C 25.419,4.30685 32.919,1.64019 40.5,-0.5 Z M 38.5,40.5 C 51.8373,41.4956 55.6706,48.1623 50,60.5C 42.3899,66.5776 36.3899,65.2442 32,56.5C 30.062,49.3891 32.2287,44.0558 38.5,40.5 Z M 80.5,40.5 C 93.8373,41.4956 97.6706,48.1623 92,60.5C 84.3899,66.5776 78.3899,65.2442 74,56.5C 72.062,49.3891 74.2287,44.0558 80.5,40.5 Z"/></g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

@@ -0,0 +1,4 @@
<svg width="207" height="205" viewBox="0 0 207 205" fill="none" xmlns="http://www.w3.org/2000/svg">
<ellipse cx="103.5" cy="102.5" rx="103.5" ry="102.5" fill="white"/>
<path d="M102.752 16C53.1943 16 13.0083 55.0187 13.0083 103.152C13.0083 141.658 38.7225 174.327 74.3807 185.851C78.8658 186.658 80.5127 183.96 80.5127 181.658C80.5127 179.58 80.4286 172.715 80.3907 165.433C55.4239 170.704 50.1557 155.15 50.1557 155.15C46.0731 145.076 40.1907 142.397 40.1907 142.397C32.0486 136.988 40.8049 137.1 40.8049 137.1C49.8163 137.714 54.5615 146.08 54.5615 146.08C62.5662 159.404 75.5565 155.552 80.6775 153.325C81.4831 147.693 83.8087 143.847 86.3755 141.671C66.442 139.468 45.4876 131.994 45.4876 98.6005C45.4876 89.0853 48.9932 81.3105 54.734 75.2072C53.8022 73.012 50.7306 64.1484 55.6034 52.1433C55.6034 52.1433 63.1397 49.8011 80.2898 61.077C87.4482 59.1461 95.1254 58.1779 102.752 58.1445C110.379 58.1779 118.063 59.1454 125.234 61.077C142.363 49.8018 149.889 52.144 149.889 52.144C154.774 64.1478 151.701 73.0127 150.769 75.2072C156.523 81.3105 160.005 89.0853 160.005 98.6005C160.005 132.074 139.011 139.445 119.027 141.602C122.245 144.307 125.114 149.611 125.114 157.742C125.114 169.402 125.01 178.787 125.01 181.658C125.01 183.978 126.625 186.695 131.174 185.838C166.813 174.302 192.495 141.646 192.495 103.153C192.495 55.0187 152.314 16 102.752 16ZM46.6206 140.15C46.4229 140.583 45.7211 140.713 45.0824 140.415C44.431 140.132 44.0658 139.541 44.2761 139.107C44.4696 138.661 45.1728 138.536 45.8221 138.835C46.4741 139.12 46.8457 139.716 46.6206 140.15ZM51.0349 143.975C50.6072 144.36 49.7701 144.181 49.2022 143.573C48.6153 142.965 48.5052 142.152 48.9392 141.762C49.3809 141.376 50.1921 141.557 50.7804 142.164C51.3679 142.779 51.4815 143.586 51.0349 143.975ZM54.0637 148.869C53.5133 149.24 52.6145 148.892 52.0585 148.118C51.5088 147.343 51.5088 146.413 52.0704 146.041C52.6278 145.668 53.5133 146.003 54.0763 146.773C54.6246 147.561 54.6246 148.49 54.063 148.87L54.0637 148.869ZM59.1847 154.537C58.6932 155.064 57.645 154.923 56.878 154.204C56.0935 153.501 55.8754 152.504 56.369 151.977C56.8668 151.449 57.9206 151.597 58.6932 152.311C59.4714 153.012 59.7098 154.017 59.1847 154.537ZM65.8047 156.451C65.5873 157.134 64.5777 157.444 63.5618 157.154C62.5466 156.855 61.8826 156.056 62.0873 155.366C62.2984 154.678 63.3122 154.356 64.3358 154.666C65.3496 154.963 66.0157 155.756 65.8047 156.451ZM73.3375 157.263C73.3627 157.981 72.501 158.577 71.4339 158.591C70.3612 158.614 69.4925 158.032 69.4806 157.324C69.4806 156.599 70.3234 156.009 71.3968 155.991C72.4639 155.971 73.3375 156.548 73.3375 157.263ZM80.7378 156.987C80.8654 157.689 80.1243 158.409 79.0642 158.601C78.023 158.785 77.0583 158.352 76.9258 157.657C76.7968 156.938 77.5519 156.218 78.5917 156.032C79.6532 155.853 80.6025 156.274 80.7378 156.987Z" fill="#161614"/>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

@@ -0,0 +1 @@
<svg width="98" height="96" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 960 B

@@ -0,0 +1 @@
<svg xmlns:xlink="http://www.w3.org/1999/xlink" data-e2e="" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" width="1" height="1" ><path fill-rule="evenodd" clip-rule="evenodd" d="M43 24.4313C43 23.084 42.8767 21.7885 42.6475 20.5449H24.3877V27.8945H34.8219C34.3724 30.2695 33.0065 32.2818 30.9532 33.6291V38.3964H37.2189C40.885 35.0886 43 30.2177 43 24.4313Z" fill="#4285F4"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M24.3872 43.001C29.6219 43.001 34.0107 41.2996 37.2184 38.3978L30.9527 33.6305C29.2165 34.7705 26.9958 35.4441 24.3872 35.4441C19.3375 35.4441 15.0633 32.1018 13.5388 27.6108H7.06152V32.5337C10.2517 38.7433 16.8082 43.001 24.3872 43.001Z" fill="#34A853"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M13.5395 27.6094C13.1516 26.4695 12.9313 25.2517 12.9313 23.9994C12.9313 22.7472 13.1516 21.5295 13.5395 20.3894V15.4668H7.06217C5.74911 18.0318 5 20.9336 5 23.9994C5 27.0654 5.74911 29.9673 7.06217 32.5323L13.5395 27.6094Z" fill="#FBBC04"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M24.3872 12.5568C27.2336 12.5568 29.7894 13.5155 31.7987 15.3982L37.3595 9.94866C34.0018 6.88281 29.6131 5 24.3872 5C16.8082 5 10.2517 9.25777 7.06152 15.4674L13.5388 20.39C15.0633 15.8991 19.3375 12.5568 24.3872 12.5568Z" fill="#EA4335"></path></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@@ -0,0 +1,5 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.99999 15.8333C13.2217 15.8333 15.8333 13.2216 15.8333 9.99996C15.8333 6.7783 13.2217 4.16663 9.99999 4.16663C6.77833 4.16663 4.16666 6.7783 4.16666 9.99996C4.16666 13.2216 6.77833 15.8333 9.99999 15.8333Z" stroke="#333333" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M4.16666 10H15.8333" stroke="#333333" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M10.0002 4.16663C11.4593 5.764 12.2884 7.83698 12.3335 9.99996C12.2884 12.1629 11.4593 14.2359 10.0002 15.8333C8.54109 14.2359 7.7119 12.1629 7.66684 9.99996C7.7119 7.83698 8.54109 5.764 10.0002 4.16663V4.16663Z" stroke="#333333" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 831 B

@@ -0,0 +1,254 @@
{
"document": {
"type": "editor",
"children": [
{ "type": "cover" },
{
"type": "text",
"attributes": { "subtype": "heading", "heading": "h1" },
"delta": [{ "insert": "Welcome to AppFlowy!" }]
},
{
"type": "text",
"attributes": { "subtype": "heading", "heading": "h2" },
"delta": [{ "insert": "Here are the basics" }]
},
{
"type": "text",
"attributes": { "subtype": "checkbox", "checkbox": null },
"delta": [{ "insert": "Click anywhere and just start typing." }]
},
{
"type": "text",
"attributes": { "subtype": "checkbox", "checkbox": false },
"delta": [
{
"insert": "Highlight ",
"attributes": { "backgroundColor": "0x4dffeb3b" }
},
{ "insert": "any text, and use the editing menu to " },
{ "insert": "style", "attributes": { "italic": true } },
{ "insert": " " },
{ "insert": "your", "attributes": { "bold": true } },
{ "insert": " " },
{ "insert": "writing", "attributes": { "underline": true } },
{ "insert": " " },
{ "insert": "however", "attributes": { "code": true } },
{ "insert": " you " },
{ "insert": "like.", "attributes": { "strikethrough": true } }
]
},
{
"type": "text",
"attributes": { "subtype": "checkbox", "checkbox": null },
"delta": [
{ "insert": "As soon as you type " },
{
"insert": "/",
"attributes": { "code": true, "color": "0xff00b5ff" }
},
{ "insert": " a menu will pop up. Select " },
{
"insert": "different types",
"attributes": { "backgroundColor": "0x4d9c27b0" }
},
{ "insert": " of content blocks you can add." }
]
},
{
"type": "text",
"attributes": { "subtype": "checkbox", "checkbox": null },
"delta": [
{ "insert": "Type " },
{ "insert": "/", "attributes": { "code": true } },
{ "insert": " followed by " },
{ "insert": "/bullet", "attributes": { "code": true } },
{ "insert": " or " },
{ "insert": "/num", "attributes": { "code": true } },
{ "insert": " to create a list.", "attributes": { "code": false } }
]
},
{
"type": "text",
"attributes": { "subtype": "checkbox", "checkbox": true },
"delta": [
{ "insert": "Click " },
{ "insert": "+ New Page ", "attributes": { "code": true } },
{
"insert": "button at the bottom of your sidebar to add a new page."
}
]
},
{
"type": "text",
"attributes": { "subtype": "checkbox", "checkbox": null },
"delta": [
{ "insert": "Click " },
{ "insert": "+", "attributes": { "code": true } },
{ "insert": " next to any page title in the sidebar to " },
{ "insert": "quickly", "attributes": { "color": "0xff8427e0" } },
{ "insert": " add a new subpage, " },
{ "insert": "Document", "attributes": { "code": true } },
{ "insert": ", ", "attributes": { "code": false } },
{ "insert": "Grid", "attributes": { "code": true } },
{ "insert": ", or ", "attributes": { "code": false } },
{ "insert": "Kanban Board", "attributes": { "code": true } },
{ "insert": ".", "attributes": { "code": false } }
]
},
{ "type": "text", "delta": [] },
{ "type": "divider" },
{ "type": "text", "attributes": { "checkbox": null }, "delta": [] },
{
"type": "text",
"attributes": {
"subtype": "heading",
"checkbox": null,
"heading": "h2"
},
"delta": [{ "insert": "Keyboard shortcuts, markdown, and code block" }]
},
{
"type": "text",
"attributes": {
"subtype": "number-list",
"number": 1,
"heading": null
},
"delta": [
{ "insert": "Keyboard shortcuts " },
{
"insert": "guide",
"attributes": {
"href": "https://appflowy.gitbook.io/docs/essential-documentation/shortcuts"
}
},
{ "retain": 1, "attributes": { "strikethrough": true } }
]
},
{
"type": "text",
"attributes": {
"subtype": "number-list",
"number": 2,
"heading": null
},
"delta": [
{ "insert": "Markdown " },
{
"insert": "reference",
"attributes": {
"href": "https://appflowy.gitbook.io/docs/essential-documentation/markdown"
}
},
{ "retain": 1, "attributes": { "strikethrough": true } }
]
},
{
"type": "text",
"attributes": { "number": 3, "subtype": "number-list" },
"delta": [
{ "insert": "Type " },
{ "insert": "/code", "attributes": { "code": true } },
{
"insert": " to insert a code block",
"attributes": { "code": false }
}
]
},
{
"type": "text",
"attributes": {
"subtype": "code_block",
"number": 3,
"heading": null,
"number-list": null,
"theme": "vs",
"language": "rust"
},
"delta": [
{
"insert": "// This is the main function.\nfn main() {\n // Print text to the console.\n println!(\"Hello World!\");\n}"
},
{ "retain": 1, "attributes": { "strikethrough": true } }
]
},
{ "type": "text", "attributes": { "checkbox": null }, "delta": [] },
{
"type": "text",
"attributes": {
"subtype": "heading",
"checkbox": null,
"heading": "h2"
},
"delta": [{ "insert": "Have a question❓" }]
},
{
"type": "text",
"attributes": { "subtype": "quote" },
"delta": [
{ "insert": "Click " },
{ "insert": "?", "attributes": { "code": true } },
{ "insert": " at the bottom right for help and support." }
]
},
{ "type": "text", "delta": [] },
{
"type": "callout",
"children": [
{ "type": "text", "delta": [] },
{
"type": "text",
"attributes": { "subtype": "heading", "heading": "h2" },
"delta": [{ "insert": "Like AppFlowy? Follow us:" }]
},
{
"type": "text",
"attributes": { "subtype": "bulleted-list" },
"delta": [
{
"insert": "GitHub",
"attributes": {
"href": "https://github.com/AppFlowy-IO/AppFlowy"
}
}
]
},
{
"type": "text",
"attributes": { "subtype": "bulleted-list" },
"delta": [
{
"insert": "Twitter",
"attributes": { "href": "https://twitter.com/appflowy" }
},
{ "insert": ": @appflowy" }
]
},
{
"type": "text",
"attributes": { "subtype": "bulleted-list" },
"delta": [
{
"insert": "Newsletter",
"attributes": { "href": "https://blog-appflowy.ghost.io/" }
}
]
}
],
"attributes": { "emoji": "😀" }
},
{ "type": "text", "delta": [] },
{
"type": "text",
"attributes": { "subtype": null, "heading": null },
"delta": []
},
{
"type": "text",
"attributes": { "subtype": null, "heading": null },
"delta": []
}
]
}
}
@@ -0,0 +1,254 @@
{
"document": {
"type": "editor",
"children": [
{ "type": "cover" },
{
"type": "text",
"attributes": { "subtype": "heading", "heading": "h1" },
"delta": [{ "insert": "Welcome to AppFlowy!" }]
},
{
"type": "text",
"attributes": { "subtype": "heading", "heading": "h2" },
"delta": [{ "insert": "Here are the basics" }]
},
{
"type": "text",
"attributes": { "subtype": "checkbox", "checkbox": null },
"delta": [{ "insert": "Click anywhere and just start typing." }]
},
{
"type": "text",
"attributes": { "subtype": "checkbox", "checkbox": false },
"delta": [
{
"insert": "Highlight ",
"attributes": { "backgroundColor": "0x4dffeb3b" }
},
{ "insert": "any text, and use the editing menu to " },
{ "insert": "style", "attributes": { "italic": true } },
{ "insert": " " },
{ "insert": "your", "attributes": { "bold": true } },
{ "insert": " " },
{ "insert": "writing", "attributes": { "underline": true } },
{ "insert": " " },
{ "insert": "however", "attributes": { "code": true } },
{ "insert": " you " },
{ "insert": "like.", "attributes": { "strikethrough": true } }
]
},
{
"type": "text",
"attributes": { "subtype": "checkbox", "checkbox": null },
"delta": [
{ "insert": "As soon as you type " },
{
"insert": "/",
"attributes": { "code": true, "color": "0xff00b5ff" }
},
{ "insert": " a menu will pop up. Select " },
{
"insert": "different types",
"attributes": { "backgroundColor": "0x4d9c27b0" }
},
{ "insert": " of content blocks you can add." }
]
},
{
"type": "text",
"attributes": { "subtype": "checkbox", "checkbox": null },
"delta": [
{ "insert": "Type " },
{ "insert": "/", "attributes": { "code": true } },
{ "insert": " followed by " },
{ "insert": "/bullet", "attributes": { "code": true } },
{ "insert": " or " },
{ "insert": "/num", "attributes": { "code": true } },
{ "insert": " to create a list.", "attributes": { "code": false } }
]
},
{
"type": "text",
"attributes": { "subtype": "checkbox", "checkbox": true },
"delta": [
{ "insert": "Click " },
{ "insert": "+ New Page ", "attributes": { "code": true } },
{
"insert": "button at the bottom of your sidebar to add a new page."
}
]
},
{
"type": "text",
"attributes": { "subtype": "checkbox", "checkbox": null },
"delta": [
{ "insert": "Click " },
{ "insert": "+", "attributes": { "code": true } },
{ "insert": " next to any page title in the sidebar to " },
{ "insert": "quickly", "attributes": { "color": "0xff8427e0" } },
{ "insert": " add a new subpage, " },
{ "insert": "Document", "attributes": { "code": true } },
{ "insert": ", ", "attributes": { "code": false } },
{ "insert": "Grid", "attributes": { "code": true } },
{ "insert": ", or ", "attributes": { "code": false } },
{ "insert": "Kanban Board", "attributes": { "code": true } },
{ "insert": ".", "attributes": { "code": false } }
]
},
{ "type": "text", "delta": [] },
{ "type": "divider" },
{ "type": "text", "attributes": { "checkbox": null }, "delta": [] },
{
"type": "text",
"attributes": {
"subtype": "heading",
"checkbox": null,
"heading": "h2"
},
"delta": [{ "insert": "Keyboard shortcuts, markdown, and code block" }]
},
{
"type": "text",
"attributes": {
"subtype": "number-list",
"number": 1,
"heading": null
},
"delta": [
{ "insert": "Keyboard shortcuts " },
{
"insert": "guide",
"attributes": {
"href": "https://appflowy.gitbook.io/docs/essential-documentation/shortcuts"
}
},
{ "retain": 1, "attributes": { "strikethrough": true } }
]
},
{
"type": "text",
"attributes": {
"subtype": "number-list",
"number": 2,
"heading": null
},
"delta": [
{ "insert": "Markdown " },
{
"insert": "reference",
"attributes": {
"href": "https://appflowy.gitbook.io/docs/essential-documentation/markdown"
}
},
{ "retain": 1, "attributes": { "strikethrough": true } }
]
},
{
"type": "text",
"attributes": { "number": 3, "subtype": "number-list" },
"delta": [
{ "insert": "Type " },
{ "insert": "/code", "attributes": { "code": true } },
{
"insert": " to insert a code block",
"attributes": { "code": false }
}
]
},
{
"type": "text",
"attributes": {
"subtype": "code_block",
"number": 3,
"heading": null,
"number-list": null,
"theme": "vs",
"language": "rust"
},
"delta": [
{
"insert": "// This is the main function.\nfn main() {\n // Print text to the console.\n println!(\"Hello World!\");\n}"
},
{ "retain": 1, "attributes": { "strikethrough": true } }
]
},
{ "type": "text", "attributes": { "checkbox": null }, "delta": [] },
{
"type": "text",
"attributes": {
"subtype": "heading",
"checkbox": null,
"heading": "h2"
},
"delta": [{ "insert": "Have a question❓" }]
},
{
"type": "text",
"attributes": { "subtype": "quote" },
"delta": [
{ "insert": "Click " },
{ "insert": "?", "attributes": { "code": true } },
{ "insert": " at the bottom right for help and support." }
]
},
{ "type": "text", "delta": [] },
{
"type": "callout",
"children": [
{ "type": "text", "delta": [] },
{
"type": "text",
"attributes": { "subtype": "heading", "heading": "h2" },
"delta": [{ "insert": "Like AppFlowy? Follow us:" }]
},
{
"type": "text",
"attributes": { "subtype": "bulleted-list" },
"delta": [
{
"insert": "GitHub",
"attributes": {
"href": "https://github.com/AppFlowy-IO/AppFlowy"
}
}
]
},
{
"type": "text",
"attributes": { "subtype": "bulleted-list" },
"delta": [
{
"insert": "Twitter",
"attributes": { "href": "https://twitter.com/appflowy" }
},
{ "insert": ": @appflowy" }
]
},
{
"type": "text",
"attributes": { "subtype": "bulleted-list" },
"delta": [
{
"insert": "Newsletter",
"attributes": { "href": "https://blog-appflowy.ghost.io/" }
}
]
}
],
"attributes": { "emoji": "😀" }
},
{ "type": "text", "delta": [] },
{
"type": "text",
"attributes": { "subtype": null, "heading": null },
"delta": []
},
{
"type": "text",
"attributes": { "subtype": null, "heading": null },
"delta": []
}
]
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

@@ -0,0 +1,11 @@
"{""id"":""2_OVWb"",""name"":""Name"",""field_type"":0,""visibility"":true,""width"":150,""type_options"":{""0"":{""data"":""""}},""is_primary"":true}","{""id"":""xjmOSi"",""name"":""Type"",""field_type"":3,""visibility"":true,""width"":150,""type_options"":{""3"":{""content"":""{\""options\"":[{\""id\"":\""t1WZ\"",\""name\"":\""s6\"",\""color\"":\""Lime\""},{\""id\"":\""GzNa\"",\""name\"":\""s5\"",\""color\"":\""Yellow\""},{\""id\"":\""l_8w\"",\""name\"":\""s4\"",\""color\"":\""Orange\""},{\""id\"":\""TzVT\"",\""name\"":\""s3\"",\""color\"":\""LightPink\""},{\""id\"":\""b5WF\"",\""name\"":\""s2\"",\""color\"":\""Pink\""},{\""id\"":\""AcHA\"",\""name\"":\""s1\"",\""color\"":\""Purple\""}],\""disable_color\"":false}""}},""is_primary"":false}","{""id"":""Hpbiwr"",""name"":""Done"",""field_type"":5,""visibility"":true,""width"":150,""type_options"":{""5"":{""is_selected"":false}},""is_primary"":false}","{""id"":""F7WLnw"",""name"":""checklist"",""field_type"":7,""visibility"":true,""width"":120,""type_options"":{""0"":{""data"":""""},""7"":{}},""is_primary"":false}","{""id"":""KABhMe"",""name"":""number"",""field_type"":1,""visibility"":true,""width"":120,""type_options"":{""1"":{""format"":0,""symbol"":""RUB"",""scale"":0,""name"":""Number""},""0"":{""scale"":0,""data"":"""",""format"":0,""name"":""Number"",""symbol"":""RUB""}},""is_primary"":false}","{""id"":""lEn6Bv"",""name"":""date"",""field_type"":2,""visibility"":true,""width"":120,""type_options"":{""2"":{""field_type"":2,""time_format"":1,""timezone_id"":"""",""date_format"":3},""0"":{""field_type"":2,""date_format"":3,""time_format"":1,""data"":"""",""timezone_id"":""""}},""is_primary"":false}","{""id"":""B8Prnx"",""name"":""url"",""field_type"":6,""visibility"":true,""width"":120,""type_options"":{""6"":{""content"":"""",""url"":""""},""0"":{""content"":"""",""data"":"""",""url"":""""}},""is_primary"":false}","{""id"":""MwUow4"",""name"":""multi-select"",""field_type"":4,""visibility"":true,""width"":240,""type_options"":{""0"":{""content"":""{\""options\"":[],\""disable_color\"":false}"",""data"":""""},""4"":{""content"":""{\""options\"":[{\""id\"":\""__Us\"",\""name\"":\""m7\"",\""color\"":\""Green\""},{\""id\"":\""n9-g\"",\""name\"":\""m6\"",\""color\"":\""Lime\""},{\""id\"":\""KFYu\"",\""name\"":\""m5\"",\""color\"":\""Yellow\""},{\""id\"":\""KftP\"",\""name\"":\""m4\"",\""color\"":\""Orange\""},{\""id\"":\""5lWo\"",\""name\"":\""m3\"",\""color\"":\""LightPink\""},{\""id\"":\""Djrz\"",\""name\"":\""m2\"",\""color\"":\""Pink\""},{\""id\"":\""2uRu\"",\""name\"":\""m1\"",\""color\"":\""Purple\""}],\""disable_color\"":false}""}},""is_primary"":false}"
"{""field_type"":0,""created_at"":1686793246,""data"":""A"",""last_modified"":1686793246}","{""last_modified"":1686793275,""created_at"":1686793261,""data"":""AcHA"",""field_type"":3}","{""created_at"":1686793241,""field_type"":5,""last_modified"":1686793241,""data"":""Yes""}","{""data"":""{\""options\"":[{\""id\"":\""pi1A\"",\""name\"":\""t1\"",\""color\"":\""Purple\""},{\""id\"":\""6Pym\"",\""name\"":\""t2\"",\""color\"":\""Purple\""},{\""id\"":\""erEe\"",\""name\"":\""t3\"",\""color\"":\""Purple\""}],\""selected_option_ids\"":[\""pi1A\"",\""6Pym\""]}"",""created_at"":1686793302,""field_type"":7,""last_modified"":1686793308}","{""created_at"":1686793333,""field_type"":1,""data"":""-1"",""last_modified"":1686793333}","{""last_modified"":1686793370,""field_type"":2,""data"":""1685583770"",""include_time"":false,""created_at"":1686793370}","{""created_at"":1686793395,""data"":""appflowy.io"",""field_type"":6,""last_modified"":1686793399,""url"":""https://appflowy.io""}","{""last_modified"":1686793446,""field_type"":4,""data"":""2uRu"",""created_at"":1686793428}"
"{""last_modified"":1686793247,""data"":""B"",""field_type"":0,""created_at"":1686793247}","{""created_at"":1686793278,""data"":""b5WF"",""field_type"":3,""last_modified"":1686793278}","{""created_at"":1686793292,""last_modified"":1686793292,""data"":""Yes"",""field_type"":5}","{""data"":""{\""options\"":[{\""id\"":\""YHDO\"",\""name\"":\""t1\"",\""color\"":\""Purple\""},{\""id\"":\""QjtW\"",\""name\"":\""t2\"",\""color\"":\""Purple\""},{\""id\"":\""K2nM\"",\""name\"":\""t3\"",\""color\"":\""Purple\""}],\""selected_option_ids\"":[\""YHDO\""]}"",""field_type"":7,""last_modified"":1686793318,""created_at"":1686793311}","{""data"":""-2"",""last_modified"":1686793335,""created_at"":1686793335,""field_type"":1}","{""field_type"":2,""data"":""1685670174"",""include_time"":false,""created_at"":1686793374,""last_modified"":1686793374}","{""last_modified"":1686793403,""field_type"":6,""created_at"":1686793399,""url"":"""",""data"":""no url""}","{""data"":""2uRu,Djrz"",""field_type"":4,""last_modified"":1686793449,""created_at"":1686793449}"
"{""data"":""C"",""created_at"":1686793248,""last_modified"":1686793248,""field_type"":0}","{""created_at"":1686793280,""field_type"":3,""data"":""TzVT"",""last_modified"":1686793280}","{""data"":""Yes"",""last_modified"":1686793292,""field_type"":5,""created_at"":1686793292}","{""last_modified"":1686793329,""field_type"":7,""created_at"":1686793322,""data"":""{\""options\"":[{\""id\"":\""iWM1\"",\""name\"":\""t1\"",\""color\"":\""Purple\""},{\""id\"":\""WDvF\"",\""name\"":\""t2\"",\""color\"":\""Purple\""},{\""id\"":\""w3k7\"",\""name\"":\""t3\"",\""color\"":\""Purple\""}],\""selected_option_ids\"":[\""iWM1\"",\""WDvF\"",\""w3k7\""]}""}","{""field_type"":1,""last_modified"":1686793339,""data"":""0.1"",""created_at"":1686793339}","{""last_modified"":1686793377,""data"":""1685756577"",""created_at"":1686793377,""include_time"":false,""field_type"":2}","{""created_at"":1686793403,""field_type"":6,""data"":""appflowy.io"",""last_modified"":1686793408,""url"":""https://appflowy.io""}","{""data"":""2uRu,Djrz,5lWo"",""created_at"":1686793453,""last_modified"":1686793454,""field_type"":4}"
"{""data"":""D"",""last_modified"":1686793249,""created_at"":1686793249,""field_type"":0}","{""data"":""l_8w"",""created_at"":1686793284,""last_modified"":1686793284,""field_type"":3}","{""data"":""Yes"",""created_at"":1686793293,""last_modified"":1686793293,""field_type"":5}",,"{""field_type"":1,""last_modified"":1686793341,""created_at"":1686793341,""data"":""0.2""}","{""created_at"":1686793379,""last_modified"":1686793379,""field_type"":2,""data"":""1685842979"",""include_time"":false}","{""last_modified"":1686793419,""field_type"":6,""created_at"":1686793408,""data"":""https://github.com/AppFlowy-IO/"",""url"":""https://github.com/AppFlowy-IO/""}","{""data"":""2uRu,Djrz,5lWo"",""last_modified"":1686793459,""field_type"":4,""created_at"":1686793459}"
"{""field_type"":0,""last_modified"":1686793250,""created_at"":1686793250,""data"":""E""}","{""field_type"":3,""last_modified"":1686793290,""created_at"":1686793290,""data"":""GzNa""}","{""last_modified"":1686793294,""created_at"":1686793294,""data"":""Yes"",""field_type"":5}",,"{""created_at"":1686793346,""field_type"":1,""last_modified"":1686793346,""data"":""1""}","{""last_modified"":1686793383,""data"":""1685929383"",""field_type"":2,""include_time"":false,""created_at"":1686793383}","{""field_type"":6,""url"":"""",""data"":"""",""last_modified"":1686793421,""created_at"":1686793419}","{""field_type"":4,""last_modified"":1686793465,""data"":""2uRu,Djrz,5lWo,KFYu,KftP"",""created_at"":1686793463}"
"{""field_type"":0,""created_at"":1686793251,""data"":"""",""last_modified"":1686793289}",,,,"{""data"":""2"",""field_type"":1,""created_at"":1686793347,""last_modified"":1686793347}","{""include_time"":false,""data"":""1685929385"",""last_modified"":1686793385,""field_type"":2,""created_at"":1686793385}",,
"{""created_at"":1686793254,""field_type"":0,""last_modified"":1686793288,""data"":""""}",,,,"{""created_at"":1686793351,""last_modified"":1686793351,""data"":""10"",""field_type"":1}","{""include_time"":false,""data"":""1686879792"",""field_type"":2,""created_at"":1686793392,""last_modified"":1686793392}",,
,,,,"{""last_modified"":1686793354,""created_at"":1686793354,""field_type"":1,""data"":""11""}",,,
,,,,"{""field_type"":1,""last_modified"":1686793356,""data"":""12"",""created_at"":1686793356}",,,
,,,,,,,
@@ -0,0 +1,22 @@
# Welcome to AppFlowy!
## Here are the basics
- [ ] Click anywhere and just start typing.
- [ ] Highlight any text, and use the editing menu to _style_ **your** <u>writing</u> `however` you ~~like.~~
- [ ] As soon as you type /a menu will pop up. Select different types of content blocks you can add.
- [ ] Type `/` followed by `/bullet` or `/num` to create a list.
- [x] Click `+ New Page `button at the bottom of your sidebar to add a new page.
- [ ] Click `+` next to any page title in the sidebar to quickly add a new subpage, `Document`, `Grid`, or `Kanban Board`.
---
## Keyboard shortcuts, markdown, and code block
1. Keyboard shortcuts [guide](https://appflowy.gitbook.io/docs/essential-documentation/shortcuts)
1. Markdown [reference](https://appflowy.gitbook.io/docs/essential-documentation/markdown)
1. Type `/code` to insert a code block
## Have a question❓
> Click `?` at the bottom right for help and support.
@@ -0,0 +1 @@
# test
@@ -1,422 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "أنا",
"welcomeText": "مرحبًا بك في @: appName",
"githubStarText": "نجمة على GitHub",
"subscribeNewsletterText": "اشترك في النشرة الإخبارية",
"letsGoButtonText": "بداية سريعة",
"title": "عنوان",
"signUp": {
"buttonText": "اشتراك",
"title": "قم بالتسجيل في @: appName",
"getStartedText": "البدء",
"emptyPasswordError": "لا يمكن أن تكون كلمة المرور فارغة",
"repeatPasswordEmptyError": "إعادة كلمة المرور لا يمكن أن تكون فارغة",
"unmatchedPasswordError": "تكرار كلمة المرور ليس هو نفسه كلمة المرور",
"alreadyHaveAnAccount": "هل لديك حساب؟",
"emailHint": "بريد إلكتروني",
"passwordHint": "كلمة المرور",
"repeatPasswordHint": "اعد كلمة السر"
},
"signIn": {
"loginTitle": "تسجيل الدخول إلى @: appName",
"loginButtonText": "تسجيل الدخول",
"buttonText": "تسجيل الدخول",
"forgotPassword": "هل نسيت كلمة السر؟",
"emailHint": "بريد إلكتروني",
"passwordHint": "كلمة المرور",
"dontHaveAnAccount": "ليس لديك حساب؟",
"repeatPasswordEmptyError": "إعادة كلمة المرور لا يمكن أن تكون فارغة",
"unmatchedPasswordError": "تكرار كلمة المرور ليس هو نفسه كلمة المرور"
},
"workspace": {
"create": "قم بإنشاء مساحة عمل",
"hint": "مساحة العمل",
"notFoundError": "مساحة العمل غير موجودة"
},
"shareAction": {
"buttonText": "مشاركه",
"workInProgress": "قريباً",
"markdown": "Markdown",
"copyLink": "نسخ الرابط"
},
"moreAction": {
"small": "صغير",
"medium": "متوسط",
"large": "كبير",
"fontSize": "حجم الخط",
"import": "استيراد"
},
"disclosureAction": {
"rename": "إعادة تسمية",
"delete": "يمسح",
"duplicate": "كرر"
},
"blankPageTitle": "صفحة فارغة",
"newPageText": "صفحة جديدة",
"trash": {
"text": "المهملات",
"restoreAll": "استعادة الكل",
"deleteAll": "حذف الكل",
"pageHeader": {
"fileName": "اسم الملف",
"lastModified": "آخر تعديل",
"created": "تم انشاؤها"
}
},
"deletePagePrompt": {
"text": "هذه الصفحة في المهملات",
"restore": "استعادة الصفحة",
"deletePermanent": "الحذف بشكل نهائي"
},
"dialogCreatePageNameHint": "اسم الصفحة",
"questionBubble": {
"shortcuts": "الاختصارات",
"whatsNew": "ما هو الجديد؟",
"help": "المساعدة والدعم",
"markdown": "Markdown",
"debug": {
"name": "معلومات التصحيح",
"success": "تم نسخ معلومات التصحيح إلى الحافظة!",
"fail": "تعذر نسخ معلومات التصحيح إلى الحافظة"
}
},
"menuAppHeader": {
"addPageTooltip": "أضف صفحة في الداخل بسرعة",
"defaultNewPageName": "بدون عنوان",
"renameDialog": "إعادة تسمية"
},
"toolbar": {
"undo": "الغاء التحميل",
"redo": "إعادة",
"bold": "عريض",
"italic": "مائل",
"underline": "تسطير",
"strike": "يتوسطه خط",
"numList": "قائمة مرقمة",
"bulletList": "قائمة نقطية",
"checkList": "قائمة تدقيق",
"inlineCode": "رمز مضمّن",
"quote": "كتلة اقتباس",
"header": "رأس",
"highlight": "تسليط الضوء",
"color": "لون"
},
"tooltip": {
"lightMode": "قم بالتبديل إلى وضع الإضاءة",
"darkMode": "قم بالتبديل إلى الوضع الداكن",
"openAsPage": "فتح كصفحة",
"addNewRow": "أضف صفًا جديدًا",
"openMenu": "انقر لفتح القائمة",
"viewDataBase": "عرض قاعدة البيانات",
"referencePage": "تمت الإشارة إلى هذا {name}"
},
"sideBar": {
"closeSidebar": "إغلاق الشريط الجانبي",
"openSidebar": "فتح الشريط الجانبي"
},
"notifications": {
"export": {
"markdown": "تم تصدير ملاحظة إلى Markdown",
"path": "Documents/flowy"
}
},
"contactsPage": {
"title": "جهات الاتصال",
"whatsHappening": "ماذا يحدث هذا الاسبوع؟",
"addContact": "إضافة جهة اتصال",
"editContact": "تحرير جهة الاتصال"
},
"button": {
"OK": "نعم",
"Done": "منتهي",
"Cancel": "إلغاء",
"signIn": "تسجيل الدخول",
"signOut": "خروج",
"complete": "مكتمل",
"save": "حفظ",
"generate": "يولد",
"esc": "خروج",
"keep": "ابقاء",
"tryAgain": "حاول ثانية",
"discard": "تجاهل",
"replace": "يستبدل",
"insertBelow": "إدراج أدناه"
},
"label": {
"welcome": "مرحباً!",
"firstName": "الاسم الأول",
"middleName": "الاسم الأوسط",
"lastName": "اسم العائلة",
"stepX": "الخطوة {X}"
},
"oAuth": {
"err": {
"failedTitle": "غير قادر على الاتصال بحسابك.",
"failedMsg": "يرجى التأكد من إكمال عملية تسجيل الدخول في متصفحك."
},
"google": {
"title": "تسجيل الدخول إلى GOOGLE",
"instruction1": "لاستيراد جهات اتصال Google الخاصة بك ، ستحتاج إلى ترخيص هذا التطبيق باستخدام متصفح الويب الخاص بك.",
"instruction2": "انسخ هذا الرمز إلى الحافظة الخاصة بك عن طريق النقر فوق الرمز أو تحديد النص:",
"instruction3": "انتقل إلى الرابط التالي في متصفح الويب الخاص بك ، وأدخل الرمز أعلاه:",
"instruction4": "اضغط على الزر أدناه عند الانتهاء من التسجيل:"
}
},
"settings": {
"title": "إعدادات",
"menu": {
"appearance": "مظهر",
"language": "لغة",
"user": "مستخدم",
"files": "الملفات",
"open": "أفتح الإعدادات"
},
"appearance": {
"themeMode": {
"label": "وضع السمة",
"light": "وضع الضوء",
"dark": "الوضع الداكن",
"system": "التكيف مع النظام"
},
"theme": "سمة"
},
"files": {
"defaultLocation": "أين يتم تخزين بياناتك الآن",
"doubleTapToCopy": "انقر نقرًا مزدوجًا لنسخ المسار",
"restoreLocation": "استعادة المسار الافتراضي AppFlowy",
"customizeLocation": "افتح مجلدًا آخر",
"restartApp": "يرجى إعادة تشغيل التطبيق لتصبح التغييرات سارية المفعول.",
"exportDatabase": "تصدير قاعدة البيانات",
"selectFiles": "حدد الملفات التي تريد تصديرها",
"createNewFolder": "انشاء مجلد جديد",
"createNewFolderDesc": "أخبرنا بالمكان الذي تريد تخزين بياناتك فيه",
"open": "يفتح",
"openFolder": "افتح مجلدًا موجودًا",
"openFolderDesc": "اقرأها واكتبها في مجلد AppFlowy الموجود لديك",
"folderHintText": "إسم الملف",
"location": "إنشاء مجلد جديد",
"locationDesc": "اختر اسمًا لمجلد بيانات AppFlowy",
"browser": "تصفح",
"create": "يخلق",
"folderPath": "مسار لتخزين المجلد الخاص بك",
"locationCannotBeEmpty": "لا يمكن أن يكون المسار فارغًا",
"pathCopiedSnackbar": "تم نسخ مسار تخزين الملفات إلى الحافظة!"
},
"user": {
"name": "اسم",
"icon": "أيقونة",
"selectAnIcon": "حدد أيقونة",
"pleaseInputYourOpenAIKey": "الرجاء إدخال مفتاح OpenAI الخاص بك"
}
},
"grid": {
"settings": {
"filter": "منقي",
"sort": "نوع",
"sortBy": "ترتيب حسب",
"Properties": "ملكيات",
"group": "مجموعة",
"addFilter": "أضف عامل تصفية",
"deleteFilter": "حذف عامل التصفية",
"filterBy": "مصنف بواسطة...",
"typeAValue": "اكتب قيمة ...",
"layout": "تَخطِيط"
},
"textFilter": {
"contains": "يتضمن",
"doesNotContain": "لا يحتوي",
"endsWith": "ينتهي بـ",
"startWith": "ابدا ب",
"is": "يكون",
"isNot": "ليس",
"isEmpty": "فارغ",
"isNotEmpty": "ليس فارغا",
"choicechipPrefix": {
"isNot": "لا",
"startWith": "ابدا ب",
"endWith": "ينتهي بـ",
"isEmpty": "فارغ",
"isNotEmpty": "ليس فارغا"
}
},
"checkboxFilter": {
"isChecked": "التحقق",
"isUnchecked": "لم يتم التحقق منه",
"choicechipPrefix": {
"is": "يكون"
}
},
"checklistFilter": {
"isComplete": "كاملة",
"isIncomplted": "غير مكتمل"
},
"singleSelectOptionFilter": {
"is": "يكون",
"isNot": "ليس",
"isEmpty": "فارغ",
"isNotEmpty": "ليس فارغا"
},
"multiSelectOptionFilter": {
"contains": "يتضمن",
"doesNotContain": "لا يحتوي",
"isEmpty": "فارغ",
"isNotEmpty": "ليس فارغا"
},
"field": {
"hide": "يخفي",
"insertLeft": "أدخل اليسار",
"insertRight": "أدخل اليمين",
"duplicate": "ينسخ",
"delete": "يمسح",
"textFieldName": "نص",
"checkboxFieldName": "خانة اختيار",
"dateFieldName": "تاريخ",
"numberFieldName": "أعداد",
"singleSelectFieldName": "يختار",
"multiSelectFieldName": "تحديد متعدد",
"urlFieldName": "URL",
"checklistFieldName": "قائمة تدقيق",
"numberFormat": "تنسيق الأرقام",
"dateFormat": "صيغة التاريخ",
"includeTime": "أضف الوقت",
"dateFormatFriendly": "شهر يوم سنه",
"dateFormatISO": "سنة شهر يوم",
"dateFormatLocal": "شهر يوم سنه",
"dateFormatUS": "سنة شهر يوم",
"dateFormatDayMonthYear": "يوم شهر سنة",
"timeFormat": "تنسيق الوقت",
"invalidTimeFormat": "تنسيق غير صالح",
"timeFormatTwelveHour": "12 ساعة",
"timeFormatTwentyFourHour": "24 ساعة",
"addSelectOption": "أضف خيارًا",
"optionTitle": "خيارات",
"addOption": "إضافة خيار",
"editProperty": "تحرير الملكية",
"newProperty": "خاصية جديدة",
"deleteFieldPromptMessage": "هل أنت متأكد؟ سيتم حذف هذه الخاصية"
},
"sort": {
"ascending": "تصاعدي",
"descending": "تنازلي",
"deleteSort": "حذف الفرز",
"addSort": "أضف نوعًا"
},
"row": {
"duplicate": "مكرره",
"delete": "يمسح",
"textPlaceholder": "فارغ",
"copyProperty": "نسخ الممتلكات إلى الحافظة",
"count": "عدد",
"newRow": "صف جديد"
},
"selectOption": {
"create": "يخلق",
"purpleColor": "أرجواني",
"pinkColor": "لون القرنفل",
"lightPinkColor": "وردي فاتح",
"orangeColor": "البرتقالي",
"yellowColor": "أصفر",
"limeColor": "جير",
"greenColor": "أخضر",
"aquaColor": "أكوا",
"blueColor": "أزرق",
"deleteTag": "حذف العلامة",
"colorPanelTitle": "الألوان",
"panelTitle": "حدد خيارًا أو أنشئ خيارًا",
"searchOption": "ابحث عن خيار"
},
"checklist": {
"panelTitle": "أضف عنصرًا"
},
"menuName": "شبكة",
"referencedGridPrefix": "نظرا ل"
},
"document": {
"menuName": "وثيقة",
"date": {
"timeHintTextInTwelveHour": "01:00 مساءً",
"timeHintTextInTwentyFourHour": "13:00"
},
"slashMenu": {
"board": {
"selectABoardToLinkTo": "حدد لوحة للارتباط بها",
"createANewBoard": "قم بإنشاء لوحة جديدة"
},
"grid": {
"selectAGridToLinkTo": "حدد الشبكة للارتباط بها",
"createANewGrid": "قم بإنشاء شبكة جديدة"
}
},
"plugins": {
"referencedBoard": "المجلس المشار إليه",
"referencedGrid": "الشبكة المشار إليها",
"autoGeneratorMenuItemName": "كاتب OpenAI",
"autoGeneratorTitleName": "OpenAI: اطلب من الذكاء الاصطناعي كتابة أي شيء ...",
"autoGeneratorLearnMore": "يتعلم أكثر",
"autoGeneratorGenerate": "يولد",
"autoGeneratorHintText": "اسأل OpenAI ...",
"autoGeneratorCantGetOpenAIKey": "لا يمكن الحصول على مفتاح OpenAI",
"smartEdit": "مساعدي الذكاء الاصطناعي",
"openAI": "OpenAI",
"smartEditFixSpelling": "أصلح التهجئة",
"warning": "⚠️ يمكن أن تكون استجابات الذكاء الاصطناعي غير دقيقة أو مضللة.",
"smartEditSummarize": "لخص",
"smartEditCouldNotFetchResult": "تعذر جلب النتيجة من OpenAI",
"smartEditCouldNotFetchKey": "تعذر جلب مفتاح OpenAI",
"smartEditDisabled": "قم بتوصيل OpenAI في الإعدادات",
"discardResponse": "هل تريد تجاهل استجابات الذكاء الاصطناعي؟",
"cover": {
"changeCover": "تبديل الغطاء",
"colors": "الألوان",
"images": "الصور",
"clearAll": "امسح الكل",
"abstract": "خلاصة",
"addCover": "أضف الغلاف",
"addLocalImage": "أضف الصورة المحلية",
"invalidImageUrl": "عنوان URL للصورة غير صالح",
"failedToAddImageToGallery": "فشل في إضافة الصورة إلى المعرض",
"enterImageUrl": "أدخل عنوان URL للصورة",
"add": "يضيف",
"back": "خلف",
"saveToGallery": "حفظ في المعرض",
"removeIcon": "إزالة الرمز",
"pasteImageUrl": "لصق عنوان URL للصورة",
"or": "أو",
"pickFromFiles": "اختر من الملفات",
"couldNotFetchImage": "تعذر جلب الصورة",
"imageSavingFailed": "فشل حفظ الصورة",
"addIcon": "إضافة أيقونة",
"coverRemoveAlert": "ستتم إزالته من الغلاف بعد حذفه.",
"alertDialogConfirmation": "هل أنت متأكد أنك تريد الاستمرار؟"
},
"mathEquation": {
"addMathEquation": "أضف معادلة رياضية",
"editMathEquation": "تحرير المعادلة الرياضية"
}
}
},
"board": {
"column": {
"create_new_card": "جديد"
},
"menuName": "سبورة",
"referencedBoardPrefix": "نظرا ل"
},
"calendar": {
"menuName": "تقويم",
"defaultNewCalendarTitle": "بدون عنوان",
"navigation": {
"today": "اليوم",
"jumpToday": "انتقل إلى اليوم",
"previousMonth": "الشهر الماضى",
"nextMonth": "الشهر القادم"
},
"settings": {
"showWeekNumbers": "إظهار أرقام الأسبوع",
"showWeekends": "عرض عطلات نهاية الأسبوع",
"firstDayOfWeek": "اليوم الأول من الأسبوع",
"layoutDateField": "تقويم التخطيط بواسطة"
}
}
}
@@ -1,153 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "Jo",
"welcomeText": "Benvingut a @:appName",
"githubStarText": "Preferit a Github",
"subscribeNewsletterText": "Subscriu-me al butlletí",
"letsGoButtonText": "Endavant",
"title": "Títol",
"signUp": {
"buttonText": "Registra't",
"title": "Registra't a @:appName",
"getStartedText": "Comencem",
"emptyPasswordError": "La contrasenya no pot ser buida",
"repeatPasswordEmptyError": "La contrasenya repetida no pot ser buida",
"unmatchedPasswordError": "Les contrasenyes no concorden",
"alreadyHaveAnAccount": "Ja tens un compte?",
"emailHint": "Correu electrònic",
"passwordHint": "Contrasenya",
"repeatPasswordHint": "Repeteix la contrasenya"
},
"signIn": {
"loginTitle": "Inicia sessió a @:appName",
"loginButtonText": "Inicia sessió",
"buttonText": "Inicia sessió",
"forgotPassword": "Has oblidat la contrasenya?",
"emailHint": "Correu electrònic",
"passwordHint": "Contrasenya",
"dontHaveAnAccount": "No tens un compte?",
"repeatPasswordEmptyError": "La contrasenya repetida no pot ser buida",
"unmatchedPasswordError": "Les contrasenyes no concorden"
},
"workspace": {
"create": "Crear un espai de treball",
"hint": "espai de treball",
"notFoundError": "No s'ha trobat l'espai de treball"
},
"shareAction": {
"buttonText": "Compartir",
"workInProgress": "Pròximament",
"markdown": "Markdown",
"copyLink": "Copiar l'enllaç"
},
"disclosureAction": {
"rename": "Canviar el nom",
"delete": "Eliminar",
"duplicate": "Duplicar"
},
"blankPageTitle": "Pàgina en blanc",
"newPageText": "Nova pàgina",
"trash": {
"text": "Paperera",
"restoreAll": "Recuperar-ho tot",
"deleteAll": "Eliminar-ho tot",
"pageHeader": {
"fileName": "Nom del fitxer",
"lastModified": "Última modificació",
"created": "Creat"
}
},
"deletePagePrompt": {
"text": "Aquest pàgina es troba a la paperera",
"restore": "Recuperar-la",
"deletePermanent": "Elimina-la"
},
"dialogCreatePageNameHint": "Nom de la pàgina",
"questionBubble": {
"whatsNew": "Què hi ha de nou?",
"help": "Ajuda i Suport",
"debug": {
"name": "Informació de depuració",
"success": "S'ha copiat la informació de depuració!",
"fail": "No es pot copiar la informació de depuració"
}
},
"menuAppHeader": {
"addPageTooltip": "Afegeix ràpidament una pàgina dins",
"defaultNewPageName": "Sense títol",
"renameDialog": "Canviar el nom"
},
"toolbar": {
"undo": "Desfer",
"redo": "Refer",
"bold": "Negreta",
"italic": "Cursiva",
"underline": "Text subratllar",
"strike": "Ratllat",
"numList": "Llista numerada",
"bulletList": "Llista de punts",
"checkList": "Llista de comprovació",
"inlineCode": "Inserir codi",
"quote": "Bloc citat",
"header": "Capçalera",
"highlight": "Subratllar"
},
"tooltip": {
"lightMode": "Canviar a mode clar",
"darkMode": "Canviar a mode fosc"
},
"contactsPage": {
"title": "Contactes",
"whatsHappening": "Que passa aquesta setmana?",
"addContact": "Afegir un contacte",
"editContact": "Editar un contacte"
},
"button": {
"OK": "OK",
"Cancel": "Cancel·lar",
"signIn": "Iniciar sessió",
"signOut": "Tancar sessió",
"complete": "Completar",
"save": "Guardar"
},
"label": {
"welcome": "Benvingut!",
"firstName": "Nom",
"middleName": "Segon Nom",
"lastName": "Cognom",
"stepX": "Pas {X}"
},
"oAuth": {
"err": {
"failedTitle": "No s'ha pogut connectar al teu compte.",
"failedMsg": "Assegureu-vos que heu completat el procés d'inici de sessió al vostre navegador."
},
"google": {
"title": "Iniciar sessió amb Google",
"instruction1": "Per importar els vostres contactes de Google, haureu d'autoritzar aquesta aplicació mitjançant el vostre navegador web.",
"instruction2": "Copia aquest codi clicant la icona o seleccionant el text:",
"instruction3": "Navega al següent enllaç amb el teu navegador i insereix el codi anterior:",
"instruction4": "Pressiona el botó d'avall una vegada hagis completat el registre:"
}
},
"settings": {
"title": "Configuració",
"menu": {
"appearance": "Aparença",
"language": "Idioma",
"open": "Obrir la configuració"
},
"appearance": {
"themeMode": {
"label": "Theme Mode",
"light": "Mode Clar",
"dark": "Mode Fosc",
"system": "Adapt to System"
}
}
},
"sideBar": {
"openSidebar": "Open sidebar",
"closeSidebar": "Close sidebar"
}
}
@@ -1,159 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "Ich",
"welcomeText": "Willkommen bei @:appName",
"githubStarText": "GitHub Star vergeben",
"subscribeNewsletterText": "Abonniere den Newsletter",
"letsGoButtonText": "Los geht's",
"title": "Titel",
"signUp": {
"buttonText": "Registrieren",
"title": "Registriere dich bei @:appName",
"getStartedText": "Erste Schritte",
"emptyPasswordError": "Passwort darf nicht leer sein",
"repeatPasswordEmptyError": "Passwortwiederholung darf nicht leer sein",
"unmatchedPasswordError": "Passwörter stimmen nicht überein",
"alreadyHaveAnAccount": "Bereits registriert?",
"emailHint": "E-Mail",
"passwordHint": "Passwort",
"repeatPasswordHint": "Wiederhole Passwort"
},
"signIn": {
"loginTitle": "Bei @:appName einloggen",
"loginButtonText": "Anmelden",
"buttonText": "Anmelden",
"forgotPassword": "Passwort vergessen?",
"emailHint": "E-Mail",
"passwordHint": "Passwort",
"dontHaveAnAccount": "Du besitzt noch kein Konto?",
"repeatPasswordEmptyError": "Passwortwiederholung darf nicht leer sein",
"unmatchedPasswordError": "Passwörter stimmen nicht überein"
},
"workspace": {
"create": "Arbeitsbereich erstellen",
"hint": "Arbeitsbereich",
"notFoundError": "Arbeitsbereich nicht gefunden"
},
"shareAction": {
"buttonText": "Teilen",
"workInProgress": "Demnächst verfügbar",
"markdown": "Markdown",
"copyLink": "Link kopieren"
},
"disclosureAction": {
"rename": "Umbenennen",
"delete": "Löschen",
"duplicate": "Duplizieren"
},
"blankPageTitle": "Leere Seite",
"newPageText": "Neue Seite",
"trash": {
"text": "Papierkorb",
"restoreAll": "Alles wiederherstellen",
"deleteAll": "Alles löschen",
"pageHeader": {
"fileName": "Dateiname",
"lastModified": "Letzte Änderung",
"created": "Erstellt"
}
},
"deletePagePrompt": {
"text": "Diese Seite ist im Papierkorb",
"restore": "Seite wiederherstellen",
"deletePermanent": "Dauerhaft löschen"
},
"dialogCreatePageNameHint": "Seitenname",
"questionBubble": {
"whatsNew": "Was gibt es Neues?",
"help": "Hilfe & Support",
"debug": {
"name": "Debug-Informationen",
"success": "Debug-Informationen in die Zwischenablage kopiert!",
"fail": "Debug-Informationen können nicht in die Zwischenablage kopiert werden"
},
"shortcuts": "Abkürzungen"
},
"menuAppHeader": {
"addPageTooltip": "Schnell eine Seite innerhalb hinzufügen",
"defaultNewPageName": "Unbenannt",
"renameDialog": "Umbenennen"
},
"toolbar": {
"undo": "Rückgängig",
"redo": "Wiederherstellen",
"bold": "Fett",
"italic": "Kursiv",
"underline": "Unterstreichen",
"strike": "Durchstreichen",
"numList": "Nummerierte Liste",
"bulletList": "Aufzählung",
"checkList": "Checkliste",
"inlineCode": "Inline-Code",
"quote": "Zitat",
"header": "Überschrift",
"highlight": "Hervorhebung",
"color": "Farbe"
},
"tooltip": {
"lightMode": "In den hellen Modus wechseln",
"darkMode": "In den dunklen Modus wechseln",
"openAsPage": "Als Seite öffnen"
},
"contactsPage": {
"title": "Kontakte",
"whatsHappening": "Was geschieht diese Woche?",
"addContact": "Kontakt hinzufügen",
"editContact": "Kontakt bearbeiten"
},
"button": {
"OK": "OK",
"Cancel": "Abbrechen",
"signIn": "Anmelden",
"signOut": "Abmelden",
"complete": "Fertig",
"save": "Speichern"
},
"label": {
"welcome": "Willkommen!",
"firstName": "Vorname",
"middleName": "Zweiter Vorname",
"lastName": "Nachname",
"stepX": "Schritt {X}"
},
"oAuth": {
"err": {
"failedTitle": "Keine Verbindung zu Ihrem Konto möglich.",
"failedMsg": "Bitte vergewissern Sie sich, dass Sie den Anmeldevorgang in Ihrem Browser abgeschlossen haben."
},
"google": {
"title": "GOOGLE ANMELDUNG",
"instruction1": "Um Ihre Google-Kontakte zu importieren, müssen Sie diese Anwendung über Ihren Webbrowser autorisieren.",
"instruction2": "Kopieren Sie diesen Code in Ihre Zwischenablage, indem Sie auf das Symbol klicken oder den Text auswählen:",
"instruction3": "Rufen Sie den folgenden Link in Ihrem Webbrowser auf, und geben Sie den obigen Code ein:",
"instruction4": "Klicken Sie unten auf die Schaltfläche, wenn Sie die Anmeldung abgeschlossen haben:"
}
},
"settings": {
"title": "Einstellungen",
"menu": {
"appearance": "Aussehen",
"language": "Sprache",
"open": "Einstellungen öffnen"
},
"appearance": {
"lightLabel": "Heller Modus",
"darkLabel": "Dunkler Modus"
}
},
"sideBar": {
"openSidebar": "Open sidebar",
"closeSidebar": "Close sidebar"
},
"moreAction": {
"small": "klein",
"medium": "mittel",
"large": "groß",
"fontSize": "Schriftgröße",
"import": "Importieren"
}
}
@@ -1,424 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "Me",
"welcomeText": "Welcome to @:appName",
"githubStarText": "Star on GitHub",
"subscribeNewsletterText": "Subscribe to Newsletter",
"letsGoButtonText": "Quick Start",
"title": "Title",
"signUp": {
"buttonText": "Sign Up",
"title": "Sign Up to @:appName",
"getStartedText": "Get Started",
"emptyPasswordError": "Password can't be empty",
"repeatPasswordEmptyError": "Repeat password can't be empty",
"unmatchedPasswordError": "Repeat password is not the same as password",
"alreadyHaveAnAccount": "Already have an account?",
"emailHint": "Email",
"passwordHint": "Password",
"repeatPasswordHint": "Repeat password"
},
"signIn": {
"loginTitle": "Login to @:appName",
"loginButtonText": "Login",
"buttonText": "Sign In",
"forgotPassword": "Forgot Password?",
"emailHint": "Email",
"passwordHint": "Password",
"dontHaveAnAccount": "Don't have an account?",
"repeatPasswordEmptyError": "Repeat password can't be empty",
"unmatchedPasswordError": "Repeat password is not the same as password"
},
"workspace": {
"create": "Create workspace",
"hint": "workspace",
"notFoundError": "Workspace not found"
},
"shareAction": {
"buttonText": "Share",
"workInProgress": "Coming soon",
"markdown": "Markdown",
"copyLink": "Copy Link"
},
"moreAction": {
"small": "small",
"medium": "medium",
"large": "large",
"fontSize": "Font Size",
"import": "Import"
},
"disclosureAction": {
"rename": "Rename",
"delete": "Delete",
"duplicate": "Duplicate"
},
"blankPageTitle": "Blank page",
"newPageText": "New page",
"trash": {
"text": "Trash",
"restoreAll": "Restore All",
"deleteAll": "Delete All",
"pageHeader": {
"fileName": "File name",
"lastModified": "Last Modified",
"created": "Created"
}
},
"deletePagePrompt": {
"text": "This page is in Trash",
"restore": "Restore page",
"deletePermanent": "Delete permanently"
},
"dialogCreatePageNameHint": "Page name",
"questionBubble": {
"shortcuts": "Shortcuts",
"whatsNew": "What's new?",
"help": "Help & Support",
"markdown": "Markdown",
"debug": {
"name": "Debug Info",
"success": "Copied debug info to clipboard!",
"fail": "Unable to copy debug info to clipboard"
}
},
"menuAppHeader": {
"addPageTooltip": "Quickly add a page inside",
"defaultNewPageName": "Untitled",
"renameDialog": "Rename"
},
"toolbar": {
"undo": "Undo",
"redo": "Redo",
"bold": "Bold",
"italic": "Italic",
"underline": "Underline",
"strike": "Strikethrough",
"numList": "Numbered List",
"bulletList": "Bulleted List",
"checkList": "Check List",
"inlineCode": "Inline Code",
"quote": "Quote Block",
"header": "Header",
"highlight": "Highlight",
"color": "Color"
},
"tooltip": {
"lightMode": "Switch to Light mode",
"darkMode": "Switch to Dark mode",
"openAsPage": "Open as a Page",
"addNewRow": "Add a new row",
"openMenu": "Click to open menu",
"viewDataBase": "View database",
"referencePage": "This {name} is referenced"
},
"sideBar": {
"closeSidebar": "Close side bar",
"openSidebar": "Open side bar"
},
"notifications": {
"export": {
"markdown": "Exported Note To Markdown",
"path": "Documents/flowy"
}
},
"contactsPage": {
"title": "Contacts",
"whatsHappening": "What's happening this week?",
"addContact": "Add Contact",
"editContact": "Edit Contact"
},
"button": {
"OK": "OK",
"Done": "Done",
"Cancel": "Cancel",
"signIn": "Sign In",
"signOut": "Sign Out",
"complete": "Complete",
"save": "Save",
"generate": "Generate",
"esc": "ESC",
"keep": "Keep",
"tryAgain": "Try again",
"discard": "Discard",
"replace": "Replace",
"insertBelow": "Insert Below"
},
"label": {
"welcome": "Welcome!",
"firstName": "First Name",
"middleName": "Middle Name",
"lastName": "Last Name",
"stepX": "Step {X}"
},
"oAuth": {
"err": {
"failedTitle": "Unable to connect to your account.",
"failedMsg": "Please make sure you've completed the sign-in process in your browser."
},
"google": {
"title": "GOOGLE SIGN-IN",
"instruction1": "In order to import your Google Contacts, you'll need to authorize this application using your web browser.",
"instruction2": "Copy this code to your clipboard by clicking the icon or selecting the text:",
"instruction3": "Navigate to the following link in your web browser, and enter the above code:",
"instruction4": "Press the button below when you've completed signup:"
}
},
"settings": {
"title": "Settings",
"menu": {
"appearance": "Appearance",
"language": "Language",
"user": "User",
"files": "Files",
"open": "Open Settings"
},
"appearance": {
"themeMode": {
"label": "Theme Mode",
"light": "Light Mode",
"dark": "Dark Mode",
"system": "Adapt to System"
},
"theme": "Theme"
},
"files": {
"defaultLocation": "Where your data is stored now",
"doubleTapToCopy": "Double tap to copy the path",
"restoreLocation": "Restore to AppFlowy default path",
"customizeLocation": "Open another folder",
"restartApp": "Please restart app for the changes to take effect.",
"exportDatabase": "Export database",
"selectFiles": "Select the files that need to be export",
"createNewFolder": "Create a new folder",
"createNewFolderDesc": "Tell us where you want to store your data",
"open": "Open",
"openFolder": "Open an existing folder",
"openFolderDesc": "Read and write it to your existing AppFlowy folder",
"folderHintText": "folder name",
"location": "Creating a new folder",
"locationDesc": "Pick a name for your AppFlowy data folder",
"browser": "Browse",
"create": "Create",
"folderPath": "Path to store your folder",
"locationCannotBeEmpty": "Path cannot be empty",
"pathCopiedSnackbar": "File storage path copied to clipboard!"
},
"user": {
"name": "Name",
"icon": "Icon",
"selectAnIcon": "Select an icon",
"pleaseInputYourOpenAIKey": "please input your OpenAI key"
}
},
"grid": {
"settings": {
"filter": "Filter",
"sort": "Sort",
"sortBy": "Sort by",
"Properties": "Properties",
"group": "Group",
"addFilter": "Add Filter",
"deleteFilter": "Delete filter",
"filterBy": "Filter by...",
"typeAValue": "Type a value...",
"layout": "Layout"
},
"textFilter": {
"contains": "Contains",
"doesNotContain": "Does not contain",
"endsWith": "Ends with",
"startWith": "Starts with",
"is": "Is",
"isNot": "Is not",
"isEmpty": "Is empty",
"isNotEmpty": "Is not empty",
"choicechipPrefix": {
"isNot": "Not",
"startWith": "Starts with",
"endWith": "Ends with",
"isEmpty": "is empty",
"isNotEmpty": "is not empty"
}
},
"checkboxFilter": {
"isChecked": "Checked",
"isUnchecked": "Unchecked",
"choicechipPrefix": {
"is": "is"
}
},
"checklistFilter": {
"isComplete": "is complete",
"isIncomplted": "is incomplete"
},
"singleSelectOptionFilter": {
"is": "Is",
"isNot": "Is not",
"isEmpty": "Is empty",
"isNotEmpty": "Is not empty"
},
"multiSelectOptionFilter": {
"contains": "Contains",
"doesNotContain": "Does not contain",
"isEmpty": "Is empty",
"isNotEmpty": "Is not empty"
},
"field": {
"hide": "Hide",
"insertLeft": "Insert Left",
"insertRight": "Insert Right",
"duplicate": "Duplicate",
"delete": "Delete",
"textFieldName": "Text",
"checkboxFieldName": "Checkbox",
"dateFieldName": "Date",
"numberFieldName": "Numbers",
"singleSelectFieldName": "Select",
"multiSelectFieldName": "Multiselect",
"urlFieldName": "URL",
"checklistFieldName": "Checklist",
"numberFormat": "Number format",
"dateFormat": "Date format",
"includeTime": "Include time",
"dateFormatFriendly": "Month Day, Year",
"dateFormatISO": "Year-Month-Day",
"dateFormatLocal": "Month/Day/Year",
"dateFormatUS": "Year/Month/Day",
"dateFormatDayMonthYear": "Day/Month/Year",
"timeFormat": "Time format",
"invalidTimeFormat": "Invalid format",
"timeFormatTwelveHour": "12 hour",
"timeFormatTwentyFourHour": "24 hour",
"addSelectOption": "Add an option",
"optionTitle": "Options",
"addOption": "Add option",
"editProperty": "Edit property",
"newProperty": "New property",
"deleteFieldPromptMessage": "Are you sure? This property will be deleted"
},
"sort": {
"ascending": "Ascending",
"descending": "Descending",
"deleteSort": "Delete sort",
"addSort": "Add sort"
},
"row": {
"duplicate": "Duplicate",
"delete": "Delete",
"textPlaceholder": "Empty",
"copyProperty": "Copied property to clipboard",
"count": "Count",
"newRow": "New row",
"action": "Action"
},
"selectOption": {
"create": "Create",
"purpleColor": "Purple",
"pinkColor": "Pink",
"lightPinkColor": "Light Pink",
"orangeColor": "Orange",
"yellowColor": "Yellow",
"limeColor": "Lime",
"greenColor": "Green",
"aquaColor": "Aqua",
"blueColor": "Blue",
"deleteTag": "Delete tag",
"colorPanelTitle": "Colors",
"panelTitle": "Select an option or create one",
"searchOption": "Search for an option"
},
"checklist": {
"panelTitle": "Add an item"
},
"menuName": "Grid",
"referencedGridPrefix": "View of"
},
"document": {
"menuName": "Document",
"date": {
"timeHintTextInTwelveHour": "01:00 PM",
"timeHintTextInTwentyFourHour": "13:00"
},
"slashMenu": {
"board": {
"selectABoardToLinkTo": "Select a Board to link to",
"createANewBoard": "Create a new Board"
},
"grid": {
"selectAGridToLinkTo": "Select a Grid to link to",
"createANewGrid": "Create a new Grid"
}
},
"plugins": {
"referencedBoard": "Referenced Board",
"referencedGrid": "Referenced Grid",
"autoGeneratorMenuItemName": "OpenAI Writer",
"autoGeneratorTitleName": "OpenAI: Ask AI to write anything...",
"autoGeneratorLearnMore": "Learn more",
"autoGeneratorGenerate": "Generate",
"autoGeneratorHintText": "Ask OpenAI ...",
"autoGeneratorCantGetOpenAIKey": "Can't get OpenAI key",
"smartEdit": "AI Assistants",
"openAI": "OpenAI",
"smartEditFixSpelling": "Fix spelling",
"warning": "⚠️ AI responses can be inaccurate or misleading.",
"smartEditSummarize": "Summarize",
"smartEditImproveWriting": "Improve Writing",
"smartEditCouldNotFetchResult": "Could not fetch result from OpenAI",
"smartEditCouldNotFetchKey": "Could not fetch OpenAI key",
"smartEditDisabled": "Connect OpenAI in Settings",
"discardResponse": "Do you want to discard the AI responses?",
"cover": {
"changeCover": "Change Cover",
"colors": "Colors",
"images": "Images",
"clearAll": "Clear All",
"abstract": "Abstract",
"addCover": "Add Cover",
"addLocalImage": "Add local image",
"invalidImageUrl": "Invalid image URL",
"failedToAddImageToGallery": "Failed to add image to gallery",
"enterImageUrl": "Enter image URL",
"add": "Add",
"back": "Back",
"saveToGallery": "Save to gallery",
"removeIcon": "Remove Icon",
"pasteImageUrl": "Paste image URL",
"or": "OR",
"pickFromFiles": "Pick from files",
"couldNotFetchImage": "Could not fetch image",
"imageSavingFailed": "Image Saving Failed",
"addIcon": "Add Icon",
"coverRemoveAlert": "It will be removed from cover after it is deleted.",
"alertDialogConfirmation": "Are you sure, you want to continue?"
},
"mathEquation": {
"addMathEquation": "Add Math Equation",
"editMathEquation": "Edit Math Equation"
}
}
},
"board": {
"column": {
"create_new_card": "New"
},
"menuName": "Board",
"referencedBoardPrefix": "View of"
},
"calendar": {
"menuName": "Calendar",
"defaultNewCalendarTitle": "Untitled",
"navigation": {
"today": "Today",
"jumpToday": "Jump to Today",
"previousMonth": "Previous Month",
"nextMonth": "Next Month"
},
"settings": {
"showWeekNumbers": "Show week numbers",
"showWeekends": "Show weekends",
"firstDayOfWeek": "Start week on",
"layoutDateField": "Layout calendar by"
}
}
}
@@ -1,231 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "Mi",
"welcomeText": "Bienvenido a @:appName",
"githubStarText": "Favorito en GitHub",
"subscribeNewsletterText": "Suscribir al boletín",
"letsGoButtonText": "Vamos",
"title": "Título",
"signUp": {
"buttonText": "Registrar",
"title": "Registrar en @:appName",
"getStartedText": "Empezar",
"emptyPasswordError": "La contraseña no puede estar en blanco",
"repeatPasswordEmptyError": "La contraseña no puede estar en blanco",
"unmatchedPasswordError": "Las contraseñas no coinciden",
"alreadyHaveAnAccount": "¿Posee credenciales?",
"emailHint": "Correo",
"passwordHint": "Contraseña",
"repeatPasswordHint": "Repetir contraseña"
},
"signIn": {
"loginTitle": "Ingresa a @:appName",
"loginButtonText": "Ingresar",
"buttonText": "Ingresar",
"forgotPassword": "¿Olvidó su contraseña?",
"emailHint": "Correo",
"passwordHint": "Contraseña",
"dontHaveAnAccount": "¿No posee credenciales?",
"repeatPasswordEmptyError": "La contraseña no puede estar en blanco",
"unmatchedPasswordError": "Las contraseñas no coinciden"
},
"workspace": {
"create": "Crear espacio de trabajo",
"hint": "Espacio de trabajo",
"notFoundError": "Espacio de trabajo no encontrado"
},
"shareAction": {
"buttonText": "Compartir",
"workInProgress": "Próximamente",
"markdown": "Marcador",
"copyLink": "Copiar enlace"
},
"disclosureAction": {
"rename": "Renombrar",
"delete": "Eliminar",
"duplicate": "Duplicar"
},
"blankPageTitle": "Página en blanco",
"newPageText": "Nueva página",
"trash": {
"text": "Papelera",
"restoreAll": "Recuperar todo",
"deleteAll": "Eliminar todo",
"pageHeader": {
"fileName": "Nombre de archivo",
"lastModified": "Última modificación",
"created": "Creado"
}
},
"deletePagePrompt": {
"text": "Esta página está en la Papelera",
"restore": "Recuperar página",
"deletePermanent": "Eliminar permanentemente"
},
"dialogCreatePageNameHint": "Nombre de página",
"questionBubble": {
"whatsNew": "¿Qué hay de nuevo?",
"help": "Ayuda y Soporte",
"debug": {
"name": "Información de depuración",
"success": "¡Información copiada!",
"fail": "No fue posible copiar la información"
}
},
"menuAppHeader": {
"addPageTooltip": "Inserta una página",
"defaultNewPageName": "Sin Título",
"renameDialog": "Renombrar"
},
"toolbar": {
"undo": "Deshacer",
"redo": "Rehacer",
"bold": "Negrita",
"italic": "Cursiva",
"underline": "Subrayado",
"strike": "Tachado",
"numList": "Lista numerada",
"bulletList": "Lista con viñetas",
"checkList": "Lista de verificación",
"inlineCode": "Código embebido",
"quote": "Cita",
"header": "Título",
"highlight": "Resaltado",
"color": "Color"
},
"tooltip": {
"lightMode": "Cambiar a modo Claro",
"darkMode": "Cambiar a modo Oscuro"
},
"notifications": {
"export": {
"markdown": "Nota exportada a Markdown",
"path": "Documentos/flowy"
}
},
"contactsPage": {
"title": "Contactos",
"whatsHappening": "¿Qué está pasando esta semana?",
"addContact": "Agregar Contacto",
"editContact": "Editar Contacto"
},
"button": {
"OK": "OK",
"Cancel": "Cancelar",
"signIn": "Ingresar",
"signOut": "Salir",
"complete": "Completar",
"save": "Guardar"
},
"label": {
"welcome": "¡Bienvenido!",
"firstName": "Primer nombre",
"middleName": "Segundo nombre",
"lastName": "Apellido",
"stepX": "Paso {X}"
},
"oAuth": {
"err": {
"failedTitle": "Imposible conectarse con sus credenciales.",
"failedMsg": "Por favor asegurese haber completado el proceso de ingreso en su navegador."
},
"google": {
"title": "Ingresar con Google",
"instruction1": "Para importar sus contactos de Google, debe autorizar esta aplicación usando su navegador web.",
"instruction2": "Copie este código al presionar el icono o al seleccionar el texto:",
"instruction3": "Navege al siguiente enlace en su navegador web, e ingrese el código anterior:",
"instruction4": "Presione el botón de abajo cuando haya completado su registro:"
}
},
"settings": {
"title": "Ajustes",
"menu": {
"appearance": "Apariencia",
"language": "Lenguaje",
"open": "Abrir ajustes"
},
"appearance": {
"themeMode": {
"label": "Theme Mode",
"light": "Modo Claro",
"dark": "Modo Oscuro",
"system": "Adapt to System"
}
}
},
"grid": {
"settings": {
"filter": "Filtrar",
"sortBy": "Ordenar por",
"Properties": "Propiedades"
},
"field": {
"hide": "Ocultar",
"insertLeft": "Insertar a la Izquierda",
"insertRight": "Insertar a la Derecha",
"duplicate": "Duplicar",
"delete": "Eliminar",
"textFieldName": "Texto",
"checkboxFieldName": "Casilla de verificación",
"dateFieldName": "Fecha",
"numberFieldName": "Números",
"singleSelectFieldName": "Seleccionar",
"multiSelectFieldName": "Selección múltiple",
"urlFieldName": "URL",
"numberFormat": "Formato numérico",
"dateFormat": "Formato de fecha",
"includeTime": "Incluir tiempo",
"dateFormatFriendly": "Mes Día, Año",
"dateFormatISO": "Año-Mes-Día",
"dateFormatLocal": "Mes/Día/Año",
"dateFormatUS": "Año/Mes/Día",
"timeFormat": "Formato de tiempo",
"invalidTimeFormat": "Formato de tiempo inválido",
"timeFormatTwelveHour": "12 horas",
"timeFormatTwentyFourHour": "24 horas",
"addSelectOption": "Añadir una opción",
"optionTitle": "Opciones",
"addOption": "Añadir opción",
"editProperty": "Editar propiedad"
},
"row": {
"duplicate": "Duplicar",
"delete": "Eliminar",
"textPlaceholder": "Vacío",
"copyProperty": "Propiedad copiada al portapapeles"
},
"selectOption": {
"create": "Crear",
"purpleColor": "Morado",
"pinkColor": "Rosa",
"lightPinkColor": "Rosa Claro",
"orangeColor": "Naranja",
"yellowColor": "Amarillo",
"limeColor": "Lima",
"greenColor": "Verde",
"aquaColor": "Agua",
"blueColor": "Azul",
"deleteTag": "Borrar etiqueta",
"colorPanelTitle": "Colores",
"panelTitle": "Selecciona una opción o crea una",
"searchOption": "Buscar una opción"
},
"menuName": "Cuadrícula"
},
"document": {
"menuName": "Documento",
"date": {
"timeHintTextInTwelveHour": "01:00 PM",
"timeHintTextInTwentyFourHour": "13:00"
}
},
"sideBar": {
"openSidebar": "Abrir panel lateral",
"closeSidebar": "Cerrar panel lateral"
},
"board": {
"column": {
"create_new_card": "Nuevo"
}
}
}
@@ -1,333 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "Ni",
"welcomeText": "Ongietorri @:appName -ra",
"githubStarText": "Izarra GitHub-en",
"subscribeNewsletterText": "Harpidetu buletinera",
"letsGoButtonText": "Hasi",
"title": "Izenburua",
"signUp": {
"buttonText": "Izena eman",
"title": "Izena eman @:appName -ra",
"getStartedText": "Hasi",
"emptyPasswordError": "Pasahitzak ezin du hutsik egon",
"repeatPasswordEmptyError": "Pasahitz errepikapenak ezin du hutsik egon",
"unmatchedPasswordError": "Pasahitz errepikapena ez da berdina",
"alreadyHaveAnAccount": "Kontu bat duzu jada?",
"emailHint": "Emaila",
"passwordHint": "Pasahitza",
"repeatPasswordHint": "Pasahitza errepikatu"
},
"signIn": {
"loginTitle": "Hasi saioa @:appName -n",
"loginButtonText": "Hasi saioa",
"buttonText": "Sartu",
"forgotPassword": "Pasahitza ahaztu duzu?",
"emailHint": "Emaila",
"passwordHint": "Pasahitza",
"dontHaveAnAccount": "Ez daukazu konturik?",
"repeatPasswordEmptyError": "Pasahitz errepikapenak ezin du hutsik egon",
"unmatchedPasswordError": "Pasahitz errepikapena ez da berdina"
},
"workspace": {
"create": "Lan-eremua",
"hint": "lan-eremua",
"notFoundError": "Lan-eremurik ez da aurkitu"
},
"shareAction": {
"buttonText": "Konpartitu",
"workInProgress": "Laister",
"markdown": "Markdown",
"copyLink": "Esteka kopiatu"
},
"moreAction": {
"small": "txikia",
"medium": "ertaina",
"large": "handia",
"fontSize": "Letra tamaina"
},
"disclosureAction": {
"rename": "Izena aldatu",
"delete": "Ezabatu",
"duplicate": "Duplikatu"
},
"blankPageTitle": "Orri zuria",
"newPageText": "Orri berria",
"trash": {
"text": "Zaborrontzia",
"restoreAll": "Guztia berreskuratu",
"deleteAll": "Guztia ezabatu",
"pageHeader": {
"fileName": "Fitxategi izena",
"lastModified": "Azken aldaketa",
"created": "Sortua"
}
},
"deletePagePrompt": {
"text": "Orri hau zaborrontzian dago",
"restore": "Orria berreskuratu",
"deletePermanent": "Betirako ezabatu"
},
"dialogCreatePageNameHint": "Orriaren izena",
"questionBubble": {
"whatsNew": "Ze berri?",
"help": "Laguntza",
"debug": {
"name": "Debug informazioa",
"success": "Debug informazioa kopiatu da!",
"fail": "Ezin izan da debug informazioa kopiatu"
}
},
"menuAppHeader": {
"addPageTooltip": "Gehitu orri bat",
"defaultNewPageName": "Izenbururik ez",
"renameDialog": "Izena aldatu"
},
"toolbar": {
"undo": "Desegin",
"redo": "Berregin",
"bold": "Lodia",
"italic": "Etzana",
"underline": "Azpimarratua",
"strike": "Markatua",
"numList": "Zembakidun zerrenda",
"bulletList": "Buletetako zerrenda",
"checkList": "Egiaztapen zerrenda",
"inlineCode": "Lerroko kodea",
"quote": "Aipamena",
"header": "Goiburua",
"highlight": "Nabarmendu",
"color": "Kolorea"
},
"tooltip": {
"lightMode": "Modu argira aldatu",
"darkMode": "Modu ilunera aldatu",
"openAsPage": "Orri gisa ireki",
"addNewRow": "Ilara berri bat gehitu",
"openMenu": "Egin klik menua irekitzeko"
},
"sideBar": {
"closeSidebar": "Alboko barra itxi",
"openSidebar": "Alboko barra ireki"
},
"notifications": {
"export": {
"markdown": "Oharra markdownera esportatuta",
"path": "Documents/flowy"
}
},
"contactsPage": {
"title": "Kontaktuak",
"whatsHappening": "Ze berri aste honetan?",
"addContact": "Kontaktua gehitu",
"editContact": "Kontaktua editatu"
},
"button": {
"OK": "OK",
"Cancel": "Ezteztatu",
"signIn": "Saioa hasi",
"signOut": "Saioa itxi",
"complete": "Burututa",
"save": "Gorde"
},
"label": {
"welcome": "Ongi etorri!",
"firstName": "Izena",
"middleName": "Bigarren izena",
"lastName": "Abizena",
"stepX": "{X}. pausoa"
},
"oAuth": {
"err": {
"failedTitle": "Ezin izan da kontura sartu.",
"failedMsg": "Mesedez, ziurtatu zure arakatzailean saioa hasteko prozesua amaitu duzula."
},
"google": {
"title": "GOOGLE SAIOA HASI",
"instruction1": "Zure Google Kontaktuak inportatzeko, zure web arakatzailea erabiliz aplikazio hau baimendu beharko duzu.",
"instruction2": "Kopiatu kode hau ikonoan klik eginez edo testua hautatuz:",
"instruction3": "Nabigatu zure web arakatzailean esteka honetara eta idatzi goiko kodea:",
"instruction4": "Sakatu beheko botoia erregistroa amaitzean:"
}
},
"settings": {
"title": "Ezarpenak",
"menu": {
"appearance": "Itxura",
"language": "Hizkuntza",
"user": "Erabiltzailea",
"files": "Fitxategiak",
"open": "Ezarpenak ireki"
},
"appearance": {
"themeMode": {
"label": "Itxura modua",
"light": "Modu argia",
"dark": "Modu iluna",
"system": "Zure sistemara moldatu"
},
"theme": "Itxura"
},
"files": {
"defaultLocation": "Non gordetzen diren zure datuak",
"doubleTapToCopy": "Sakatu birritan bidea kopiatzeko",
"restoreLocation": "Berrezarri AppFlowy-ren biden lehenetsira",
"customizeLocation": "Beste karpeta bat ireki",
"restartApp": "Mesedez, berrabiarazi aplikazioa aldaketak indarrean egon daitezen.",
"exportDatabase": "Datubasea exportatu",
"selectFiles": "Aukeratu exportatu nahi dituzun fitxategiak",
"createNewFolder": "Karpeta berri bat sortu",
"createNewFolderDesc": "Non nahi dituzu datuak gorde ...",
"open": "Oreki",
"openFolder": "Ireki karpeta bat",
"openFolderDesc": "Irakurri eta idatzi zure AppFlowy karpetan...",
"folderHintText": "karpetaren izena",
"location": "Karpeta berria sortzen",
"locationDesc": "Aukeratu izen bat AppFlowy datuen karpetarako",
"browser": "Bilatu",
"create": "Sortu",
"folderPath": "Zure karpeta gordetzeko bidea",
"locationCannotBeEmpty": "Bideak ezin du hutsa egon"
}
},
"grid": {
"settings": {
"filter": "Filtroa",
"sort": "Ordenatu",
"sortBy": "Ordenatu honekiko",
"Properties": "Propietateak",
"group": "Taldea",
"addFilter": "Gehitu iragazkia",
"deleteFilter": "Ezabatu iragazkia",
"filterBy": "Iragazi arabera...",
"typeAValue": "Idatzi balio bat..."
},
"textFilter": {
"contains": "Dauka",
"doesNotContain": "Ez dauka",
"endsWith": "Honez amaitzen da",
"startWith": "Honez hasten da",
"is": "da",
"isNot": "Ez da",
"isEmpty": "Hutsa dago",
"isNotEmpty": "Ez dago hutsik",
"choicechipPrefix": {
"isNot": "Ez da",
"startWith": "Honez hasten da",
"endWith": "Honez amaitzen da",
"isEmpty": "hutsik dago",
"isNotEmpty": "ez dago hutsik"
}
},
"checkboxFilter": {
"isChecked": "Egiaztatuta",
"isUnchecked": "Desmarkatua",
"choicechipPrefix": {
"da": "da"
}
},
"checklistFilter": {
"isComplete": "osatu da",
"isIncomplted": "osatu gabe dago"
},
"singleSelectOptionFilter": {
"is": "da",
"isNot": "Ez da",
"isEmpty": "Hutsa dago",
"isNotEmpty": "Ez dago hutsik"
},
"multiSelectOptionFilter": {
"contains": "Duen",
"doesNotContain": "Ez dauka",
"isEmpty": "Hutsa dago",
"isNotEmpty": "Ez dago hutsik"
},
"field": {
"hide": "Ezkutatu",
"insertLeft": "Txertatu ezkerrera",
"insertRight": "Txertatu eskuinera",
"duplicate": "Bikoiztu",
"delete": "Ezabatu",
"textFieldName": "Testua",
"checkboxFieldName": "Markatu laukia",
"dateFieldName": "Data",
"numberFieldName": "Zenbakiak",
"singleSelectFieldName": "Hautatu",
"multiSelectFieldName": "Multi-hautaketa",
"urlFieldName": "URL",
"checklistFieldName": "Kontrol zerrenda",
"numberFormat": "Zenbaki formatua",
"dateFormat": "Data formatua",
"includeTime": "Sartu ordua",
"dateFormatFriendly": "Hilabete Eguna, Urtea",
"dateFormatISO": "Urtea-Hilabetea-Eguna",
"dateFormatLocal": "Hilabetea/Eguna/Urtea",
"dateFormatUS": "Urtea/Hilabetea/Eguna",
"timeFormat": "Denboraren formatua",
"invalidTimeFormat": "Formatu baliogabea",
"timeFormatTwelveHour": "12 ordu",
"timeFormatTwentyFourHour": "24 ordu",
"addSelectOption": "Gehitu aukera bat",
"optionTitle": "Aukerak",
"addOption": "Gehitu aukera",
"editProperty": "Editatu propietatea",
"newProperty": "Zutabe berria",
"deleteFieldPromptMessage": "Ziur al zaude? Propietate hau ezabatu egingo da"
},
"sort": {
"ascending": "Gorarantz",
"descending": "Jaisten",
"deleteSort": "Ezabatu ordena",
"addSort": "Gehitu ordenatu"
},
"row": {
"duplicate": "Bikoiztu",
"delete": "Ezabatu",
"textPlaceholder": "Hutsik",
"copyProperty": "Propietatea arbelean kopiatu da",
"count": "Kontatu",
"newRow": "Errenkada berria"
},
"selectOption": {
"create": "Sortu",
"purpleColor": "Purple",
"pinkColor": "Rosa",
"lightPinkColor": "Arrosa argia",
"orangeColor": "Laranja",
"yellowColor": "Horia",
"limeColor": "Lima",
"greenColor": "Berdea",
"aquaColor": "Aqua",
"blueColor": "Urdina",
"deleteTag": "Ezabatu etiketa",
"colorPanelTitle": "Koloreak",
"panelTitle": "Hautatu aukera bat edo sortu bat",
"searchOption": "Aukera bat bilatu"
},
"checklist": {
"panelTitle": "Gehitu elementu bat"
},
"menuName": "Sareta"
},
"document": {
"menuName": "Dokumentua",
"data": {
"timeHintTextInTwelveHour": "01:00 PM",
"timeHintTextInTwentyFourHour": "13:00"
}
},
"board": {
"column": {
"create_new_card": "Berria"
}
},
"calendar": {
"menuName": "Egutegia",
"navigation": {
"today": "Gaur",
"jumpToday": "Gaurko egunera salto egin",
"previousMonth": "Aurreko hilabetea",
"nextMonth": "Hurrengo hilabetea"
}
}
}
@@ -1,153 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "Moi",
"welcomeText": "Bienvenue sur @:appName",
"githubStarText": "Favoriser sur GitHub",
"subscribeNewsletterText": "Abonnez-vous à notre courriel",
"letsGoButtonText": "Allons-y",
"title": "Titre",
"signUp": {
"buttonText": "S'inscrire",
"title": "S'inscrire à @:appName",
"getStartedText": "Commencer",
"emptyPasswordError": "Vous n'avez pas saisi votre mot de passe",
"repeatPasswordEmptyError": "Mot de passe ne doit pas être vide",
"unmatchedPasswordError": "Les deux mots de passe ne sont pas identiques",
"alreadyHaveAnAccount": "Avez-vous déjà un compte?",
"emailHint": "courriel",
"passwordHint": "Mot de passe",
"repeatPasswordHint": "Ressaisir votre mot de passe"
},
"signIn": {
"loginTitle": "Connexion à @:appName",
"loginButtonText": "Connexion",
"buttonText": "Se connecter",
"forgotPassword": "Mot de passe oublié?",
"emailHint": "courriel",
"passwordHint": "Mot de passe",
"dontHaveAnAccount": "Vous n'avez pas de compte?",
"repeatPasswordEmptyError": "Mot de passe ne doit pas être vide",
"unmatchedPasswordError": "Les deux mots de passe ne sont pas identiques"
},
"workspace": {
"create": "Créer un espace de travail",
"hint": "Espace de travail",
"notFoundError": "Espace de travail introuvable"
},
"shareAction": {
"buttonText": "Partager",
"workInProgress": "Bientôt disponible",
"markdown": "Markdown",
"copyLink": "Copier le lien"
},
"disclosureAction": {
"rename": "Renommer",
"delete": "Supprimer",
"duplicate": "Dupliquer"
},
"blankPageTitle": "Page vierge",
"newPageText": "Nouvelle page",
"trash": {
"text": "Corbeille",
"restoreAll": "Tout récupérer",
"deleteAll": "Tout supprimer",
"pageHeader": {
"fileName": "Nom de fichier",
"lastModified": "Dernière modification",
"created": "Créé"
}
},
"deletePagePrompt": {
"text": "Cette page est dans la corbeille",
"restore": "Récupérer la page",
"deletePermanent": "Supprimer définitivement"
},
"dialogCreatePageNameHint": "Nom de la page",
"questionBubble": {
"whatsNew": "Nouveautés",
"help": "Aide et Support Technique",
"debug": {
"name": "Infos du système",
"success": "Info copié!",
"fail": "Impossible de copier l'info"
}
},
"menuAppHeader": {
"addPageTooltip": "Ajouter une page",
"defaultNewPageName": "Sans titre",
"renameDialog": "Renommer"
},
"toolbar": {
"undo": "Annuler",
"redo": "Rétablir",
"bold": "Gras",
"italic": "Italique",
"underline": "Souligner",
"strike": "Barré",
"numList": "Liste numérotée",
"bulletList": "Liste à puces",
"checkList": "Liste de contrôle",
"inlineCode": "Code en ligne",
"quote": "Citation",
"header": "En-tête",
"highlight": "Surligner"
},
"tooltip": {
"lightMode": "Passer en mode clair",
"darkMode": "Passer en mode sombre"
},
"contactsPage": {
"title": "Contacts",
"whatsHappening": "Quoi de neuf?",
"addContact": "Ajouter un contact",
"editContact": "Modifier le contact"
},
"button": {
"OK": "OK",
"Cancel": "Annuler",
"signIn": "Se connecter",
"signOut": "Se déconnecter",
"complete": "Achevé",
"save": "Sauvegarder"
},
"label": {
"welcome": "Bienvenue!",
"firstName": "Prénom",
"middleName": "Deuxième nom",
"lastName": "Nom de famille",
"stepX": "Étape {X}"
},
"oAuth": {
"err": {
"failedTitle": "Incapable de se connecter à votre compte.",
"failedMsg": "SVP vous assurrez d'avoir complèté le processus d'enregistrement dans votre fureteur."
},
"google": {
"title": "S'identifier avec Google",
"instruction1": "Pour importer vos contacts Google, vous devez autoriser cette application à l'aide de votre navigateur Web.",
"instruction2": "Copiez ce code dans votre presse-papiers en cliquant sur l'icône ou en sélectionnant le texte:",
"instruction3": "Accédez au lien suivant dans votre navigateur Web et saisissez le code ci-dessus:",
"instruction4": "Appuyez sur le bouton ci-dessous lorsque vous avez terminé votre inscription:"
}
},
"settings": {
"title": "Paramètres",
"menu": {
"appearance": "Apparence",
"language": "Langue",
"open": "Ouvrir les paramètres"
},
"appearance": {
"themeMode": {
"label": "Theme Mode",
"light": "Mode clair",
"dark": "Mode sombre",
"system": "Adapt to System"
}
}
},
"sideBar": {
"openSidebar": "Open sidebar",
"closeSidebar": "Close sidebar"
}
}
@@ -1,239 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "Moi",
"welcomeText": "Bienvenue sur @:appName",
"githubStarText": "Favoriser sur GitHub",
"subscribeNewsletterText": "S'inscrire à la Newsletter",
"letsGoButtonText": "Allons-y",
"title": "Titre",
"signUp": {
"buttonText": "S'inscrire",
"title": "Inscrivez-vous sur @:appName",
"getStartedText": "Commencer",
"emptyPasswordError": "Vous n'avez pas saisi votre mot de passe",
"repeatPasswordEmptyError": "Vous n'avez pas ressaisi votre mot de passe",
"unmatchedPasswordError": "Les deux mots de passe ne sont pas identiques",
"alreadyHaveAnAccount": "Avez-vous déjà un compte ?",
"emailHint": "Email",
"passwordHint": "Mot de passe",
"repeatPasswordHint": "Ressaisir votre mot de passe"
},
"signIn": {
"loginTitle": "Connexion à @:appName",
"loginButtonText": "Connexion",
"buttonText": "Se connecter",
"forgotPassword": "Mot de passe oublié ?",
"emailHint": "Email",
"passwordHint": "Mot de passe",
"dontHaveAnAccount": "Vous n'avez pas encore créé votre compte ?",
"repeatPasswordEmptyError": "Vous n'avez pas ressaisi votre mot de passe",
"unmatchedPasswordError": "Les deux mots de passe ne sont pas identiques"
},
"workspace": {
"create": "Créer un espace de travail",
"hint": "Espace de travail",
"notFoundError": "Espace de travail introuvable"
},
"shareAction": {
"buttonText": "Partager",
"workInProgress": "Bientôt disponible",
"markdown": "Markdown",
"copyLink": "Copier le lien"
},
"disclosureAction": {
"rename": "Renommer",
"delete": "Supprimer",
"duplicate": "Dupliquer"
},
"blankPageTitle": "Page vierge",
"newPageText": "Nouvelle page",
"trash": {
"text": "Corbeille",
"restoreAll": "Restaurer tout",
"deleteAll": "Supprimer tout",
"pageHeader": {
"fileName": "Nom de fichier",
"lastModified": "Dernière modification",
"created": "Créé"
}
},
"deletePagePrompt": {
"text": "Cette page a été supprimée, vous pouvez la retrouver dans la corbeille",
"restore": "Restaurer la page",
"deletePermanent": "Supprimer définitivement"
},
"dialogCreatePageNameHint": "Nom de la page",
"questionBubble": {
"whatsNew": "Nouveautés",
"help": "Aide et Support",
"debug": {
"name": "Informations de Débogage",
"success": "Informations de Débogage copiées dans le presse-papiers !",
"fail": "Impossible de copier les informations de Débogage dans le presse-papiers"
}
},
"menuAppHeader": {
"addPageTooltip": "Ajoutez rapidement une page à l'intérieur",
"defaultNewPageName": "Sans-titre",
"renameDialog": "Renommer"
},
"toolbar": {
"undo": "Annuler",
"redo": "Rétablir",
"bold": "Gras",
"italic": "Italique",
"underline": "Souligner",
"strike": "Barré",
"numList": "Liste numérotée",
"bulletList": "Liste à puces",
"checkList": "To-Do List",
"inlineCode": "Code",
"quote": "Bloc de citation",
"header": "En-tête",
"highlight": "Surligner"
},
"tooltip": {
"lightMode": "Passer en mode clair",
"darkMode": "Passer en mode sombre",
"openAsPage": "Ouvrir en tant que page",
"addNewRow": "Ajouter une ligne",
"openMenu": "Cliquer pour ouvrir le menu"
},
"sideBar": {
"closeSidebar": "Fermer le menu latéral",
"openSidebar": "Ouvrir le menu latéral"
},
"notifications": {
"export": {
"markdown": "Note exportée en Markdown",
"path": "Documents/flowy"
}
},
"contactsPage": {
"title": "Contacts",
"whatsHappening": "Que se passe-t-il cette semaine ?",
"addContact": "Ajouter un contact",
"editContact": "Modifier le contact"
},
"button": {
"OK": "OK",
"Cancel": "Annuler",
"signIn": "Se connecter",
"signOut": "Se déconnecter",
"complete": "Achevé",
"save": "Enregistrer"
},
"label": {
"welcome": "Bienvenue !",
"firstName": "Prénom",
"middleName": "Deuxième prénom",
"lastName": "Nom",
"stepX": "Étape {X}"
},
"oAuth": {
"err": {
"failedTitle": "Impossible de se connecter à votre compte.",
"failedMsg": "Assurez-vous d'avoir terminé le processus de connexion dans votre navigateur."
},
"google": {
"title": "CONNEXION VIA GOOGLE",
"instruction1": "Pour importer vos contacts Google, vous devez autoriser cette application à l'aide de votre navigateur web.",
"instruction2": "Copiez ce code dans votre presse-papiers en cliquant sur l'icône ou en sélectionnant le texte:",
"instruction3": "Accédez au lien suivant dans votre navigateur web et saisissez le code ci-dessus:",
"instruction4": "Appuyez sur le bouton ci-dessous lorsque vous avez terminé votre inscription:"
}
},
"settings": {
"title": "Paramètres",
"menu": {
"appearance": "Apparence",
"language": "Langue",
"user": "Utilisateur",
"open": "Ouvrir les paramètres"
},
"appearance": {
"themeMode": {
"label": "Theme Mode",
"light": "Mode clair",
"dark": "Mode sombre",
"system": "Adapt to System"
}
}
},
"grid": {
"settings": {
"filter": "Filtrer",
"sortBy": "Filtrer par",
"Properties": "Propriétés",
"group": "Groupe"
},
"field": {
"hide": "Cacher",
"insertLeft": "Insérer à gauche",
"insertRight": "Insérer à droite",
"duplicate": "Dupliquer",
"delete": "Supprimer",
"textFieldName": "Texte",
"checkboxFieldName": "Case à cocher",
"dateFieldName": "Date",
"numberFieldName": "Nombre",
"singleSelectFieldName": "Sélectionner",
"multiSelectFieldName": "Multisélection",
"urlFieldName": "URL",
"numberFormat": "Format du nombre",
"dateFormat": "Format de la date",
"includeTime": "Inclure l'heure",
"dateFormatFriendly": "Mois Jour, Année",
"dateFormatISO": "Année-Mois-Jour",
"dateFormatLocal": "Mois/Jour/Année",
"dateFormatUS": "Année/Mois/Jour",
"timeFormat": "Format du temps",
"invalidTimeFormat": "Format invalide",
"timeFormatTwelveHour": "12 heures",
"timeFormatTwentyFourHour": "24 heures",
"addSelectOption": "Ajouter une option",
"optionTitle": "Options",
"addOption": "Ajouter une option",
"editProperty": "Modifier la propriété",
"newProperty": "Nouvelle colonne",
"deleteFieldPromptMessage": "Vous voulez supprimer cette propriété ?"
},
"row": {
"duplicate": "Dupliquer",
"delete": "Supprimer",
"textPlaceholder": "Vide",
"copyProperty": "Copie de la propriété dans le presse-papiers",
"count": "Nombre",
"newRow": "Nouvelle ligne"
},
"selectOption": {
"create": "Créer",
"purpleColor": "Violet",
"pinkColor": "Rose",
"lightPinkColor": "Rose clair",
"orangeColor": "Orange",
"yellowColor": "Jaune",
"limeColor": "Citron vert",
"greenColor": "Vert",
"aquaColor": "Aqua",
"blueColor": "Bleu",
"deleteTag": "Supprimer l'étiquette",
"colorPanelTitle": "Couleurs",
"panelTitle": "Sélectionnez une option ou créez-en une",
"searchOption": "Rechercher une option"
},
"menuName": "Grille"
},
"document": {
"menuName": "Document",
"date": {
"timeHintTextInTwelveHour": "01:00 PM",
"timeHintTextInTwentyFourHour": "13:00"
}
},
"board": {
"column": {
"create_new_card": "Nouveau"
}
}
}
@@ -1,153 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "Én",
"welcomeText": "Üdvözöl az @:appName",
"githubStarText": "GitHub csillagozás",
"subscribeNewsletterText": "Iratkozz fel a hírlevelünkre",
"letsGoButtonText": "Vágjunk bele",
"title": "Cím",
"signUp": {
"buttonText": "Regisztráció",
"title": "Regisztrálj az @:appName -ra",
"getStartedText": "Kezdés",
"emptyPasswordError": "A jelszó nem lehet üres",
"repeatPasswordEmptyError": "A jelszó megerősítése nem lehet üres",
"unmatchedPasswordError": "A jelszavak nem egyeznek",
"alreadyHaveAnAccount": "Rendelkezel már fiókkal?",
"emailHint": "Email",
"passwordHint": "Jelszó",
"repeatPasswordHint": "Jelszó megerősítése"
},
"signIn": {
"loginTitle": "Bejelentkezés az @:appName -ba",
"loginButtonText": "Belépés",
"buttonText": "Bejelentkezés",
"forgotPassword": "Elfelejtett jelszó?",
"emailHint": "Email",
"passwordHint": "Jelszó",
"dontHaveAnAccount": "Még nincs fiókod?",
"repeatPasswordEmptyError": "A jelszó megerősítése nem lehet üres",
"unmatchedPasswordError": "A jelszavak nem egyeznek"
},
"workspace": {
"create": "Új munkaterület létrehozása",
"hint": "munkaterület",
"notFoundError": "munkaterület nem található"
},
"shareAction": {
"buttonText": "Megosztás",
"workInProgress": "Hamarosan érkezik...",
"markdown": "Markdown",
"copyLink": "Link másolása"
},
"disclosureAction": {
"rename": "Átnevezés",
"delete": "Törlés",
"duplicate": "Duplikálás"
},
"blankPageTitle": "Üres oldal",
"newPageText": "Új oldal",
"trash": {
"text": "Kuka",
"restoreAll": "Összes visszaállítása",
"deleteAll": "Összes törlése",
"pageHeader": {
"fileName": "Fájlnév",
"lastModified": "Utoljára módosítva",
"created": "Létrehozva"
}
},
"deletePagePrompt": {
"text": "Ez az oldal a kukában van",
"restore": "Oldal visszaállítása",
"deletePermanent": "Végleges törlés"
},
"dialogCreatePageNameHint": "Oldalnév",
"questionBubble": {
"whatsNew": "Újdonságok",
"help": "Segítség & Támogatás",
"debug": {
"name": "Debug Információ",
"success": "Debug információ a vágólapra másolva",
"fail": "A Debug információ nem másolható a vágólapra"
}
},
"menuAppHeader": {
"addPageTooltip": "Belső oldal hozzáadása",
"defaultNewPageName": "Névtelen",
"renameDialog": "Átnevezés"
},
"toolbar": {
"undo": "Vissza",
"redo": "Előre",
"bold": "Félkövér",
"italic": "Dőlt",
"underline": "Aláhúzott",
"strike": "Áthúzott",
"numList": "Számozott lista",
"bulletList": "Felsorolás",
"checkList": "Ellenőrző lista",
"inlineCode": "Inline kód",
"quote": "Idézet",
"header": "Címsor",
"highlight": "Kiemelés"
},
"tooltip": {
"lightMode": "Világos mód",
"darkMode": "Éjjeli mód"
},
"contactsPage": {
"title": "Kontaktok",
"whatsHappening": "Heti újdonságok",
"addContact": "Új Kontakt",
"editContact": "Kontakt Szerkesztése"
},
"button": {
"OK": "OK",
"Cancel": "Mégse",
"signIn": "Bejelentkezés",
"signOut": "Kijelentkezés",
"complete": "Kész",
"save": "Mentés"
},
"label": {
"welcome": "Üdvözlünk!",
"firstName": "Keresztnév",
"middleName": "Középső név",
"lastName": "Vezetéknév",
"stepX": "{X}. lépés"
},
"oAuth": {
"err": {
"failedTitle": "Sikertelen bejelentkezés.",
"failedMsg": "Kérjük győződj meg róla, hogy elvégezted a bejelentkezési folyamatot a böngésződben"
},
"google": {
"title": "Bejelentkezés Google-al",
"instruction1": "Ahhoz, hogy hozzáférj a Google Kontaktjaidhoz, kérjük hatalmazd fel ezt az alkalmazást a böngésződben.",
"instruction2": "Másold ezt a kódot a vágólapra az ikonra kattintással vagy a szöveg kijelölésével:",
"instruction3": "Nyisd meg ezt a linket a böngésződben, és írjd be a fenti kódot:",
"instruction4": "Nyomd meg az alábbi gombot, ha elvégezted a registrációt:"
}
},
"settings": {
"title": "Beállítások",
"menu": {
"appearance": "Megjelenés",
"language": "Nyelv",
"open": "Beállítások megnyitása"
},
"appearance": {
"themeMode": {
"label": "Theme Mode",
"light": "Világos mód",
"dark": "Éjjeli mód",
"system": "Adapt to System"
}
}
},
"sideBar": {
"openSidebar": "Open sidebar",
"closeSidebar": "Close sidebar"
}
}
@@ -1,226 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "Saya",
"welcomeText": "Selamat datang di @:appName",
"githubStarText": "Bintangi GitHub",
"subscribeNewsletterText": "Berlangganan buletin",
"letsGoButtonText": "Ayo",
"title": "Judul",
"signUp": {
"buttonText": "Daftar",
"title": "Daftar ke @:appName",
"getStartedText": "Mulai",
"emptyPasswordError": "Sandi tidak boleh kosong",
"repeatPasswordEmptyError": "Sandi ulang tidak boleh kosong",
"unmatchedPasswordError": "Sandi ulang tidak sama dengan sandi",
"alreadyHaveAnAccount": "Sudah punya akun?",
"emailHint": "Email",
"passwordHint": "Sandi",
"repeatPasswordHint": "Sandi ulang"
},
"signIn": {
"loginTitle": "Masuk ke @:appName",
"loginButtonText": "Masuk",
"buttonText": "Masuk",
"forgotPassword": "Lupa Sandi?",
"emailHint": "Email",
"passwordHint": "Sandi",
"dontHaveAnAccount": "Belum punya akun?",
"repeatPasswordEmptyError": "Sandi ulang tidak boleh kosong",
"unmatchedPasswordError": "Sandi ulang tidak sama dengan sandi"
},
"workspace": {
"create": "Buat workspace",
"hint": "workspace",
"notFoundError": "Workspace tidak ditemukan"
},
"shareAction": {
"buttonText": "Bagikan",
"workInProgress": "Segera",
"markdown": "Markdown",
"copyLink": "Salin tautan"
},
"disclosureAction": {
"rename": "Ganti nama",
"delete": "Hapus",
"duplicate": "Duplikat"
},
"blankPageTitle": "Halaman kosong",
"newPageText": "Halaman baru",
"trash": {
"text": "Sampah",
"restoreAll": "Pulihkan Semua",
"deleteAll": "Hapus semua",
"pageHeader": {
"fileName": "Nama file",
"lastModified": "Terakhir diubah",
"created": "Dibuat"
}
},
"deletePagePrompt": {
"text": "Halaman ini di tempat sampah",
"restore": "Pulihkan halaman",
"deletePermanent": "Hapus secara permanen"
},
"dialogCreatePageNameHint": "Nama halaman",
"questionBubble": {
"whatsNew": "Apa yang baru?",
"help": "Bantuan & Dukungan",
"debug": {
"name": "Info debug",
"success": "Info debug disalin ke papan klip!",
"fail": "Tidak dapat menyalin info debug ke papan klip"
}
},
"menuAppHeader": {
"addPageTooltip": "Menambahkan halaman di dalam dengan cepat",
"defaultNewPageName": "Tanpa Judul",
"renameDialog": "Ganti nama"
},
"toolbar": {
"undo": "Undo",
"redo": "Redo",
"bold": "Tebal",
"italic": "Miring",
"underline": "Garis bawah",
"strike": "Dicoret",
"numList": "Daftar bernomor",
"bulletList": "Daftar berpoin",
"checkList": "Daftar periksa",
"inlineCode": "Kode sebaris",
"quote": "Blok kutipan",
"header": "Tajuk",
"highlight": "Sorotan"
},
"tooltip": {
"lightMode": "Ganti mode terang",
"darkMode": "Ganti mode gelap"
},
"notifications": {
"export": {
"markdown": "Mengekspor Catatan ke Markdown",
"path": "Documents/flowy"
}
},
"contactsPage": {
"title": "Kontak",
"whatsHappening": "Apa yang terjadi minggu ini?",
"addContact": "Tambahkan Kontak",
"editContact": "Ubah Kontak"
},
"button": {
"OK": "Ya",
"Cancel": "Batal",
"signIn": "Masuk",
"signOut": "Keluar",
"complete": "Selesai",
"save": "Simpan"
},
"label": {
"welcome": "Selamat datang!",
"firstName": "Nama Depan",
"middleName": "Nama Tengah",
"lastName": "Nama Akhir",
"stepX": "Langkah {X}"
},
"oAuth": {
"err": {
"failedTitle": "Tidak dapat terhubung ke akun anda",
"failedMsg": "Mohon pastikan anda menyelesaikan proses pendaftaran pada browser anda."
},
"google": {
"title": "MASUK GOOGLE",
"instruction1": "Untuk mengimpor kontak Google Contacts anda, anda harus mengizinkan aplikasi ini menggunakan browser web anda.",
"instruction2": "Salin kode ini ke papan klip anda dengan cara mengklik ikon atau memilih teks:",
"instruction3": "Arahkan ke tautan berikut di browser web Anda, dan masukkan kode di atas:",
"instruction4": "Tekan tombol di bawah ini setelah Anda menyelesaikan pendaftaran:"
}
},
"settings": {
"title": "Pengaturan",
"menu": {
"appearance": "Tampilan",
"language": "Bahasa",
"user": "Pengguna",
"open": "Buka Pengaturan"
},
"appearance": {
"themeMode": {
"label": "Theme Mode",
"light": "Mode Terang",
"dark": "Mode Gelap",
"system": "Adapt to System"
}
}
},
"grid": {
"settings": {
"filter": "Filter",
"sortBy": "Sortir dengan",
"Properties": "Properti"
},
"field": {
"hide": "Sembunyikan",
"insertLeft": "Sisipkan Kiri",
"insertRight": "Sisipkan Kanan",
"duplicate": "Duplikasi",
"delete": "Hapus",
"textFieldName": "Teks",
"checkboxFieldName": "Kotak Centang",
"dateFieldName": "Tanggal",
"numberFieldName": "Angka",
"singleSelectFieldName": "seleksi",
"multiSelectFieldName": "Multi seleksi",
"urlFieldName": "URL",
"numberFormat": "Format angka",
"dateFormat": "Format tanggal",
"includeTime": "Sertakan waktu",
"dateFormatFriendly": "Bulan Hari, Tahun",
"dateFormatISO": "Tahun-Bulan-Hari",
"dateFormatLocal": "Bulan/Hari/Tahun",
"dateFormatUS": "Tahun/Bulan/Hari",
"timeFormat": "Format waktu",
"invalidTimeFormat": "Format yang tidak valid",
"timeFormatTwelveHour": "12 jam",
"timeFormatTwentyFourHour": "24 jam",
"addSelectOption": "Tambahkan opsi",
"optionTitle": "Opsi",
"addOption": "Tambahkan opsi",
"editProperty": "Ubah properti"
},
"row": {
"duplicate": "Duplikasi",
"delete": "Hapus",
"textPlaceholder": "Kosong",
"copyProperty": "Salin properti ke papan klip"
},
"selectOption": {
"create": "Buat",
"purpleColor": "Ungu",
"pinkColor": "Merah Jambu",
"lightPinkColor": "Merah Jambu Muda",
"orangeColor": "Oranye",
"yellowColor": "Kuning",
"limeColor": "Limau",
"greenColor": "Hijau",
"aquaColor": "Air",
"blueColor": "Biru",
"deleteTag": "Hapus tag",
"colorPanelTitle": "Warna",
"panelTitle": "Pilih opsi atau buat baru",
"searchOption": "Cari opsi"
},
"menuName": "Grid"
},
"document": {
"menuName": "Dokter",
"date": {
"timeHintTextInTwelveHour": "01:00 PM",
"timeHintTextInTwentyFourHour": "13:00"
}
},
"sideBar": {
"openSidebar": "Open sidebar",
"closeSidebar": "Close sidebar"
}
}
@@ -1,159 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "Me",
"welcomeText": "Benvenuto in @:appName",
"githubStarText": "Vota su GitHub",
"subscribeNewsletterText": "Sottoscrivi la Newsletter",
"letsGoButtonText": "Andiamo",
"title": "Titolo",
"signUp": {
"buttonText": "Registrati",
"title": "Registrati per @:appName",
"getStartedText": "Iniziamo",
"emptyPasswordError": "La password non può essere vuota",
"repeatPasswordEmptyError": "La password ripetuta non può essere vuota",
"unmatchedPasswordError": "La password ripetuta non è uguale alla password",
"alreadyHaveAnAccount": "Hai già un account?",
"emailHint": "Email",
"passwordHint": "Password",
"repeatPasswordHint": "Ripeti password"
},
"signIn": {
"loginTitle": "Accedi a @:appName",
"loginButtonText": "Login",
"buttonText": "Accedi",
"forgotPassword": "Password Dimentica?",
"emailHint": "Email",
"passwordHint": "Password",
"dontHaveAnAccount": "Non hai un account?",
"repeatPasswordEmptyError": "La password ripetuta non può essere vuota",
"unmatchedPasswordError": "La password ripetuta non è uguale alla password"
},
"workspace": {
"create": "Crea spazio di lavoro",
"hint": "spazio di lavoro",
"notFoundError": "Spazio di lavoro non trovato"
},
"shareAction": {
"buttonText": "Condividi",
"workInProgress": "Prossimamente",
"markdown": "Markdown",
"copyLink": "Copia Link"
},
"disclosureAction": {
"rename": "Rinomina",
"delete": "Cancella",
"duplicate": "Duplica"
},
"blankPageTitle": "Pagina vuota",
"newPageText": "Nuova pagina",
"trash": {
"text": "Cestino",
"restoreAll": "Ripristina Tutto",
"deleteAll": "Elimina Tutto",
"pageHeader": {
"fileName": "Nome file",
"lastModified": "Ultima Modifica",
"created": "Creato"
}
},
"deletePagePrompt": {
"text": "Questa pagina è nel Cestino",
"restore": "Ripristina pagina",
"deletePermanent": "Elimina definitivamente"
},
"dialogCreatePageNameHint": "Nome pagina",
"questionBubble": {
"whatsNew": "Cosa c'è di nuovo?",
"help": "Aiuto & Supporto",
"debug": {
"name": "Informazioni di debug",
"success": "Informazioni di debug copiate negli appunti!",
"fail": "Impossibile copiare le informazioni di debug negli appunti"
}
},
"menuAppHeader": {
"addPageTooltip": "Aggiungi velocemente una pagina all'interno",
"defaultNewPageName": "Senza titolo",
"renameDialog": "Rinomina"
},
"toolbar": {
"undo": "Undo",
"redo": "Redo",
"bold": "Grassetto",
"italic": "Italico",
"underline": "Sottolineato",
"strike": "Barrato",
"numList": "Lista numerata",
"bulletList": "Lista a punti",
"checkList": "Lista Controllo",
"inlineCode": "Codice in linea",
"quote": "Cita Blocco",
"header": "intestazione",
"highlight": "Evidenziare"
},
"tooltip": {
"lightMode": "Passa alla modalità Chiara",
"darkMode": "Passa alla modalità Scura"
},
"contactsPage": {
"title": "Contatti",
"whatsHappening": "Cosa accadrà la prossima settimana?",
"addContact": "Aggiungi Contatti",
"editContact": "Modifica Contatti"
},
"button": {
"OK": "OK",
"Cancel": "Annulla",
"signIn": "Accedi",
"signOut": "Esci",
"complete": "Completa",
"save": "Salva"
},
"label": {
"welcome": "Benvenuto!",
"firstName": "Name",
"middleName": "Secondo Name",
"lastName": "Cognome",
"stepX": "Passo {X}"
},
"oAuth": {
"err": {
"failedTitle": "Impossibile collegarsi al tuo account.",
"failedMsg": "Si prega di verificare di aver completato il processo di iscrizione nel tuo browser."
},
"google": {
"title": "GOOGLE SIGN-IN",
"instruction1": "Al fine di importare i tuoi Contatti Google è necessario autorizzare questa applicazione ad utilizzare il tuo beowser web.",
"instruction2": "Copia questo codice negli appunti premendo l'icona o selezionando il testo:",
"instruction3": "Naviga sul seguente link con il tuo browser web e inserisci il codice seguente:",
"instruction4": "Premi il bottone qui sotto quando hai completato l'iscrizione:"
}
},
"settings": {
"title": "Impostazioni",
"menu": {
"appearance": "Aspetto",
"language": "Lingua",
"open": "aprire le impostazioni"
},
"appearance": {
"themeMode": {
"label": "Theme Mode",
"light": "Modalità Chiara",
"dark": "Modalità Scura",
"system": "Adapt to System"
}
}
},
"grid": {
"menuName": "Griglia"
},
"document": {
"menuName": "Documento"
},
"sideBar": {
"openSidebar": "Open sidebar",
"closeSidebar": "Close sidebar"
}
}
@@ -1,207 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "ユーザー",
"welcomeText": "Welcome to @:appName",
"githubStarText": "Star on GitHub",
"subscribeNewsletterText": "新着情報を受け取る",
"letsGoButtonText": "Let's Go",
"title": "タイトル",
"signUp": {
"buttonText": "新規登録",
"title": "@:appNameに新規登録",
"getStartedText": "はじめる",
"emptyPasswordError": "パスワードを空にはできません",
"repeatPasswordEmptyError": "パスワード(確認用)を空にはできません",
"unmatchedPasswordError": "パスワード(確認用)が一致しません",
"alreadyHaveAnAccount": "すでにアカウントを登録済ですか?",
"emailHint": "メールアドレス",
"passwordHint": "パスワード",
"repeatPasswordHint": "パスワード(確認用)"
},
"signIn": {
"loginTitle": "@:appName にログイン",
"loginButtonText": "ログイン",
"buttonText": "サインイン",
"forgotPassword": "パスワードをお忘れですか?",
"emailHint": "メールアドレス",
"passwordHint": "パスワード",
"dontHaveAnAccount": "まだアカウントをお持ちではないですか?",
"repeatPasswordEmptyError": "パスワード(確認用)を空にはできません",
"unmatchedPasswordError": "パスワード(確認用)が一致しません"
},
"workspace": {
"create": "ワークスペースを作成する",
"hint": "ワークスペース",
"notFoundError": "ワークスペースがみつかりません"
},
"shareAction": {
"buttonText": "共有する",
"workInProgress": "Coming soon",
"markdown": "Markdown",
"copyLink": "Copy Link"
},
"disclosureAction": {
"rename": "名前を変更",
"delete": "削除",
"duplicate": "コピーを作成"
},
"blankPageTitle": "空のページ",
"newPageText": "新しいページ",
"trash": {
"text": "ごみ箱",
"restoreAll": "全て復元",
"deleteAll": "全て削除",
"pageHeader": {
"fileName": "ファイル名",
"lastModified": "最終更新日時",
"created": "作成日時"
}
},
"deletePagePrompt": {
"text": "このページはごみ箱にあります",
"restore": "ページを元に戻す",
"deletePermanent": "削除する"
},
"dialogCreatePageNameHint": "ページ名",
"questionBubble": {
"whatsNew": "What's new?",
"help": "ヘルプとサポート",
"debug": {
"name": "デバッグ情報",
"success": "デバッグ情報をクリップボードにコピーしました!",
"fail": "デバッグ情報をクリップボードにコピーできませんでした"
}
},
"menuAppHeader": {
"addPageTooltip": "内部ページを追加",
"defaultNewPageName": "Untitled",
"renameDialog": "名前を変更"
},
"toolbar": {
"undo": "元に戻す",
"redo": "やり直し",
"bold": "太字",
"italic": "斜体",
"underline": "下線",
"strike": "取り消し線",
"numList": "番号付きリスト",
"bulletList": "箇条書き",
"checkList": "チェックボックス",
"inlineCode": "インラインコード",
"quote": "引用文",
"header": "見出し",
"highlight": "文字の背景色"
},
"tooltip": {
"lightMode": "ライトモードに切り替える",
"darkMode": "ダークモードに切り替える"
},
"contactsPage": {
"title": "連絡先",
"whatsHappening": "今週はどんなことがありましたか?",
"addContact": "連絡先を追加する",
"editContact": "連絡先を編集する"
},
"button": {
"OK": "OK",
"Cancel": "キャンセル",
"signIn": "サインイン",
"signOut": "サインアウト",
"complete": "完了",
"save": "保存"
},
"label": {
"welcome": "ようこそ!",
"firstName": "名",
"middleName": "ミドルネーム",
"lastName": "姓",
"stepX": "Step {X}"
},
"oAuth": {
"err": {
"failedTitle": "アカウントに接続できません",
"failedMsg": "サインインが完了したことをブラウザーで確認してください"
},
"google": {
"title": "GOOGLEでサインイン",
"instruction1": "GOOGLEでのサインインを有効にするためには、Webブラウザーを使ってこのアプリケーションを認証する必要があります。",
"instruction2": "アイコンをクリックするか、以下のテキストを選択して、このコードをクリップボードにコピーします。",
"instruction3": "以下のリンク先をブラウザーで開いて、次のコードを入力します。",
"instruction4": "登録が完了したら以下のボタンを押してください。"
}
},
"settings": {
"title": "設定",
"menu": {
"appearance": "外観",
"language": "言語",
"open": "設定"
},
"appearance": {
"themeMode": {
"label": "Theme Mode",
"light": "ライトモード",
"dark": "ダークモード",
"system": "Adapt to System"
}
}
},
"grid": {
"settings": {
"filter": "絞り込み",
"sortBy": "並び替え",
"Properties": "プロパティ"
},
"field": {
"hide": "隠す",
"insertLeft": "左に挿入",
"insertRight": "右に挿入",
"duplicate": "コピーを作成",
"delete": "削除",
"textFieldName": "テキスト",
"checkboxFieldName": "チェックボックス",
"dateFieldName": "日付",
"numberFieldName": "数値",
"singleSelectFieldName": "単一選択",
"multiSelectFieldName": "複数選択",
"numberFormat": "数値書式",
"dateFormat": "日付書式",
"includeTime": "時刻を含める",
"dateFormatFriendly": "月 日, 年",
"dateFormatISO": "年-月-日",
"dateFormatLocal": "月/日/年",
"dateFormatUS": "年/月/日",
"timeFormat": "時刻書式",
"timeFormatTwelveHour": "12 時間表記",
"timeFormatTwentyFourHour": "24 時間表記",
"addSelectOption": "選択候補追加",
"optionTitle": "選択候補",
"addOption": "選択候補追加",
"editProperty": "プロパティの編集"
},
"row": {
"duplicate": "コピーを作成",
"delete": "削除",
"textPlaceholder": "空白"
},
"selectOption": {
"purpleColor": "紫",
"pinkColor": "ピンク",
"lightPinkColor": "ライトピンク",
"orangeColor": "オレンジ",
"yellowColor": "黄色",
"limeColor": "ライム",
"greenColor": "緑",
"aquaColor": "水色",
"blueColor": "青",
"deleteTag": "選択候補を削除",
"colorPanelTitle": "色",
"panelTitle": "選択候補を検索 または 作成する",
"searchOption": "選択候補を検索"
}
},
"sideBar": {
"openSidebar": "Open sidebar",
"closeSidebar": "Close sidebar"
}
}
@@ -1,235 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "Me",
"welcomeText": "@:appName 에 오신것을 환영합니다",
"githubStarText": "Star on GitHub",
"subscribeNewsletterText": "뉴스레터 구독",
"letsGoButtonText": "Let's Go",
"title": "제목",
"signUp": {
"buttonText": "회원가입",
"title": "@:appName 에 회원가입",
"getStartedText": "시작하기",
"emptyPasswordError": "비밀번호는 공백일 수 없습니다",
"repeatPasswordEmptyError": "비밀번호 재입력란은 공백일 수 없습니다",
"unmatchedPasswordError": "재입력 하신 비밀번호가 같지 않습니다",
"alreadyHaveAnAccount": "이미 계정이 있으신가요?",
"emailHint": "이메일",
"passwordHint": "비밀번호",
"repeatPasswordHint": "비밀번호 재입력"
},
"signIn": {
"loginTitle": "@:appName 에 로그인",
"loginButtonText": "로그인",
"buttonText": "로그인",
"forgotPassword": "비밀번호를 잊으셨나요?",
"emailHint": "이메일",
"passwordHint": "비밀번호",
"dontHaveAnAccount": "계정이 없으신가요?",
"repeatPasswordEmptyError": "비밀번호 재입력란은 공백일 수 없습니다",
"unmatchedPasswordError": "재입력 하신 비밀번호가 같지 않습니다"
},
"workspace": {
"create": "워크스페이스 생성",
"hint": "워크스페이스",
"notFoundError": "워크스페이스를 찾을 수 없습니다"
},
"shareAction": {
"buttonText": "공유",
"workInProgress": "Coming soon",
"markdown": "마크다운",
"copyLink": "링크 복사"
},
"disclosureAction": {
"rename": "이름변경",
"delete": "삭제",
"duplicate": "복제"
},
"blankPageTitle": "빈 페이지",
"newPageText": "새로운 페이지",
"trash": {
"text": "휴지통",
"restoreAll": "모두 복구",
"deleteAll": "모두 삭제",
"pageHeader": {
"fileName": "파일 이름",
"lastModified": "수정날짜",
"created": "생성날짜"
}
},
"deletePagePrompt": {
"text": "현재 페이지는 휴지통에 있습니다",
"restore": "페이지 복구",
"deletePermanent": "영구 삭제"
},
"dialogCreatePageNameHint": "페이지 이름",
"questionBubble": {
"whatsNew": "새로운 소식",
"help": "도움 및 지원",
"debug": {
"name": "디버그 정보",
"success": "디버그 정보를 클립보드로 복사했습니다.",
"fail": "디버그 정보를 클립보드로 복사할 수 없습니다."
}
},
"menuAppHeader": {
"addPageTooltip": "하위에 페이지 추가",
"defaultNewPageName": "제목없음",
"renameDialog": "이름변경"
},
"toolbar": {
"undo": "실행취소",
"redo": "재실행",
"bold": "굵게",
"italic": "기울임꼴",
"underline": "밑줄",
"strike": "취소선",
"numList": "번호 매기기 목록",
"bulletList": "글머리 기호 목록",
"checkList": "작업 목록",
"inlineCode": "인라인 코드",
"quote": "인용구 블록",
"header": "헤더",
"highlight": "하이라이트"
},
"tooltip": {
"lightMode": "라이트 모드로 변경",
"darkMode": "다크 모드로 변경",
"openAsPage": "페이지로 열기",
"addNewRow": "열 추가",
"openMenu": "메뉴를 여시려면 클릭하세요"
},
"sideBar": {
"closeSidebar": "사이드바 닫기",
"openSidebar": "사이드바 열기"
},
"notifications": {
"export": {
"markdown": "마크다운으로 노트를 내보냄",
"path": "Documents/flowy"
}
},
"contactsPage": {
"title": "연락처",
"whatsHappening": "이번주에는 무슨 일이 있나요?",
"addContact": "연락처 추가",
"editContact": "연락처 편집"
},
"button": {
"OK": "확인",
"Cancel": "취소",
"signIn": "로그인",
"signOut": "로그아웃",
"complete": "완료",
"save": "저장"
},
"label": {
"welcome": "환영합니다!",
"firstName": "이름",
"middleName": "중간 이름",
"lastName": "성",
"stepX": "{X} 단계"
},
"oAuth": {
"err": {
"failedTitle": "계정에 연결을 할 수 없습니다.",
"failedMsg": "브라우저에서 회원가입이 완료되었는지 확인해주세요."
},
"google": {
"title": "GOOGLE SIGN-IN",
"instruction1": "구글 연락처를 가져오기 위해서 웹브라우저로 앱을 승인 해야 합니다.",
"instruction2": "아이콘을 클릭 또는 텍스트를 선택해서 이 코드를 클립보드로 복사하세요:",
"instruction3": "웹브라우저로 다음 링크로 가셔서 위 코드를 입력해주세요:",
"instruction4": "가입 완료 후 아래 버튼을 눌러주세요:"
}
},
"settings": {
"title": "설정",
"menu": {
"appearance": "화면",
"language": "언어",
"user": "사용자",
"open": "설정 열기"
},
"appearance": {
"lightLabel": "라이트 모드",
"darkLabel": "다크 모드"
}
},
"grid": {
"settings": {
"filter": "필터",
"sortBy": "정렬 기준",
"Properties": "속성",
"group": "그룹"
},
"field": {
"hide": "숨기기",
"insertLeft": "왼쪽 삽입",
"insertRight": "오른쪽 삽입",
"duplicate": "복제",
"delete": "삭제",
"textFieldName": "텍스트",
"checkboxFieldName": "체크박스",
"dateFieldName": "날짜",
"numberFieldName": "숫자",
"singleSelectFieldName": "선택",
"multiSelectFieldName": "다중선택",
"urlFieldName": "링크",
"numberFormat": "숫자 형식",
"dateFormat": "날짜 형식",
"includeTime": "시간 표시",
"dateFormatFriendly": "월 일, 년",
"dateFormatISO": "년-월-일",
"dateFormatLocal": "월/일/년",
"dateFormatUS": "년/월/일",
"timeFormat": "시간 형식",
"invalidTimeFormat": "잘못된 형식",
"timeFormatTwelveHour": "12 시간",
"timeFormatTwentyFourHour": "24 시간",
"addSelectOption": "옵션 추가",
"optionTitle": "옵션",
"addOption": "옵션 추가",
"editProperty": "속성 편집",
"newProperty": "열 추가",
"deleteFieldPromptMessage": "해당 속성을 삭제 하시겠습니까?"
},
"row": {
"duplicate": "복제",
"delete": "삭제",
"textPlaceholder": "비어있음",
"copyProperty": "속성이 클립보드로 복사됨",
"count": "개수",
"newRow": "행 추가"
},
"selectOption": {
"create": "생성",
"purpleColor": "보라색",
"pinkColor": "핑크색",
"lightPinkColor": "연한 핑크색",
"orangeColor": "오렌지색",
"yellowColor": "노랑색",
"limeColor": "라임색",
"greenColor": "초록색",
"aquaColor": "아쿠아색",
"blueColor": "파랑색",
"deleteTag": "태그 삭제",
"colorPanelTitle": "색상",
"panelTitle": "옵션 선택 또는 생성",
"searchOption": "옵션 검색"
},
"menuName": "그리드"
},
"document": {
"menuName": "도큐먼트",
"date": {
"timeHintTextInTwelveHour": "01:00 PM",
"timeHintTextInTwentyFourHour": "13:00"
}
},
"board": {
"column": {
"create_new_card": "추가"
}
}
}
@@ -1,153 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "Ja",
"welcomeText": "Witaj w @:appName",
"githubStarText": "Gwiazdka na GitHub-ie",
"subscribeNewsletterText": "Zapisz się do naszego Newslettera",
"letsGoButtonText": "Start!",
"title": "Tytuł",
"signUp": {
"buttonText": "Zarejestruj",
"title": "Zarejestruj się w @:appName",
"getStartedText": "Zaczynamy",
"emptyPasswordError": "Hasło nie moze być puste",
"repeatPasswordEmptyError": "Powtórzone hasło nie moze być puste",
"unmatchedPasswordError": "Hasła nie są takie same",
"alreadyHaveAnAccount": "Masz juz konto?",
"emailHint": "Email",
"passwordHint": "Hasło",
"repeatPasswordHint": "Powtórz hasło"
},
"signIn": {
"loginTitle": "Zaloguj do @:appName",
"loginButtonText": "Logowanie",
"buttonText": "Zaloguj",
"forgotPassword": "Zapomniałem hasła?",
"emailHint": "Email",
"passwordHint": "Password",
"dontHaveAnAccount": "Nie masz konta?",
"repeatPasswordEmptyError": "Powtórzone hasło nie moze być puste",
"unmatchedPasswordError": "Hasła nie są takie same"
},
"workspace": {
"create": "Utwórz przestrzeń",
"hint": "przestrzeń robocza",
"notFoundError": "Przestrzeni nie znaleziono"
},
"shareAction": {
"buttonText": "Udostępnij",
"workInProgress": "Wkrótce",
"markdown": "Markdown",
"copyLink": "Skopiuj link"
},
"disclosureAction": {
"rename": "Zmień nazwę",
"delete": "Usuń",
"duplicate": "Duplikuj"
},
"blankPageTitle": "Pusta strona",
"newPageText": "Nowa strona",
"trash": {
"text": "Kosz",
"restoreAll": "Przywróć Wszystko",
"deleteAll": "Usuń Wszystko",
"pageHeader": {
"fileName": "Nazwa Pliku",
"lastModified": "Ostatnio Zmodyfikowano",
"created": "Utworzono"
}
},
"deletePagePrompt": {
"text": "Ta strona jest w Koszu",
"restore": "Przywróć strone",
"deletePermanent": "Usuń bezpowrotnie"
},
"dialogCreatePageNameHint": "Nazwa Strony",
"questionBubble": {
"whatsNew": "What's new?",
"help": "Pomoc & Wsparcie",
"debug": {
"name": "Informacje Debugowania",
"success": "Skopiowano informacje debugowania do schowka!",
"fail": "Nie mozna skopiować informacji debugowania do schowka"
}
},
"menuAppHeader": {
"addPageTooltip": "Szybko dodaj stronę do środka",
"defaultNewPageName": "Brak tytułu",
"renameDialog": "Zmień nazwę"
},
"toolbar": {
"undo": "Cofnij",
"redo": "Powtórz",
"bold": "Pogrubiony",
"italic": "Kursywa",
"underline": "Podkreśl",
"strike": "Przekreśl",
"numList": "Lista Numerowana",
"bulletList": "Lista Punktowana",
"checkList": "Lista Kontrolna",
"inlineCode": "Kod Wbudowany",
"quote": "Blok cytat",
"header": "Nagłówek",
"highlight": "Podświetl"
},
"tooltip": {
"lightMode": "Przełącz w Tryb Jasny",
"darkMode": "Przełącz w Tryb Ciemny"
},
"contactsPage": {
"title": "Kontakty",
"whatsHappening": "Co się dzieje w tym tygodniu?",
"addContact": "Dodaj Kontakt",
"editContact": "Edytuj Kontakt"
},
"button": {
"OK": "OK",
"Cancel": "Anuluj",
"signIn": "Zaloguj",
"signOut": "Wyloguj",
"complete": "Zakończono",
"save": "Zapisz"
},
"label": {
"welcome": "Witaj!",
"firstName": "Imię Pierwsze",
"middleName": "Imię Drugie",
"lastName": "Nazwisko",
"stepX": "Krok {X}"
},
"oAuth": {
"err": {
"failedTitle": "Nie można połączyć się z Twoim kontem.",
"failedMsg": "Upewnij się, że zakończyłeś proces logowania w przeglądarce."
},
"google": {
"title": "LOGOWANIE GOOGLE",
"instruction1": "Aby zaimportować Kontakty Google, musisz autoryzować tę aplikację za pomocą przeglądarki internetowej.",
"instruction2": "Skopiuj ten kod do schowka, klikając ikonę lub zaznaczając tekst:",
"instruction3": "Przejdź do następującego linku w przeglądarce internetowej i wprowadź powyższy kod:",
"instruction4": "Naciśnij poniższy przycisk po zakończeniu rejestracji:"
}
},
"settings": {
"title": "Ustawienia",
"menu": {
"appearance": "Wygląd",
"language": "Język",
"open": "Otwórz Ustawienia"
},
"appearance": {
"themeMode": {
"label": "Theme Mode",
"light": "Tryb Jasny",
"dark": "Tryb Ciemny",
"system": "Adapt to System"
}
}
},
"sideBar": {
"openSidebar": "Open sidebar",
"closeSidebar": "Close sidebar"
}
}
@@ -1,373 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "Eu",
"welcomeText": "Bem-vindo ao @:appName",
"githubStarText": "Dar uma estrela no Github",
"subscribeNewsletterText": "Inscreva-se para receber novidades",
"letsGoButtonText": "Vamos lá",
"title": "Título",
"signUp": {
"buttonText": "Inscreva-se",
"title": "Inscreva-se no @:appName",
"getStartedText": "Começar",
"emptyPasswordError": "Senha não pode estar em branco.",
"repeatPasswordEmptyError": "Senha não estar em branco.",
"unmatchedPasswordError": "As senhas não conferem.",
"alreadyHaveAnAccount": "Já possui uma conta?",
"emailHint": "E-mail",
"passwordHint": "Dica de senha",
"repeatPasswordHint": "Confirme a senha"
},
"signIn": {
"loginTitle": "Conectar-se ao @:appName",
"loginButtonText": "Conectar-se",
"buttonText": "Entre",
"forgotPassword": "Esqueceu sua senha?",
"emailHint": "E-mail",
"passwordHint": "Senha",
"dontHaveAnAccount": "Não possui uma conta?",
"repeatPasswordEmptyError": "Senha não pode estar em branco.",
"unmatchedPasswordError": "As senhas não conferem."
},
"workspace": {
"create": "Crie um espaço de trabalho",
"hint": "Espaço de trabalho",
"notFoundError": "Espaço de trabalho não encontrado"
},
"shareAction": {
"buttonText": "Compartilhar",
"workInProgress": "Em breve",
"markdown": "Marcador",
"copyLink": "Copiar link"
},
"moreAction": {
"small": "pequeno",
"medium": "médio",
"large": "grande",
"fontSize": "Tamanho da fonte",
"import": "Importar"
},
"disclosureAction": {
"rename": "Renomear",
"delete": "Apagar",
"duplicate": "Duplicar"
},
"blankPageTitle": "Página em branco",
"newPageText": "Nova página",
"trash": {
"text": "Lixeira",
"restoreAll": "Restaurar tudo",
"deleteAll": "Apagar tudo",
"pageHeader": {
"fileName": "Nome do arquivo",
"lastModified": "Última modificação",
"created": "Criado"
}
},
"deletePagePrompt": {
"text": "Está página está na lixeira",
"restore": "Restaurar a página",
"deletePermanent": "Apagar permanentemente"
},
"dialogCreatePageNameHint": "Nome da página",
"questionBubble": {
"shortcuts": "Atalhos",
"whatsNew": "O que há de novo?",
"help": "Ajuda e Suporte",
"debug": {
"name": "Informação de depuração",
"success": "Informação de depuração copiada para a área de transferência!",
"fail": "Falha ao copiar a informação de depuração para a área de transferência"
}
},
"menuAppHeader": {
"addPageTooltip": "Adicionar uma nova página.",
"defaultNewPageName": "Sem título",
"renameDialog": "Renomear"
},
"toolbar": {
"undo": "Desfazer",
"redo": "Refazer",
"bold": "Negrito",
"italic": "Itálico",
"underline": "Sublinhado",
"strike": "Tachado",
"numList": "Lista numerada",
"bulletList": "Lista com marcadores",
"checkList": "Check list",
"inlineCode": "Embutir código",
"quote": "Citação em bloco",
"header": "Cabeçalho",
"highlight": "Destacar",
"color": "Cor"
},
"tooltip": {
"lightMode": "Mudar para o modo claro",
"darkMode": "Mudar para o modo escuro",
"openAsPage": "Abrir como uma página",
"addNewRow": "Adicionar uma nova linha",
"openMenu": "Clique para abrir o menu",
"viewDataBase": "Visualizar banco de dados",
"referencePage": "Esta {name} é uma referência"
},
"sideBar": {
"openSidebar": "Abrir barra lateral",
"closeSidebar": "Fechar barra lateral"
},
"notifications": {
"export": {
"markdown": "Nota exportada como um marcador",
"path": "Documentos/flowy"
}
},
"contactsPage": {
"title": "Contatos",
"whatsHappening": "O que está acontecendo essa semana?",
"addContact": "Adicionar um contato",
"editContact": "Editar um contato"
},
"button": {
"OK": "Ok",
"Cancel": "Cancelar",
"signIn": "Conectar",
"signOut": "Desconectar",
"complete": "Completar",
"save": "Salvar",
"generate": "Gerar",
"esc": "Sair",
"keep": "Manter",
"tryAGain": "Tentar novamente",
"discard": "Descartar",
"replace": "substituir"
},
"label": {
"welcome": "Bem-vindo!",
"firstName": "Nome",
"middleName": "Sobrenome",
"lastName": "Último nome",
"stepX": "Passo {X}"
},
"oAuth": {
"err": {
"failedTitle": "Erro ao conectar a sua conta.",
"failedMsg": "Verifique se você concluiu o processo de conexão em seu navegador."
},
"google": {
"title": "Conexão com o GOOGLE",
"instruction1": "Para importar seus Contatos do Google, você precisará autorizar este aplicativo usando seu navegador.",
"instruction2": "Copie este código para sua área de transferência clicando no ícone ou selecionando o texto:",
"instruction3": "Navegue até o link a seguir em seu navegador e digite o código acima:",
"instruction4": "Pressione o botão abaixo ao concluir a inscrição:"
}
},
"settings": {
"title": "Configurações",
"menu": {
"appearance": "Aparência",
"language": "Idioma",
"user": "Usuário",
"files": "Arquivos",
"open": "Abrir Configurações"
},
"appearance": {
"themeMode": {
"label": "Tema",
"light": "Modo claro",
"dark": "Modo escuro",
"system": "Adaptar-se ao sistema"
},
"theme": "Tema"
},
"files": {
"defaultLocation": "Onde os seus dados ficam armazenados",
"doubleTapToCopy": "Clique duas vezes para copiar o caminho",
"restoreLocation": "Restaurar para o caminho padrão do AppFlowy",
"customizeLocation": "Abrir outra pasta",
"restartApp": "Reinicie o aplicativo para que as alterações entrem em vigor.",
"exportDatabase": "Exportar banco de dados",
"selectFiles": "Escolha os arquivos que precisam ser exportados",
"createNewFolder": "Criar uma nova pasta",
"createNewFolderDesc": "Diga-nos onde pretende armazenar os seus dados ...",
"open": "Abrir",
"openFolder": "Abra uma pasta existente",
"openFolderDesc": "Gravar na pasta AppFlowy existente ...",
"folderHintText": "nome da pasta",
"location": "Criando nova pasta",
"locationDesc": "Escolha um nome para sua pasta de dados do AppFlowy",
"browser": "Navegar",
"create": "Criar",
"folderPath": "Caminho para armazenar sua pasta",
"locationCannotBeEmpty": "O caminho não pode estar vazio"
},
"user": {
"name": "Nome",
"icon": "Ícone",
"selectAnIcon": "Escolha um ícone",
"pleaseInputYourOpenAIKey": "por favor insira sua chave OpenAI"
}
},
"grid": {
"settings": {
"filter": "Filtro",
"sort": "Organizar",
"sortBy": "Organizar por",
"Properties": "Propriedades",
"group": "Grupo",
"addFilter": "Adicionar filtro",
"deleteFilter": "Apagar filtro",
"filterBy": "Filtrar por...",
"typeAValue": "Digite um valor..."
},
"textFilter": {
"contains": "Contém",
"doesNotContain": "Não contém",
"endsWith": "Termina com",
"startWith": "Inicia com",
"is": "É",
"isNot": "Não é",
"isEmpty": "Está vazio",
"isNotEmpty": "Não está vazio",
"choicechipPrefix": {
"isNot": "Não",
"startWith": "Inicia com",
"endWith": "Termina com",
"isEmpty": "está vazio",
"isNotEmpty": "não está vazio"
}
},
"checkboxFilter": {
"isChecked": "Marcado",
"isUnchecked": "Desmarcado",
"choicechipPrefix": {
"is": "está"
}
},
"checklistFilter": {
"isComplete": "está completo",
"isIncomplted": "está imcompleto"
},
"singleSelectOptionFilter": {
"is": "Está",
"isNot": "Não está",
"isEmpty": "Está vazio",
"isNotEmpty": "Não está vazio"
},
"multiSelectOptionFilter": {
"contains": "Contém",
"doesNotContain": "Não contém",
"isEmpty": "Está vazio",
"isNotEmpty": "Está vazio"
},
"field": {
"hide": "Ocultar",
"insertLeft": "Inserir a esquerda",
"insertRight": "Inserir a direita",
"duplicate": "Duplicar",
"delete": "Apagar",
"textFieldName": "Texto",
"checkboxFieldName": "Caixa de seleção",
"dateFieldName": "Data",
"numberFieldName": "Números",
"singleSelectFieldName": "Selecionar",
"multiSelectFieldName": "Multi seleção",
"urlFieldName": "URL",
"checklistFieldName": "Lista",
"numberFormat": "Formato numérico",
"dateFormat": "Formato de data",
"includeTime": "Incluir hora",
"dateFormatFriendly": "Mês Dia, Ano",
"dateFormatISO": "Ano-Mês-Dia",
"dateFormatLocal": "Mês/Dia/Ano",
"dateFormatUS": "Ano/Mês/Dia",
"timeFormat": "Formato de hora",
"invalidTimeFormat": "Formato inválido",
"timeFormatTwelveHour": "12 horas",
"timeFormatTwentyFourHour": "24 horas",
"addSelectOption": "Adicionar uma opção",
"optionTitle": "Opções",
"addOption": "Adicioar opção",
"editProperty": "Editar propriedade",
"newProperty": "Nova coluna",
"deleteFieldPromptMessage": "Tem certeza? Esta propriedade será excluída"
},
"sort": {
"ascending": "Crescente",
"descending": "Decrescente",
"deleteSort": "Apagar ordenação",
"addSort": "Adicionar ordenação"
},
"row": {
"duplicate": "Duplicar",
"delete": "Apagar",
"textPlaceholder": "Vazio",
"copyProperty": "Propriedade copiada para a área de transferência",
"count": "Contagem",
"newRow": "Nova linha"
},
"selectOption": {
"create": "Criar",
"purpleColor": "Roxo",
"pinkColor": "Rosa",
"lightPinkColor": "Rosa claro",
"orangeColor": "Laranja",
"yellowColor": "Amarelo",
"limeColor": "Verde limão",
"greenColor": "Verde",
"aquaColor": "Áqua",
"blueColor": "Azul",
"deleteTag": "Apagar etiqueta",
"colorPannelTitle": "Cores",
"pannelTitle": "Escolha uma opção ou crie uma",
"searchOption": "Procurar uma opção"
},
"checklist": {
"panelTitle": "Adicionar um item"
},
"menuName": "Grade"
},
"document": {
"menuName": "Documento",
"date": {
"timeHintTextInTwelveHour": "01:00 PM",
"timeHintTextInTwentyFourHour": "13:00"
},
"slashMenu": {
"board": {
"selectABoardToLinkTo": "Selecione um quadro para vincular"
},
"grid": {
"selectAGridToLinkTo": "Selecione um grade para vincular"
}
},
"plugins": {
"referencedBoard": "Quadro vinculado",
"referencedGrid": "Grade vinculado",
"autoCompletionMenuItemName": "Preenchimento Automático",
"autoGeneratorMenuItemName": "Gerar nome automaticamente",
"autoGeneratorTitleName": "Gerar por IA",
"autoGeneratorLearnMore": "Saiba mais",
"autoGeneratorGenerate": "Gerar",
"autoGeneratorHintText": "Diga-nos o que você deseja gerar por IA ...",
"autoGeneratorCantGetOpenAIKey": "Não foi possível obter a chave da OpenAI",
"smartEditFixSpelling": "Corrigir ortografia",
"smartEditSummarize": "Resumir",
"smartEditCouldNotFetchResult": "Não foi possível obter o resultado do OpenAI",
"smartEditCouldNotFetchKey": "Não foi possível obter a chave OpenAI"
}
},
"board": {
"column": {
"create_new_card": "Novo"
},
"menuName": "Quadro"
},
"calendar": {
"menuName": "Calendário",
"navigation": {
"today": "Hoje",
"jumpToday": "Pular para hoje",
"previousMonth": "Mês anterior",
"nextMonth": "Próximo mês"
}
}
}
@@ -1,149 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "Me",
"welcomeText": "Bem vindo ao @:appName",
"githubStarText": "Star on GitHub",
"subscribeNewsletterText": "Inscreve-te ao Newsletter",
"letsGoButtonText": "Bora",
"title": "Título",
"signUp": {
"buttonText": "Inscreve-te",
"title": "Inscreve-te ao @:appName",
"getStartedText": "Começar",
"emptyPasswordError": "A palavra-passe não pode estar em branco.",
"repeatPasswordEmptyError": "Confirmar a palavra-passe não pode estar em branco.",
"unmatchedPasswordError": "As palavras-passes não coincidem.",
"alreadyHaveAnAccount": "Já possuis uma conta?",
"emailHint": "Email",
"passwordHint": "Password",
"repeatPasswordHint": "Confirma a tua password"
},
"signIn": {
"loginTitle": "Entre no @:appName",
"loginButtonText": "Login",
"buttonText": "Entre",
"forgotPassword": "Esqueceste-te da tua palavra-passe?",
"emailHint": "Email",
"passwordHint": "Palavra-passe",
"dontHaveAnAccount": "Não possuis uma conta?",
"repeatPasswordEmptyError": "Confirmar a palavra-passe não pode estar em branco.",
"unmatchedPasswordError": "As palavras-passes não conferem."
},
"workspace": {
"create": "Cria um ambiente de trabalho",
"hint": "ambiente de trabalho",
"notFoundError": "Ambiente de trabalho não encontrada"
},
"shareAction": {
"buttonText": "Partilhar",
"workInProgress": "Em breve",
"markdown": "Markdown",
"copyLink": "Copiar o link"
},
"disclosureAction": {
"rename": "Renomear",
"delete": "Apagar",
"duplicate": "Duplicar"
},
"blankPageTitle": "Página em branco",
"newPageText": "Nova página",
"trash": {
"text": "Lixo",
"restoreAll": "Restaurar todos",
"deleteAll": "Apagar todos",
"pageHeader": {
"fileName": "Nome do ficheiro",
"lastModified": "Última modificação",
"created": "Criado"
}
},
"deletePagePrompt": {
"text": "Esta página está no lixo",
"restore": "Restaurar a página",
"deletePermanent": "Apagar permanentemente"
},
"dialogCreatePageNameHint": "Nome da página",
"questionBubble": {
"whatsNew": "O que há de novo?",
"help": "Ajuda & Suporte",
"debug": {
"name": "Informação de depuração",
"success": "Copiar informação de depuração para o clipboard!",
"fail": "Falha em copiar a informação de depuração para o clipboard"
}
},
"menuAppHeader": {
"addPageTooltip": "Adiciona uma nova página.",
"defaultNewPageName": "Sem título",
"renameDialog": "Renomear"
},
"toolbar": {
"undo": "Desfazer",
"redo": "Refazer",
"bold": "Negrito",
"italic": "Itálico",
"underline": "Sublinhado",
"strike": "Riscado",
"numList": "Lista numerada",
"bulletList": "Lista com marcadores",
"checkList": "Lista de verificação",
"inlineCode": "Embutir código",
"quote": "Citação em bloco",
"header": "Cabeçalho",
"highlight": "Realçar"
},
"tooltip": {
"lightMode": "Mudar para o modo Claro.",
"darkMode": "Mudar para o modo Escuro."
},
"contactsPage": {
"title": "Conctatos",
"whatsHappening": "O que está a acontecer nesta semana?",
"addContact": "Adicionar um conctato",
"editContact": "Editar um conctato"
},
"button": {
"OK": "OK",
"Cancel": "Cancelar",
"signIn": "Entrar",
"signOut": "Sair",
"complete": "Completar",
"save": "Guardar"
},
"label": {
"welcome": "Bem vindo!",
"firstName": "Nome",
"middleName": "Nome do Meio",
"lastName": "Apelido",
"stepX": "Passo {X}"
},
"oAuth": {
"err": {
"failedTitle": "Erro ao conectar à sua conta.",
"failedMsg": "Verifica se concluiste o processo de login no teu navegador."
},
"google": {
"title": "GOOGLE SIGN-IN",
"instruction1": "Para importar os teus Conctatos do Google, tens de autorizar esta aplicação usando o teu navegador web.",
"instruction2": "Copia este código para a tua área de transferências clicando no ícone ou selecionando o texto:",
"instruction3": "Navega até o link a seguir no seu navegador e digite o código acima:",
"instruction4": "Clica no botão abaixo ao concluir a inscrição:"
}
},
"settings": {
"title": "Definições",
"menu": {
"appearance": "Aparência",
"language": "Idioma",
"open": "Abrir as Definições"
},
"appearance": {
"lightLabel": "Modo Claro",
"darkLabel": "Modo Escuro"
}
},
"sideBar": {
"openSidebar": "Open sidebar",
"closeSidebar": "Close sidebar"
}
}
@@ -1,423 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "Я",
"welcomeText": "Добро пожаловать в @:appName",
"githubStarText": "Поставить звезду на GitHub",
"subscribeNewsletterText": "Подписаться на рассылку",
"letsGoButtonText": "Начнём",
"title": "Заголовок",
"signUp": {
"buttonText": "Зарегистрироваться",
"title": "Регистрация в @:appName",
"getStartedText": "Начать",
"emptyPasswordError": "Пароль не может быть пустым",
"repeatPasswordEmptyError": "Повтор пароля не может быть пустым",
"unmatchedPasswordError": "Пароли не совпадают",
"alreadyHaveAnAccount": "Уже есть аккаунт?",
"emailHint": "Электронная почта",
"passwordHint": "Пароль",
"repeatPasswordHint": "Повторите пароль"
},
"signIn": {
"loginTitle": "Войти в @:appName",
"loginButtonText": "Войти",
"buttonText": "Авторизация",
"forgotPassword": "Забыли пароль?",
"emailHint": "Электронная почта",
"passwordHint": "Пароль",
"dontHaveAnAccount": "Нет аккаунта?",
"repeatPasswordEmptyError": "Повтор пароля не может быть пустым",
"unmatchedPasswordError": "Пароли не совпадают"
},
"workspace": {
"create": "Создать рабочее пространство",
"hint": "рабочее пространство",
"notFoundError": "Нет такого рабочего пространства"
},
"shareAction": {
"buttonText": "Поделиться",
"workInProgress": "В разработке",
"markdown": "Markdown",
"copyLink": "Скопировать ссылку"
},
"moreAction": {
"small": "маленький",
"medium": "средний",
"large": "большой",
"fontSize": "Размер шрифта",
"import": "Импортировать"
},
"disclosureAction": {
"rename": "Переименовать",
"delete": "Удалить",
"duplicate": "Дублировать"
},
"blankPageTitle": "Пустая страница",
"newPageText": "Новая страница",
"trash": {
"text": "Корзина",
"restoreAll": "Восстановить всё",
"deleteAll": "Очистить",
"pageHeader": {
"fileName": "Имя",
"lastModified": "Последнее изменение",
"created": "Создан"
}
},
"deletePagePrompt": {
"text": "Эта страница в Корзине",
"restore": "Восстановить страницу",
"deletePermanent": "Удалить навсегда"
},
"dialogCreatePageNameHint": "Имя страницы",
"questionBubble": {
"shortcuts": "Комбинации клавиш",
"whatsNew": "Что нового?",
"help": "Помощь",
"markdown": "Markdown",
"debug": {
"name": "Отладочная информация",
"success": "Скопировано в буфер обмена!",
"fail": "Не получилось скопировать"
}
},
"menuAppHeader": {
"addPageTooltip": "Быстро добавить новую страницу",
"defaultNewPageName": "Без заголовка",
"renameDialog": "Переименовать"
},
"toolbar": {
"undo": "Отменить",
"redo": "Повторить",
"bold": "Жирный",
"italic": "Курсив",
"underline": "Подчёркнутый",
"strike": "Зачёркнутый",
"numList": "Нумерованный список",
"bulletList": "Маркированный список",
"checkList": "Список To-Do",
"inlineCode": "Код",
"quote": "Цитата",
"header": "Заголовок",
"highlight": "Выделение",
"color": "Цвет"
},
"tooltip": {
"lightMode": "Переключить на светлую тему",
"darkMode": "Переключить на тёмную тему",
"openAsPage": "Открыть как страницу",
"addNewRow": "Добавить новую строку",
"openMenu": "Открыть меню",
"viewDataBase": "Просмотр базы данных",
"referencePage": "Ссылаются на {name}"
},
"sideBar": {
"closeSidebar": "Закрыть боковое меню",
"openSidebar": "Открыть боковое меню"
},
"notifications": {
"export": {
"markdown": "Заметка экспортирована в Markdown",
"path": "Документы/flowy"
}
},
"contactsPage": {
"title": "Контакты",
"whatsHappening": "Какие события на этой неделе?",
"addContact": "Добавить контакт",
"editContact": "Редактировать контакт"
},
"button": {
"OK": "OK",
"Done": "Завершить",
"Cancel": "Отмена",
"signIn": "Войти",
"signOut": "Выйти",
"complete": "Завершить",
"save": "Сохранить",
"generate": "Сгенерировать",
"esc": "ESC",
"keep": "Оставить",
"tryAgain": "Повторить",
"discard": "Отменить",
"replace": "Заменить",
"insertBelow": "Вставить ниже"
},
"label": {
"welcome": "Добро пожаловать!",
"firstName": "Имя",
"middleName": "Отчество",
"lastName": "Фамилия",
"stepX": "Этап {X}"
},
"oAuth": {
"err": {
"failedTitle": "Не удалось подключиться к вашей учетной записи.",
"failedMsg": "Убедитесь, что вы завершили вход в своём браузере."
},
"google": {
"title": "Вход через Google",
"instruction1": "Чтобы импортировать ваши Google Контакты, вам нужно будет авторизовать приложение через браузер.",
"instruction2": "Скопируйте этот код в буфер обмена (нажав кнопку или выделив текст):",
"instruction3": "Пройдите по ссылке и введите этот код:",
"instruction4": "Нажмите на кнопку ниже, когда завершите вход:"
}
},
"settings": {
"title": "Настройки",
"menu": {
"appearance": "Внешний вид",
"language": "Язык",
"user": "Пользователь",
"files": "Файлы",
"open": "Открыть настройки"
},
"appearance": {
"themeMode": {
"label": "Тема приложения",
"light": "Светлая",
"dark": "Тёмная",
"system": "Системная"
},
"theme": "Тема"
},
"files": {
"defaultLocation": "Где сейчас хранятся ваши данные",
"doubleTapToCopy": "Нажмите дважды, чтобы скопировать путь",
"restoreLocation": "Восстановить путь AppFlowy по умолчанию",
"customizeLocation": "Открыть другую папку",
"restartApp": "Пожалуйста, перезапустите приложение, чтобы изменения вступили в силу.",
"exportDatabase": "Экспорт базы данных",
"selectFiles": "Выбрать файлы, которые необходимо экспортировать",
"createNewFolder": "Создать новую папку",
"createNewFolderDesc": "Указать, где хранить свои данные ...",
"open": "Открыть",
"openFolder": "Открыть существующую папку",
"openFolderDesc": "Чтение и запись в существующую папку AppFlowy ...",
"folderHintText": "имя папки",
"location": "Создание новой папки",
"locationDesc": "Выбрать имя папки данных AppFlowy",
"browser": "Обзор",
"create": "Создать",
"folderPath": "Путь к вашей папке",
"locationCannotBeEmpty": "Путь не может быть пустым",
"pathCopiedSnackbar": "Путь скопирован в буфер обмена!"
},
"user": {
"name": "Имя",
"icon": "Иконка",
"selectAnIcon": "Выбрать иконку",
"pleaseInputYourOpenAIKey": "Введите токен OpenAI"
}
},
"grid": {
"settings": {
"filter": "Фильтр",
"sort": "Сортировать",
"sortBy": "Сортировать по",
"Properties": "Свойства",
"group": "Группировать",
"addFilter": "Добавить фильтр",
"deleteFilter": "Удалить фильтр",
"filterBy": "Фильтровать по...",
"typeAValue": "Введите значение...",
"layout": "Раскладка"
},
"textFilter": {
"contains": "Содержит",
"doesNotContain": "Не содержит",
"endsWith": "Заканчивается на",
"startWith": "Начинается с",
"is": "Является",
"isNot": "Не является",
"isEmpty": "Пусто",
"isNotEmpty": "Не пусто",
"choicechipPrefix": {
"isNot": "Не является",
"startWith": "Начинается с",
"endWith": "Заканчивается на",
"isEmpty": "пусто",
"isNotEmpty": "не пусто"
}
},
"checkboxFilter": {
"isChecked": "Отмечено",
"isUnchecked": "Не отмечено",
"choicechipPrefix": {
"is": "является"
}
},
"checklistFilter": {
"isComplete": "завершено",
"isIncomplted": "не завершено"
},
"singleSelectOptionFilter": {
"is": "Является",
"isNot": "Не является",
"isEmpty": "Пусто",
"isNotEmpty": "Не пусто"
},
"multiSelectOptionFilter": {
"contains": "Содержит",
"doesNotContain": "Не содержит",
"isEmpty": "Пусто",
"isNotEmpty": "Не пусто"
},
"field": {
"hide": "Скрыть",
"insertLeft": "Вставить слева",
"insertRight": "Вставить справа",
"duplicate": "Дублировать",
"delete": "Удалить",
"textFieldName": "Текст",
"checkboxFieldName": "Чекбокс",
"dateFieldName": "Дата",
"numberFieldName": "Число",
"singleSelectFieldName": "Выбор",
"multiSelectFieldName": "Выбор нескольких",
"urlFieldName": "URL",
"checklistFieldName": "Контрольный список",
"numberFormat": "Формат числа",
"dateFormat": "Формат даты",
"includeTime": "Время",
"dateFormatFriendly": "День Месяц, Год",
"dateFormatISO": "Год-Месяц-День",
"dateFormatLocal": "Месяц/День/Год",
"dateFormatUS": "Год/Месяц/День",
"dateFormatDayMonthYear": "День/Mесяц/Год",
"timeFormat": "Формат времени",
"invalidTimeFormat": "Неверный формат",
"timeFormatTwelveHour": "12 часов",
"timeFormatTwentyFourHour": "24 часа",
"addSelectOption": "Добавить вариант",
"optionTitle": "Варианты",
"addOption": "Добавить",
"editProperty": "Редактировать свойство",
"newProperty": "Добавить колонку",
"deleteFieldPromptMessage": "Вы уверены? Свойство будет удалено"
},
"sort": {
"ascending": "По возрастанию",
"descending": "По убыванию",
"deleteSort": "Удалить сортировку",
"addSort": "Добавить сортировку"
},
"row": {
"duplicate": "Дублировать",
"delete": "Удалить",
"textPlaceholder": "Пусто",
"copyProperty": "Свойство скопировано",
"count": "Количество",
"newRow": "Новая строка",
"action": "Действия"
},
"selectOption": {
"create": "Создать",
"purpleColor": "Фиолетовый",
"pinkColor": "Розовый",
"lightPinkColor": "Светло-розовый",
"orangeColor": "Оранжевый",
"yellowColor": "Желтый",
"limeColor": "Ярко-зелёный",
"greenColor": "Зелёный",
"aquaColor": "Бирюзовый",
"blueColor": "Синий",
"deleteTag": "Удалить вариант",
"colorPanelTitle": "Цвета",
"panelTitle": "Выберите или создайте вариант",
"searchOption": "Поиск"
},
"checklist": {
"panelTitle": "Добавить элемент"
},
"menuName": "Сетка",
"referencedGridPrefix": "Просмотр"
},
"document": {
"menuName": "Документ",
"date": {
"timeHintTextInTwelveHour": "01:00 PM",
"timeHintTextInTwentyFourHour": "13:00"
},
"slashMenu": {
"board": {
"selectABoardToLinkTo": "Выбрать доску для связи с",
"createANewBoard": "Создать доску"
},
"grid": {
"selectAGridToLinkTo": "Выберите сетку для связи с",
"createANewGrid": "Создать сетку"
}
},
"plugins": {
"referencedBoard": "Связанные доски",
"referencedGrid": "Связанные сетки",
"autoGeneratorMenuItemName": "Генератор OpenAI",
"autoGeneratorTitleName": "OpenAI: попросить ИИ написать что угодно...",
"autoGeneratorLearnMore": "Узнать больше",
"autoGeneratorGenerate": "Генерировать",
"autoGeneratorHintText": "Спросить OpenAI ...",
"autoGeneratorCantGetOpenAIKey": "Не могу получить токен OpenAI",
"smartEdit": "ИИ ассистенты",
"openAI": "OpenAI",
"smartEditFixSpelling": "Исправить правописание",
"warning": "⚠️ Ответы ИИ могут быть неправильными или неточными.",
"smartEditSummarize": "Выделить суть",
"smartEditCouldNotFetchResult": "Не могу получить ответ от OpenAI",
"smartEditCouldNotFetchKey": "Не могу получить токен OpenAI",
"smartEditDisabled": "Подключить OpenAI",
"discardResponse": "Хотите убрать ответы ИИ?",
"cover": {
"changeCover": "Сменить обложку",
"colors": "Цвета",
"images": "Изображения",
"clearAll": "Очистить",
"abstract": "Абстракные",
"addCover": "Добавить обложку",
"addLocalImage": "Добавить изображение с диска",
"invalidImageUrl": "Некорректная ссылка на изображение",
"failedToAddImageToGallery": "Ошибка добавления изображения в галерею",
"enterImageUrl": "Введите ссылку на изображение",
"add": "Добавить",
"back": "Назад",
"saveToGallery": "Сохранить в галерею",
"removeIcon": "Удалить иконку",
"pasteImageUrl": "Вставить ссылку на изображение",
"or": "ИЛИ",
"pickFromFiles": "Выбрать с диска",
"couldNotFetchImage": "Не удалось получить изображение",
"imageSavingFailed": "Не удалось сохранить изображение",
"addIcon": "Добавить иконку",
"coverRemoveAlert": "Изображение будет удалено с обложки",
"alertDialogConfirmation": "Вы хотите продолжить?"
},
"mathEquation": {
"addMathEquation": "Добавить математическое выражение",
"editMathEquation": "Редактировать математическое выражение"
}
}
},
"board": {
"column": {
"create_new_card": "Создать"
},
"menuName": "Доска",
"referencedBoardPrefix": "Просмотр"
},
"calendar": {
"menuName": "Календарь",
"defaultNewCalendarTitle": "Безымянный",
"navigation": {
"today": "Сегодня",
"jumpToday": "Перейти к сегодняшнему дню",
"previousMonth": "Предыдущий месяц",
"nextMonth": "Следующий месяц"
},
"settings": {
"showWeekNumbers": "Показывать номера недель",
"showWeekends": "Показывать выходные",
"firstDayOfWeek": "Первый день недели",
"layoutDateField": "Вид календаря"
}
}
}
@@ -1,239 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "Jag",
"welcomeText": "Välkommen till @:appName",
"githubStarText": "Stärnmärk på GitHub",
"subscribeNewsletterText": "Prenumerera på nyhetsbrev",
"letsGoButtonText": "Kör igång",
"title": "Namn",
"signUp": {
"buttonText": "Registrera dig",
"title": "Registrera dig på @:appName",
"getStartedText": "Sätt igång",
"emptyPasswordError": "Lösenordet kan inte vara tomt",
"repeatPasswordEmptyError": "Upprepat lösenord kan inte vara tomt",
"unmatchedPasswordError": "Upprepat lösenord är inte samma som det första",
"alreadyHaveAnAccount": "Har du redan ett konto?",
"emailHint": "E-post",
"passwordHint": "Lösenord",
"repeatPasswordHint": "Uprepa lösenordet"
},
"signIn": {
"loginTitle": "Logga in till @:appName",
"loginButtonText": "Logga in",
"buttonText": "Registrering",
"forgotPassword": "Glömt lösenordet?",
"emailHint": "E-post",
"passwordHint": "Lösenord",
"dontHaveAnAccount": "Har du inget konto?",
"repeatPasswordEmptyError": "Upprepat lösenord kan inte vara tomt",
"unmatchedPasswordError": "Upprepat lösenord är inte samma som det första"
},
"workspace": {
"create": "Skapa arbetsyta",
"hint": "Arbetsyta",
"notFoundError": "Hittade ingen arbetsyta"
},
"shareAction": {
"buttonText": "Dela",
"workInProgress": "Kommer snart",
"markdown": "Markdown",
"copyLink": "Kopiera länk"
},
"disclosureAction": {
"rename": "Byt namn",
"delete": "Ta bort",
"duplicate": "Klona"
},
"blankPageTitle": "Tom sida",
"newPageText": "Ny sida",
"trash": {
"text": "Skräp",
"restoreAll": "Återställ alla",
"deleteAll": "Ta bort alla",
"pageHeader": {
"fileName": "Filnamn",
"lastModified": "Ändrad",
"created": "Skapad"
}
},
"deletePagePrompt": {
"text": "Denna sida är i skräpmappen",
"restore": "Återställ sida",
"deletePermanent": "Radera permanent"
},
"dialogCreatePageNameHint": "Sidnamn",
"questionBubble": {
"whatsNew": "Vad nytt?",
"help": "Hjälp & Support",
"debug": {
"name": "Felsökningsinfo",
"success": "Kopierade felsökningsinfo till urklipp!",
"fail": "Kunde inte kopiera felsökningsinfo till urklipp"
}
},
"menuAppHeader": {
"addPageTooltip": "Lägg snabbt till en sida inuti",
"defaultNewPageName": "Namnlös",
"renameDialog": "Byt namn"
},
"toolbar": {
"undo": "Ångra",
"redo": "Upprepa",
"bold": "Fet",
"italic": "Kursiv",
"underline": "Understruken",
"strike": "Genomstruken",
"numList": "Numrerad lista",
"bulletList": "Punktlista",
"checkList": "Checklista",
"inlineCode": "Infogad kod",
"quote": "Citatblock",
"header": "Rubrik",
"highlight": "Färgmarkera"
},
"tooltip": {
"lightMode": "Växla till ljust läge",
"darkMode": "Växla till mörkt läge",
"openAsPage": "Öppna som sida",
"addNewRow": "Lägg till ny rad",
"openMenu": "Klicka för att öppna meny"
},
"sideBar": {
"closeSidebar": "Stäng sidofältet",
"openSidebar": "Öppna sidofältet"
},
"notifications": {
"export": {
"markdown": "Exporterade anteckning till Markdown",
"path": "Dokument/flowy"
}
},
"contactsPage": {
"title": "Kontakter",
"whatsHappening": "Vad händer denna vecka?",
"addContact": "Lägg till kontakt",
"editContact": "Redigera kontakt"
},
"button": {
"OK": "OK",
"Cancel": "Avbryt",
"signIn": "Logga in",
"signOut": "Logga ut",
"complete": "Slutfört",
"save": "Spara"
},
"label": {
"welcome": "Välkommen!",
"firstName": "Förnamn",
"middleName": "Mellannamn",
"lastName": "Efternamn",
"stepX": "Steg {X}"
},
"oAuth": {
"err": {
"failedTitle": "Kan inte ansluta till ditt konto.",
"failedMsg": "Tillse att du har slutfört registreringsprocessen i din webbläsare."
},
"google": {
"title": "GOOGLE-inloggning",
"instruction1": "För att kunna importera dina Google-kontakter, måste du auktorisera detta program med hjälp av din webbläsare.",
"instruction2": "Kopiera den här koden till urklipp genom att klicka på ikonen eller genom att markera texten:",
"instruction3": "Gå till följande länk i din webbläsare, och ange ovanstående kod:",
"instruction4": "Tryck på nedanstående knapp när du slutfört registreringen:"
}
},
"settings": {
"title": "Inställningar",
"menu": {
"appearance": "Utseende",
"language": "Språk",
"user": "Användare",
"open": "Öppna inställningarna"
},
"appearance": {
"themeMode": {
"label": "Theme Mode",
"light": "Ljust läge",
"dark": "Mörkt läge",
"system": "Adapt to System"
}
}
},
"grid": {
"settings": {
"filter": "Filter",
"sortBy": "Sortera efter",
"Properties": "Egenskaper",
"group": "Grupp"
},
"field": {
"hide": "Dölj",
"insertLeft": "Infoga till vänster",
"insertRight": "Infoga till höger",
"duplicate": "Klona",
"delete": "Ta bort",
"textFieldName": "Text",
"checkboxFieldName": "Checkruta",
"dateFieldName": "Datum",
"numberFieldName": "Siffror",
"singleSelectFieldName": "Välj",
"multiSelectFieldName": "Välj flera",
"urlFieldName": "URL",
"numberFormat": "Sifferformat",
"dateFormat": "Datumformat",
"includeTime": "Inkludera tid",
"dateFormatFriendly": "Månad Dag, År",
"dateFormatISO": "År-Månad-Dag",
"dateFormatLocal": "Månad/Dag/År",
"dateFormatUS": "År/Månad/Dag",
"timeFormat": "Tidsformat",
"invalidTimeFormat": "Ogiltigt format",
"timeFormatTwelveHour": "12-timmars",
"timeFormatTwentyFourHour": "24-timmars",
"addSelectOption": "Lägg till ett alternativ",
"optionTitle": "Alternativ",
"addOption": "Lägg till alternativ",
"editProperty": "Redigera egenskap",
"newProperty": "Ny kolumn",
"deleteFieldPromptMessage": "Är du säker? Denna egenskap kommer att raderas."
},
"row": {
"duplicate": "Klona",
"delete": "Ta bort",
"textPlaceholder": "Tom",
"copyProperty": "Kopierade egenskap till urklipp",
"count": "Antal",
"newRow": "Ny rad"
},
"selectOption": {
"create": "Skapa",
"purpleColor": "Purpur",
"pinkColor": "Rosa",
"lightPinkColor": "Ljusrosa",
"orangeColor": "Orange",
"yellowColor": "Gul",
"limeColor": "Lime",
"greenColor": "Grön",
"aquaColor": "Vatten",
"blueColor": "Blå",
"deleteTag": "Ta bort tagg",
"colorPanelTitle": "Färger",
"panelTitle": "Välj ett alternativ eller skapa ett",
"searchOption": "Sök efter ett alternativ"
},
"menuName": "Tabell"
},
"document": {
"menuName": "Dokument",
"date": {
"timeHintTextInTwelveHour": "01:00 PM",
"timeHintTextInTwentyFourHour": "13:00"
}
},
"board": {
"column": {
"create_new_card": "Nytt"
}
}
}
@@ -1,153 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "Ben",
"welcomeText": "@:appName'e Hoş Geldiniz!",
"githubStarText": "GitHub Yıldızı!",
"subscribeNewsletterText": "Bültene Abone Ol",
"letsGoButtonText": "Hadi başlayalım.",
"title": "Başlık",
"signUp": {
"buttonText": "Kayıt Ol",
"title": "@:appName'e kaydolun.",
"getStartedText": "başlayalım",
"emptyPasswordError": "Parola boş olamaz",
"repeatPasswordEmptyError": "Parola (tekrar) boş olamaz",
"unmatchedPasswordError": "Parolalar eşleşmiyor",
"alreadyHaveAnAccount": "Zaten hesabınız var mı?",
"emailHint": "E-Posta",
"passwordHint": "Parola",
"repeatPasswordHint": "Tekrar parola"
},
"signIn": {
"loginTitle": "@:appName oturum aç",
"loginButtonText": "Giriş",
"buttonText": "Oturum Aç",
"forgotPassword": "Parolanızı mı Unuttunuz?",
"emailHint": "E-Posta",
"passwordHint": "Parola",
"dontHaveAnAccount": "Hesabınız yok mu?",
"repeatPasswordEmptyError": "Parola (tekrar) boş olamaz",
"unmatchedPasswordError": "Parolalar eşleşmiyor"
},
"workspace": {
"create": "Çalışma alanı oluştur",
"hint": "Çalışma alanı",
"notFoundError": "Çalışma alanı bulunamadı"
},
"shareAction": {
"buttonText": "Paylaş",
"workInProgress": "Yakında",
"markdown": "Markdown",
"copyLink": "Link'i Kopyala"
},
"disclosureAction": {
"rename": "Yeniden adlandır",
"delete": "Sil",
"duplicate": "Çoğalt"
},
"blankPageTitle": "Boş sayfa",
"newPageText": "Yeni sayfa",
"trash": {
"text": "Çöp",
"restoreAll": "Geri Yükle",
"deleteAll": "Sil",
"pageHeader": {
"fileName": "Dosya adı",
"lastModified": "Son Değiştirme",
"created": "Oluşturuldu"
}
},
"deletePagePrompt": {
"text": "Bu sayfa Çöp Kutusu'nda",
"restore": "Sayfayı geri yükle",
"deletePermanent": "Kalıcı olarak sil"
},
"dialogCreatePageNameHint": "Sayfa adı",
"questionBubble": {
"whatsNew": "Yeni ne var?",
"help": "Yardım & Destek",
"debug": {
"name": "Hata Ayıklama",
"success": "Hata ayıklama bilgileri panoya kopyalandı!",
"fail": "Hata ayıklama bilgileri panoya kopyalanamıyor"
}
},
"menuAppHeader": {
"addPageTooltip": "Yeni bir sayfa ekleyin",
"defaultNewPageName": "Başlıksız",
"renameDialog": "Yeniden adlandır"
},
"toolbar": {
"undo": "Geri",
"redo": "İleri",
"bold": "Kalın",
"italic": "İtalik",
"underline": "Altı Çizili",
"strike": "Üstü Çizili",
"numList": "Numaralı Liste",
"bulletList": "Madde İşaretli Liste",
"checkList": "Yapılacaklar Listesi",
"inlineCode": "Kod",
"quote": "Alıntı",
"header": "Başlık",
"highlight": "Vurgu"
},
"tooltip": {
"lightMode": "Aydınlık Mod'a Geç",
"darkMode": "Karanlık Mod'a Geç"
},
"contactsPage": {
"title": "İletişim",
"whatsHappening": "Bu hafta neler var?",
"addContact": "Kişi Ekle",
"editContact": "Kişiyi Düzenle"
},
"button": {
"OK": "TAMAM",
"Cancel": "İptal",
"signIn": "Oturum Aç",
"signOut": "Oturum Kapat",
"complete": "Tamamlandı",
"save": "Kaydet"
},
"label": {
"welcome": "Merhaba!",
"firstName": "Ad",
"middleName": "İkinci Ad",
"lastName": "Soyad",
"stepX": "Aşama {X}"
},
"oAuth": {
"err": {
"failedTitle": "Hesabınıza bağlanılamıyor.",
"failedMsg": "Lütfen, tarayıcınızda oturum açma işlemini tamamladığınızdan emin olun."
},
"google": {
"title": "GOOGLE OTURUM AÇMA",
"instruction1": "Google Kişilerinizi içe aktarmak için web tarayıcınızı kullanarak bu uygulamaya izin vermeniz gerekir.",
"instruction2": "Simgeyi tıklayarak veya metni seçerek bu kodu panonuza kopyalayın:",
"instruction3": "Web tarayıcınızda aşağıdaki bağlantıyı açın ve yukarıdaki kodu girin:",
"instruction4": "Kayıt işlemini tamamladığınızda aşağıdaki düğmeye basın:"
}
},
"settings": {
"title": "Ayarlar",
"menu": {
"appearance": "Görünüm",
"language": "Dil",
"open": "Ayarları Aç"
},
"appearance": {
"themeMode": {
"label": "Theme Mode",
"light": "Aydınlık Mod",
"dark": "Karanlık Mod",
"system": "Adapt to System"
}
}
},
"sideBar": {
"openSidebar": "Open sidebar",
"closeSidebar": "Close sidebar"
}
}
@@ -1,240 +0,0 @@
{
"appName": "Appflowy",
"defaultUsername": "我",
"welcomeText": "欢迎使用 @:appName",
"githubStarText": "Star on GitHub",
"subscribeNewsletterText": "消息订阅",
"letsGoButtonText": "开始",
"title": "标题",
"signUp": {
"buttonText": "注册",
"title": "注册 @:appName 账户",
"getStartedText": "开始",
"emptyPasswordError": "密码不能为空",
"repeatPasswordEmptyError": "确认密码不能为空",
"unmatchedPasswordError": "两次密码输入不一致",
"alreadyHaveAnAccount": "已有账户?",
"emailHint": "邮箱",
"passwordHint": "密码",
"repeatPasswordHint": "确认密码"
},
"signIn": {
"loginTitle": "登录 @:appName",
"loginButtonText": "登录",
"buttonText": "登录",
"forgotPassword": "忘记密码?",
"emailHint": "邮箱",
"passwordHint": "密码",
"dontHaveAnAccount": "没有已注册的账户?",
"repeatPasswordEmptyError": "确认密码不能为空",
"unmatchedPasswordError": "两次密码输入不一致"
},
"workspace": {
"create": "新建空间",
"hint": "空间",
"notFoundError": "未知的空间"
},
"shareAction": {
"buttonText": "分享",
"workInProgress": "敬请期待",
"markdown": "Markdown",
"copyLink": "复制链接"
},
"disclosureAction": {
"rename": "重命名",
"delete": "删除",
"duplicate": "复制"
},
"blankPageTitle": "空白页",
"newPageText": "新页面",
"trash": {
"text": "回收站",
"restoreAll": "全部恢复",
"deleteAll": "全部删除",
"pageHeader": {
"fileName": "文件名",
"lastModified": "最近修改",
"created": "创建"
}
},
"deletePagePrompt": {
"text": "此页面已被移动至回收站",
"restore": "恢复页面",
"deletePermanent": "彻底删除"
},
"dialogCreatePageNameHint": "页面名称",
"questionBubble": {
"whatsNew": "新功能?",
"help": "帮助 & 支持",
"debug": {
"name": "调试信息",
"success": "将调试信息复制到剪贴板!",
"fail": "无法将调试信息复制到剪贴板"
}
},
"menuAppHeader": {
"addPageTooltip": "在其中快速添加页面",
"defaultNewPageName": "未命名页面",
"renameDialog": "重命名"
},
"toolbar": {
"undo": "撤销",
"redo": "恢复",
"bold": "加粗",
"italic": "斜体",
"underline": "下划线",
"strike": "删除线",
"numList": "有序列表",
"bulletList": "无序列表",
"checkList": "任务列表",
"inlineCode": "内联代码",
"quote": "块引用",
"header": "标题",
"highlight": "高亮"
},
"tooltip": {
"lightMode": "切换到亮色模式",
"darkMode": "切换到暗色模式",
"openAsPage": "作为页面打开",
"addNewRow": "增加一行",
"openMenu": "点击打开菜单"
},
"sideBar": {
"openSidebar": "打开侧边栏",
"closeSidebar": "关闭侧边栏"
},
"notifications": {
"export": {
"markdown": "导出笔记为Markdown文档",
"path": "Documents/flowy"
}
},
"contactsPage": {
"title": "联系人",
"whatsHappening": "这周发生了哪些事?",
"addContact": "添加联系人",
"editContact": "编辑联系人"
},
"button": {
"OK": "确认",
"Cancel": "取消",
"signIn": "登录",
"signOut": "登出",
"complete": "完成",
"save": "保存"
},
"label": {
"welcome": "欢迎!",
"firstName": "名",
"middleName": "中间名",
"lastName": "姓",
"stepX": "第{X}步"
},
"oAuth": {
"err": {
"failedTitle": "无法连接到您的账户。",
"failedMsg": "请确认您已在浏览器中完成登录。"
},
"google": {
"title": "Google 账号登录",
"instruction1": "为了导入您的 Google 联系人,您需要在浏览器中给予本程序授权。",
"instruction2": "单击图标或选择文本复制到剪贴板:",
"instruction3": "进入下面的链接,然后输入上面的代码:",
"instruction4": "完成注册后,点击下面的按钮:"
}
},
"settings": {
"title": "设置",
"menu": {
"appearance": "外观",
"language": "语言",
"user": "用户",
"open": "打开设置"
},
"appearance": {
"themeMode": {
"label": "Theme Mode",
"light": "日间模式",
"dark": "夜间模式",
"system": "Adapt to System"
}
}
},
"grid": {
"settings": {
"filter": "过滤器",
"sortBy": "排序",
"Properties": "属性",
"group": "组"
},
"field": {
"hide": "隐藏",
"insertLeft": "左侧插入",
"insertRight": "右侧插入",
"duplicate": "拷贝",
"delete": "删除",
"textFieldName": "文本",
"checkboxFieldName": "勾选框",
"dateFieldName": "日期",
"numberFieldName": "数字",
"singleSelectFieldName": "单项选择器",
"multiSelectFieldName": "多项选择器",
"urlFieldName": "链接",
"numberFormat": "数字格式",
"dateFormat": "日期格式",
"includeTime": "包含时间",
"dateFormatFriendly": "月 日, 年",
"dateFormatISO": "年-月-日",
"dateFormatLocal": "月/日/年",
"dateFormatUS": "年/月/日",
"timeFormat": "时间格式",
"invalidTimeFormat": "时间格式错误",
"timeFormatTwelveHour": "12小时制",
"timeFormatTwentyFourHour": "24小时制",
"addSelectOption": "添加一个标签",
"optionTitle": "标签",
"addOption": "添加标签",
"editProperty": "编辑列属性",
"newProperty": "增加一列",
"deleteFieldPromptMessage": "确定要删除这个属性吗? "
},
"row": {
"duplicate": "复制",
"delete": "删除",
"textPlaceholder": "空",
"copyProperty": "复制列",
"count": "数量",
"newRow": "添加一行"
},
"selectOption": {
"create": "新建",
"purpleColor": "紫色",
"pinkColor": "粉色",
"lightPinkColor": "浅粉色",
"orangeColor": "橙色",
"yellowColor": "黄色",
"limeColor": "鲜绿色",
"greenColor": "绿色",
"aquaColor": "水蓝色",
"blueColor": "蓝色",
"deleteTag": "删除标签",
"colorPanelTitle": "颜色",
"panelTitle": "选择或新建一个标签",
"searchOption": "搜索标签"
},
"menuName": "网格"
},
"document": {
"menuName": "文档",
"date": {
"timeHintTextInTwelveHour": "01:00 PM",
"timeHintTextInTwentyFourHour": "13:00"
}
},
"board": {
"column": {
"create_new_card": "新建"
},
"menuName": "看板"
}
}
@@ -1,410 +0,0 @@
{
"appName": "AppFlowy",
"defaultUsername": "我",
"welcomeText": "歡迎使用 @:appName",
"githubStarText": "在 GitHub 點星",
"subscribeNewsletterText": "訂閱電子報",
"letsGoButtonText": "出發吧",
"title": "標題",
"signUp": {
"buttonText": "註冊",
"title": "註冊 @:appName",
"getStartedText": "開始使用",
"emptyPasswordError": "密碼不能為空",
"repeatPasswordEmptyError": "確認密碼不能為空",
"unmatchedPasswordError": "確認密碼與密碼不符",
"alreadyHaveAnAccount": "已經有帳號了嗎?",
"emailHint": "電子郵件地址",
"passwordHint": "密碼",
"repeatPasswordHint": "確認密碼"
},
"signIn": {
"loginTitle": "登入 @:appName",
"loginButtonText": "登入",
"buttonText": "登入",
"forgotPassword": "忘記密碼?",
"emailHint": "電子郵件地址",
"passwordHint": "密碼",
"dontHaveAnAccount": "沒有帳號?",
"repeatPasswordEmptyError": "確認密碼不能為空",
"unmatchedPasswordError": "確認密碼與密碼不符"
},
"workspace": {
"create": "建立工作區",
"hint": "工作區",
"notFoundError": "找不到工作區"
},
"shareAction": {
"buttonText": "分享",
"workInProgress": "即將推出",
"markdown": "Markdown",
"copyLink": "複製連結"
},
"moreAction": {
"small": "小",
"medium": "中",
"large": "大",
"fontSize": "字體大小",
"import": "匯入"
},
"disclosureAction": {
"rename": "重新命名",
"delete": "刪除",
"duplicate": "複製"
},
"blankPageTitle": "空白頁面",
"newPageText": "新頁面",
"trash": {
"text": "垃圾筒",
"restoreAll": "全部復原",
"deleteAll": "全部刪除",
"pageHeader": {
"fileName": "檔案名稱",
"lastModified": "最後修改時間",
"created": "建立時間"
}
},
"deletePagePrompt": {
"text": "此頁面在垃圾筒中",
"restore": "復原頁面",
"deletePermanent": "永久刪除"
},
"dialogCreatePageNameHint": "頁面名稱",
"questionBubble": {
"shortcuts": "快捷鍵",
"whatsNew": "新功能",
"help": "幫助 & 支援",
"debug": {
"name": "除錯資訊",
"success": "已將除錯資訊複製至剪貼簿!",
"fail": "無法將除錯資訊複製至剪貼簿"
}
},
"menuAppHeader": {
"addPageTooltip": "快速新增頁面",
"defaultNewPageName": "未命名",
"renameDialog": "重新命名"
},
"toolbar": {
"undo": "復原",
"redo": "取消復原",
"bold": "粗體",
"italic": "斜體",
"underline": "底線",
"strike": "刪除線",
"numList": "有序清單",
"bulletList": "無序清單",
"checkList": "核取清單",
"inlineCode": "程式碼",
"quote": "區塊引言",
"header": "標題",
"highlight": "反白",
"color": "顏色"
},
"tooltip": {
"lightMode": "切換至亮色模式",
"darkMode": "切換至暗色模式",
"openAsPage": "以頁面開啓",
"addNewRow": "新增列表",
"openMenu": "點擊開啓選單",
"viewDataBase": "查看資料庫",
"referencePage": "這個 {name} 已參照"
},
"sideBar": {
"closeSidebar": "關閉側邊欄",
"openSidebar": "開啓側邊欄"
},
"notifications": {
"export": {
"markdown": "已將筆記匯出成 Markdown",
"path": "Documents/flowy"
}
},
"contactsPage": {
"title": "聯絡人",
"whatsHappening": "這周有甚麼新鮮事?",
"addContact": "新增聯絡人",
"editContact": "編輯聯絡人"
},
"button": {
"OK": "OK",
"Cancel": "取消",
"signIn": "登入",
"signOut": "登出",
"complete": "完成",
"save": "儲存",
"generate": "產生",
"esc": "離開",
"keep": "保存",
"tryAgain": "再試一次",
"discard": "放棄變更",
"replace": "取代",
"insertBelow": "在下面插入"
},
"label": {
"welcome": "歡迎!",
"firstName": "名",
"middleName": "中間名",
"lastName": "姓",
"stepX": "步驟 {X}"
},
"oAuth": {
"err": {
"failedTitle": "無法連接至您的帳號。",
"failedMsg": "請確認您已在瀏覽器中完成登入程序:"
},
"google": {
"title": "GOOGLE 登入",
"instruction1": "若要匯入您的 Google 聯絡人,您必須透過瀏覽器授權此應用程式:",
"instruction2": "點擊圖示或選取文字以複製代碼:",
"instruction3": "前往下列網址,並輸入上述代碼:",
"instruction4": "完成註冊後,請點擊下方按鈕:"
}
},
"settings": {
"title": "設定",
"menu": {
"appearance": "外觀",
"language": "語言",
"user": "使用者",
"files": "檔案",
"open": "開啟設定"
},
"appearance": {
"themeMode": {
"label": "主題模式",
"light": "亮色模式",
"dark": "暗色模式",
"system": "系統設定"
},
"theme": "主題"
},
"files": {
"defaultLocation": "Appflowy 資料儲存位置",
"doubleTapToCopy": "雙擊以複製路徑",
"restoreLocation": "回復 Appflowy 預設路徑",
"customizeLocation": "開啓其他資料夾",
"restartApp": "請重新啓動以讓更動生效",
"exportDatabase": "匯出資料庫",
"selectFiles": "選擇需要匯出的檔案",
"createNewFolder": "建立新檔案",
"createNewFolderDesc": "選擇你想儲存資料的位置",
"open": "打開",
"openFolder": "開啓一個已經存在的資料夾",
"openFolderDesc": "讀寫已存在的 AppFlowy 資料夾",
"folderHintText": "資料夾名稱",
"location": "建立新資料夾",
"locationDesc": "命名 Appflowy 資料夾",
"browser": "瀏覽",
"create": "建立",
"folderPath": "儲存資料夾的路徑",
"locationCannotBeEmpty": "路徑不能爲空",
"pathCopiedSnackbar": "檔案儲存空間的路徑已被複製到剪貼簿!"
},
"user": {
"name": "名稱",
"icon": "圖標",
"selectAnIcon": "選擇圖標",
"pleaseInputYourOpenAIKey": "請輸入你的 OpenAI 密鑰"
}
},
"grid": {
"settings": {
"filter": "篩選",
"sort": "排序",
"sortBy": "排序方式",
"Properties": "內容",
"group": "群組",
"addFilter": "增加",
"deleteFilter": "刪除篩選器",
"filterBy": "以...篩選",
"typeAValue": "輸入一個值...",
"layout": "佈局"
},
"textFilter": {
"contains": "包含",
"doesNotContain": "不包含",
"endsWith": "以...結尾",
"startWith": "以...開頭",
"is": "是",
"isNot": "不是",
"isEmpty": "爲空",
"isNotEmpty": "不爲空",
"choicechipPrefix": {
"isNot": "不是",
"startWith": "以...開頭",
"endWith": "以...結尾",
"isEmpty": "爲空",
"isNotEmpty": "不爲空"
}
},
"checkboxFilter": {
"isChecked": "已核取",
"isUnchecked": "未核取",
"choicechipPrefix": {
"is": "是"
}
},
"checklistFilter": {
"isComplete": "已完成",
"isIncomplted": "未完成"
},
"singleSelectOptionFilter": {
"is": "是",
"isNot": "不是",
"isEmpty": "爲空",
"isNotEmpty": "不爲空"
},
"multiSelectOptionFilter": {
"contains": "包含",
"doesNotContain": "不包含",
"isEmpty": "爲空",
"isNotEmpty": "不爲空"
},
"field": {
"hide": "隱藏",
"insertLeft": "插入左方欄",
"insertRight": "插入右方欄",
"duplicate": "複製",
"delete": "刪除",
"textFieldName": "文字",
"checkboxFieldName": "核取方塊",
"dateFieldName": "日期",
"numberFieldName": "數字",
"singleSelectFieldName": "單選",
"multiSelectFieldName": "多選",
"urlFieldName": "網址",
"checklistFieldName": "核取列表",
"numberFormat": "數字格式",
"dateFormat": "日期格式",
"includeTime": "包含時間",
"dateFormatFriendly": "月 日, 年",
"dateFormatISO": "年-月-日",
"dateFormatLocal": "月/日/年",
"dateFormatUS": "年/月/日",
"timeFormat": "時間格式",
"invalidTimeFormat": "格式無效",
"timeFormatTwelveHour": "12 小時",
"timeFormatTwentyFourHour": "24 小時",
"addSelectOption": "新增選項",
"optionTitle": "選項",
"addOption": "新增選項",
"editProperty": "編輯內容",
"newProperty": "新欄位",
"deleteFieldPromptMessage": "你確定嗎?這個內容將被刪除"
},
"sort": {
"ascending": "升冪排序",
"descending": "降冪排序",
"deleteSort": "刪除排序",
"addSort": "新增排序"
},
"row": {
"duplicate": "複製",
"delete": "刪除",
"textPlaceholder": "空",
"copyProperty": "已將內容複製至剪貼簿",
"count": "Count",
"newRow": "新列表"
},
"selectOption": {
"create": "建立",
"purpleColor": "紫色",
"pinkColor": "粉色",
"lightPinkColor": "淡粉色",
"orangeColor": "橘色",
"yellowColor": "黃色",
"limeColor": "萊姆色",
"greenColor": "綠色",
"aquaColor": "水藍色",
"blueColor": "藍色",
"deleteTag": "刪除標籤",
"colorPanelTitle": "顏色",
"panelTitle": "搜尋或建立選項",
"searchOption": "搜尋選項"
},
"checklist": {
"panelTitle": "新增物件"
},
"menuName": "網格"
},
"document": {
"menuName": "檔案",
"date": {
"timeHintTextInTwelveHour": "01:00 PM",
"timeHintTextInTwentyFourHour": "13:00"
},
"slashMenu": {
"board": {
"selectABoardToLinkTo": "選擇要連結的看板",
"createANewBoard": "建立新的看板"
},
"grid": {
"selectAGridToLinkTo": "選擇要連結的網格",
"createANewGrid": "建立新網格"
}
},
"plugins": {
"referencedBoard": "已參照的看板",
"referencedGrid": "已參照的網格",
"autoGeneratorMenuItemName": "OpenAI 寫手",
"autoGeneratorTitleName": "OpenAI: 叫人工智慧寫下任何事情...",
"autoGeneratorLearnMore": "Learn more",
"autoGeneratorGenerate": "產生",
"autoGeneratorHintText": "問 OpenAI ...",
"autoGeneratorCantGetOpenAIKey": "無法取得 OpenAI 密鑰",
"smartEdit": "人工智慧助理",
"openAI": "OpenAI",
"smartEditFixSpelling": "修正拼寫",
"warning": "⚠️ AI 的回答可能不精確或是存在誤導",
"smartEditSummarize": "總結",
"smartEditCouldNotFetchResult": "無法取得 OpenAI 的結果",
"smartEditCouldNotFetchKey": "無法取得 OpenAI 密鑰",
"smartEditDisabled": "在設定連結 OpenAI ",
"discardResponse": "你確定放棄人工智慧的回覆?",
"cover": {
"changeCover": "更換封面",
"colors": "顏色",
"images": "圖片",
"abstract": "摘要",
"addCover": "新增封面",
"addLocalImage": "新增本機圖片",
"invalidImageUrl": "無效的圖片網址",
"failedToAddImageToGallery": "新增圖片到圖庫失敗",
"enterImageUrl": "輸入圖片網址",
"add": "Add",
"back": "Back",
"saveToGallery": "儲存到",
"removeIcon": "移除圖標",
"pasteImageUrl": "複製圖片網址",
"or": "或",
"pickFromFiles": "挑選檔案",
"couldNotFetchImage": "無法截取圖片",
"imageSavingFailed": "圖片儲存失敗",
"addIcon": "新增圖標"
}
}
},
"board": {
"column": {
"create_new_card": "建立"
},
"menuName": "看板"
},
"calendar": {
"menuName": "日曆",
"defaultNewCalendarTitle": "未命名的",
"navigation": {
"today": "今天",
"jumpToday": "跳至今天",
"previousMonth": "上個月",
"nextMonth": "下個月"
},
"settings": {
"showWeekNumbers": "顯示星期",
"showWeekends": "顯示週末",
"firstDayOfWeek": "一週的第一天",
"layoutDateField": "排列方式"
}
}
}
Loaded 100 of 3139 files, more files were not shown because too many files have changed in this diff. Show more