* chore: write snapshot
* chore: add tests
* chore: sync close
* chore: restore from snapshot
* chore: delete invalid revisions after restored from snapshot
* chore: create default view if it fail to deserialize view's revisions when there is no snapshot
* chore: auto generate snapshot
Co-authored-by: nathan <nathan@appflowy.io>
* chore: remove the add filter button if there is no filters can not be added
* fix: update field info after filter was changed
* chore: update filter choicechip ui
* chore: insert and delete one by one to keep the delete/insert index is right
* chore: show filter after creating the default filter
* chore: update textfield_tags version to calm the warnings
* chore: try to fix potential fails on backend test
Co-authored-by: nathan <nathan@appflowy.io>
* refactor: port theme provider to bloc
* refactor: port from custom theme type enum to material design's brightness
* chore: add custom color extension to ThemeData
* refactor: use Theme.of(context) when trying to get theme colors
* refactor: toggle widget code refactor
* refactor: flowy hover style refactor
* refactor: flowy icon refactor
* fix: regression on sidebar tooltip text from #1210
* chore: read color from theme.of
* chore: quick access to custom color
* fix: dart test
* fix: scrollbar regression
* chore: fix flutter lint
* chore: fix grid bloc test
Co-authored-by: appflowy <annie@appflowy.io>
* chore: separate select and unselect events
* style: improve readability
* chore: don't send empty payloads if we can help it
* test: add select option text field test
* test: complete bloc test for select option
* test: delete all options between each test
* fix: keep insert order
* test: combine select and unselect tests
* chore: remove duplicate wait
Co-authored-by: appflowy <annie@appflowy.io>