diff --git a/docs/.snapshots/config.json b/docs/.snapshots/config.json
new file mode 100644
index 000000000..dfadca277
--- /dev/null
+++ b/docs/.snapshots/config.json
@@ -0,0 +1,151 @@
+{
+ "excluded_patterns": [
+ ".git",
+ ".gitignore",
+ "gradle",
+ "gradlew",
+ "gradlew.*",
+ "node_modules",
+ ".snapshots",
+ ".idea",
+ ".vscode",
+ "*.log",
+ "*.tmp",
+ "target",
+ "dist",
+ "build",
+ ".DS_Store",
+ "*.bak",
+ "*.swp",
+ "*.swo",
+ "*.lock",
+ "*.iml",
+ "coverage",
+ "*.min.js",
+ "*.min.css",
+ "__pycache__",
+ ".marketing",
+ ".env",
+ ".env.*",
+ "*.jpg",
+ "*.jpeg",
+ "*.png",
+ "*.gif",
+ "*.bmp",
+ "*.tiff",
+ "*.ico",
+ "*.svg",
+ "*.webp",
+ "*.psd",
+ "*.ai",
+ "*.eps",
+ "*.indd",
+ "*.raw",
+ "*.cr2",
+ "*.nef",
+ "*.mp4",
+ "*.mov",
+ "*.avi",
+ "*.wmv",
+ "*.flv",
+ "*.mkv",
+ "*.webm",
+ "*.m4v",
+ "*.wfp",
+ "*.prproj",
+ "*.aep",
+ "*.psb",
+ "*.xcf",
+ "*.sketch",
+ "*.fig",
+ "*.xd",
+ "*.db",
+ "*.sqlite",
+ "*.sqlite3",
+ "*.mdb",
+ "*.accdb",
+ "*.frm",
+ "*.myd",
+ "*.myi",
+ "*.ibd",
+ "*.dbf",
+ "*.rdb",
+ "*.aof",
+ "*.pdb",
+ "*.sdb",
+ "*.s3db",
+ "*.ddb",
+ "*.db-shm",
+ "*.db-wal",
+ "*.sqlitedb",
+ "*.sql.gz",
+ "*.bak.sql",
+ "dump.sql",
+ "dump.rdb",
+ "*.vsix",
+ "*.jar",
+ "*.war",
+ "*.ear",
+ "*.zip",
+ "*.tar",
+ "*.tar.gz",
+ "*.tgz",
+ "*.rar",
+ "*.7z",
+ "*.exe",
+ "*.dll",
+ "*.so",
+ "*.dylib",
+ "*.app",
+ "*.dmg",
+ "*.iso",
+ "*.msi",
+ "*.deb",
+ "*.rpm",
+ "*.apk",
+ "*.aab",
+ "*.ipa",
+ "*.pkg",
+ "*.nupkg",
+ "*.snap",
+ "*.whl",
+ "*.gem",
+ "*.pyc",
+ "*.pyo",
+ "*.pyd",
+ "*.class",
+ "*.o",
+ "*.obj",
+ "*.lib",
+ "*.a",
+ "*.map",
+ ".npmrc"
+ ],
+ "default": {
+ "default_prompt": "Enter your prompt here",
+ "default_include_all_files": false,
+ "default_include_entire_project_structure": true
+ },
+ "included_patterns": [
+ "build.gradle",
+ "settings.gradle",
+ "gradle.properties",
+ "pom.xml",
+ "Makefile",
+ "CMakeLists.txt",
+ "package.json",
+ "requirements.txt",
+ "Pipfile",
+ "Gemfile",
+ "composer.json",
+ ".editorconfig",
+ ".eslintrc.json",
+ ".eslintrc.js",
+ ".prettierrc",
+ ".babelrc",
+ ".dockerignore",
+ ".gitattributes",
+ ".stylelintrc",
+ ".npmrc"
+ ]
+}
\ No newline at end of file
diff --git a/docs/.snapshots/readme.md b/docs/.snapshots/readme.md
new file mode 100644
index 000000000..21fa917db
--- /dev/null
+++ b/docs/.snapshots/readme.md
@@ -0,0 +1,11 @@
+# Snapshots Directory
+
+This directory contains snapshots of your code for AI interactions. Each snapshot is a markdown file that includes relevant code context and project structure information.
+
+## What's included in snapshots?
+- Selected code files and their contents
+- Project structure (if enabled)
+- Your prompt/question for the AI
+
+## Configuration
+You can customize snapshot behavior in `config.json`.
diff --git a/docs/.snapshots/sponsors.md b/docs/.snapshots/sponsors.md
new file mode 100644
index 000000000..2df337f43
--- /dev/null
+++ b/docs/.snapshots/sponsors.md
@@ -0,0 +1,44 @@
+# Thank you for using Snapshots for AI
+
+Thanks for using Snapshots for AI. We hope this tool has helped you solve a problem or two.
+
+If you would like to support our work, please help us by considering the following offers and requests:
+
+## Ways to Support
+
+### Join the GBTI Network!!! 🙏🙏🙏
+The GBTI Network is a community of developers who are passionate about open source and community-driven development. Members enjoy access to exclussive tools, resources, a private MineCraft server, a listing in our members directory, co-op opportunities and more.
+
+- Support our work by becoming a [GBTI Network member](https://gbti.network/membership/).
+
+### Try out BugHerd 🐛
+BugHerd is a visual feedback and bug-tracking tool designed to streamline website development by enabling users to pin feedback directly onto web pages. This approach facilitates clear communication among clients, designers, developers, and project managers.
+
+- Start your free trial with [BugHerd](https://partners.bugherd.com/55z6c8az8rvr) today.
+
+### Hire Developers from Codeable 👥
+Codeable connects you with top-tier professionals skilled in frameworks and technologies such as Laravel, React, Django, Node, Vue.js, Angular, Ruby on Rails, and Node.js. Don't let the WordPress focus discourage you. Codeable experts do it all.
+
+- Visit [Codeable](https://www.codeable.io/developers/?ref=z8h3e) to hire your next team member.
+
+### Lead positive reviews on our marketplace listing ⭐⭐⭐⭐⭐
+- Rate us on [VSCode marketplace](https://marketplace.visualstudio.com/items?itemName=GBTI.snapshots-for-ai)
+- Review us on [Cursor marketplace](https://open-vsx.org/extension/GBTI/snapshots-for-ai)
+
+### Star Our GitHub Repository ⭐
+- Star and watch our [repository](https://github.com/gbti-network/vscode-snapshots-for-ai)
+
+### 📡 Stay Connected
+Follow us on your favorite platforms for updates, news, and community discussions:
+- **[Twitter/X](https://twitter.com/gbti_network)**
+- **[GitHub](https://github.com/gbti-network)**
+- **[YouTube](https://www.youtube.com/channel/UCh4FjB6r4oWQW-QFiwqv-UA)**
+- **[Dev.to](https://dev.to/gbti)**
+- **[Daily.dev](https://dly.to/zfCriM6JfRF)**
+- **[Hashnode](https://gbti.hashnode.dev/)**
+- **[Discord Community](https://gbti.network)**
+- **[Reddit Community](https://www.reddit.com/r/GBTI_network)**
+
+---
+
+Thank you for supporting open source software! 🙏
diff --git a/docs/README.md b/docs/README.md
index 618670889..4d7eb2638 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -12,39 +12,47 @@ consumer-grade technology to be used in environments where cost and
inflexibility have been limiting factors. The source code for Field Book
is available on [GitHub](https://github.com/PhenoApps/Field-Book).
+
+
+ Field Book collect screen
+
+
Getting Started
---------------
Field Book can be downloaded from the [Google Play
Store](https://play.google.com/store/apps/details?id=com.tracker.fieldbook)
or can be installed manually from the latest [GitHub
-Release](https://github.com/PhenoApps/Field-Book/releases). After
-installing the app, all permissions should be accepted and sample data
-consisting of three fields and traits can be optionally loaded. The
-images in the documentation utilize the sample data.
+Release](https://github.com/PhenoApps/Field-Book/releases).
+
+Field Book will display a brief set of slides to introduce you to the app when you open it for the first time.
+
+
+
+ Field Book intro slides
+
+
+During this intro you must set choices for the required permissions, and choose a storage location for app files. You also have the option to enable a tutorial and/or load a set of three sample fields and sample traits. The images in this documentation will make use of this sample data.
-Structure
----------
+When the intro finishes, Field Book will open to its home screen. This screen is divided into sections that can be pressed to access each of the major functions of the app.
-
- Primary Field Book screen
+
+ Field Book home screen
-Field Book contains a home screen with links to the major sections of
-the app. To use Field Book:
+Navigate between these to:
1. Import your [Fields](fields.md)
2. Create [Traits](traits.md)
-3. Optionally modify any [Settings](settings.md)
+3. [Collect](collect.md) data
-4. Navigate to [Collect](collect.md)
-
-5. [Export](export.md) data to a CSV (comma
- separated value) file
+4. And [Export](export.md) collected data to a file or database.
+
+In addition to these main functions you can customize Field Book [Settings](settings.md), view summaries of your usage [Statistics](statistics.md), or learn more about the app in the [About](about.md) section at any time.
The Changelog can be accessed from the top toolbar to see new features and
additions to the app.
diff --git a/docs/_sidebar.md b/docs/_sidebar.md
index a80dff1ec..6827d2cf2 100644
--- a/docs/_sidebar.md
+++ b/docs/_sidebar.md
@@ -3,41 +3,40 @@
* [Storage](storage.md)
* [Fields](fields.md)
* [Traits](traits.md)
+ * [Audio](traits/trait-audio.md)
+ * [Boolean](traits/trait-boolean.md)
+ * [Categorical](traits/trait-categorical.md)
+ * [Multicat](traits/trait-multicat.md)
+ * [Counter](traits/trait-counter.md)
+ * [Date](traits/trait-date.md)
+ * [Location](traits/trait-location.md)
+ * [Numeric](traits/trait-numeric.md)
+ * [Percent](traits/trait-percent.md)
+ * [Text](traits/trait-text.md)
+ * [Disease Rating](traits/trait-disease.md)
+ * [GNSS](traits/trait-gnss.md)
+ * [Photo](traits/trait-photo.md)
+ * [Zebra Label Print](traits/trait-zebra.md)
* Function
* [Collect](collect.md)
* [Export](export.md)
-* Trait Formats
- * [Numeric](trait-numeric.md)
- * [Categorical](trait-categorical.md)
- * [Date](trait-date.md)
- * [Percent](trait-percent.md)
- * [Boolean](trait-boolean.md)
- * [Text](trait-text.md)
- * [Photo](trait-photo.md)
- * [Audio](trait-audio.md)
- * [Counter](trait-counter.md)
- * [Disease](trait-disease.md)
- * [Multicat](trait-multicat.md)
- * [Location](trait-location.md)
- * [Zebra](trait-zebra.md)
- * [GNSS](trait-gnss.md)
- * [USB Camera](trait-usb-camera.md)
- * [GoPro](trait-gopro.md)
-* Settings
* [Settings](settings.md)
- * [General](settings-general.md)
- * [Profile](settings-profile.md)
- * [Appearance](settings-appearance.md)
- * [Behavior](settings-behavior.md)
- * [Geonav](settings-geonav.md)
- * [Sounds](settings-sounds.md)
- * [BrAPI](settings-brapi.md)
- * [Database](settings-database.md)
- * [Beta](settings-beta.md)
+ * [Profile](settings/settings-profile.md)
+ * [Features](settings/settings-features.md)
+ * [Appearance](settings/settings-appearance.md)
+ * [Behavior](settings/settings-behavior.md)
+ * [Location](settings/settings-location.md)
+ * [Sounds](settings/settings-sounds.md)
+ * [BrAPI](settings/settings-brapi.md)
+ * [System](settings/settings-system.md)
+ * [Storage](settings/settings-storage.md)
+ * [Experimental](settings/settings-experimental.md)
* Extra
+ * [Statistics](statistics.md)
+ * [About](about.md)
* [Barcodes](barcodes.md)
* [BrAPI](brapi.md)
* [Datagrid](datagrid.md)
* [Geonav](geonav.md)
* [Training Resources](training-resources.md)
-* [About](about.md)
+ * [Frequently Asked Questions](faq.md)
diff --git a/docs/_static/icons/collect/equal-box.png b/docs/_static/icons/collect/equal-box.png
new file mode 100644
index 000000000..9a07fe21a
Binary files /dev/null and b/docs/_static/icons/collect/equal-box.png differ
diff --git a/docs/_static/icons/fields/check-all.png b/docs/_static/icons/fields/check-all.png
new file mode 100644
index 000000000..9ddb7671b
Binary files /dev/null and b/docs/_static/icons/fields/check-all.png differ
diff --git a/docs/_static/icons/fields/delete.png b/docs/_static/icons/fields/delete.png
new file mode 100644
index 000000000..6cea54be3
Binary files /dev/null and b/docs/_static/icons/fields/delete.png differ
diff --git a/docs/_static/icons/fields/file-export-outline.png b/docs/_static/icons/fields/file-export-outline.png
new file mode 100644
index 000000000..f1324ec35
Binary files /dev/null and b/docs/_static/icons/fields/file-export-outline.png differ
diff --git a/docs/_static/icons/fields/menu.png b/docs/_static/icons/fields/menu.png
new file mode 100644
index 000000000..2af2dac0c
Binary files /dev/null and b/docs/_static/icons/fields/menu.png differ
diff --git a/docs/_static/icons/fields/sort-ascending.png b/docs/_static/icons/fields/sort-ascending.png
deleted file mode 100644
index bdac6cf17..000000000
Binary files a/docs/_static/icons/fields/sort-ascending.png and /dev/null differ
diff --git a/docs/_static/icons/fields/sort.png b/docs/_static/icons/fields/sort.png
new file mode 100644
index 000000000..edd3e71cb
Binary files /dev/null and b/docs/_static/icons/fields/sort.png differ
diff --git a/docs/_static/icons/fields/sync.png b/docs/_static/icons/fields/sync.png
new file mode 100644
index 000000000..ca585ea20
Binary files /dev/null and b/docs/_static/icons/fields/sync.png differ
diff --git a/docs/_static/icons/formats/cog.png b/docs/_static/icons/formats/cog.png
new file mode 100644
index 000000000..5d3926144
Binary files /dev/null and b/docs/_static/icons/formats/cog.png differ
diff --git a/docs/_static/icons/formats/shutter.png b/docs/_static/icons/formats/shutter.png
new file mode 100644
index 000000000..757b6f880
Binary files /dev/null and b/docs/_static/icons/formats/shutter.png differ
diff --git a/docs/_static/icons/home/chart-bar.png b/docs/_static/icons/home/chart-bar.png
new file mode 100644
index 000000000..2c36d8ea7
Binary files /dev/null and b/docs/_static/icons/home/chart-bar.png differ
diff --git a/docs/_static/icons/settings/brapi/dots-vertical.png b/docs/_static/icons/settings/brapi/dots-vertical.png
new file mode 100644
index 000000000..4bd57b91b
Binary files /dev/null and b/docs/_static/icons/settings/brapi/dots-vertical.png differ
diff --git a/docs/_static/icons/settings/brapi/filter-variant.png b/docs/_static/icons/settings/brapi/filter-variant.png
new file mode 100644
index 000000000..225083c50
Binary files /dev/null and b/docs/_static/icons/settings/brapi/filter-variant.png differ
diff --git a/docs/_static/icons/settings/brapi/history.png b/docs/_static/icons/settings/brapi/history.png
new file mode 100644
index 000000000..ef0f5c013
Binary files /dev/null and b/docs/_static/icons/settings/brapi/history.png differ
diff --git a/docs/_static/icons/settings/brapi/rename-outline.png b/docs/_static/icons/settings/brapi/rename-outline.png
new file mode 100644
index 000000000..3818ba80e
Binary files /dev/null and b/docs/_static/icons/settings/brapi/rename-outline.png differ
diff --git a/docs/_static/icons/settings/brapi/server-network.png b/docs/_static/icons/settings/brapi/server-network.png
new file mode 100644
index 000000000..466223f0a
Binary files /dev/null and b/docs/_static/icons/settings/brapi/server-network.png differ
diff --git a/docs/_static/icons/settings/brapi/tray-remove.png b/docs/_static/icons/settings/brapi/tray-remove.png
new file mode 100644
index 000000000..326b357a5
Binary files /dev/null and b/docs/_static/icons/settings/brapi/tray-remove.png differ
diff --git a/docs/_static/icons/settings/beta/flask-outline.png b/docs/_static/icons/settings/experimental/flask-outline.png
similarity index 100%
rename from docs/_static/icons/settings/beta/flask-outline.png
rename to docs/_static/icons/settings/experimental/flask-outline.png
diff --git a/docs/_static/icons/settings/general/arrow-right-bold.png b/docs/_static/icons/settings/features/arrow-right-bold.png
similarity index 100%
rename from docs/_static/icons/settings/general/arrow-right-bold.png
rename to docs/_static/icons/settings/features/arrow-right-bold.png
diff --git a/docs/_static/icons/settings/general/barcode-scan.png b/docs/_static/icons/settings/features/barcode-scan.png
similarity index 100%
rename from docs/_static/icons/settings/general/barcode-scan.png
rename to docs/_static/icons/settings/features/barcode-scan.png
diff --git a/docs/_static/icons/settings/general/barcode.png b/docs/_static/icons/settings/features/barcode.png
similarity index 100%
rename from docs/_static/icons/settings/general/barcode.png
rename to docs/_static/icons/settings/features/barcode.png
diff --git a/docs/_static/icons/settings/general/fingerprint.png b/docs/_static/icons/settings/features/fingerprint.png
similarity index 100%
rename from docs/_static/icons/settings/general/fingerprint.png
rename to docs/_static/icons/settings/features/fingerprint.png
diff --git a/docs/_static/icons/settings/general/grid.png b/docs/_static/icons/settings/features/grid.png
similarity index 100%
rename from docs/_static/icons/settings/general/grid.png
rename to docs/_static/icons/settings/features/grid.png
diff --git a/docs/_static/icons/settings/geonav/bluetooth.png b/docs/_static/icons/settings/location/bluetooth.png
similarity index 100%
rename from docs/_static/icons/settings/geonav/bluetooth.png
rename to docs/_static/icons/settings/location/bluetooth.png
diff --git a/docs/_static/icons/settings/geonav/function-variant.png b/docs/_static/icons/settings/location/function-variant.png
similarity index 100%
rename from docs/_static/icons/settings/geonav/function-variant.png
rename to docs/_static/icons/settings/location/function-variant.png
diff --git a/docs/_static/icons/settings/geonav/map-search.png b/docs/_static/icons/settings/location/map-search.png
similarity index 100%
rename from docs/_static/icons/settings/geonav/map-search.png
rename to docs/_static/icons/settings/location/map-search.png
diff --git a/docs/_static/icons/settings/geonav/script-text-outline.png b/docs/_static/icons/settings/location/script-text-outline.png
similarity index 100%
rename from docs/_static/icons/settings/geonav/script-text-outline.png
rename to docs/_static/icons/settings/location/script-text-outline.png
diff --git a/docs/_static/icons/settings/geonav/timer-sand-empty.png b/docs/_static/icons/settings/location/timer-sand-empty.png
similarity index 100%
rename from docs/_static/icons/settings/geonav/timer-sand-empty.png
rename to docs/_static/icons/settings/location/timer-sand-empty.png
diff --git a/docs/_static/icons/settings/main/database-cog.png b/docs/_static/icons/settings/main/database-cog.png
new file mode 100644
index 000000000..9f6382bcb
Binary files /dev/null and b/docs/_static/icons/settings/main/database-cog.png differ
diff --git a/docs/_static/icons/settings/main/star-circle-outline.png b/docs/_static/icons/settings/main/star-circle-outline.png
new file mode 100644
index 000000000..c6f712d99
Binary files /dev/null and b/docs/_static/icons/settings/main/star-circle-outline.png differ
diff --git a/docs/_static/icons/settings/database/database-export.png b/docs/_static/icons/settings/storage/database-export.png
similarity index 100%
rename from docs/_static/icons/settings/database/database-export.png
rename to docs/_static/icons/settings/storage/database-export.png
diff --git a/docs/_static/icons/settings/database/database-import.png b/docs/_static/icons/settings/storage/database-import.png
similarity index 100%
rename from docs/_static/icons/settings/database/database-import.png
rename to docs/_static/icons/settings/storage/database-import.png
diff --git a/docs/_static/icons/settings/database/database-remove.png b/docs/_static/icons/settings/storage/database-remove.png
similarity index 100%
rename from docs/_static/icons/settings/database/database-remove.png
rename to docs/_static/icons/settings/storage/database-remove.png
diff --git a/docs/_static/icons/settings/general/application-export.png b/docs/_static/icons/settings/system/application-export.png
similarity index 100%
rename from docs/_static/icons/settings/general/application-export.png
rename to docs/_static/icons/settings/system/application-export.png
diff --git a/docs/_static/icons/settings/general/application-import.png b/docs/_static/icons/settings/system/application-import.png
similarity index 100%
rename from docs/_static/icons/settings/general/application-import.png
rename to docs/_static/icons/settings/system/application-import.png
diff --git a/docs/_static/icons/settings/general/sd.png b/docs/_static/icons/settings/system/sd.png
similarity index 100%
rename from docs/_static/icons/settings/general/sd.png
rename to docs/_static/icons/settings/system/sd.png
diff --git a/docs/_static/icons/traits/sort.png b/docs/_static/icons/traits/sort.png
new file mode 100644
index 000000000..edd3e71cb
Binary files /dev/null and b/docs/_static/icons/traits/sort.png differ
diff --git a/docs/_static/images/about/about_framed.png b/docs/_static/images/about/about_framed.png
index c19992463..4fddf39d9 100644
Binary files a/docs/_static/images/about/about_framed.png and b/docs/_static/images/about/about_framed.png differ
diff --git a/docs/_static/images/brapi/brapi_create_trait_framed.png b/docs/_static/images/brapi/brapi_create_trait_framed.png
new file mode 100644
index 000000000..37a0b2376
Binary files /dev/null and b/docs/_static/images/brapi/brapi_create_trait_framed.png differ
diff --git a/docs/_static/images/brapi/brapi_field_detail_sync.png b/docs/_static/images/brapi/brapi_field_detail_sync.png
new file mode 100644
index 000000000..bddd24cc3
Binary files /dev/null and b/docs/_static/images/brapi/brapi_field_detail_sync.png differ
diff --git a/docs/_static/images/brapi/brapi_field_detail_sync_summary.png b/docs/_static/images/brapi/brapi_field_detail_sync_summary.png
new file mode 100644
index 000000000..54dbb0189
Binary files /dev/null and b/docs/_static/images/brapi/brapi_field_detail_sync_summary.png differ
diff --git a/docs/_static/images/brapi/brapi_field_detail_synced.png b/docs/_static/images/brapi/brapi_field_detail_synced.png
new file mode 100644
index 000000000..e3e282986
Binary files /dev/null and b/docs/_static/images/brapi/brapi_field_detail_synced.png differ
diff --git a/docs/_static/images/brapi/brapi_field_import_framed.png b/docs/_static/images/brapi/brapi_field_import_framed.png
new file mode 100644
index 000000000..75ba2a9cb
Binary files /dev/null and b/docs/_static/images/brapi/brapi_field_import_framed.png differ
diff --git a/docs/_static/images/brapi/brapi_field_import_joined.png b/docs/_static/images/brapi/brapi_field_import_joined.png
index b8fd65c3b..8c06acbcd 100644
Binary files a/docs/_static/images/brapi/brapi_field_import_joined.png and b/docs/_static/images/brapi/brapi_field_import_joined.png differ
diff --git a/docs/_static/images/brapi/brapi_field_import_level_framed.png b/docs/_static/images/brapi/brapi_field_import_level_framed.png
new file mode 100644
index 000000000..993d2d9be
Binary files /dev/null and b/docs/_static/images/brapi/brapi_field_import_level_framed.png differ
diff --git a/docs/_static/images/brapi/brapi_field_import_selected_framed.png b/docs/_static/images/brapi/brapi_field_import_selected_framed.png
new file mode 100644
index 000000000..a7911a4ad
Binary files /dev/null and b/docs/_static/images/brapi/brapi_field_import_selected_framed.png differ
diff --git a/docs/_static/images/brapi/brapi_sync_joined.png b/docs/_static/images/brapi/brapi_sync_joined.png
new file mode 100644
index 000000000..effe9b718
Binary files /dev/null and b/docs/_static/images/brapi/brapi_sync_joined.png differ
diff --git a/docs/_static/images/brapi/brapi_trait_import_change_joined.png b/docs/_static/images/brapi/brapi_trait_import_change_joined.png
new file mode 100644
index 000000000..626160ef6
Binary files /dev/null and b/docs/_static/images/brapi/brapi_trait_import_change_joined.png differ
diff --git a/docs/_static/images/brapi/brapi_trait_import_choose_format.png b/docs/_static/images/brapi/brapi_trait_import_choose_format.png
new file mode 100644
index 000000000..531ffd17f
Binary files /dev/null and b/docs/_static/images/brapi/brapi_trait_import_choose_format.png differ
diff --git a/docs/_static/images/brapi/brapi_trait_import_format_changed.png b/docs/_static/images/brapi/brapi_trait_import_format_changed.png
new file mode 100644
index 000000000..28f6e9e73
Binary files /dev/null and b/docs/_static/images/brapi/brapi_trait_import_format_changed.png differ
diff --git a/docs/_static/images/brapi/brapi_trait_import_format_screen.png b/docs/_static/images/brapi/brapi_trait_import_format_screen.png
new file mode 100644
index 000000000..8b79b63aa
Binary files /dev/null and b/docs/_static/images/brapi/brapi_trait_import_format_screen.png differ
diff --git a/docs/_static/images/brapi/brapi_trait_import_joined.png b/docs/_static/images/brapi/brapi_trait_import_joined.png
index 9db05ae31..6fc4a2182 100644
Binary files a/docs/_static/images/brapi/brapi_trait_import_joined.png and b/docs/_static/images/brapi/brapi_trait_import_joined.png differ
diff --git a/docs/_static/images/brapi/brapi_trait_import_layout_changed.png b/docs/_static/images/brapi/brapi_trait_import_layout_changed.png
new file mode 100644
index 000000000..27ec4c147
Binary files /dev/null and b/docs/_static/images/brapi/brapi_trait_import_layout_changed.png differ
diff --git a/docs/_static/images/brapi/brapi_trait_import_selected.png b/docs/_static/images/brapi/brapi_trait_import_selected.png
new file mode 100644
index 000000000..a06bc1d25
Binary files /dev/null and b/docs/_static/images/brapi/brapi_trait_import_selected.png differ
diff --git a/docs/_static/images/brapi/brapi_trait_import_trait_layout.png b/docs/_static/images/brapi/brapi_trait_import_trait_layout.png
new file mode 100644
index 000000000..4d61e1a83
Binary files /dev/null and b/docs/_static/images/brapi/brapi_trait_import_trait_layout.png differ
diff --git a/docs/_static/images/brapi/brapi_url_framed.png b/docs/_static/images/brapi/brapi_url_framed.png
index 3be7a6b21..7720991a0 100644
Binary files a/docs/_static/images/brapi/brapi_url_framed.png and b/docs/_static/images/brapi/brapi_url_framed.png differ
diff --git a/docs/_static/images/brapi/brapi_url_joined.png b/docs/_static/images/brapi/brapi_url_joined.png
index 7a11fe021..db298f1ae 100644
Binary files a/docs/_static/images/brapi/brapi_url_joined.png and b/docs/_static/images/brapi/brapi_url_joined.png differ
diff --git a/docs/_static/images/collect/collect_framed.png b/docs/_static/images/collect/collect_framed.png
index 83e3e9fe9..3dc1e0263 100644
Binary files a/docs/_static/images/collect/collect_framed.png and b/docs/_static/images/collect/collect_framed.png differ
diff --git a/docs/_static/images/collect/collect_infobar_edit_framed.png b/docs/_static/images/collect/collect_infobar_edit_framed.png
new file mode 100644
index 000000000..deeddf27f
Binary files /dev/null and b/docs/_static/images/collect/collect_infobar_edit_framed.png differ
diff --git a/docs/_static/images/collect/collect_infobar_joined.png b/docs/_static/images/collect/collect_infobar_joined.png
new file mode 100644
index 000000000..2b78130a7
Binary files /dev/null and b/docs/_static/images/collect/collect_infobar_joined.png differ
diff --git a/docs/_static/images/collect/collect_search_add_attribute_framed.png b/docs/_static/images/collect/collect_search_add_attribute_framed.png
new file mode 100644
index 000000000..598742038
Binary files /dev/null and b/docs/_static/images/collect/collect_search_add_attribute_framed.png differ
diff --git a/docs/_static/images/collect/collect_search_seedname_framed.png b/docs/_static/images/collect/collect_search_seedname_framed.png
new file mode 100644
index 000000000..e4616f2a4
Binary files /dev/null and b/docs/_static/images/collect/collect_search_seedname_framed.png differ
diff --git a/docs/_static/images/collect/collect_search_seedname_results_framed.png b/docs/_static/images/collect/collect_search_seedname_results_framed.png
new file mode 100644
index 000000000..787842723
Binary files /dev/null and b/docs/_static/images/collect/collect_search_seedname_results_framed.png differ
diff --git a/docs/_static/images/collect/collect_search_steps_joined.png b/docs/_static/images/collect/collect_search_steps_joined.png
new file mode 100644
index 000000000..b276503cb
Binary files /dev/null and b/docs/_static/images/collect/collect_search_steps_joined.png differ
diff --git a/docs/_static/images/collect/collect_select_trait.png b/docs/_static/images/collect/collect_select_trait.png
new file mode 100644
index 000000000..3db315b8f
Binary files /dev/null and b/docs/_static/images/collect/collect_select_trait.png differ
diff --git a/docs/_static/images/collect/collect_summary_edit_framed.png b/docs/_static/images/collect/collect_summary_edit_framed.png
new file mode 100644
index 000000000..bf447b412
Binary files /dev/null and b/docs/_static/images/collect/collect_summary_edit_framed.png differ
diff --git a/docs/_static/images/collect/collect_summary_framed.png b/docs/_static/images/collect/collect_summary_framed.png
index d93a07a04..e2284c8d6 100644
Binary files a/docs/_static/images/collect/collect_summary_framed.png and b/docs/_static/images/collect/collect_summary_framed.png differ
diff --git a/docs/_static/images/collect/collect_summary_joined.png b/docs/_static/images/collect/collect_summary_joined.png
new file mode 100644
index 000000000..a9e477c00
Binary files /dev/null and b/docs/_static/images/collect/collect_summary_joined.png differ
diff --git a/docs/_static/images/collect/collect_trait_menu_framed.png b/docs/_static/images/collect/collect_trait_menu_framed.png
index bba1e104a..4f3af46cf 100644
Binary files a/docs/_static/images/collect/collect_trait_menu_framed.png and b/docs/_static/images/collect/collect_trait_menu_framed.png differ
diff --git a/docs/_static/images/collect/number_of_infobars_framed.png b/docs/_static/images/collect/number_of_infobars_framed.png
new file mode 100644
index 000000000..e31885277
Binary files /dev/null and b/docs/_static/images/collect/number_of_infobars_framed.png differ
diff --git a/docs/_static/images/datagrid/datagrid_choose_header_2_framed.png b/docs/_static/images/datagrid/datagrid_choose_header_2_framed.png
new file mode 100644
index 000000000..80a96210d
Binary files /dev/null and b/docs/_static/images/datagrid/datagrid_choose_header_2_framed.png differ
diff --git a/docs/_static/images/datagrid/datagrid_choose_header_framed.png b/docs/_static/images/datagrid/datagrid_choose_header_framed.png
new file mode 100644
index 000000000..dd70218c9
Binary files /dev/null and b/docs/_static/images/datagrid/datagrid_choose_header_framed.png differ
diff --git a/docs/_static/images/datagrid/datagrid_edit_rows_joined.png b/docs/_static/images/datagrid/datagrid_edit_rows_joined.png
index f61bcd574..ece9da6a9 100644
Binary files a/docs/_static/images/datagrid/datagrid_edit_rows_joined.png and b/docs/_static/images/datagrid/datagrid_edit_rows_joined.png differ
diff --git a/docs/_static/images/datagrid/datagrid_updated_view_framed.png b/docs/_static/images/datagrid/datagrid_updated_view_framed.png
new file mode 100644
index 000000000..cce45172b
Binary files /dev/null and b/docs/_static/images/datagrid/datagrid_updated_view_framed.png differ
diff --git a/docs/_static/images/datagrid/datagrid_view_framed.png b/docs/_static/images/datagrid/datagrid_view_framed.png
index 0f5d25dbc..6047eb005 100644
Binary files a/docs/_static/images/datagrid/datagrid_view_framed.png and b/docs/_static/images/datagrid/datagrid_view_framed.png differ
diff --git a/docs/_static/images/export/export_framed.png b/docs/_static/images/export/export_framed.png
index ace756943..fbf9c6f35 100644
Binary files a/docs/_static/images/export/export_framed.png and b/docs/_static/images/export/export_framed.png differ
diff --git a/docs/_static/images/fields/a b/docs/_static/images/fields/a
new file mode 100644
index 000000000..e69de29bb
diff --git a/docs/_static/images/fields/a-0 b/docs/_static/images/fields/a-0
new file mode 100644
index 000000000..02910da8c
Binary files /dev/null and b/docs/_static/images/fields/a-0 differ
diff --git a/docs/_static/images/fields/add_field_brapi_enabled_framed.png b/docs/_static/images/fields/add_field_brapi_enabled_framed.png
new file mode 100644
index 000000000..dfab42af1
Binary files /dev/null and b/docs/_static/images/fields/add_field_brapi_enabled_framed.png differ
diff --git a/docs/_static/images/fields/add_field_framed.png b/docs/_static/images/fields/add_field_framed.png
new file mode 100644
index 000000000..d0ded7351
Binary files /dev/null and b/docs/_static/images/fields/add_field_framed.png differ
diff --git a/docs/_static/images/fields/cloud_import_joined.png b/docs/_static/images/fields/cloud_import_joined.png
new file mode 100644
index 000000000..24b1874e6
Binary files /dev/null and b/docs/_static/images/fields/cloud_import_joined.png differ
diff --git a/docs/_static/images/fields/cloud_open_from_framed.png b/docs/_static/images/fields/cloud_open_from_framed.png
new file mode 100644
index 000000000..bd0b06058
Binary files /dev/null and b/docs/_static/images/fields/cloud_open_from_framed.png differ
diff --git a/docs/_static/images/fields/cloud_storage_import_framed.png b/docs/_static/images/fields/cloud_storage_import_framed.png
new file mode 100644
index 000000000..3cd21869a
Binary files /dev/null and b/docs/_static/images/fields/cloud_storage_import_framed.png differ
diff --git a/docs/_static/images/fields/field_detail_framed.png b/docs/_static/images/fields/field_detail_framed.png
new file mode 100644
index 000000000..6a80a64be
Binary files /dev/null and b/docs/_static/images/fields/field_detail_framed.png differ
diff --git a/docs/_static/images/fields/fields_delete_framed.png b/docs/_static/images/fields/fields_delete_framed.png
new file mode 100644
index 000000000..01b1695b6
Binary files /dev/null and b/docs/_static/images/fields/fields_delete_framed.png differ
diff --git a/docs/_static/images/fields/fields_framed.png b/docs/_static/images/fields/fields_framed.png
index 8b1ac1afa..4e6d79344 100644
Binary files a/docs/_static/images/fields/fields_framed.png and b/docs/_static/images/fields/fields_framed.png differ
diff --git a/docs/_static/images/fields/fields_import_joined.png b/docs/_static/images/fields/fields_import_joined.png
index 53f1f0e3c..5139e8ac4 100644
Binary files a/docs/_static/images/fields/fields_import_joined.png and b/docs/_static/images/fields/fields_import_joined.png differ
diff --git a/docs/_static/images/fields/fields_list_item.png b/docs/_static/images/fields/fields_list_item.png
index 48cea0a88..e62a14c27 100644
Binary files a/docs/_static/images/fields/fields_list_item.png and b/docs/_static/images/fields/fields_list_item.png differ
diff --git a/docs/_static/images/fields/fields_sort_framed.png b/docs/_static/images/fields/fields_sort_framed.png
new file mode 100644
index 000000000..d91fb20b8
Binary files /dev/null and b/docs/_static/images/fields/fields_sort_framed.png differ
diff --git a/docs/_static/images/fields/import_id_choice_framed.png b/docs/_static/images/fields/import_id_choice_framed.png
new file mode 100644
index 000000000..542102e7f
Binary files /dev/null and b/docs/_static/images/fields/import_id_choice_framed.png differ
diff --git a/docs/_static/images/fields/local_import_framed.png b/docs/_static/images/fields/local_import_framed.png
new file mode 100644
index 000000000..b3d4be7ef
Binary files /dev/null and b/docs/_static/images/fields/local_import_framed.png differ
diff --git a/docs/_static/images/home_framed.png b/docs/_static/images/home_framed.png
index a33c6be42..e7041ae2c 100644
Binary files a/docs/_static/images/home_framed.png and b/docs/_static/images/home_framed.png differ
diff --git a/docs/_static/images/intro/allow_file_access_framed.png b/docs/_static/images/intro/allow_file_access_framed.png
new file mode 100644
index 000000000..8a69b5d5d
Binary files /dev/null and b/docs/_static/images/intro/allow_file_access_framed.png differ
diff --git a/docs/_static/images/intro/define_storage_framed.png b/docs/_static/images/intro/define_storage_framed.png
new file mode 100644
index 000000000..230308a8f
Binary files /dev/null and b/docs/_static/images/intro/define_storage_framed.png differ
diff --git a/docs/_static/images/intro/defining_storage_location_joined.png b/docs/_static/images/intro/defining_storage_location_joined.png
new file mode 100644
index 000000000..aedb2d8ad
Binary files /dev/null and b/docs/_static/images/intro/defining_storage_location_joined.png differ
diff --git a/docs/_static/images/intro/features_framed.png b/docs/_static/images/intro/features_framed.png
new file mode 100644
index 000000000..629832cfb
Binary files /dev/null and b/docs/_static/images/intro/features_framed.png differ
diff --git a/docs/_static/images/intro/intro_slides_1_joined.png b/docs/_static/images/intro/intro_slides_1_joined.png
new file mode 100644
index 000000000..d96d966ed
Binary files /dev/null and b/docs/_static/images/intro/intro_slides_1_joined.png differ
diff --git a/docs/_static/images/intro/intro_slides_2_joined.png b/docs/_static/images/intro/intro_slides_2_joined.png
new file mode 100644
index 000000000..1657290e9
Binary files /dev/null and b/docs/_static/images/intro/intro_slides_2_joined.png differ
diff --git a/docs/_static/images/intro/intro_slides_joined.png b/docs/_static/images/intro/intro_slides_joined.png
new file mode 100644
index 000000000..72605a2b9
Binary files /dev/null and b/docs/_static/images/intro/intro_slides_joined.png differ
diff --git a/docs/_static/images/intro/new_folder_framed.png b/docs/_static/images/intro/new_folder_framed.png
new file mode 100644
index 000000000..1da1180c1
Binary files /dev/null and b/docs/_static/images/intro/new_folder_framed.png differ
diff --git a/docs/_static/images/intro/optional_setup_framed.png b/docs/_static/images/intro/optional_setup_framed.png
new file mode 100644
index 000000000..347279c36
Binary files /dev/null and b/docs/_static/images/intro/optional_setup_framed.png differ
diff --git a/docs/_static/images/intro/required_setup_framed.png b/docs/_static/images/intro/required_setup_framed.png
new file mode 100644
index 000000000..3de3ddace
Binary files /dev/null and b/docs/_static/images/intro/required_setup_framed.png differ
diff --git a/docs/_static/images/intro/welcome_framed.png b/docs/_static/images/intro/welcome_framed.png
new file mode 100644
index 000000000..920b7491c
Binary files /dev/null and b/docs/_static/images/intro/welcome_framed.png differ
diff --git a/docs/_static/images/settings/appearance/settings_appearance_framed.png b/docs/_static/images/settings/appearance/settings_appearance_framed.png
index 32f99e78f..8d7321a94 100644
Binary files a/docs/_static/images/settings/appearance/settings_appearance_framed.png and b/docs/_static/images/settings/appearance/settings_appearance_framed.png differ
diff --git a/docs/_static/images/settings/appearance/settings_appearance_language_framed.png b/docs/_static/images/settings/appearance/settings_appearance_language_framed.png
index b48cb63ea..91d456414 100644
Binary files a/docs/_static/images/settings/appearance/settings_appearance_language_framed.png and b/docs/_static/images/settings/appearance/settings_appearance_language_framed.png differ
diff --git a/docs/_static/images/settings/appearance/settings_appearance_theme_framed.png b/docs/_static/images/settings/appearance/settings_appearance_theme_framed.png
index 5d1d4e0d4..4f7a4ad3f 100644
Binary files a/docs/_static/images/settings/appearance/settings_appearance_theme_framed.png and b/docs/_static/images/settings/appearance/settings_appearance_theme_framed.png differ
diff --git a/docs/_static/images/settings/appearance/settings_appearance_toolbar_framed.png b/docs/_static/images/settings/appearance/settings_appearance_toolbar_framed.png
index d520fa5c3..e1bebd6db 100644
Binary files a/docs/_static/images/settings/appearance/settings_appearance_toolbar_framed.png and b/docs/_static/images/settings/appearance/settings_appearance_toolbar_framed.png differ
diff --git a/docs/_static/images/settings/behavior/settings_behavior_framed.png b/docs/_static/images/settings/behavior/settings_behavior_framed.png
index 6bc2043ac..b0a922319 100644
Binary files a/docs/_static/images/settings/behavior/settings_behavior_framed.png and b/docs/_static/images/settings/behavior/settings_behavior_framed.png differ
diff --git a/docs/_static/images/settings/beta/settings_beta_framed.png b/docs/_static/images/settings/beta/settings_beta_framed.png
deleted file mode 100644
index 9381e1698..000000000
Binary files a/docs/_static/images/settings/beta/settings_beta_framed.png and /dev/null differ
diff --git a/docs/_static/images/settings/beta/settings_beta_repeated_framed.png b/docs/_static/images/settings/beta/settings_beta_repeated_framed.png
deleted file mode 100644
index 31925713b..000000000
Binary files a/docs/_static/images/settings/beta/settings_beta_repeated_framed.png and /dev/null differ
diff --git a/docs/_static/images/settings/brapi/settings_brapi_1_framed.png b/docs/_static/images/settings/brapi/settings_brapi_1_framed.png
index 0c1e36b11..536e47b65 100644
Binary files a/docs/_static/images/settings/brapi/settings_brapi_1_framed.png and b/docs/_static/images/settings/brapi/settings_brapi_1_framed.png differ
diff --git a/docs/_static/images/settings/brapi/settings_brapi_2_framed.png b/docs/_static/images/settings/brapi/settings_brapi_2_framed.png
index 8b0009162..d51fb3f2a 100644
Binary files a/docs/_static/images/settings/brapi/settings_brapi_2_framed.png and b/docs/_static/images/settings/brapi/settings_brapi_2_framed.png differ
diff --git a/docs/_static/images/settings/brapi/settings_brapi_cache_invalidation.png b/docs/_static/images/settings/brapi/settings_brapi_cache_invalidation.png
new file mode 100644
index 000000000..3cefb2a96
Binary files /dev/null and b/docs/_static/images/settings/brapi/settings_brapi_cache_invalidation.png differ
diff --git a/docs/_static/images/settings/brapi/settings_brapi_display_name.png b/docs/_static/images/settings/brapi/settings_brapi_display_name.png
new file mode 100644
index 000000000..6262ccaeb
Binary files /dev/null and b/docs/_static/images/settings/brapi/settings_brapi_display_name.png differ
diff --git a/docs/_static/images/settings/brapi/settings_brapi_framed.png b/docs/_static/images/settings/brapi/settings_brapi_framed.png
new file mode 100644
index 000000000..536e47b65
Binary files /dev/null and b/docs/_static/images/settings/brapi/settings_brapi_framed.png differ
diff --git a/docs/_static/images/settings/brapi/settings_brapi_oidc_flow.png b/docs/_static/images/settings/brapi/settings_brapi_oidc_flow.png
index 0921571f4..a0e7d78f4 100644
Binary files a/docs/_static/images/settings/brapi/settings_brapi_oidc_flow.png and b/docs/_static/images/settings/brapi/settings_brapi_oidc_flow.png differ
diff --git a/docs/_static/images/settings/brapi/settings_brapi_version.png b/docs/_static/images/settings/brapi/settings_brapi_version.png
index f934b9f8a..a91f4e347 100644
Binary files a/docs/_static/images/settings/brapi/settings_brapi_version.png and b/docs/_static/images/settings/brapi/settings_brapi_version.png differ
diff --git a/docs/_static/images/settings/database/settings_database_framed.png b/docs/_static/images/settings/database/settings_database_framed.png
deleted file mode 100644
index f1a1a9810..000000000
Binary files a/docs/_static/images/settings/database/settings_database_framed.png and /dev/null differ
diff --git a/docs/_static/images/settings/experimental/settings_experimental_framed.png b/docs/_static/images/settings/experimental/settings_experimental_framed.png
new file mode 100644
index 000000000..d1296902c
Binary files /dev/null and b/docs/_static/images/settings/experimental/settings_experimental_framed.png differ
diff --git a/docs/_static/images/settings/beta/settings_beta_repeated_icon.png b/docs/_static/images/settings/experimental/settings_experimental_repeated_icon.png
similarity index 100%
rename from docs/_static/images/settings/beta/settings_beta_repeated_icon.png
rename to docs/_static/images/settings/experimental/settings_experimental_repeated_icon.png
diff --git a/docs/_static/images/settings/features/settings_features_framed.png b/docs/_static/images/settings/features/settings_features_framed.png
new file mode 100644
index 000000000..a3bbf9737
Binary files /dev/null and b/docs/_static/images/settings/features/settings_features_framed.png differ
diff --git a/docs/_static/images/settings/general/settings_general_moveto_uid.png b/docs/_static/images/settings/features/settings_features_moveto_uid.png
similarity index 100%
rename from docs/_static/images/settings/general/settings_general_moveto_uid.png
rename to docs/_static/images/settings/features/settings_features_moveto_uid.png
diff --git a/docs/_static/images/settings/general/settings_general_next_entry.png b/docs/_static/images/settings/features/settings_features_next_entry.png
similarity index 100%
rename from docs/_static/images/settings/general/settings_general_next_entry.png
rename to docs/_static/images/settings/features/settings_features_next_entry.png
diff --git a/docs/_static/images/settings/general/settings_general_framed.png b/docs/_static/images/settings/general/settings_general_framed.png
deleted file mode 100644
index 4651dfee5..000000000
Binary files a/docs/_static/images/settings/general/settings_general_framed.png and /dev/null differ
diff --git a/docs/_static/images/settings/geonav/settings_geonav_framed.png b/docs/_static/images/settings/geonav/settings_geonav_framed.png
deleted file mode 100644
index 565baf5ef..000000000
Binary files a/docs/_static/images/settings/geonav/settings_geonav_framed.png and /dev/null differ
diff --git a/docs/_static/images/settings/general/settings_general_location_collected.png b/docs/_static/images/settings/location/settings_location_collected.png
similarity index 100%
rename from docs/_static/images/settings/general/settings_general_location_collected.png
rename to docs/_static/images/settings/location/settings_location_collected.png
diff --git a/docs/_static/images/settings/location/settings_location_framed.png b/docs/_static/images/settings/location/settings_location_framed.png
new file mode 100644
index 000000000..6506a1cd3
Binary files /dev/null and b/docs/_static/images/settings/location/settings_location_framed.png differ
diff --git a/docs/_static/images/settings/geonav/settings_geonav_search_method.png b/docs/_static/images/settings/location/settings_location_search_method.png
similarity index 100%
rename from docs/_static/images/settings/geonav/settings_geonav_search_method.png
rename to docs/_static/images/settings/location/settings_location_search_method.png
diff --git a/docs/_static/images/settings/geonav/settings_geonav_update_intervals.png b/docs/_static/images/settings/location/settings_location_update_intervals.png
similarity index 100%
rename from docs/_static/images/settings/geonav/settings_geonav_update_intervals.png
rename to docs/_static/images/settings/location/settings_location_update_intervals.png
diff --git a/docs/_static/images/settings/profile/settings_profile_framed.png b/docs/_static/images/settings/profile/settings_profile_framed.png
index 6674a7f74..c5f2acb36 100644
Binary files a/docs/_static/images/settings/profile/settings_profile_framed.png and b/docs/_static/images/settings/profile/settings_profile_framed.png differ
diff --git a/docs/_static/images/settings/sounds/settings_sounds_framed.png b/docs/_static/images/settings/sounds/settings_sounds_framed.png
index 6c221caa1..a2ce35b46 100644
Binary files a/docs/_static/images/settings/sounds/settings_sounds_framed.png and b/docs/_static/images/settings/sounds/settings_sounds_framed.png differ
diff --git a/docs/_static/images/settings/database/settings_database_delete.png b/docs/_static/images/settings/storage/settings_storage_database_delete.png
similarity index 100%
rename from docs/_static/images/settings/database/settings_database_delete.png
rename to docs/_static/images/settings/storage/settings_storage_database_delete.png
diff --git a/docs/_static/images/settings/database/settings_database_export.png b/docs/_static/images/settings/storage/settings_storage_database_export.png
similarity index 100%
rename from docs/_static/images/settings/database/settings_database_export.png
rename to docs/_static/images/settings/storage/settings_storage_database_export.png
diff --git a/docs/_static/images/settings/database/settings_database_import.png b/docs/_static/images/settings/storage/settings_storage_database_import.png
similarity index 100%
rename from docs/_static/images/settings/database/settings_database_import.png
rename to docs/_static/images/settings/storage/settings_storage_database_import.png
diff --git a/docs/_static/images/settings/storage/settings_storage_framed.png b/docs/_static/images/settings/storage/settings_storage_framed.png
new file mode 100644
index 000000000..eb3f988dd
Binary files /dev/null and b/docs/_static/images/settings/storage/settings_storage_framed.png differ
diff --git a/docs/_static/images/settings/general/settings_general_export_sources.png b/docs/_static/images/settings/system/settings_system_export_sources.png
similarity index 100%
rename from docs/_static/images/settings/general/settings_general_export_sources.png
rename to docs/_static/images/settings/system/settings_system_export_sources.png
diff --git a/docs/_static/images/settings/system/settings_system_framed.png b/docs/_static/images/settings/system/settings_system_framed.png
new file mode 100644
index 000000000..1dd4b2a86
Binary files /dev/null and b/docs/_static/images/settings/system/settings_system_framed.png differ
diff --git a/docs/_static/images/settings/general/settings_general_import_sources.png b/docs/_static/images/settings/system/settings_system_import_sources.png
similarity index 100%
rename from docs/_static/images/settings/general/settings_general_import_sources.png
rename to docs/_static/images/settings/system/settings_system_import_sources.png
diff --git a/docs/_static/images/statistics/statistics_framed.png b/docs/_static/images/statistics/statistics_framed.png
new file mode 100644
index 000000000..9b2c3e157
Binary files /dev/null and b/docs/_static/images/statistics/statistics_framed.png differ
diff --git a/docs/_static/images/statistics/statistics_heatmap_framed.png b/docs/_static/images/statistics/statistics_heatmap_framed.png
new file mode 100644
index 000000000..6c47d62b7
Binary files /dev/null and b/docs/_static/images/statistics/statistics_heatmap_framed.png differ
diff --git a/docs/_static/images/statistics/statistics_heatmap_framed_toggle.png b/docs/_static/images/statistics/statistics_heatmap_framed_toggle.png
new file mode 100644
index 000000000..9ea4915c0
Binary files /dev/null and b/docs/_static/images/statistics/statistics_heatmap_framed_toggle.png differ
diff --git a/docs/_static/images/statistics/statistics_heatmap_joined.png b/docs/_static/images/statistics/statistics_heatmap_joined.png
new file mode 100644
index 000000000..965e0c0a9
Binary files /dev/null and b/docs/_static/images/statistics/statistics_heatmap_joined.png differ
diff --git a/docs/_static/images/statistics/statistics_joined.png b/docs/_static/images/statistics/statistics_joined.png
new file mode 100644
index 000000000..c0ad57201
Binary files /dev/null and b/docs/_static/images/statistics/statistics_joined.png differ
diff --git a/docs/_static/images/statistics/statistics_month_framed.png b/docs/_static/images/statistics/statistics_month_framed.png
new file mode 100644
index 000000000..504e3ba7c
Binary files /dev/null and b/docs/_static/images/statistics/statistics_month_framed.png differ
diff --git a/docs/_static/images/statistics/statistics_year_framed.png b/docs/_static/images/statistics/statistics_year_framed.png
new file mode 100644
index 000000000..1fc7ab606
Binary files /dev/null and b/docs/_static/images/statistics/statistics_year_framed.png differ
diff --git a/docs/_static/images/traits/create_trait_framed.png b/docs/_static/images/traits/create_trait_framed.png
new file mode 100644
index 000000000..a4f569d68
Binary files /dev/null and b/docs/_static/images/traits/create_trait_framed.png differ
diff --git a/docs/_static/images/traits/create_trait_parameters_framed.png b/docs/_static/images/traits/create_trait_parameters_framed.png
new file mode 100644
index 000000000..64c955dca
Binary files /dev/null and b/docs/_static/images/traits/create_trait_parameters_framed.png differ
diff --git a/docs/_static/images/traits/formats/audio_format_joined.png b/docs/_static/images/traits/formats/audio_format_joined.png
new file mode 100644
index 000000000..06f961fa9
Binary files /dev/null and b/docs/_static/images/traits/formats/audio_format_joined.png differ
diff --git a/docs/_static/images/traits/formats/boolean_format_joined.png b/docs/_static/images/traits/formats/boolean_format_joined.png
new file mode 100644
index 000000000..833b62c9a
Binary files /dev/null and b/docs/_static/images/traits/formats/boolean_format_joined.png differ
diff --git a/docs/_static/images/traits/formats/categorical_format_joined.png b/docs/_static/images/traits/formats/categorical_format_joined.png
new file mode 100644
index 000000000..2ac2079ad
Binary files /dev/null and b/docs/_static/images/traits/formats/categorical_format_joined.png differ
diff --git a/docs/_static/images/traits/formats/collect_audio_framed.png b/docs/_static/images/traits/formats/collect_audio_framed.png
index 8a962072a..36a7c6e78 100644
Binary files a/docs/_static/images/traits/formats/collect_audio_framed.png and b/docs/_static/images/traits/formats/collect_audio_framed.png differ
diff --git a/docs/_static/images/traits/formats/collect_boolean_framed.png b/docs/_static/images/traits/formats/collect_boolean_framed.png
index 1a1a8a9ac..fc884de14 100644
Binary files a/docs/_static/images/traits/formats/collect_boolean_framed.png and b/docs/_static/images/traits/formats/collect_boolean_framed.png differ
diff --git a/docs/_static/images/traits/formats/collect_categorical_framed.png b/docs/_static/images/traits/formats/collect_categorical_framed.png
index 22679c9d4..0806b8bf3 100644
Binary files a/docs/_static/images/traits/formats/collect_categorical_framed.png and b/docs/_static/images/traits/formats/collect_categorical_framed.png differ
diff --git a/docs/_static/images/traits/formats/collect_counter_framed.png b/docs/_static/images/traits/formats/collect_counter_framed.png
index f247c04b7..0a44b6544 100644
Binary files a/docs/_static/images/traits/formats/collect_counter_framed.png and b/docs/_static/images/traits/formats/collect_counter_framed.png differ
diff --git a/docs/_static/images/traits/formats/collect_date_framed.png b/docs/_static/images/traits/formats/collect_date_framed.png
index 5e4a29e02..594c00fe7 100644
Binary files a/docs/_static/images/traits/formats/collect_date_framed.png and b/docs/_static/images/traits/formats/collect_date_framed.png differ
diff --git a/docs/_static/images/traits/formats/collect_date_picker_framed.png b/docs/_static/images/traits/formats/collect_date_picker_framed.png
index 1ff5109a9..669aa3435 100644
Binary files a/docs/_static/images/traits/formats/collect_date_picker_framed.png and b/docs/_static/images/traits/formats/collect_date_picker_framed.png differ
diff --git a/docs/_static/images/traits/formats/collect_disease_1_framed.png b/docs/_static/images/traits/formats/collect_disease_1_framed.png
deleted file mode 100644
index 2503b8d33..000000000
Binary files a/docs/_static/images/traits/formats/collect_disease_1_framed.png and /dev/null differ
diff --git a/docs/_static/images/traits/formats/collect_disease_2_framed.png b/docs/_static/images/traits/formats/collect_disease_2_framed.png
deleted file mode 100644
index dde2ff1f9..000000000
Binary files a/docs/_static/images/traits/formats/collect_disease_2_framed.png and /dev/null differ
diff --git a/docs/_static/images/traits/formats/collect_disease_3_framed.png b/docs/_static/images/traits/formats/collect_disease_3_framed.png
deleted file mode 100644
index 140ff1898..000000000
Binary files a/docs/_static/images/traits/formats/collect_disease_3_framed.png and /dev/null differ
diff --git a/docs/_static/images/traits/formats/collect_disease_framed.png b/docs/_static/images/traits/formats/collect_disease_framed.png
new file mode 100644
index 000000000..50d7c41bc
Binary files /dev/null and b/docs/_static/images/traits/formats/collect_disease_framed.png differ
diff --git a/docs/_static/images/traits/formats/collect_gnss_framed.png b/docs/_static/images/traits/formats/collect_gnss_framed.png
index 9a1b91d7d..af6aa316f 100644
Binary files a/docs/_static/images/traits/formats/collect_gnss_framed.png and b/docs/_static/images/traits/formats/collect_gnss_framed.png differ
diff --git a/docs/_static/images/traits/formats/collect_gopro_framed.png b/docs/_static/images/traits/formats/collect_gopro_framed.png
index 2695f43de..ce20285d9 100644
Binary files a/docs/_static/images/traits/formats/collect_gopro_framed.png and b/docs/_static/images/traits/formats/collect_gopro_framed.png differ
diff --git a/docs/_static/images/traits/formats/collect_location_framed.png b/docs/_static/images/traits/formats/collect_location_framed.png
index 31f2b7ae1..49dad6ffb 100644
Binary files a/docs/_static/images/traits/formats/collect_location_framed.png and b/docs/_static/images/traits/formats/collect_location_framed.png differ
diff --git a/docs/_static/images/traits/formats/collect_multicat_framed.png b/docs/_static/images/traits/formats/collect_multicat_framed.png
index ec369141f..67dc4fbed 100644
Binary files a/docs/_static/images/traits/formats/collect_multicat_framed.png and b/docs/_static/images/traits/formats/collect_multicat_framed.png differ
diff --git a/docs/_static/images/traits/formats/collect_numeric_framed.png b/docs/_static/images/traits/formats/collect_numeric_framed.png
index ebac8b555..6a786c39d 100644
Binary files a/docs/_static/images/traits/formats/collect_numeric_framed.png and b/docs/_static/images/traits/formats/collect_numeric_framed.png differ
diff --git a/docs/_static/images/traits/formats/collect_percent_framed.png b/docs/_static/images/traits/formats/collect_percent_framed.png
index 86f521f66..7977636f1 100644
Binary files a/docs/_static/images/traits/formats/collect_percent_framed.png and b/docs/_static/images/traits/formats/collect_percent_framed.png differ
diff --git a/docs/_static/images/traits/formats/collect_photo_framed.png b/docs/_static/images/traits/formats/collect_photo_framed.png
index 6f7f3d23d..97111a555 100644
Binary files a/docs/_static/images/traits/formats/collect_photo_framed.png and b/docs/_static/images/traits/formats/collect_photo_framed.png differ
diff --git a/docs/_static/images/traits/formats/collect_photo_joined.png b/docs/_static/images/traits/formats/collect_photo_joined.png
new file mode 100644
index 000000000..dfc8c8670
Binary files /dev/null and b/docs/_static/images/traits/formats/collect_photo_joined.png differ
diff --git a/docs/_static/images/traits/formats/collect_text_framed.png b/docs/_static/images/traits/formats/collect_text_framed.png
index 3cf244b82..36e669130 100644
Binary files a/docs/_static/images/traits/formats/collect_text_framed.png and b/docs/_static/images/traits/formats/collect_text_framed.png differ
diff --git a/docs/_static/images/traits/formats/counter_format_joined.png b/docs/_static/images/traits/formats/counter_format_joined.png
new file mode 100644
index 000000000..7380471e1
Binary files /dev/null and b/docs/_static/images/traits/formats/counter_format_joined.png differ
diff --git a/docs/_static/images/traits/formats/create_photo_joined.png b/docs/_static/images/traits/formats/create_photo_joined.png
new file mode 100644
index 000000000..40bcec637
Binary files /dev/null and b/docs/_static/images/traits/formats/create_photo_joined.png differ
diff --git a/docs/_static/images/traits/formats/date_format_joined.png b/docs/_static/images/traits/formats/date_format_joined.png
new file mode 100644
index 000000000..931dca140
Binary files /dev/null and b/docs/_static/images/traits/formats/date_format_joined.png differ
diff --git a/docs/_static/images/traits/formats/disease_format_joined.png b/docs/_static/images/traits/formats/disease_format_joined.png
new file mode 100644
index 000000000..c265ac9bf
Binary files /dev/null and b/docs/_static/images/traits/formats/disease_format_joined.png differ
diff --git a/docs/_static/images/traits/formats/gnss_format_joined.png b/docs/_static/images/traits/formats/gnss_format_joined.png
new file mode 100644
index 000000000..3f8792331
Binary files /dev/null and b/docs/_static/images/traits/formats/gnss_format_joined.png differ
diff --git a/docs/_static/images/traits/formats/location_format_joined.png b/docs/_static/images/traits/formats/location_format_joined.png
new file mode 100644
index 000000000..dd982011f
Binary files /dev/null and b/docs/_static/images/traits/formats/location_format_joined.png differ
diff --git a/docs/_static/images/traits/formats/multicat_format_joined.png b/docs/_static/images/traits/formats/multicat_format_joined.png
new file mode 100644
index 000000000..5021c5eab
Binary files /dev/null and b/docs/_static/images/traits/formats/multicat_format_joined.png differ
diff --git a/docs/_static/images/traits/formats/numeric_format_joined.png b/docs/_static/images/traits/formats/numeric_format_joined.png
new file mode 100644
index 000000000..75155cf44
Binary files /dev/null and b/docs/_static/images/traits/formats/numeric_format_joined.png differ
diff --git a/docs/_static/images/traits/formats/percent_format_joined.png b/docs/_static/images/traits/formats/percent_format_joined.png
new file mode 100644
index 000000000..8d15e3ef9
Binary files /dev/null and b/docs/_static/images/traits/formats/percent_format_joined.png differ
diff --git a/docs/_static/images/traits/formats/text_format_joined.png b/docs/_static/images/traits/formats/text_format_joined.png
new file mode 100644
index 000000000..8340d638e
Binary files /dev/null and b/docs/_static/images/traits/formats/text_format_joined.png differ
diff --git a/docs/_static/images/traits/formats/zebra_format_joined.png b/docs/_static/images/traits/formats/zebra_format_joined.png
new file mode 100644
index 000000000..bc3ee5166
Binary files /dev/null and b/docs/_static/images/traits/formats/zebra_format_joined.png differ
diff --git a/docs/_static/images/traits/single_trait_menu_framed.png b/docs/_static/images/traits/single_trait_menu_framed.png
index bba22a6d0..7b71598b6 100644
Binary files a/docs/_static/images/traits/single_trait_menu_framed.png and b/docs/_static/images/traits/single_trait_menu_framed.png differ
diff --git a/docs/_static/images/traits/traits_create_joined.png b/docs/_static/images/traits/traits_create_joined.png
index f72c5bb28..bb26c6a30 100644
Binary files a/docs/_static/images/traits/traits_create_joined.png and b/docs/_static/images/traits/traits_create_joined.png differ
diff --git a/docs/_static/images/traits/traits_framed.png b/docs/_static/images/traits/traits_framed.png
index 38bdbb529..1d45fe467 100644
Binary files a/docs/_static/images/traits/traits_framed.png and b/docs/_static/images/traits/traits_framed.png differ
diff --git a/docs/_static/images/traits/traits_menu_framed.png b/docs/_static/images/traits/traits_menu_framed.png
index c4065c0e3..fcaa2b92c 100644
Binary files a/docs/_static/images/traits/traits_menu_framed.png and b/docs/_static/images/traits/traits_menu_framed.png differ
diff --git a/docs/_static/styles.css b/docs/_static/styles.css
new file mode 100644
index 000000000..1732f5326
--- /dev/null
+++ b/docs/_static/styles.css
@@ -0,0 +1,648 @@
+@font-face {
+ font-weight: 400;
+ font-style: normal;
+ font-family: "Stem Text";
+ src: url("//cdn.evilmartians.com/front/fonts/subset-StemText-Regular.woff") format("woff");
+ }
+ @font-face {
+ font-weight: 700;
+ font-style: normal;
+ font-family: "Stem Text";
+ src: url("//cdn.evilmartians.com/front/fonts/subset-StemText-Bold.woff") format("woff");
+ }
+
+ @font-face {
+ font-family: "Fira Code";
+ src: url("./fonts/FiraCode-Regular.woff") format("woff");
+ }
+
+ :root {
+ --theme-color: #ff5e5e;
+ --theme-color-light: #fd7373;
+ --theme-color-dark: #f64242;
+ --theme-color-secondary: #ff5e5e;
+ --theme-color-secondary-dark: #f64242;
+ --theme-color-secondary-light: #fd7373;
+
+ --background-color: #fff;
+ --background-light: #fff;
+
+ --text-color-base: #363636;
+ --text-color-secondary: #646473;
+ --text-color-active: #111;
+ --text-color-header: #2c3e50;
+
+ --border-color: #ccccccbb;
+
+ --menu-weight: 400;
+
+ --shadow-color: rgb(165, 165, 165);
+
+ --sidebar-nav-pagelink-background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='11.2' viewBox='0 0 7 11.2'%3E%3Cpath d='M1.5 1.5l4 4.1 -4 4.1' stroke-width='1.5' stroke='rgb%2812, 13, 14%29' fill='none' stroke-linecap='square' stroke-linejoin='miter' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");
+ --sidebar-nav-pagelink-background-image-active: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11.2' height='7' viewBox='0 0 11.2 7'%3E%3Cpath d='M1.5 1.5l4.1 4 4.1-4' stroke-width='1.5' stroke='rgb%28246, 66, 66%29' fill='none' stroke-linecap='square' stroke-linejoin='miter' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");
+ }
+
+ .is-dark {
+ display: none;
+ }
+
+ @media (prefers-color-scheme: dark) {
+ :root {
+ --theme-color-secondary: #fcf9f9;
+ --theme-color-secondary-dark: #f7f5f5;
+ --theme-color-secondary-light: #f64242;
+
+ --background-color: #000;
+ --background-light: #2a2a2a;
+
+ --text-color-base: #f3f2f2;
+ --text-color-secondary: #fac8c8;
+ --text-color-active: #f64242;
+ --text-color-header: #f64242;
+
+ --border-color: #f64242bb;
+
+ --menu-weight: 400;
+
+ --shadow-color: var(--background-color);
+ }
+
+ .is-light {
+ display: none !important;
+ }
+
+ .is-dark {
+ display: initial;
+ }
+ }
+
+ ::selection {
+ background: var(--theme-color-light);
+ }
+
+ body {
+ font-size: 100%;
+ font: 18px/30px "Stem Text", "Arial", sans-serif;
+ color: var(--text-color-base);
+ background-color: var(--background-color);
+ }
+
+ * {
+ text-decoration: none !important;
+ }
+
+ a {
+ transition: all 0.3s linear;
+ border-bottom: none !important;
+ }
+
+ .github-corner svg {
+ fill: var(--theme-color);
+ }
+
+ .chart-container {
+ padding: 1em 0;
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+ }
+
+ .captioned-figure {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ }
+
+ .home-logo {
+ margin-left: 20px;
+ }
+
+ aside.sidebar {
+ border: none;
+ background-color: var(--background-light);
+ color: var(--text-color-base);
+ width: 20%;
+ border-right: 1px solid var(--border-color);
+ }
+
+ body.close .sidebar {
+ transform: translateX(-100%);
+ }
+
+ .sidebar-version-select {
+ font-size: 1rem;
+ }
+
+ .sidebar ul li a {
+ color: var(--text-color-secondary);
+ font-size: 1rem;
+ font-weight: var(--menu-weight);
+ }
+
+ .sidebar ul li.active>a {
+ border-width: 0.1rem;
+ }
+
+ .sidebar ul li a:hover {
+ text-decoration: none;
+ color: var(--theme-color-dark);
+ }
+
+ .sidebar .sidebar-nav ul li.active>a {
+ color: var(--text-color-active);
+ border-right: 0.2rem solid var(--theme-color-secondary-light);
+ }
+
+
+ .sidebar > h1 {
+ font-size: 2rem;
+ }
+
+ .sidebar-logo {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ padding: 0 15px;
+ justify-content: center
+ }
+
+ .sidebar-logo-title {
+ margin-left: 10px;
+ }
+
+ /* search plugin related */
+
+ .sidebar {
+ display: flex;
+ flex-direction: column;
+ }
+
+ .sidebar > h1 {
+ order: 1;
+ margin-top: 1.5rem;
+ }
+
+ .sidebar .search {
+ order: 2;
+ margin: 1.5rem 0 0 0;
+ border: none;
+ border-top: 1px solid var(--border-color);
+ border-bottom: 1px solid var(--border-color);
+ margin-top: 20px;
+ margin-bottom: 20px;
+ padding: 6px;
+ }
+
+ .sidebar .sidebar-nav {
+ order: 3;
+ }
+
+ .sidebar .search .input-wrap {
+ border: none;
+ position: relative;
+ }
+
+
+ .sidebar .search .input-wrap input {
+ background: var(--background-color-light);
+ color: var(--text-color-base);
+ }
+
+ .sidebar .search .clear-button.show {
+ display: block;
+ position: absolute;
+ right: 4px;
+ top: 8px;
+ }
+
+ body .sidebar-toggle {
+ background: none;
+ bottom: 1rem;
+ left: 1rem;
+ cursor: pointer;
+ width: 1.5rem;
+ height: 1.5rem;
+ padding: 0;
+ }
+
+ body .sidebar-toggle span {
+ transition: all 0.3s linear;
+ background-color: var(--text-color-active);
+ height: 0.25rem;
+ width: 1.5rem;
+ position: absolute;
+ left: 0;
+ margin: 0;
+ transform-origin: 0;
+ }
+
+ body.close .sidebar-toggle {
+ width: 1.5rem;
+ height: 1.5rem;
+ }
+
+ body.close .sidebar-toggle span {
+ transform-origin: center;
+ background-color: var(--theme-color-secondary);
+ }
+
+ body .sidebar-toggle span:nth-child(1) { top:0; }
+ body .sidebar-toggle span:nth-child(2) { top:0.65rem; }
+ body .sidebar-toggle span:nth-child(3) { top:1.25rem; }
+
+ .sidebar-toggle .sidebar-toggle-button:hover { opacity: 1; }
+
+ .sidebar-toggle:hover span:nth-child(1) { transform: rotate(45deg); width: 1.75rem; }
+ .sidebar-toggle:hover span:nth-child(2) { opacity: 0; }
+ .sidebar-toggle:hover span:nth-child(3) { transform: rotate(-45deg); width: 1.75rem; }
+
+ .close .sidebar-toggle:hover span:nth-child(1) { transform:rotate(0); width:1.5rem; top:0.65rem; }
+ .close .sidebar-toggle:hover span:nth-child(2) { opacity: 1; transform:rotate(90deg); }
+ .close .sidebar-toggle:hover span:nth-child(3) { transform:rotate(0); width:1.5rem; top:0.65rem; }
+
+ th {
+ text-align: left;
+ }
+
+ .markdown-section blockquote {
+ margin: 1em 0;
+ }
+
+ .markdown-section em,
+ .markdown-section blockquote {
+ color: var(--text-color-tertiary);
+ }
+
+ .anchor {
+ position: relative;
+ }
+
+ .anchor span {
+ color: var(--text-color-header);
+ }
+
+ section.cover .cover-main {
+ margin: 20vh 20vw;
+ }
+
+ .app-name-link {
+ white-space: nowrap;
+ }
+
+ .app-sub-sidebar li:before {
+ display: none;
+ }
+
+ .markdown-section p {
+ margin-top: 0;
+ margin-bottom: 0;
+ }
+
+ .markdown-section ul {
+ margin-top: 0;
+ }
+
+ .markdown-section li {
+ margin-bottom: 1rem;
+ }
+
+ .markdown-section li:first-child {
+ margin-top: 1rem;
+ }
+
+ .markdown-section li pre {
+ padding: 1rem;
+ }
+
+ .markdown-section p + p {
+ margin-top: 1rem;
+ }
+
+ .markdown-section code, .markdown-section pre {
+ background-color: var(--background-light);
+ color: var(--text-color-base);
+ }
+
+ .markdown-section pre > code {
+ background-color: var(--background-light);
+ color: var(--text-color-base);
+ font-size: 1em;
+ line-height: 1.5;
+ }
+
+ .markdown-section code {
+ display: inline-block;
+ font-family: 'Fira Code', monospace;
+ }
+
+ .markdown-section pre {
+ padding: 2rem;
+ }
+
+ .markdown-section pre > code {
+ padding: 0;
+ }
+
+ .markdown-section hr {
+ border-bottom: 1px solid var(--text-color-base);
+ }
+
+
+ .markdown-section {
+ max-width: 75rem;
+ padding: 1rem 3rem;
+ }
+
+ .markdown-section ol, .markdown-section p, .markdown-section ul {
+ line-height: inherit;
+ }
+
+ .markdown-section code {
+ color: inherit;
+ border-radius: 0;
+ font-size: 0.9em;
+ padding: 0px 10px;
+ /* color: #111; */
+ }
+
+ .markdown-section table {
+ display: table;
+ }
+
+ .markdown-section table tr {
+ border-width: 0.2rem 0;
+ border-style: solid;
+ border-color: var(--border-color);
+ }
+
+ .markdown-section table tr:nth-child(2n) {
+ background-color: transparent;
+ }
+
+ .markdown-section table td,
+ .markdown-section table th {
+ border: none;
+ padding: 1.5rem 0.5rem;
+ text-align: left;
+ }
+
+ .markdown-section table td p {
+ margin: 0;
+ }
+
+ .markdown-section a {
+ text-decoration: none;
+ border-bottom: 0.1rem solid var(--theme-color-light);
+ transition: all 0.3s ease;
+ }
+
+ .markdown-section a:hover {
+ border-color: var(--theme-color);
+ color: var(--theme-color-dark);
+ }
+
+ .markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section strong {
+ color: var(--text-color-header);
+ }
+
+
+ /* Badges */
+ .markdown-section > p:first-child > a {
+ border: none;
+ }
+
+ .docsify-copy-code-button {
+ background: var(--theme-color);
+ }
+
+ .sidebar::-webkit-scrollbar {
+ width:0;
+ }
+
+ .github-edit-btn {
+ z-index: 100;
+ position:fixed;
+ width:60px;
+ height:60px;
+ bottom:40px;
+ right:40px;
+ background-color:var(--theme-color);
+ border-radius:50px;
+ text-align:center;
+ box-shadow: 1px 1px 1px var(--shadow-color);
+ }
+
+ .github-edit-btn svg {
+ margin-top:18px;
+ }
+
+ .docsify-pagination-container {
+ justify-content: center !important;
+ }
+
+ .pagination-item {
+ max-width: 40%;
+ }
+
+ .pagination-item--next {
+ margin-left: 1em !important;
+ }
+
+ .pagination-item--previous {
+ margin-right: 1em;
+ }
+
+ @media (max-width: 768px) {
+
+ .home-logo {
+ display: none;
+ }
+
+ aside.sidebar {
+ width: 300px;
+ }
+
+ body.close .sidebar {
+ transform: translateX(300px);
+ }
+
+ body .sidebar-toggle span {
+ background-color: var(--theme-color-secondary);
+ }
+
+
+ body.close .sidebar-toggle span {
+ background-color: var(--text-color-active);
+ }
+
+ .sidebar-toggle:hover span:nth-child(1), .sidebar-toggle:hover span:nth-child(2), .sidebar-toggle:hover span:nth-child(3) {
+ transform: none;
+ width: 1.5rem;
+ opacity: 1;
+ }
+
+ .close .sidebar-toggle span:nth-child(1), .close .sidebar-toggle:hover span:nth-child(1) {
+ transform: rotate(45deg);
+ width: 1.75rem;
+ top: 0.65rem;
+ }
+
+ .close .sidebar-toggle span:nth-child(2), .close .sidebar-toggle:hover span:nth-child(2) {
+ opacity: 0;
+ }
+
+ .close .sidebar-toggle span:nth-child(3), .close .sidebar-toggle:hover span:nth-child(3) {
+ transform: rotate(-45deg);
+ width: 1.75rem;
+ top: 0.65rem;
+ }
+
+ body.close .sidebar-toggle {
+ background: none;
+ }
+
+ .markdown-section pre, .markdown-section pre > code {
+ font-size: 0.8em;
+ }
+
+ .github-edit-btn {
+ display: none;
+ }
+ }
+
+ @media (min-width: 1200px) {
+ body {
+ font-size: 112.5%;
+ }
+ }
+
+ @media (min-width: 1400px) {
+ body {
+ font-size: 125%;
+ }
+ }
+
+ .pro-badge {
+ height: 1em;
+ vertical-align: middle;
+ }
+
+
+ .mermaid {
+ display: flex;
+ justify-content: center;
+ margin-bottom: 16px;
+ }
+
+ .mermaid > svg .messageText {
+ stroke: none !important;
+ }
+
+ .mermaid > svg .messageText {
+ font-family: 'Fira Code', monospace !important;
+ }
+
+ @media (prefers-color-scheme: dark) {
+ .mermaid > svg .sequenceNumber {
+ fill: #000 !important;
+ }
+ }
+
+ .mermaid > svg .actor {
+ font-family: 'Stem Text', Arial !important;
+ font-size: 18px !important;
+ }
+
+ .mermaid > svg .actor>tspan{
+ fill: #fff !important;
+ }
+
+
+ .mermaid > svg .noteText {
+ font-family: 'Stem Text', Arial !important;
+ font-size: 12px !important;
+ }
+
+ h1:has(+.pro-badge-header):after,
+ h2:has(+.pro-badge-header):after,
+ h3:has(+.pro-badge-header):after,
+ h4:has(+.pro-badge-header):after {
+ content: "";
+ display: inline-block;
+ vertical-align: bottom;
+ width: 64px;
+ height: 27px;
+ background-repeat: no-repeat;
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='27' viewBox='0 0 64 27'%3E%3Csvg fill='none' fill-rule='evenodd' x='5'%3E%3Crect width='53' height='26' x='.5' y='.5' stroke='%23ff5e5e' rx='13'/%3E%3Cpath fill='%23ff5e5e' fill-rule='nonzero' d='M15.15 15.243V19h-2.198V8.336h4.16c.801 0 1.505.146 2.113.44.608.292 1.076.709 1.403 1.248.327.54.49 1.154.49 1.842 0 1.045-.357 1.87-1.072 2.472-.716.603-1.706.905-2.97.905h-1.927zm0-1.78h1.962c.581 0 1.024-.137 1.33-.41.305-.274.457-.664.457-1.172 0-.523-.153-.945-.461-1.267-.308-.322-.732-.489-1.274-.498h-2.015v3.347zm11.425 1.633h-1.75V19h-2.198V8.336h3.963c1.26 0 2.231.28 2.915.842.683.562 1.025 1.355 1.025 2.38 0 .728-.157 1.335-.472 1.82-.315.487-.792.873-1.432 1.162l2.307 4.357V19h-2.358l-2-3.904zm-1.75-1.78h1.772c.552 0 .98-.14 1.282-.42.303-.281.454-.668.454-1.162 0-.503-.143-.898-.428-1.186-.286-.288-.724-.432-1.315-.432h-1.765v3.2zm16.135.594c0 1.05-.186 1.97-.557 2.76-.37.792-.902 1.402-1.593 1.832-.69.43-1.483.644-2.376.644-.884 0-1.673-.212-2.366-.637-.693-.425-1.23-1.031-1.611-1.82-.381-.788-.574-1.695-.58-2.72v-.528c0-1.05.19-1.974.569-2.772.378-.799.913-1.411 1.604-1.839.69-.427 1.48-.64 2.369-.64.889 0 1.678.213 2.37.64.69.428 1.225 1.04 1.603 1.839.379.798.568 1.72.568 2.765v.476zm-2.227-.484c0-1.118-.2-1.968-.6-2.549-.4-.58-.972-.871-1.714-.871-.737 0-1.306.287-1.707.86-.4.574-.603 1.415-.608 2.524v.52c0 1.089.2 1.933.601 2.534.4.6.977.9 1.729.9.737 0 1.303-.289 1.699-.867.395-.579.596-1.422.6-2.53v-.52z'/%3E%3C/svg%3E%3C/svg%3E%0A");
+ }
+
+ h1:has(+.pro-badge-header):after {
+ height: 30px;
+ }
+
+ h4:has(+.pro-badge-header):after {
+ width: 64px;
+ height: 27px;
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='23' viewBox='0 0 64 27'%3E%3Csvg fill='none' fill-rule='evenodd' x='5'%3E%3Crect width='53' height='26' x='.5' y='.5' stroke='%23ff5e5e' rx='13'/%3E%3Cpath fill='%23ff5e5e' fill-rule='nonzero' d='M15.15 15.243V19h-2.198V8.336h4.16c.801 0 1.505.146 2.113.44.608.292 1.076.709 1.403 1.248.327.54.49 1.154.49 1.842 0 1.045-.357 1.87-1.072 2.472-.716.603-1.706.905-2.97.905h-1.927zm0-1.78h1.962c.581 0 1.024-.137 1.33-.41.305-.274.457-.664.457-1.172 0-.523-.153-.945-.461-1.267-.308-.322-.732-.489-1.274-.498h-2.015v3.347zm11.425 1.633h-1.75V19h-2.198V8.336h3.963c1.26 0 2.231.28 2.915.842.683.562 1.025 1.355 1.025 2.38 0 .728-.157 1.335-.472 1.82-.315.487-.792.873-1.432 1.162l2.307 4.357V19h-2.358l-2-3.904zm-1.75-1.78h1.772c.552 0 .98-.14 1.282-.42.303-.281.454-.668.454-1.162 0-.503-.143-.898-.428-1.186-.286-.288-.724-.432-1.315-.432h-1.765v3.2zm16.135.594c0 1.05-.186 1.97-.557 2.76-.37.792-.902 1.402-1.593 1.832-.69.43-1.483.644-2.376.644-.884 0-1.673-.212-2.366-.637-.693-.425-1.23-1.031-1.611-1.82-.381-.788-.574-1.695-.58-2.72v-.528c0-1.05.19-1.974.569-2.772.378-.799.913-1.411 1.604-1.839.69-.427 1.48-.64 2.369-.64.889 0 1.678.213 2.37.64.69.428 1.225 1.04 1.603 1.839.379.798.568 1.72.568 2.765v.476zm-2.227-.484c0-1.118-.2-1.968-.6-2.549-.4-.58-.972-.871-1.714-.871-.737 0-1.306.287-1.707.86-.4.574-.603 1.415-.608 2.524v.52c0 1.089.2 1.933.601 2.534.4.6.977.9 1.729.9.737 0 1.303-.289 1.699-.867.395-.579.596-1.422.6-2.53v-.52z'/%3E%3C/svg%3E%3C/svg%3E%0A");
+ }
+
+ /* Collapsible styling */
+ .sidebar .folder>p {
+ cursor: pointer;
+ padding-left: 14px;
+ background-image: var(--sidebar-nav-pagelink-background-image);
+ background-position: left center;
+ background-repeat: no-repeat;
+ user-select: none;
+ }
+
+ .sidebar .folder.open>p {
+ background-image: var(--sidebar-nav-pagelink-background-image-active);
+ background-position: left center;
+ }
+
+ .sidebar li>p {
+ font-weight: normal;
+ }
+
+ .sidebar li.open>p {
+ /* color: var(--theme-color-dark); */
+ font-weight: 600;
+ }
+
+ @keyframes full-slide-right {
+ from { transform: translateX(0); }
+ to { transform: translateX(100%); }
+ }
+
+ @keyframes full-slide-left {
+ from { transform: translateX(100%); }
+ }
+
+ @keyframes fade-in {
+ from { opacity: 0; }
+ }
+
+ @keyframes fade-out {
+ to { opacity: 0; }
+ }
+
+ ::view-transition-old(section) {
+ animation: 700ms ease-in 0ms both full-slide-right, 500ms ease-out 0ms both fade-out;
+ }
+
+ ::view-transition-new(section) {
+ animation: 500ms ease-in 0ms both fade-in;
+ }
+
+ section.content {
+ view-transition-name: section;
+ }
+
+ @media (prefers-reduced-motion) {
+ ::view-transition-group(*),
+ ::view-transition-old(*),
+ ::view-transition-new(*) {
+ animation: none !important;
+ }
+ }
\ No newline at end of file
diff --git a/docs/barcodes.md b/docs/barcodes.md
index 5ae9b22cd..1763b0b04 100644
--- a/docs/barcodes.md
+++ b/docs/barcodes.md
@@ -21,7 +21,7 @@ accurately capture height without having to hold both the height stick
and the device.
-
+ Plant height measurement via barcoded height
stick
diff --git a/docs/brapi.md b/docs/brapi.md
index 1ef00c7e1..da06956af 100644
--- a/docs/brapi.md
+++ b/docs/brapi.md
@@ -6,7 +6,7 @@ Overview
BrAPI is an application programming interface for plant breeding. It
allows Field Book to directly communicate with compatible databases to
-import fields and traits and export collected data. This eliminates the
+import fields and traits, and export collected data. This eliminates the
need to manually transfer files and enables Field Book to offer more
sophisticated features including field and trait metadata and data
syncing.
@@ -28,31 +28,24 @@ import fields and traits and export data.
Import fields
-------------
+To import a field using BrAPI, press the floating button in the bottom righthand corner of the Fields activity. Then select BrAPI as the import source (The BrAPI import option will use the server display name set in BrAPI settings).
+
+Field Book will then display a list of possible fields (known as `studies` in the BrAPI standard) from the BrAPI server. The load time will depend on the status of the BrAPI cache. The fields list will take some time to retrieve when first accessed (or when the cache is refreshed), but will load much faster on subsequent imports.
+
The BrAPI field import process
-To import a field using BrAPI, press
- in the top
-toolbar, select BrAPI as the source, and press the **Load Fields**
-button
+Select one or more fields from the list to import by checking the checkbox on the right of the field item. Available fields can be filtered by typing a search string into the search bar. They can also be filtered by program, season, trial or crop by pressing the icon in the top toolbar.
-Field Book will import a list of possible fields (known as
-`studies` in the BrAPI standard) from the BrAPI Base URL set
-in the
- [Brapi settings](settings-brapi.md).
+The count of selected fields is tracked and displayed over top of the icon in the toolbar. Press this icon to clear your selections. If you do not find the field you are looking for but know that it is available on the server then use the icon in the toolbar to reset the cache.
-Available fields can be filtered by program and trial using the menu
-options in the top toolbar. The list can be filtered by
-**Observation Level** using the dropdown below the server URL.
+Once you are satisfied with your selections press the import button on the bottom of the screen.
-If the returned list of fields contains more than a single page, the
-**Next** button will advance to the next page. Once a field has been
-selected, the field structure can be previewed by pressing the **Preview
-Field** button
+The final step shows additional details for each selected field, including the observation unit count, trait count, location, and season. The tabs at the top can be used to set/change the observation level, ids, and sort order for the selected fields.
-Previewed fields are imported by pressing the **Save** button.
+Press the Save button at the bottom of the screen once satisified with the selections. The fields (and any traits linked to them) will be saved for use in Field Book.
!> Any field can be exported locally, but only fields that have been imported via BrAPI are able to export data via BrAPI. And only if that data is also collected using BrAPI-imported traits.
@@ -60,24 +53,41 @@ Import traits
-------------
Depending on the BrAPI server, fields may have linked traits that are
-imported with the field. Additional traits can be imported via BrAPI by
-selecting import from the Traits menu, then selecting BrAPI.
+imported with the field. Additional traits can be imported via BrAPI in the Traits activity. First make sure BrAPI is enabled and configured in the [Brapi settings](settings-brapi.md)
+
+Then the BrAPI Display Name of the server you connected to will show up as the last format choice in the list when you press the press the floating button in the bottom right of the Traits screen.
-
+ The BrAPI trait import process
-Field Book will import a list of possible traits (known as
-`observationVariables` in the BrAPI standard) from the BrAPI
-Base URL set in the
- [Brapi settings](settings-brapi.md).
+When you select this option Field Book will then display a list of possible traits (known as `observationVariables` in the BrAPI standard) from the BrAPI server. This import process is much like the BrAPI field import process. The load time will depend on the status of the cache. The traits list will take some time to retrieve when first accessed (or when the cache is refreshed), but will load much faster on subsequent imports.
+
+Select one or more traits from the list to import by checking the checkbox on the right of the trait item. Available traits can be filtered by typing a search string into the search bar. They can also be filtered by trial, study or crop by pressing the icon in the top toolbar.
+
+The count of selected traits is tracked and displayed over top of the icon in the toolbar. Press this icon to clear your selections. If you do not find the trait you are looking for but know that it is available on the server then use the icon in the toolbar to reset the cache.
+
+When you are finished with your selections press the import button on the bottom of the screen.
+
+The final step provides an opportunity to modify trait details like the trait layout if the default layout is not desired. Press a trait item to open the trait parameters. Press back to access the different trait layout options. Select the desired layout, edit any additional parameters as desired, then press save
+
+
+
+ Changing a trait's layout from text to categorical
+
+
+Once you are satisified with the traits, press the Import button at the bottom of the screen to save them for use in Field Book.
-Traits are selected and then imported by pressing the **Save Traits**
-button. Traits can be imported individually or in groups.
+Sync
+----
-Field Book will report **Selected traits saved successfully**, and return
-to the traits screen with the imported traits selected.
+The BrAPI sync option is found on the field detail page of BrAPI fields. Sync connects to the server specified in [Brapi settings](settings-brapi.md), updating the field with new data that has been added from other sources since the last sync or import. This option will not work for fields imported from a file.
+
+
+
+ Downloading 25 observations from the BrAPI server using BrAPI sync
+
Export data
-----------
diff --git a/docs/collect.md b/docs/collect.md
index 88d53f1b3..bb231e140 100644
--- a/docs/collect.md
+++ b/docs/collect.md
@@ -6,16 +6,16 @@ Overview
Field Book aims to increase the rate at which data can be collected by
tailoring the input screen to fit the exact task. Only a single entry
-and trait are visible at a time during collection. This reduces the risk
-of error and allows trait-specific layouts to be used for data input.
+and trait are visible at a time during collection. This reduces the risk of error and allows trait-specific layouts to be used for data input.
-The small green arrows are used to navigate between traits. The large
-black arrows are used to navigate between entries. Data is entered in
-the bottom area of the screen using a layout determined by the current
-trait. Data is saved to an internal database as it is collected.
+The small green arrows are used to navigate between traits. A line of dots below the arrows represent the individual traits, and the progression through them for the current entry.
+
+The large black arrows are used to navigate between entries. The progress bar above them indicates progress through the entries.
+
+Data is entered in the bottom area of the screen using a layout determined by the current trait. Entered values turn from black to red once they have been saved to Field Book's internal database.
-
+ Data collection screen
@@ -29,22 +29,19 @@ to the back navigation arrow).
- **Search** opens a dialog to search for a specific entry.
-
-
- The collect screen search tool
-
+
+
+ The collect screen search tool
+
+
+The search dialog provides a flexible interface to search for specific entries. Populate the search menu by pressing the icon, and selecting from the list of attributes, traits, or other columns. Once a search column is added you can enter a search string on it's blank text entry line. Press the icon if you'd like to change the operator from "equals" to "contains", or numeric operators like ">" or "<". Press the icon to remove a column. Add as many search columns as you like, then press search. The search will return a table of matching results, press any line in the results table to jump to that entry.
-The search dialog provides a flexible interface for finding a specific
-entry within the current field. Select which imported data field to
-search by, what strategy to use to find a match, and enter a search
-string. Press Add to construct a complex search with an additional field
-and search string, or press OK to execute the search.
+- **Resources** opens the `resources` folder and can be used to load reference images. Long press the icon to jump directly to the most recently loaded file, rather than the file picker.
-- **Resources** opens the `resources` directory and can be used to load reference images.
- **Summary** opens a dialog that displays all info for the current entry.
-
+ The collect screen summary tool
@@ -56,18 +53,13 @@ toolbar opens a dialog to customize which data fields and traits are
shown. Selecting a trait from the summary screen navigates to that
trait.
-
-
- Customizing the summary display
-
-
**Lock** adds restrictions on data input to prevent accidental changes. Pressing the icon multiple times will cycle through three states:
- **Unlocked** is the default, unfrozen state that allows trait values to be entered, edited, or deleted.
- **Locked** freezes the collect input so no values can be entered, modified, or deleted.
- **Limited** freezes existing data but allows entry of new values.
More tools can be added to the toolbar in the
- [General Settings](settings-general.md). Default tools can be removed from the toolbar in [Appearance Settings](settings-appearance.md).
+ [Features Settings](settings-features.md). Default tools can be removed from the toolbar in [Appearance Settings](settings-appearance.md).
#### InfoBars
@@ -80,10 +72,12 @@ InfoBars display information about the current plot. InfoBar prefixes
can be pressed to adjust which data field is displayed.
-
- Selecting which data field is shown in the InfoBars
+
+ Customizing the infoBar section
+An infobar can show one of the attributes imported with the field, or the value of a trait. The number of infobars can also be changed by pressing "customize" in the bottom left of the dialog, this navigates the the "numnber of infobars" preference in the [Appearance Settings](settings-appearance.md).
+
#### Trait navigation
@@ -93,12 +87,12 @@ can be pressed to adjust which data field is displayed.
The small, green arrows are used to move between the different traits
that are currently active. Pressing the current trait will show a
-dropdown of all currently active traits.
+dialog of all currently active traits, select a different trait to jump to it.
-
+ Pressing the active trait to see the trait
-dropdown
+dialog
#### Entry navigation
diff --git a/docs/datagrid.md b/docs/datagrid.md
index a32eb029c..bf64da700 100644
--- a/docs/datagrid.md
+++ b/docs/datagrid.md
@@ -5,7 +5,7 @@ Overview
--------
DataGrid is accessed by pressing the
- icon in
+ icon in
the toolbar. DataGrid displays a matrix of entries and traits in the
active field. This view allows rapid identification of missing values.
Pressing an individual cell moves the collect screen directly to the
@@ -22,9 +22,9 @@ Settings
The column used for the row header can be changed by pressing the
-icon in the toolbar.
+icon in the toolbar, then selecting a different attribute to use.
-
+ Changing the row header from plot_id to plot
\ No newline at end of file
diff --git a/docs/export.md b/docs/export.md
index e6ec381db..fb5cd3e54 100644
--- a/docs/export.md
+++ b/docs/export.md
@@ -8,7 +8,7 @@ Collected data is exported to `.csv` files. The Export dialog allows the
user to customize how collected data is exported.
-
+ Export dialog details
@@ -51,14 +51,14 @@ date and the name of the field.
After clicking save, you will see Field Book app citation information
and an option to share the exported file with other apps or email. The
-exported file is stored in the `field_export` directory.
+exported file is stored in the `field_export` folder.
#### Other Customizations
**Bundle media data** produces a zipped file that contains the exported
data along with images and audio files that have also been collected.
-**Overwrite previous export** moves old files to `archive` directory.
+**Overwrite previous export** moves old files to `archive` folder.
The default export location can be modified in
- [General Settings](settings-general.md).
+ [System Settings](settings-system.md).
diff --git a/docs/faq.md b/docs/faq.md
new file mode 100644
index 000000000..7f7c47e81
--- /dev/null
+++ b/docs/faq.md
@@ -0,0 +1,43 @@
+Frequently Asked Questions
+==========================
+
+How do I cite Field Book?
+-------------------------
+
+If you use Field Book for research, please cite the following journal article:
+
+[Rife, T.W., and J.A. Poland. 2014. Field Book: An Open-Source Application for Field Data Collection on Android. Crop Sci. 54(4): 1624–1627.](http://dx.doi.org/10.2135/cropsci2013.08.0579)
+
+How do I prepare files for Field Book?
+--------------------------------------
+
+First, consider if it's possible to import data without prepping your own custom files. Data imports that use the Breeding API (BrAPI) or files generated by a breeding database can eliminate extra work, reduce the risk of error, and bundle in useful contextual data.
+
+If it is necessary to prepare your own custom files:
+
+- Custom fields can be loaded by preparing a spreadsheet. The required information is detailed in the [Fields](fields.md) section of the docs. The app comes with a handful of sample fields that are loaded from files, so you can also look at `field_sample.csv` in the `/field_import` folder for guidance.
+
+- Custom traits are best created directly in the app, but can be saved to and loaded from a `.trt` file. The `.trt` extension is not a special format, it is just a `.csv` file by a different name, so can be opened and edited if needed. The app comes with a handful of sample traits that are loaded from a file, so you can also look at `trait_sample.trt` in the `/trait` folder for guidance.
+
+What filetypes are compatible with Field Book?
+----------------------------------------------
+
+Custom fields can be loaded by preparing a spreadsheet in `.csv`, `.xls`, or `.xlsx` format. For multi-sheet spreadsheets, Field Book only accesses the first sheet.
+
+What are the recommended devices for Field Book?
+------------------------------------------------
+
+Field Book is designed to work on any modern Android device (~10 years old or less). When making a choice between Android devices, consider where and how you will be using the app.
+
+We tend to recommend smartphones as the best choice if you will be carrying the device (lightweight), taking photos (higher image quality), or connecting to the internet in the field (SIM slot for mobile data). Among smartphones we recommend [Google Pixel devices](https://store.google.com/category/phones) for the simplicity of their user interface (stock android), and higher than average image quality and GPS accuracy. We use Pixels when developing and testing new versions of Field Book.
+
+In cases when screen visibility in full sunlight is a concern we recommend eink devices like the [BOOX Palma](https://shop.boox.com/products/palma).
+
+How do I request a new feature?
+-------------------------------
+
+Field Book issues, including new feature requests, are tracked [here on Github](https://github.com/PhenoApps/Field-Book/issues).
+
+Search the list of existing issues before making a new request. This is important to prevent duplication. If a request already exists, you add your input by making a comment. This also helps increase the issue's visiblity.
+
+Press the "New Issue" button on the upper right side of the issues page if you confirm that the feature you have in mind hasn't been requested already. Then select "New Feature", and fill out the required fields. Be sure to include lots of detail describing what you have in mind, what problem it solves, and what alternative solutions exist.
\ No newline at end of file
diff --git a/docs/fields.md b/docs/fields.md
index 3813e9802..43b9ea458 100644
--- a/docs/fields.md
+++ b/docs/fields.md
@@ -8,22 +8,19 @@ Experiments are represented in Field Book as `fields`. Fields are either
imported from a file, from a BrAPI-enabled database, or created from
scratch.
-Each field has a unique name, an import date, and a set of `entries`
-which represent the experimental units on which data will be collected
-(e.g., plots, plants). Once data is collected and exported for a given
-field it will display the dates of last edit and export.
+Each field is displayed in the list with an icon that matches its import source, its name, and its number of `entries` which represent the experimental units on which data will be collected (e.g., plots, plants). The icon can be pressed to set the field as the active field. Any other part of the field item can be pressed to open the field detail view.
- A sample field with a name, import/edit/export dates, and number of
-entries
+ A sample field with a name, number of
+entries, and csv import icon
When importing from a file, each row in the file reprents an `entry`.
Each entry within a field must have the following:
-- A `unique identifier`, which is used internally by Field Book to associate data with the specific entry. It must be unique across all of your fields.
-- A `primary identifier`, and a `secondary identifier`. These set the order of advancement through the field's entries, and can be whatever makes the most sense for your experiment. Most often they are numbers from the experimental design (e.g., row/plot, row/column, range/plot).
+- A `unique identifier`, which is used internally by Field Book to associate data with the specific entry. It must be unique across all of your fields. The sample field import file shown below contains a unique identifier called **plot_id** (highlighted in red).
+- A `primary identifier`, and a `secondary identifier`. These remain visible while advancing through the field's entries, and can be whatever makes the most sense for your experiment. The optional Quick GoTo setting makes them editable, so it can be advantageous to make one of them the plot number if you plan to use it. That way a plot number edit can be used to jump to a specific plot. Common choices are row/plot, range/plot, rep/plot, etc. The sample field import file contains primary and secondary unique identifiers called **row** and **plot** (highlighted in blue).
@@ -35,7 +32,7 @@ optional, but can be included and viewed in the InfoBars or in the
summary dialog on the collect screen.
-
+ The Fields screen layout with sample fields loaded
@@ -46,24 +43,25 @@ demonstrates the import format for entry location data (an additional
`geo_coordinates` column). Imported entry coordinates can then be
used with the [Geonav](geonav.md) feature.
-Importing a new field
----------------------
+Adding a field
+--------------
-To import a new field into Field Book press the icon in the
-upper right-hand corner of the toolbar in the Fields section. Then, in
+To add a new field in Field Book press the floating button in the bottom righthand corner of the Fields section. Then, in
the resulting dialog, select whether to import from a local file, from
-cloud storage (Dropbox, Google Drive, etc.), or via a [Brapi](brapi.md) connection.
+cloud storage (Dropbox, Google Drive, etc.), create a new field from scratch, or import via a [Brapi](brapi.md) connection (if BrAPI is enabled).
A default import source can be set in
- [General Settings](settings-general.md) to skip this dialog.
+ [System Settings](settings-system.md) to skip this dialog.
- The Field import process
+ The Field import process from local storage
+#### Local storage
+
Selecting local will display a list of files in the `field_import`
-directory. Only `.csv`, `.xls`, or `.xlsx` files will appear in the import
+folder. Only `.csv`, `.xls`, or `.xlsx` files will appear in the import
dialog. Filenames and column headers should exclude the following
special characters:
@@ -83,45 +81,82 @@ required columns. Pressing **IMPORT** will finish importing the field.
#### Cloud storage
If you choose to import from cloud storage, Field Book will open the
-device file manager allowing navigation to the the file for import.
+device file manager.
-
- Navigating to a google drive file for cloud
-import
+
+ Cloud import file manager view
-Creating a field
-----------------
+Using the file manager you can select a file anywhere on the device, including from cloud utilities like Google Drive (Press the icon in the upper left of the file manager to access the "Open from" menu ).
+
+#### Create New
+
+If you choose to create a new field directly within Field Book you will be asked to fill out some basic information.
- The Field creation process
+ The field creation process
-To create a new field directly within Field Book press the icon
-on the toolbar. Set your field name and dimensions, choose which corner
-of the field will contain the first plot, and select zigzag or
-serpentine plot numbering. Unique IDs will be generated automatically.
+Set your field name and dimensions, choose which corner of the field will contain the first plot, and select zigzag or
+serpentine plot numbering. Unique IDs will be generated automatically. Confirm the planned settings are as expected, then press OK.
+
+#### BrAPI
+
+To import a field using BrAPI, first make sure BrAPI is enabled and configured in the [Brapi settings](settings-brapi.md)
+
+Then the BrAPI Display Name of the server you connected to will show up as one of the choices in the add field options. Check out the [BrAPI](brapi.md) section of the documentation for details of the field import process, as well as trait import, sync, and data export.
+
+!> Any field can be exported locally, but only fields that have been imported via BrAPI are able to export data via BrAPI. And only if that data is also collected using BrAPI-imported traits.
Managing fields
---------------
-To activate a field for data collection, select it from the list of
-fields.
+To set or switch your active field, press the import source icon on the left side of the field item.
+
+To use your location to set the active field, press the icon in the toolbar. This will set the nearest field as the active field (assuming your fields have location info).
+
+To reorder or sort the fields, press the icon in the toolbar. Then choose which field attribute should be used to sort the list.
+
+
+
+ Field list sort options
+
-Each row in the fields list displays the Date imported, Date edited,
-Date exported, and Number of entries.
+For batch operations, long press one or more field items. This opens the action menu. Use the action menu icons to select all, export selected fields, or delete selected fields.
-
- Field management sorting steps
+
+ Delete fields confirmation
-Pressing the icon to the right of the trial info opens a list of options:
+ selects all of the fields in the list.
+
+ initiates a data export for all selected fields.
+
+ Deletes all selected fields. A confirmation message will be shown first, to confirm the list of fields to be deleted.
+
+Field details
+-------------
+
+Pressing a field item in the fields list opens a detail view for the field.
+
+
+
+ Field detail view
+
+
+The **** in the toolbar can be used to delete the field. A confirmation message will be shown first, to confirm that deletion is not triggered accidentally.
+
+The first collapsible section includes metadata about the field (import source, entry count, attribute count), and buttons that can be used to rename the field or sort the entries.
+
+ - **Rename** is used to edit the name displayed for the field throughout the app.
+
+ - **Sort** provides a dialog to update the entry ordering. Populate the sort menu by pressing the icon, and selecting from the list of imported columns. Once columns have been added, change their relative priority by using the icon to drag and reorder them. Press the icon to toggle the sort between ascending and descending. Press the icon to remove a column.
+
+The following sections can be pressed to [Collect](collect.md) data for the field, [Export](export.md) the field's data, and (if the field was imported via BrAPI) [Brapi](brapi.md) the field's data by pulling in any new observations.
-- **Sort** provides a dialog to update the plot ordering. Populate the sort menu by pressing the icon, and selecting from the list of imported columns. Once columns have been added, change their relative priority by using the icon to drag and reorder them. Press the icon to toggle the sort between ascending and descending. Press the icon to remove a column.
+The final collapsible section summarizes that data that has been collected for the field so far. It shows an overall trait and observation count, and then for each trait a collapsible card with the observation count for the trait, the percentage of entries with observations of the trait, and, if applicable for the trait type, a chart showing the distribution of observations.
-- **Sync** connects to the server specified in [Brapi settings](settings-brapi.md), updating the trial with new data that has been added from other sources since the last sync or import. This option will not work for trials imported from a file.
-- **Delete** removes the trial and all associated data. A confirmation message will be shown first, to confirm that deletion is not triggered accidentally.
diff --git a/docs/geonav.md b/docs/geonav.md
index 197a0c0b6..758bd430d 100644
--- a/docs/geonav.md
+++ b/docs/geonav.md
@@ -10,7 +10,7 @@ requires field entries to have high-precision location data collected
via the [GNSS Trait](trait-gnss.md) or included in the field
import file. Imported coordinates must be in `Lat;Long` format in a
single `geo_coordinates` column. Refer to the
-`rtk_sample.csv` file in the `field_import` directory as an example.
+`rtk_sample.csv` file in the `field_import` folder as an example.
To use GeoNav, navigate to the
[Geonav Settings](settings-geonav.md) and enable GeoNav. Turn
diff --git a/docs/index.html b/docs/index.html
index fdbcfb9b2..617b2c913 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -16,6 +16,7 @@
repo: 'https://github.com/PhenoApps/Field-Book',
loadSidebar: true,
subMaxLevel: 2,
+ sidebarDisplayLevel: 1,
homepage: 'README.md',
search: {
namespace: 'default',
@@ -26,5 +27,6 @@
+