diff --git a/.Resources/.collabattributes b/.Resources/.collabattributes
index f6125fa..c8cb4a6 100644
--- a/.Resources/.collabattributes
+++ b/.Resources/.collabattributes
@@ -1,86 +1,86 @@
-* text=auto
-
-# Unity files
-*.meta -text merge=unityyamlmerge diff
-*.unity -text merge=unityyamlmerge diff
-*.asset -text merge=unityyamlmerge diff
-*.prefab -text merge=unityyamlmerge diff
-*.mat -text merge=unityyamlmerge diff
-*.anim -text merge=unityyamlmerge diff
-*.controller -text merge=unityyamlmerge diff
-*.overrideController -text merge=unityyamlmerge diff
-*.physicMaterial -text merge=unityyamlmerge diff
-*.physicsMaterial2D -text merge=unityyamlmerge diff
-*.playable -text merge=unityyamlmerge diff
-*.mask -text merge=unityyamlmerge diff
-*.brush -text merge=unityyamlmerge diff
-*.flare -text merge=unityyamlmerge diff
-*.fontsettings -text merge=unityyamlmerge diff
-*.guiskin -text merge=unityyamlmerge diff
-*.giparams -text merge=unityyamlmerge diff
-*.renderTexture -text merge=unityyamlmerge diff
-*.spriteatlas -text merge=unityyamlmerge diff
-*.terrainlayer -text merge=unityyamlmerge diff
-*.mixer -text merge=unityyamlmerge diff
-*.shadervariants -text merge=unityyamlmerge diff
-
-# Image formats
-*.psd filter=lfs diff=lfs merge=lfs -text
-*.jpg filter=lfs diff=lfs merge=lfs -text
-*.png filter=lfs diff=lfs merge=lfs -text
-*.gif filter=lfs diff=lfs merge=lfs -text
-*.bmp filter=lfs diff=lfs merge=lfs -text
-*.tga filter=lfs diff=lfs merge=lfs -text
-*.tiff filter=lfs diff=lfs merge=lfs -text
-*.tif filter=lfs diff=lfs merge=lfs -text
-*.iff filter=lfs diff=lfs merge=lfs -text
-*.pict filter=lfs diff=lfs merge=lfs -text
-*.dds filter=lfs diff=lfs merge=lfs -text
-*.xcf filter=lfs diff=lfs merge=lfs -text
-
-# Audio formats
-*.mp3 filter=lfs diff=lfs merge=lfs -text
-*.ogg filter=lfs diff=lfs merge=lfs -text
-*.wav filter=lfs diff=lfs merge=lfs -text
-*.aiff filter=lfs diff=lfs merge=lfs -text
-*.aif filter=lfs diff=lfs merge=lfs -text
-*.mod filter=lfs diff=lfs merge=lfs -text
-*.it filter=lfs diff=lfs merge=lfs -text
-*.s3m filter=lfs diff=lfs merge=lfs -text
-*.xm filter=lfs diff=lfs merge=lfs -text
-
-# Video formats
-*.mov filter=lfs diff=lfs merge=lfs -text
-*.avi filter=lfs diff=lfs merge=lfs -text
-*.asf filter=lfs diff=lfs merge=lfs -text
-*.mpg filter=lfs diff=lfs merge=lfs -text
-*.mpeg filter=lfs diff=lfs merge=lfs -text
-*.mp4 filter=lfs diff=lfs merge=lfs -text
-
-# 3D formats
-*.fbx filter=lfs diff=lfs merge=lfs -text
-*.obj filter=lfs diff=lfs merge=lfs -text
-*.max filter=lfs diff=lfs merge=lfs -text
-*.blend filter=lfs diff=lfs merge=lfs -text
-*.dae filter=lfs diff=lfs merge=lfs -text
-*.mb filter=lfs diff=lfs merge=lfs -text
-*.ma filter=lfs diff=lfs merge=lfs -text
-*.3ds filter=lfs diff=lfs merge=lfs -text
-*.dfx filter=lfs diff=lfs merge=lfs -text
-*.c4d filter=lfs diff=lfs merge=lfs -text
-*.lwo filter=lfs diff=lfs merge=lfs -text
-*.lwo2 filter=lfs diff=lfs merge=lfs -text
-*.abc filter=lfs diff=lfs merge=lfs -text
-*.3dm filter=lfs diff=lfs merge=lfs -text
-
-# Build
-*.dll filter=lfs diff=lfs merge=lfs -text
-*.pdb filter=lfs diff=lfs merge=lfs -text
-*.mdb filter=lfs diff=lfs merge=lfs -text
-
-# Packaging
-*.zip filter=lfs diff=lfs merge=lfs -text
-*.7z filter=lfs diff=lfs merge=lfs -text
-*.gz filter=lfs diff=lfs merge=lfs -text
-*.rar filter=lfs diff=lfs merge=lfs -text
-*.tar filter=lfs diff=lfs merge=lfs -text
+* text=auto
+
+# Unity files
+*.meta -text merge=unityyamlmerge diff
+*.unity -text merge=unityyamlmerge diff
+*.asset -text merge=unityyamlmerge diff
+*.prefab -text merge=unityyamlmerge diff
+*.mat -text merge=unityyamlmerge diff
+*.anim -text merge=unityyamlmerge diff
+*.controller -text merge=unityyamlmerge diff
+*.overrideController -text merge=unityyamlmerge diff
+*.physicMaterial -text merge=unityyamlmerge diff
+*.physicsMaterial2D -text merge=unityyamlmerge diff
+*.playable -text merge=unityyamlmerge diff
+*.mask -text merge=unityyamlmerge diff
+*.brush -text merge=unityyamlmerge diff
+*.flare -text merge=unityyamlmerge diff
+*.fontsettings -text merge=unityyamlmerge diff
+*.guiskin -text merge=unityyamlmerge diff
+*.giparams -text merge=unityyamlmerge diff
+*.renderTexture -text merge=unityyamlmerge diff
+*.spriteatlas -text merge=unityyamlmerge diff
+*.terrainlayer -text merge=unityyamlmerge diff
+*.mixer -text merge=unityyamlmerge diff
+*.shadervariants -text merge=unityyamlmerge diff
+
+# Image formats
+*.psd filter=lfs diff=lfs merge=lfs -text
+*.jpg filter=lfs diff=lfs merge=lfs -text
+*.png filter=lfs diff=lfs merge=lfs -text
+*.gif filter=lfs diff=lfs merge=lfs -text
+*.bmp filter=lfs diff=lfs merge=lfs -text
+*.tga filter=lfs diff=lfs merge=lfs -text
+*.tiff filter=lfs diff=lfs merge=lfs -text
+*.tif filter=lfs diff=lfs merge=lfs -text
+*.iff filter=lfs diff=lfs merge=lfs -text
+*.pict filter=lfs diff=lfs merge=lfs -text
+*.dds filter=lfs diff=lfs merge=lfs -text
+*.xcf filter=lfs diff=lfs merge=lfs -text
+
+# Audio formats
+*.mp3 filter=lfs diff=lfs merge=lfs -text
+*.ogg filter=lfs diff=lfs merge=lfs -text
+*.wav filter=lfs diff=lfs merge=lfs -text
+*.aiff filter=lfs diff=lfs merge=lfs -text
+*.aif filter=lfs diff=lfs merge=lfs -text
+*.mod filter=lfs diff=lfs merge=lfs -text
+*.it filter=lfs diff=lfs merge=lfs -text
+*.s3m filter=lfs diff=lfs merge=lfs -text
+*.xm filter=lfs diff=lfs merge=lfs -text
+
+# Video formats
+*.mov filter=lfs diff=lfs merge=lfs -text
+*.avi filter=lfs diff=lfs merge=lfs -text
+*.asf filter=lfs diff=lfs merge=lfs -text
+*.mpg filter=lfs diff=lfs merge=lfs -text
+*.mpeg filter=lfs diff=lfs merge=lfs -text
+*.mp4 filter=lfs diff=lfs merge=lfs -text
+
+# 3D formats
+*.fbx filter=lfs diff=lfs merge=lfs -text
+*.obj filter=lfs diff=lfs merge=lfs -text
+*.max filter=lfs diff=lfs merge=lfs -text
+*.blend filter=lfs diff=lfs merge=lfs -text
+*.dae filter=lfs diff=lfs merge=lfs -text
+*.mb filter=lfs diff=lfs merge=lfs -text
+*.ma filter=lfs diff=lfs merge=lfs -text
+*.3ds filter=lfs diff=lfs merge=lfs -text
+*.dfx filter=lfs diff=lfs merge=lfs -text
+*.c4d filter=lfs diff=lfs merge=lfs -text
+*.lwo filter=lfs diff=lfs merge=lfs -text
+*.lwo2 filter=lfs diff=lfs merge=lfs -text
+*.abc filter=lfs diff=lfs merge=lfs -text
+*.3dm filter=lfs diff=lfs merge=lfs -text
+
+# Build
+*.dll filter=lfs diff=lfs merge=lfs -text
+*.pdb filter=lfs diff=lfs merge=lfs -text
+*.mdb filter=lfs diff=lfs merge=lfs -text
+
+# Packaging
+*.zip filter=lfs diff=lfs merge=lfs -text
+*.7z filter=lfs diff=lfs merge=lfs -text
+*.gz filter=lfs diff=lfs merge=lfs -text
+*.rar filter=lfs diff=lfs merge=lfs -text
+*.tar filter=lfs diff=lfs merge=lfs -text
diff --git a/.Resources/.collabignore b/.Resources/.collabignore
index 4fb1b01..db90be0 100644
--- a/.Resources/.collabignore
+++ b/.Resources/.collabignore
@@ -1,50 +1,50 @@
-[Ll]ibrary/
-[Tt]emp/
-[Oo]bj/
-[Bb]uild/
-[Bb]uilds/
-[Ll]ogs/
-
-# Uncomment this line if you wish to ignore the asset store tools plugin
-# [Aa]ssets/AssetStoreTools*
-
-# Visual Studio cache directory
-.vs/
-
-# Gradle cache directory
-.gradle/
-
-# Autogenerated VS/MD/Consulo/Rider/VSCode solution and project files
-ExportedObj/
-.consulo/
-.vscode/
-.idea/
-*.csproj
-*.unityproj
-*.sln
-*.suo
-*.tmp
-*.user
-*.userprefs
-*.pidb
-*.booproj
-*.svd
-*.pdb
-*.mdb
-*.opendb
-*.VC.db
-
-# Unity3D generated meta files
-*.pidb.meta
-*.pdb.meta
-*.mdb.meta
-
-# Unity3D generated file on crash reports
-sysinfo.txt
-
-# Builds
-*.apk
-*.unitypackage
-
-# Crashlytics generated file
-crashlytics-build.properties
+[Ll]ibrary/
+[Tt]emp/
+[Oo]bj/
+[Bb]uild/
+[Bb]uilds/
+[Ll]ogs/
+
+# Uncomment this line if you wish to ignore the asset store tools plugin
+# [Aa]ssets/AssetStoreTools*
+
+# Visual Studio cache directory
+.vs/
+
+# Gradle cache directory
+.gradle/
+
+# Autogenerated VS/MD/Consulo/Rider/VSCode solution and project files
+ExportedObj/
+.consulo/
+.vscode/
+.idea/
+*.csproj
+*.unityproj
+*.sln
+*.suo
+*.tmp
+*.user
+*.userprefs
+*.pidb
+*.booproj
+*.svd
+*.pdb
+*.mdb
+*.opendb
+*.VC.db
+
+# Unity3D generated meta files
+*.pidb.meta
+*.pdb.meta
+*.mdb.meta
+
+# Unity3D generated file on crash reports
+sysinfo.txt
+
+# Builds
+*.apk
+*.unitypackage
+
+# Crashlytics generated file
+crashlytics-build.properties
diff --git a/CHANGELOG.md b/CHANGELOG.md
index cdad48f..ad7a2a7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,173 +1,182 @@
-# Changelog
-All notable changes to this package will be documented in this file.
-
-The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
-and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
-
-## [2.1.0-preview.3] - 2020-02-03
-## Changed
-- Revert can now handle new files.
-## Fixed
-- Bulk revert missing confirmation dialogue.
-- Bulk revert errors when reverting new files.
-
-## [2.1.0-preview.2] - 2020-01-30
-## Changed
-- Bulk revert is now supported.
-- Collab is blocked in play mode.
-## Fixed
-- Ignore files behavior is now matched between Collab v1 and v2.
-- Ignore icons are now consistent with the ignored state of a file.
-- Fixed Collab toolbar button always stating there are changes to publish.
-- Fixed services window's links to open Collab.
-
-## [2.1.0-preview.1] - 2020-01-21
-### Changed
-- Update UX to UIElements.
-- Increased minimum supported version to 2020.1.
-- Updated LibGit2Sharp to v0.26.2.
-- Updated serialization to use JSON instead of XML.
-### Fixed
-- Collab server no longer runs on projects without Collab enabled.
-- Ignored changes are now correctly displayed.
-- Conflicts list will update as entries are resolved.
-
-## [2.0.0-preview.17] - 2019-5-28
-### Fixed
-- Fixes missing .meta files
-
-## [2.0.0-preview.16] - 2019-5-28
-### Fixed
-- Fixes display issues on the refreshed editor theme in 2019.3
-
-## [2.0.0-preview.15] - 2019-5-17
-### Changed
-- Block user from triggering scan while publishing
-### Fixed
-- Bug fixes for first-time user experience
-- Bug fixes to ensure server errors/responses are provided to the editor/user
-- Bug fixes to ensure server logs correctly
-
-## [2.0.0-preview.14] - 2019-5-10
-### Fixed
-- Bug fixes to reduce proxy server polling
-- Bug fixes to rotate proxy server logs
-
-## [2.0.0-preview.13] - 2019-5-10
-### Fixed
-- Bug fixes to update status of subsets of files
-
-## [2.0.0-preview.12] - 2019-4-30
-### Fixed
-- Bug fixes to stop collab getting stuck in looking for changes.
-- Bug fixes to stop "Unknown operation error" on collab init.
-- Bug fices to stop error on publishing when a file has been deleted.
-
-## [2.0.0-preview.11] - 2019-4-24
-- Remove automatic get changes when domain reload occurs.
-
-## [2.0.0-preview.10] - 2019-4-23
-### Changed
-- Update to LibGit2Sharp 0.26.0.
-- Move to https.
-### Fixed
-- Ensure default .collabignore rules are used.
-
-## [2.0.0-preview.9] - 2019-4-19
-### Removed
-- Remove automatic identification of changes
-
-## [2.0.0-preview.8] - 2019-4-8
-### Fixed
-- Performance fixes to reduce CPU load.
-
-## [2.0.0-preview.6] - 2019-3-23
-### Fixed
-- Bug fixes to serialization when using legacy scripting runtime.
-- Bug fixes to remove migration dialog that should be forced.
-- Performance improvements to reduce polling frequency and unnecessary file hashes.
-### Removed
-- Removed dependency on third-party moq.dll
-
-## [2.0.0-preview.4] - 2018-12-17
-### Changed
-- Serialization updates to change serialization from JSON to XML.
-
-## [2.0.0-preview.3] - 2018-12-14
-### Fixed
-- Further bugfixes related to updating the state of the Git repository asynchronously.
-
-## [2.0.0-preview.2] - 2018-09-28
-### Fixed
-- Bugfixes related to updating the state of the Git repository asynchronously.
-
-## [2.0.0-preview.1] - 2018-09-20
-### Changed
-- Switched from snapshot system to Git repository, addressing stability issues.
-
-## [1.3.7] - 2020-01-30
-## Changed
-- Bulk revert is now supported.
-- Collab is blocked in play mode.
-## Fixed
-- Fixed services window's links to open Collab.
-
-## [1.3.6] - 2020-01-21
-### Fixed
-- Fixed compile errors when removing the NUnit package by removing unnecessary references.
-
-## [1.3.5] - 2020-01-08
-### Fixed
-- Fix "accept mine" / "accept remote" icon swap in conflicts view.
-
-## [1.3.4] - 2019-12-16
-### Changed
-- Window state is no longer restored after the window is closed and opened.
-### Fixed
-- History tab failing to load on startup if it is left open in the previous session.
-- Progress bar percentage not matching the bar.
-- History list correctly updates after a new revision is published.
-- UI instabilities when restoring or going back to a revision with a different package manifest.
-- Improve handling of changes to the project id.
-
-## [1.3.3] - 2019-12-10
-### Changed
-- Disable UI test cases that can be unstable.
-
-## [1.3.2] - 2019-12-05
-### Changed
-- Update UX to UIElements.
-- Increased minimum supported version to 2020.1.
-- Update Documentation to required standards.
-
-## [1.2.16] - 2019-02-11
-### Fixed
-- Update stylesheet to pass USS validation
-
-## [1.2.15] - 2018-11-16
-### Changed
-- Added support for non-experimental UIElements.
-
-## [1.2.11] - 2018-09-04
-### Fixed
-- Made some performance improvements to reduce impact on ReloadAssemblies.
-
-## [1.2.9] - 2018-08-13
-### Fixed
-- Test issues for the Collab History Window are now fixed.
-
-## [1.2.7] - 2018-08-07
-### Fixed
-- Toolbar drop-down will no longer show up when package is uninstalled.
-
-## [1.2.6] - 2018-06-15
-### Fixed
-- Fixed an issue where Collab's History window wouldn't load properly.
-
-## [1.2.5] - 2018-05-21
-This is the first release of *Unity Package CollabProxy*.
-
-### Added
-- Collab history and toolbar windows
-- Collab view and presenter classes
-- Collab Editor tests for view and presenter
+# Changelog
+All notable changes to this package will be documented in this file.
+
+The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
+
+## [2.1.0-preview.5] - 2020-06-09
+## Fixed
+- Fix error when partially publishing without the window open
+
+## [2.1.0-preview.4] - 2020-04-03
+## Fixed
+- Fixed bug with process info not updating properly after canceled publish
+- Fixed bug with error message when refreshing changes
+
+## [2.1.0-preview.3] - 2020-02-03
+## Changed
+- Revert can now handle new files.
+## Fixed
+- Bulk revert missing confirmation dialogue.
+- Bulk revert errors when reverting new files.
+
+## [2.1.0-preview.2] - 2020-01-30
+## Changed
+- Bulk revert is now supported.
+- Collab is blocked in play mode.
+## Fixed
+- Ignore files behavior is now matched between Collab v1 and v2.
+- Ignore icons are now consistent with the ignored state of a file.
+- Fixed Collab toolbar button always stating there are changes to publish.
+- Fixed services window's links to open Collab.
+
+## [2.1.0-preview.1] - 2020-01-21
+### Changed
+- Update UX to UIElements.
+- Increased minimum supported version to 2020.1.
+- Updated LibGit2Sharp to v0.26.2.
+- Updated serialization to use JSON instead of XML.
+### Fixed
+- Collab server no longer runs on projects without Collab enabled.
+- Ignored changes are now correctly displayed.
+- Conflicts list will update as entries are resolved.
+
+## [2.0.0-preview.17] - 2019-05-28
+### Fixed
+- Fixes missing .meta files
+
+## [2.0.0-preview.16] - 2019-05-28
+### Fixed
+- Fixes display issues on the refreshed editor theme in 2019.3
+
+## [2.0.0-preview.15] - 2019-05-17
+### Changed
+- Block user from triggering scan while publishing
+### Fixed
+- Bug fixes for first-time user experience
+- Bug fixes to ensure server errors/responses are provided to the editor/user
+- Bug fixes to ensure server logs correctly
+
+## [2.0.0-preview.14] - 2019-05-10
+### Fixed
+- Bug fixes to reduce proxy server polling
+- Bug fixes to rotate proxy server logs
+
+## [2.0.0-preview.13] - 2019-05-10
+### Fixed
+- Bug fixes to update status of subsets of files
+
+## [2.0.0-preview.12] - 2019-04-30
+### Fixed
+- Bug fixes to stop collab getting stuck in looking for changes.
+- Bug fixes to stop "Unknown operation error" on collab init.
+- Bug fices to stop error on publishing when a file has been deleted.
+
+## [2.0.0-preview.11] - 2019-04-24
+- Remove automatic get changes when domain reload occurs.
+
+## [2.0.0-preview.10] - 2019-04-23
+### Changed
+- Update to LibGit2Sharp 0.26.0.
+- Move to https.
+### Fixed
+- Ensure default .collabignore rules are used.
+
+## [2.0.0-preview.9] - 2019-04-19
+### Removed
+- Remove automatic identification of changes
+
+## [2.0.0-preview.8] - 2019-04-08
+### Fixed
+- Performance fixes to reduce CPU load.
+
+## [2.0.0-preview.6] - 2019-03-23
+### Fixed
+- Bug fixes to serialization when using legacy scripting runtime.
+- Bug fixes to remove migration dialog that should be forced.
+- Performance improvements to reduce polling frequency and unnecessary file hashes.
+### Removed
+- Removed dependency on third-party moq.dll
+
+## [2.0.0-preview.4] - 2018-12-17
+### Changed
+- Serialization updates to change serialization from JSON to XML.
+
+## [2.0.0-preview.3] - 2018-12-14
+### Fixed
+- Further bugfixes related to updating the state of the Git repository asynchronously.
+
+## [2.0.0-preview.2] - 2018-09-28
+### Fixed
+- Bugfixes related to updating the state of the Git repository asynchronously.
+
+## [2.0.0-preview.1] - 2018-09-20
+### Changed
+- Switched from snapshot system to Git repository, addressing stability issues.
+
+## [1.3.7] - 2020-01-30
+## Changed
+- Bulk revert is now supported.
+- Collab is blocked in play mode.
+## Fixed
+- Fixed services window's links to open Collab.
+
+## [1.3.6] - 2020-01-21
+### Fixed
+- Fixed compile errors when removing the NUnit package by removing unnecessary references.
+
+## [1.3.5] - 2020-01-08
+### Fixed
+- Fix "accept mine" / "accept remote" icon swap in conflicts view.
+
+## [1.3.4] - 2019-12-16
+### Changed
+- Window state is no longer restored after the window is closed and opened.
+### Fixed
+- History tab failing to load on startup if it is left open in the previous session.
+- Progress bar percentage not matching the bar.
+- History list correctly updates after a new revision is published.
+- UI instabilities when restoring or going back to a revision with a different package manifest.
+- Improve handling of changes to the project id.
+
+## [1.3.3] - 2019-12-10
+### Changed
+- Disable UI test cases that can be unstable.
+
+## [1.3.2] - 2019-12-05
+### Changed
+- Update UX to UIElements.
+- Increased minimum supported version to 2020.1.
+- Update Documentation to required standards.
+
+## [1.2.16] - 2019-02-11
+### Fixed
+- Update stylesheet to pass USS validation
+
+## [1.2.15] - 2018-11-16
+### Changed
+- Added support for non-experimental UIElements.
+
+## [1.2.11] - 2018-09-04
+### Fixed
+- Made some performance improvements to reduce impact on ReloadAssemblies.
+
+## [1.2.9] - 2018-08-13
+### Fixed
+- Test issues for the Collab History Window are now fixed.
+
+## [1.2.7] - 2018-08-07
+### Fixed
+- Toolbar drop-down will no longer show up when package is uninstalled.
+
+## [1.2.6] - 2018-06-15
+### Fixed
+- Fixed an issue where Collab's History window wouldn't load properly.
+
+## [1.2.5] - 2018-05-21
+This is the first release of *Unity Package CollabProxy*.
+
+### Added
+- Collab history and toolbar windows
+- Collab view and presenter classes
+- Collab Editor tests for view and presenter
diff --git a/Documentation~/unity-cloud-collaborate.md b/Documentation~/unity-cloud-collaborate.md
index 76ed223..9584138 100644
--- a/Documentation~/unity-cloud-collaborate.md
+++ b/Documentation~/unity-cloud-collaborate.md
@@ -1,5 +1,5 @@
-# About Unity Collaborate
-
-Collaborate is a simple way for teams to save, share, and sync their Unity project.
-
-Please refer to the online documentation [here.](https://docs.unity3d.com/Manual/UnityCollaborate.html)
+# About Unity Collaborate
+
+Collaborate is a simple way for teams to save, share, and sync their Unity project.
+
+Please refer to the online documentation [here.](https://docs.unity3d.com/Manual/UnityCollaborate.html)
diff --git a/Editor/Assets/Icons/README.md b/Editor/Assets/Icons/README.md
index b9c7d62..514ac53 100644
--- a/Editor/Assets/Icons/README.md
+++ b/Editor/Assets/Icons/README.md
@@ -1,10 +1,10 @@
-# Icons
-This directory contains the icons for the Collaborate UI.
-Dark and light theme icons are prefixed with `-dark` and `-light` respectively.
-HDPI icons are prefixed with `@2x` for 32x32px for two times the width and height of the normal 16x16px.
-Individual icon's `Texture Type` should be set as `Editor GUI and Legacy GUI` in the Unity Editor to ensure scaling is done correctly and alpha is respected.
-
-## Icon colours
-The basic colours of icons in Collaborate are as follows:\
-Dark Theme: #C4C4C4 100% alpha\
-Light Theme: #555555 100% alpha
+# Icons
+This directory contains the icons for the Collaborate UI.
+Dark and light theme icons are prefixed with `-dark` and `-light` respectively.
+HDPI icons are prefixed with `@2x` for 32x32px for two times the width and height of the normal 16x16px.
+Individual icon's `Texture Type` should be set as `Editor GUI and Legacy GUI` in the Unity Editor to ensure scaling is done correctly and alpha is respected.
+
+## Icon colours
+The basic colours of icons in Collaborate are as follows:\
+Dark Theme: #C4C4C4 100% alpha\
+Light Theme: #555555 100% alpha
diff --git a/Editor/Assets/Layouts/AlertBox.uxml b/Editor/Assets/Layouts/AlertBox.uxml
index bf11eb9..d380872 100644
--- a/Editor/Assets/Layouts/AlertBox.uxml
+++ b/Editor/Assets/Layouts/AlertBox.uxml
@@ -1,16 +1,16 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Editor/Assets/Layouts/BaseChangeListElement.uxml b/Editor/Assets/Layouts/BaseChangeListElement.uxml
index a3eff1b..0170778 100644
--- a/Editor/Assets/Layouts/BaseChangeListElement.uxml
+++ b/Editor/Assets/Layouts/BaseChangeListElement.uxml
@@ -1,10 +1,10 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/Editor/Assets/Layouts/ChangesGroupHeader.uxml b/Editor/Assets/Layouts/ChangesGroupHeader.uxml
index 32a1fe3..66fb406 100644
--- a/Editor/Assets/Layouts/ChangesGroupHeader.uxml
+++ b/Editor/Assets/Layouts/ChangesGroupHeader.uxml
@@ -1,10 +1,10 @@
-
-
-
+
+
+
diff --git a/Editor/Assets/Layouts/ChangesTabPageView.uxml b/Editor/Assets/Layouts/ChangesTabPageView.uxml
index b169504..f814ffe 100644
--- a/Editor/Assets/Layouts/ChangesTabPageView.uxml
+++ b/Editor/Assets/Layouts/ChangesTabPageView.uxml
@@ -1,13 +1,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Editor/Assets/Layouts/ErrorPageView.uxml b/Editor/Assets/Layouts/ErrorPageView.uxml
index b33e704..bb1be9d 100644
--- a/Editor/Assets/Layouts/ErrorPageView.uxml
+++ b/Editor/Assets/Layouts/ErrorPageView.uxml
@@ -1,9 +1,9 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/Editor/Assets/Layouts/HistoryEntryComponent.uxml b/Editor/Assets/Layouts/HistoryEntryComponent.uxml
index a1238be..3c50c68 100644
--- a/Editor/Assets/Layouts/HistoryEntryComponent.uxml
+++ b/Editor/Assets/Layouts/HistoryEntryComponent.uxml
@@ -1,43 +1,43 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Editor/Assets/Layouts/HistoryTabPageView.uxml b/Editor/Assets/Layouts/HistoryTabPageView.uxml
index 1076e60..d5cfc4d 100644
--- a/Editor/Assets/Layouts/HistoryTabPageView.uxml
+++ b/Editor/Assets/Layouts/HistoryTabPageView.uxml
@@ -1,7 +1,7 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/Editor/Assets/Layouts/ListNotice.uxml b/Editor/Assets/Layouts/ListNotice.uxml
index 9f91028..ab77231 100644
--- a/Editor/Assets/Layouts/ListNotice.uxml
+++ b/Editor/Assets/Layouts/ListNotice.uxml
@@ -1,6 +1,6 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/Editor/Assets/Layouts/MainPageView.uxml b/Editor/Assets/Layouts/MainPageView.uxml
index 99b9103..8b35959 100644
--- a/Editor/Assets/Layouts/MainPageView.uxml
+++ b/Editor/Assets/Layouts/MainPageView.uxml
@@ -1,14 +1,14 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Editor/Assets/Layouts/Paginator.uxml b/Editor/Assets/Layouts/Paginator.uxml
index 6eedef5..83efbb6 100644
--- a/Editor/Assets/Layouts/Paginator.uxml
+++ b/Editor/Assets/Layouts/Paginator.uxml
@@ -1,13 +1,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Editor/Assets/Layouts/ProgressView.uxml b/Editor/Assets/Layouts/ProgressView.uxml
index 3397b80..b609d4b 100644
--- a/Editor/Assets/Layouts/ProgressView.uxml
+++ b/Editor/Assets/Layouts/ProgressView.uxml
@@ -1,9 +1,9 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/Editor/Assets/Layouts/StartPageView.uxml b/Editor/Assets/Layouts/StartPageView.uxml
index 2ea044f..4409437 100644
--- a/Editor/Assets/Layouts/StartPageView.uxml
+++ b/Editor/Assets/Layouts/StartPageView.uxml
@@ -1,11 +1,11 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Editor/Assets/Layouts/TopBar.uxml b/Editor/Assets/Layouts/TopBar.uxml
index 4ef4f31..0c2a0bf 100644
--- a/Editor/Assets/Layouts/TopBar.uxml
+++ b/Editor/Assets/Layouts/TopBar.uxml
@@ -1,11 +1,11 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Editor/Assets/Layouts/main-window.uxml b/Editor/Assets/Layouts/main-window.uxml
index 25817f0..0413347 100644
--- a/Editor/Assets/Layouts/main-window.uxml
+++ b/Editor/Assets/Layouts/main-window.uxml
@@ -1,7 +1,7 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/Editor/Assets/README.md b/Editor/Assets/README.md
index 07d301e..0d8bea3 100644
--- a/Editor/Assets/README.md
+++ b/Editor/Assets/README.md
@@ -1,38 +1,38 @@
-# Assets
-This directory contains the non-code assets for the Collaborate UI.
-
-## Overview
-
-```none
-
- ├── Icons/
- ├── Layouts/
- ├── Styles/
- ├── StringAssets.cs
- └── UiConstants.cs
-```
-
-- `StringAssets.cs` contains all the static string resources for the package.
-- `UiConstants.cs` conatins a number of static values used to control the UI.
-
-## Editing
-USS and UXML files are inspired by the respective CSS and XML files. USS is a non-struct subset of CSS and each View and
-Component has the option of having its own USS and/or UXML file. For USS, to specifiy dark vs light style, prepend a `.dark`
-or `.light` to the line. For example:
-
-```css
-.dark .divider-vertical {
- background-color: var(--divider-dark);
-}
-
-.light .divider-vertical {
- background-color: var(--divider-light);
-}
-```
-
-Documentation about the two file types is provided within the Unity documentation for UiElements:
-https://docs.unity3d.com/2020.1/Documentation/Manual/UIElements.html
-
-In general each Component and View will have its own layout file. When adding new components with their uxml factories
-the UIElements schema will need to updated within the editor if you want auto completion in your editor. Click
-`Assets/Update UIElements Schema` in the Editor to update the definitions.
+# Assets
+This directory contains the non-code assets for the Collaborate UI.
+
+## Overview
+
+```none
+
+ ├── Icons/
+ ├── Layouts/
+ ├── Styles/
+ ├── StringAssets.cs
+ └── UiConstants.cs
+```
+
+- `StringAssets.cs` contains all the static string resources for the package.
+- `UiConstants.cs` conatins a number of static values used to control the UI.
+
+## Editing
+USS and UXML files are inspired by the respective CSS and XML files. USS is a non-struct subset of CSS and each View and
+Component has the option of having its own USS and/or UXML file. For USS, to specifiy dark vs light style, prepend a `.dark`
+or `.light` to the line. For example:
+
+```css
+.dark .divider-vertical {
+ background-color: var(--divider-dark);
+}
+
+.light .divider-vertical {
+ background-color: var(--divider-light);
+}
+```
+
+Documentation about the two file types is provided within the Unity documentation for UiElements:
+https://docs.unity3d.com/2020.1/Documentation/Manual/UIElements.html
+
+In general each Component and View will have its own layout file. When adding new components with their uxml factories
+the UIElements schema will need to updated within the editor if you want auto completion in your editor. Click
+`Assets/Update UIElements Schema` in the Editor to update the definitions.
diff --git a/Editor/Assets/StringAssets.cs b/Editor/Assets/StringAssets.cs
index e2e484c..4c672c7 100644
--- a/Editor/Assets/StringAssets.cs
+++ b/Editor/Assets/StringAssets.cs
@@ -1,74 +1,74 @@
-using System;
-
-namespace Unity.Cloud.Collaborate.Assets
-{
- ///
- /// Static string resources used throughout the UI.
- ///
- internal static class StringAssets
- {
- public const string searchResults = "Search Results";
- public const string cannotPublishWhileSearching = "Please clear the search before publishing changes.";
- public const string cannotPublishWhileConflicted = "Please fix the above conflicts before publishing.";
- public const string cannotPublishWhileGettingChanges = "Please wait for changes to be fetched before publishing.";
- public const string cannotPublishWithoutFiles = "No files to publish.";
- public const string cannotPublishWithIncomingChanges = "Please sync latest changes before publishing.";
- public const string changeListFullHeader = "Publish Changes";
- public const string changeListConflictedHeader = "Conflicted Items";
- public const string changeListConflictedList = "conflicted";
- public const string noticeNoRevisionsToDisplay = "No revisions to display.";
- public const string noticeNoChangesToDisplay = "No changes to display.";
- public const string noticeNoResultsForQuery = "No results found for this query.";
- public const string publishButton = "Publish";
- public const string publishSummaryPlaceholder = "Summary";
- public const string menuDiscardToggledChanges = "Discard toggled changes";
- public const string cancel = "Cancel";
- public const string discardChanges = "Discard changes";
- public const string confirmDiscardChangeMessage = "Are you sure you want to irreversibly discard changes to a file?";
- public const string confirmDiscardChangesMessage = "Are you sure you want to irreversibly discard changes to {0} files?";
- public const string confirmDiscardChangesTitle = "Collaborate: discard changes";
- public const string search = "Search";
- public const string syncRemoteRevisionMessage = "1 revision has been published to the server. Please sync to get the latest changes.";
- public const string syncRemoteRevisionsMessage = "Some revisions have been published to the server. Please sync to get the latest changes.";
- public const string syncLocalRevisionMessage = "1 revision has been made locally, but hasn't been published to the server. Please sync to ensure these changes are published.";
- public const string syncLocalRevisionsMessage = "{0} revisions have been made locally, but haven't been published to the server. Please sync to ensure these changes are published.";
- public const string sync = "Sync";
- public const string confirmRollbackTitle = "Collaborate: rollback";
- public const string confirmRollbackMessage = "Are you sure you want to rollback your project to this revision?";
- public const string rollback = "Rollback";
- public const string confirmRollbackDiscardChangesTitle = "Collaborate: rollback and discard changes";
- public const string confirmRollbackDiscardChangeMessage = "Rollback will irreversibly discard changes to 1 file. Are you sure you want to rollback your project to this revision?";
- public const string confirmRollbackDiscardChangesMessage = "Rollback will irreversibly discard changes to {0} files. Are you sure you want to rollback your project to this revision?";
- public const string rollbackAndDiscard = "Discard and rollback";
- public const string all = "All";
- public const string includedToPublishByAnotherGitTool = "This file has been included to publish by another Git tool.";
- public const string viewDiff = "View diff";
- public const string useMyChanges = "Use my changes";
- public const string useRemoteChanges = "Use remote changes";
- public const string useMergeTool = "Use merge tool";
- public const string noMergeToolIsConfigured = "You have not set any Diff/Merge tools. Check your Unity preferences.";
- public const string showChange = "1 change";
- public const string showChanges = "{0} changes";
- public const string history = "History";
- public const string changes = "Changes";
- public const string loadingRevisions = "Please wait, loading revisions.";
- public const string allHistory = "All History";
- public const string restore = "Restore";
- public const string goBackTo = "Go back to";
- public const string update = "Update";
- public const string clear = "Clear";
- public const string changeGroupHeaderFormat = "{0} ( {1} )";
- public const string conflictsDetected = "Conflicts detected. Please resolve them before continuing.";
- public const string projectStatusTitleUnbound = "Welcome to Collaborate. Before starting, please click the button below to set a new or existing Unity Project ID for this project. Return to this window once it is set.";
- public const string projectStatusTitleOffline = "No internet connection.";
- public const string projectStatusTitleMaintenance = "Undergoing maintenance, please come back later.";
- public const string projectStatusTitleLoggedOut = "Sign in to access Collaborate.";
- public const string projectStatusTitleNoSeat = "Ask your project owner for access to Unity Teams.";
- public const string projectStatusTitleBound = "Welcome to Collaborate. Please click the button below to start.";
- public const string projectStatusTitleLoading = "Loading, please wait...";
- public const string projectStatusButtonBound = "Start Collab";
- public const string projectStatusButtonUnbound = "Set Project ID";
- public const string projectStatusButtonLoggedOut = "Sign in...";
- public const string projectStatusButtonNoSeat = "Learn More";
- }
-}
+using System;
+
+namespace Unity.Cloud.Collaborate.Assets
+{
+ ///
+ /// Static string resources used throughout the UI.
+ ///
+ internal static class StringAssets
+ {
+ public const string searchResults = "Search Results";
+ public const string cannotPublishWhileSearching = "Please clear the search before publishing changes.";
+ public const string cannotPublishWhileConflicted = "Please fix the above conflicts before publishing.";
+ public const string cannotPublishWhileGettingChanges = "Please wait for changes to be fetched before publishing.";
+ public const string cannotPublishWithoutFiles = "No files to publish.";
+ public const string cannotPublishWithIncomingChanges = "Please sync latest changes before publishing.";
+ public const string changeListFullHeader = "Publish Changes";
+ public const string changeListConflictedHeader = "Conflicted Items";
+ public const string changeListConflictedList = "conflicted";
+ public const string noticeNoRevisionsToDisplay = "No revisions to display.";
+ public const string noticeNoChangesToDisplay = "No changes to display.";
+ public const string noticeNoResultsForQuery = "No results found for this query.";
+ public const string publishButton = "Publish";
+ public const string publishSummaryPlaceholder = "Summary";
+ public const string menuDiscardToggledChanges = "Discard toggled changes";
+ public const string cancel = "Cancel";
+ public const string discardChanges = "Discard changes";
+ public const string confirmDiscardChangeMessage = "Are you sure you want to irreversibly discard changes to a file?";
+ public const string confirmDiscardChangesMessage = "Are you sure you want to irreversibly discard changes to {0} files?";
+ public const string confirmDiscardChangesTitle = "Collaborate: discard changes";
+ public const string search = "Search";
+ public const string syncRemoteRevisionMessage = "1 revision has been published to the server. Please sync to get the latest changes.";
+ public const string syncRemoteRevisionsMessage = "Some revisions have been published to the server. Please sync to get the latest changes.";
+ public const string syncLocalRevisionMessage = "1 revision has been made locally, but hasn't been published to the server. Please sync to ensure these changes are published.";
+ public const string syncLocalRevisionsMessage = "{0} revisions have been made locally, but haven't been published to the server. Please sync to ensure these changes are published.";
+ public const string sync = "Sync";
+ public const string confirmRollbackTitle = "Collaborate: rollback";
+ public const string confirmRollbackMessage = "Are you sure you want to rollback your project to this revision?";
+ public const string rollback = "Rollback";
+ public const string confirmRollbackDiscardChangesTitle = "Collaborate: rollback and discard changes";
+ public const string confirmRollbackDiscardChangeMessage = "Rollback will irreversibly discard changes to 1 file. Are you sure you want to rollback your project to this revision?";
+ public const string confirmRollbackDiscardChangesMessage = "Rollback will irreversibly discard changes to {0} files. Are you sure you want to rollback your project to this revision?";
+ public const string rollbackAndDiscard = "Discard and rollback";
+ public const string all = "All";
+ public const string includedToPublishByAnotherGitTool = "This file has been included to publish by another Git tool.";
+ public const string viewDiff = "View diff";
+ public const string useMyChanges = "Use my changes";
+ public const string useRemoteChanges = "Use remote changes";
+ public const string useMergeTool = "Use merge tool";
+ public const string noMergeToolIsConfigured = "You have not set any Diff/Merge tools. Check your Unity preferences.";
+ public const string showChange = "1 change";
+ public const string showChanges = "{0} changes";
+ public const string history = "History";
+ public const string changes = "Changes";
+ public const string loadingRevisions = "Please wait, loading revisions.";
+ public const string allHistory = "All History";
+ public const string restore = "Restore";
+ public const string goBackTo = "Go back to";
+ public const string update = "Update";
+ public const string clear = "Clear";
+ public const string changeGroupHeaderFormat = "{0} ( {1} )";
+ public const string conflictsDetected = "Conflicts detected. Please resolve them before continuing.";
+ public const string projectStatusTitleUnbound = "Welcome to Collaborate. Before starting, please click the button below to set a new or existing Unity Project ID for this project. Return to this window once it is set.";
+ public const string projectStatusTitleOffline = "No internet connection.";
+ public const string projectStatusTitleMaintenance = "Undergoing maintenance, please come back later.";
+ public const string projectStatusTitleLoggedOut = "Sign in to access Collaborate.";
+ public const string projectStatusTitleNoSeat = "Ask your project owner for access to Unity Teams.";
+ public const string projectStatusTitleBound = "Welcome to Collaborate. Please click the button below to start.";
+ public const string projectStatusTitleLoading = "Loading, please wait...";
+ public const string projectStatusButtonBound = "Start Collab";
+ public const string projectStatusButtonUnbound = "Set Project ID";
+ public const string projectStatusButtonLoggedOut = "Sign in...";
+ public const string projectStatusButtonNoSeat = "Learn More";
+ }
+}
diff --git a/Editor/Assets/Styles/AlertBox.uss b/Editor/Assets/Styles/AlertBox.uss
index b90ede5..d28c00c 100644
--- a/Editor/Assets/Styles/AlertBox.uss
+++ b/Editor/Assets/Styles/AlertBox.uss
@@ -1,52 +1,52 @@
-/* AlertBox Styles */
-
-.alert-box {
- flex: var(--fixed-size);
-}
-
-.alert-box__content {
- padding: var(--standard-padding);
-}
-
-.alert-box__text {
- margin-top: 1px;
-}
-
-.alert-box__button-box {
- align-items: flex-end;
-}
-
-.alert-box__button {
- margin-right: 0;
-}
-
-.alert-box__icon {
- flex: var(--fixed-size);
- width: var(--icon-size);
- height: var(--icon-size);
- margin-right: var(--icon-standard-margin);
-}
-
-.dark .alert-box__icon.icon-info {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/status-info-dark.png");
-}
-
-.light .alert-box__icon.icon-info {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/status-info-light.png");
-}
-
-.dark .alert-box__icon.icon-warning {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/status-warning-dark.png");
-}
-
-.light .alert-box__icon.icon-warning {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/status-warning-light.png");
-}
-
-.dark .alert-box__icon.icon-alert {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/status-error-dark.png");
-}
-
-.light .alert-box__icon.icon-alert {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/status-error-light.png");
-}
+/* AlertBox Styles */
+
+.alert-box {
+ flex: var(--fixed-size);
+}
+
+.alert-box__content {
+ padding: var(--standard-padding);
+}
+
+.alert-box__text {
+ margin-top: 1px;
+}
+
+.alert-box__button-box {
+ align-items: flex-end;
+}
+
+.alert-box__button {
+ margin-right: 0;
+}
+
+.alert-box__icon {
+ flex: var(--fixed-size);
+ width: var(--icon-size);
+ height: var(--icon-size);
+ margin-right: var(--icon-standard-margin);
+}
+
+.dark .alert-box__icon.icon-info {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/status-info-dark.png");
+}
+
+.light .alert-box__icon.icon-info {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/status-info-light.png");
+}
+
+.dark .alert-box__icon.icon-warning {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/status-warning-dark.png");
+}
+
+.light .alert-box__icon.icon-warning {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/status-warning-light.png");
+}
+
+.dark .alert-box__icon.icon-alert {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/status-error-dark.png");
+}
+
+.light .alert-box__icon.icon-alert {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/status-error-light.png");
+}
diff --git a/Editor/Assets/Styles/BaseChangeListElement.uss b/Editor/Assets/Styles/BaseChangeListElement.uss
index d4c3c9f..21baea5 100644
--- a/Editor/Assets/Styles/BaseChangeListElement.uss
+++ b/Editor/Assets/Styles/BaseChangeListElement.uss
@@ -1,100 +1,100 @@
-/* BaseChangeEntry Styles */
-
-.base-change-list-element {
- height: var(--list-entry-height);
- align-items: center;
-}
-
-.base-change-list-element__container {
- flex: 1 1 auto;
- align-items: center;
-}
-
-.base-change-list-element__buttons,
-.base-change-list-element__icons {
- align-items: center;
- flex: var(--fixed-size);
- flex-direction: row;
-}
-
-.base-change-list-element__button,
-.base-change-list-element__icon {
- flex: var(--fixed-size);
- width: var(--icon-size);
- height: var(--icon-size);
- margin-right: var(--icon-standard-margin);
-}
-
-.base-change-list-element__container:hover .base-change-list-element__button {
- display: flex;
-}
-
-.base-change-list-element__button,
-.base-change-list-element__container:hover .base-change-list-element__button.hidden {
- display: none;
-}
-
-.base-change-list-element__file-name {
- flex: 0 0 auto;
- margin: 0 var(--half-standard-margin) 0 0;
- padding: 0;
- overflow: hidden;
-}
-
-.base-change-list-element__file-path {
- flex: 0 1 auto;
- font-size: var(--list-entry-path-font-size);
- padding: 0;
- margin: 1px var(--half-standard-margin) 0 0;
- overflow: hidden;
-}
-
-.dark .base-change-list-element__file-path {
- color: var(--dark-list-entry-path-text-color);
-}
-
-.light .base-change-list-element__file-path {
- color: var(--light-list-entry-path-text-color);
-}
-
-/* File status icons */
-
-.dark .base-change-list-element__icon.added {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/added-file-dark.png");
-}
-
-.light .base-change-list-element__icon.added {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/added-file-light.png");
-}
-
-.dark .base-change-list-element__icon.moved {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/moved-file-dark.png");
-}
-
-.light .base-change-list-element__icon.moved {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/moved-file-light.png");
-}
-
-.dark .base-change-list-element__icon.edited {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/edited-file-dark.png");
-}
-
-.light .base-change-list-element__icon.edited {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/edited-file-light.png");
-}
-
-.dark .base-change-list-element__icon.deleted {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/deleted-file-dark.png");
-}
-
-.light .base-change-list-element__icon.deleted {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/deleted-file-light.png");
-}
-
-.dark .base-change-list-element__icon.conflicted {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/conflicted-file-dark.png");
-}
-
-.light .base-change-list-element__icon.conflicted {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/conflicted-file-light.png");
-}
+/* BaseChangeEntry Styles */
+
+.base-change-list-element {
+ height: var(--list-entry-height);
+ align-items: center;
+}
+
+.base-change-list-element__container {
+ flex: 1 1 auto;
+ align-items: center;
+}
+
+.base-change-list-element__buttons,
+.base-change-list-element__icons {
+ align-items: center;
+ flex: var(--fixed-size);
+ flex-direction: row;
+}
+
+.base-change-list-element__button,
+.base-change-list-element__icon {
+ flex: var(--fixed-size);
+ width: var(--icon-size);
+ height: var(--icon-size);
+ margin-right: var(--icon-standard-margin);
+}
+
+.base-change-list-element__container:hover .base-change-list-element__button {
+ display: flex;
+}
+
+.base-change-list-element__button,
+.base-change-list-element__container:hover .base-change-list-element__button.hidden {
+ display: none;
+}
+
+.base-change-list-element__file-name {
+ flex: 0 0 auto;
+ margin: 0 var(--half-standard-margin) 0 0;
+ padding: 0;
+ overflow: hidden;
+}
+
+.base-change-list-element__file-path {
+ flex: 0 1 auto;
+ font-size: var(--list-entry-path-font-size);
+ padding: 0;
+ margin: 1px var(--half-standard-margin) 0 0;
+ overflow: hidden;
+}
+
+.dark .base-change-list-element__file-path {
+ color: var(--dark-list-entry-path-text-color);
+}
+
+.light .base-change-list-element__file-path {
+ color: var(--light-list-entry-path-text-color);
+}
+
+/* File status icons */
+
+.dark .base-change-list-element__icon.added {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/added-file-dark.png");
+}
+
+.light .base-change-list-element__icon.added {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/added-file-light.png");
+}
+
+.dark .base-change-list-element__icon.moved {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/moved-file-dark.png");
+}
+
+.light .base-change-list-element__icon.moved {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/moved-file-light.png");
+}
+
+.dark .base-change-list-element__icon.edited {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/edited-file-dark.png");
+}
+
+.light .base-change-list-element__icon.edited {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/edited-file-light.png");
+}
+
+.dark .base-change-list-element__icon.deleted {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/deleted-file-dark.png");
+}
+
+.light .base-change-list-element__icon.deleted {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/deleted-file-light.png");
+}
+
+.dark .base-change-list-element__icon.conflicted {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/conflicted-file-dark.png");
+}
+
+.light .base-change-list-element__icon.conflicted {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/conflicted-file-light.png");
+}
diff --git a/Editor/Assets/Styles/BetterTextField.uss b/Editor/Assets/Styles/BetterTextField.uss
index 35ea2a3..55e1a9b 100644
--- a/Editor/Assets/Styles/BetterTextField.uss
+++ b/Editor/Assets/Styles/BetterTextField.uss
@@ -1,19 +1,19 @@
-/* BetterTextField Styles */
-
-.unity-better-text-field__placeholder {
- position: absolute;
- margin: 0;
- padding: 2px 3px 3px;
-}
-
-.dark .unity-better-text-field__placeholder {
- color: var(--dark-placeholder-text-color);
-}
-
-.light .unity-better-text-field__placeholder {
- color: var(--light-placeholder-text-color);
-}
-
-.unity-better-text-field #unity-text-input {
- overflow: hidden;
-}
+/* BetterTextField Styles */
+
+.unity-better-text-field__placeholder {
+ position: absolute;
+ margin: 0;
+ padding: 2px 3px 3px;
+}
+
+.dark .unity-better-text-field__placeholder {
+ color: var(--dark-placeholder-text-color);
+}
+
+.light .unity-better-text-field__placeholder {
+ color: var(--light-placeholder-text-color);
+}
+
+.unity-better-text-field #unity-text-input {
+ overflow: hidden;
+}
diff --git a/Editor/Assets/Styles/ChangesGroupHeader.uss b/Editor/Assets/Styles/ChangesGroupHeader.uss
index ac400c1..8e3b340 100644
--- a/Editor/Assets/Styles/ChangesGroupHeader.uss
+++ b/Editor/Assets/Styles/ChangesGroupHeader.uss
@@ -1,17 +1,17 @@
-/* ChangesGroupHeader Styles */
-
-.changes-group-header__title-bar {
- flex-direction: row;
- margin: var(--half-standard-margin) 0;
-}
-
-.changes-group-header__name {
- -unity-text-align: middle-left;
- -unity-font-style: bold;
- flex: 1 1 auto;
- padding-left: 0;
-}
-
-.changes-group-header__overflow-button {
- margin-right: 0;
-}
+/* ChangesGroupHeader Styles */
+
+.changes-group-header__title-bar {
+ flex-direction: row;
+ margin: var(--half-standard-margin) 0;
+}
+
+.changes-group-header__name {
+ -unity-text-align: middle-left;
+ -unity-font-style: bold;
+ flex: 1 1 auto;
+ padding-left: 0;
+}
+
+.changes-group-header__overflow-button {
+ margin-right: 0;
+}
diff --git a/Editor/Assets/Styles/ChangesTabPageView.uss b/Editor/Assets/Styles/ChangesTabPageView.uss
index e14ddb8..59728de 100644
--- a/Editor/Assets/Styles/ChangesTabPageView.uss
+++ b/Editor/Assets/Styles/ChangesTabPageView.uss
@@ -1,29 +1,29 @@
-/* ChangesTabPageView Styles */
-
-.changes-tab-page-view__text-field {
- /* 36px (3 * 12px lines of text) + 5px in default padding + 1px extra */
- height: 42px;
-
- margin: var(--standard-margin) 0 0;
-}
-
-.changes-tab-page-view__text-field .unity-text-field__input {
- -unity-text-align: upper-left;
-}
-
-.changes-tab-page-view__publish-button {
- align-self: center;
- width: 128px;
- justify-content: center;
- margin-top: var(--standard-margin);
-}
-
-.changes-tab-page-view__search-bar {
- margin-bottom: var(--half-standard-margin);
- margin-top: var(--standard-margin);
-}
-
-.changes-tab-page-view__list-view {
- flex-basis: 288px;
- margin-bottom: var(--standard-margin);
-}
+/* ChangesTabPageView Styles */
+
+.changes-tab-page-view__text-field {
+ /* 36px (3 * 12px lines of text) + 5px in default padding + 1px extra */
+ height: 42px;
+
+ margin: var(--standard-margin) 0 0;
+}
+
+.changes-tab-page-view__text-field .unity-text-field__input {
+ -unity-text-align: upper-left;
+}
+
+.changes-tab-page-view__publish-button {
+ align-self: center;
+ width: 128px;
+ justify-content: center;
+ margin-top: var(--standard-margin);
+}
+
+.changes-tab-page-view__search-bar {
+ margin-bottom: var(--half-standard-margin);
+ margin-top: var(--standard-margin);
+}
+
+.changes-tab-page-view__list-view {
+ flex-basis: 288px;
+ margin-bottom: var(--standard-margin);
+}
diff --git a/Editor/Assets/Styles/FloatingDialogue.uss b/Editor/Assets/Styles/FloatingDialogue.uss
index 54de00e..f300388 100644
--- a/Editor/Assets/Styles/FloatingDialogue.uss
+++ b/Editor/Assets/Styles/FloatingDialogue.uss
@@ -1,17 +1,17 @@
-/* FloatingDialogue Styles */
-
-.unity-floating-dialogue {
- position: absolute;
- border-width: 1px;
- flex: 1 1 auto;
-}
-
-.dark .unity-floating-dialogue {
- background-color: #383838;
- border-color: rgba(35, 35, 35, 1);
-}
-
-.light .unity-floating-dialogue {
- background-color: #C2C2C2;
- border-color: rgba(107, 107, 107, 1);
-}
+/* FloatingDialogue Styles */
+
+.unity-floating-dialogue {
+ position: absolute;
+ border-width: 1px;
+ flex: 1 1 auto;
+}
+
+.dark .unity-floating-dialogue {
+ background-color: #383838;
+ border-color: rgba(35, 35, 35, 1);
+}
+
+.light .unity-floating-dialogue {
+ background-color: #C2C2C2;
+ border-color: rgba(107, 107, 107, 1);
+}
diff --git a/Editor/Assets/Styles/FloatingMenu.uss b/Editor/Assets/Styles/FloatingMenu.uss
index a870cdf..cbcecc0 100644
--- a/Editor/Assets/Styles/FloatingMenu.uss
+++ b/Editor/Assets/Styles/FloatingMenu.uss
@@ -1,7 +1,7 @@
-/* FloatingMenu Styles */
-
-.unity-floating-menu {
- min-width: 144px;
- min-height: 28px;
- flex: 1 1 auto;
-}
+/* FloatingMenu Styles */
+
+.unity-floating-menu {
+ min-width: 144px;
+ min-height: 28px;
+ flex: 1 1 auto;
+}
diff --git a/Editor/Assets/Styles/FloatingMenuItem.uss b/Editor/Assets/Styles/FloatingMenuItem.uss
index f705a36..070380a 100644
--- a/Editor/Assets/Styles/FloatingMenuItem.uss
+++ b/Editor/Assets/Styles/FloatingMenuItem.uss
@@ -1,26 +1,26 @@
-/* FloatingMenuItem Styles */
-
-.unity-floating-menu-item {
- justify-content: center;
- padding: 0 var(--standard-padding);
-}
-
-.dark .unity-floating-menu-item:hover,
-.dark .unity-floating-menu-item:focus {
- background-color: var(--dark-button-hover-focus-bg-color);
-}
-
-.light .unity-floating-menu-item:hover,
-.light .unity-floating-menu-item:focus {
- background-color: var(--light-button-hover-focus-bg-color);
-}
-
-.dark .unity-floating-menu-item:active,
-.dark .unity-floating-menu-item:hover:active {
- background-color: var(--dark-button-active-bg-color);
-}
-
-.light .unity-floating-menu-item:active,
-.light .unity-floating-menu-item:hover:active {
- background-color: var(--light-button-active-bg-color);
-}
+/* FloatingMenuItem Styles */
+
+.unity-floating-menu-item {
+ justify-content: center;
+ padding: 0 var(--standard-padding);
+}
+
+.dark .unity-floating-menu-item:hover,
+.dark .unity-floating-menu-item:focus {
+ background-color: var(--dark-button-hover-focus-bg-color);
+}
+
+.light .unity-floating-menu-item:hover,
+.light .unity-floating-menu-item:focus {
+ background-color: var(--light-button-hover-focus-bg-color);
+}
+
+.dark .unity-floating-menu-item:active,
+.dark .unity-floating-menu-item:hover:active {
+ background-color: var(--dark-button-active-bg-color);
+}
+
+.light .unity-floating-menu-item:active,
+.light .unity-floating-menu-item:hover:active {
+ background-color: var(--light-button-active-bg-color);
+}
diff --git a/Editor/Assets/Styles/HistoryEntryComponent.uss b/Editor/Assets/Styles/HistoryEntryComponent.uss
index b929e01..e257bcb 100644
--- a/Editor/Assets/Styles/HistoryEntryComponent.uss
+++ b/Editor/Assets/Styles/HistoryEntryComponent.uss
@@ -1,60 +1,60 @@
-/* HistoryEntryComponent Styles */
-
-.history-entry-component__container {
- margin-top: var(--standard-margin);
-}
-
-.history-entry-component__profile-background {
- flex: var(--fixed-size);
- width: var(--large-icon-size);
- height: var(--large-icon-size);
- margin-right: var(--standard-margin);
- border-radius: var(--half-large-icon-size);
- background-color: #018d98;
- justify-content: center;
-}
-
-.history-entry-component__profile-initial {
- padding: 0;
- -unity-text-align: middle-center;
- font-size: var(--profile-icon-font-size);
-}
-
-.history-entry-component__top-row {
- justify-content: space-between;
- align-items: center;
- height: var(--large-icon-size);
-}
-
-.history-entry-component__top-row .row {
- align-items: center;
-}
-
-.history-entry-component__author-name,
-.history-entry-component__timestamp,
-.history-entry-component__revision-id,
-.history-entry-component__commit-message {
- overflow: hidden;
-}
-
-.history-entry-component__commit-message {
- white-space: normal;
- margin: var(--standard-margin) 0;
-}
-
-.history-entry-component__changed-files-count {
- -unity-text-align: middle-left;
- -unity-font-style: bold;
- flex: 1 1 auto;
- padding-left: 0;
- margin-top: var(--standard-margin);
-}
-
-.history-entry-component .divider-horizontal {
- margin-top: var(--standard-margin);
-}
-
-.history-entry-component__changed-files {
- flex-basis: 288px;
- margin-bottom: var(--standard-margin);
-}
+/* HistoryEntryComponent Styles */
+
+.history-entry-component__container {
+ margin-top: var(--standard-margin);
+}
+
+.history-entry-component__profile-background {
+ flex: var(--fixed-size);
+ width: var(--large-icon-size);
+ height: var(--large-icon-size);
+ margin-right: var(--standard-margin);
+ border-radius: var(--half-large-icon-size);
+ background-color: #018d98;
+ justify-content: center;
+}
+
+.history-entry-component__profile-initial {
+ padding: 0;
+ -unity-text-align: middle-center;
+ font-size: var(--profile-icon-font-size);
+}
+
+.history-entry-component__top-row {
+ justify-content: space-between;
+ align-items: center;
+ height: var(--large-icon-size);
+}
+
+.history-entry-component__top-row .row {
+ align-items: center;
+}
+
+.history-entry-component__author-name,
+.history-entry-component__timestamp,
+.history-entry-component__revision-id,
+.history-entry-component__commit-message {
+ overflow: hidden;
+}
+
+.history-entry-component__commit-message {
+ white-space: normal;
+ margin: var(--standard-margin) 0;
+}
+
+.history-entry-component__changed-files-count {
+ -unity-text-align: middle-left;
+ -unity-font-style: bold;
+ flex: 1 1 auto;
+ padding-left: 0;
+ margin-top: var(--standard-margin);
+}
+
+.history-entry-component .divider-horizontal {
+ margin-top: var(--standard-margin);
+}
+
+.history-entry-component__changed-files {
+ flex-basis: 288px;
+ margin-bottom: var(--standard-margin);
+}
diff --git a/Editor/Assets/Styles/IconButton.uss b/Editor/Assets/Styles/IconButton.uss
index 4504231..dac273a 100644
--- a/Editor/Assets/Styles/IconButton.uss
+++ b/Editor/Assets/Styles/IconButton.uss
@@ -1,107 +1,107 @@
-/* IconButton Styles */
-
-.unity-icon-button {
- flex: var(--fixed-size);
- width: var(--icon-size);
- height: var(--icon-size);
- border-radius: var(--half-icon-size);
- background-color: var(--no-color);
-}
-
-.dark .unity-icon-button.btn-overflow {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/more-vert-dark.png");
-}
-
-.light .unity-icon-button.btn-overflow {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/more-vert-light.png");
-}
-
-.dark .unity-icon-button.btn-undo {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/undo-dark.png");
-}
-
-.light .unity-icon-button.btn-undo {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/undo-light.png");
-}
-
-.dark .unity-icon-button.btn-refresh {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/refresh-dark.png");
-}
-
-.light .unity-icon-button.btn-refresh {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/refresh-light.png");
-}
-
-.dark .unity-icon-button.btn-revert {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/revert-asset-dark.png");
-}
-
-.light .unity-icon-button.btn-revert {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/revert-asset-light.png");
-}
-
-.dark .unity-icon-button.btn-back {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/back-dark.png");
-}
-
-.light .unity-icon-button.btn-back {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/back-light.png");
-}
-
-.dark .unity-icon-button.btn-show {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/show-dark.png");
-}
-
-.light .unity-icon-button.btn-show {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/show-light.png");
-}
-
-.dark .unity-icon-button.btn-merge {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/merge-dark.png");
-}
-
-.light .unity-icon-button.btn-merge {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/merge-light.png");
-}
-
-.dark .unity-icon-button.btn-choose-remote {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/choose-remote-dark.png");
-}
-
-.light .unity-icon-button.btn-choose-remote {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/choose-remote-light.png");
-}
-
-.dark .unity-icon-button.btn-choose-mine {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/choose-mine-dark.png");
-}
-
-.light .unity-icon-button.btn-choose-mine {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/choose-mine-light.png");
-}
-
-.dark .unity-icon-button.btn-diff {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/diff-dark.png");
-}
-
-.light .unity-icon-button.btn-diff {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/diff-light.png");
-}
-
-.dark .unity-icon-button:focus {
- background-color: var(--dark-button-hover-focus-bg-color);
-}
-
-.light .unity-icon-button:focus {
- background-color: var(--light-button-hover-focus-bg-color);
-}
-
-.dark .unity-icon-button:active,
-.dark .unity-icon-button:hover:active {
- background-color: var(--dark-button-active-bg-color);
-}
-
-.light .unity-icon-button:active,
-.light .unity-icon-button:hover:active {
- background-color: var(--light-button-active-bg-color);
-}
+/* IconButton Styles */
+
+.unity-icon-button {
+ flex: var(--fixed-size);
+ width: var(--icon-size);
+ height: var(--icon-size);
+ border-radius: var(--half-icon-size);
+ background-color: var(--no-color);
+}
+
+.dark .unity-icon-button.btn-overflow {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/more-vert-dark.png");
+}
+
+.light .unity-icon-button.btn-overflow {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/more-vert-light.png");
+}
+
+.dark .unity-icon-button.btn-undo {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/undo-dark.png");
+}
+
+.light .unity-icon-button.btn-undo {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/undo-light.png");
+}
+
+.dark .unity-icon-button.btn-refresh {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/refresh-dark.png");
+}
+
+.light .unity-icon-button.btn-refresh {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/refresh-light.png");
+}
+
+.dark .unity-icon-button.btn-revert {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/revert-asset-dark.png");
+}
+
+.light .unity-icon-button.btn-revert {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/revert-asset-light.png");
+}
+
+.dark .unity-icon-button.btn-back {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/back-dark.png");
+}
+
+.light .unity-icon-button.btn-back {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/back-light.png");
+}
+
+.dark .unity-icon-button.btn-show {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/show-dark.png");
+}
+
+.light .unity-icon-button.btn-show {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/show-light.png");
+}
+
+.dark .unity-icon-button.btn-merge {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/merge-dark.png");
+}
+
+.light .unity-icon-button.btn-merge {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/merge-light.png");
+}
+
+.dark .unity-icon-button.btn-choose-remote {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/choose-remote-dark.png");
+}
+
+.light .unity-icon-button.btn-choose-remote {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/choose-remote-light.png");
+}
+
+.dark .unity-icon-button.btn-choose-mine {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/choose-mine-dark.png");
+}
+
+.light .unity-icon-button.btn-choose-mine {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/choose-mine-light.png");
+}
+
+.dark .unity-icon-button.btn-diff {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/diff-dark.png");
+}
+
+.light .unity-icon-button.btn-diff {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/diff-light.png");
+}
+
+.dark .unity-icon-button:focus {
+ background-color: var(--dark-button-hover-focus-bg-color);
+}
+
+.light .unity-icon-button:focus {
+ background-color: var(--light-button-hover-focus-bg-color);
+}
+
+.dark .unity-icon-button:active,
+.dark .unity-icon-button:hover:active {
+ background-color: var(--dark-button-active-bg-color);
+}
+
+.light .unity-icon-button:active,
+.light .unity-icon-button:hover:active {
+ background-color: var(--light-button-active-bg-color);
+}
diff --git a/Editor/Assets/Styles/IconTextButton.uss b/Editor/Assets/Styles/IconTextButton.uss
index 01d6454..ffc1f9f 100644
--- a/Editor/Assets/Styles/IconTextButton.uss
+++ b/Editor/Assets/Styles/IconTextButton.uss
@@ -1,19 +1,19 @@
-/* IconTextButton Styles */
-
-.unity-icon-text-button {
- flex-direction: row;
-}
-
-.unity-icon-text-button__image {
- flex: var(--fixed-size);
- width: var(--icon-size);
- height: var(--icon-size);
-}
-
-.light .unity-icon-text-button.icon-publish .unity-icon-text-button__image {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/publish-light.png");
-}
-
-.dark .unity-icon-text-button.icon-publish .unity-icon-text-button__image {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/publish-dark.png");
-}
+/* IconTextButton Styles */
+
+.unity-icon-text-button {
+ flex-direction: row;
+}
+
+.unity-icon-text-button__image {
+ flex: var(--fixed-size);
+ width: var(--icon-size);
+ height: var(--icon-size);
+}
+
+.light .unity-icon-text-button.icon-publish .unity-icon-text-button__image {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/publish-light.png");
+}
+
+.dark .unity-icon-text-button.icon-publish .unity-icon-text-button__image {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/publish-dark.png");
+}
diff --git a/Editor/Assets/Styles/ListNotice.uss b/Editor/Assets/Styles/ListNotice.uss
index 72c2177..de53860 100644
--- a/Editor/Assets/Styles/ListNotice.uss
+++ b/Editor/Assets/Styles/ListNotice.uss
@@ -1,19 +1,19 @@
-/* ListNotice Styles */
-
-.list-notice__container {
- height: 32px;
- align-items: center;
-}
-
-.list-notice__icon {
- flex: var(--fixed-size);
- width: var(--icon-size);
- height: var(--icon-size);
- background-color: darkslategrey;
- margin-right: var(--icon-standard-margin);
-}
-
-.list-notice__text {
- padding: 0;
- margin: 0;
-}
+/* ListNotice Styles */
+
+.list-notice__container {
+ height: 32px;
+ align-items: center;
+}
+
+.list-notice__icon {
+ flex: var(--fixed-size);
+ width: var(--icon-size);
+ height: var(--icon-size);
+ background-color: darkslategrey;
+ margin-right: var(--icon-standard-margin);
+}
+
+.list-notice__text {
+ padding: 0;
+ margin: 0;
+}
diff --git a/Editor/Assets/Styles/MainPageView.uss b/Editor/Assets/Styles/MainPageView.uss
index 0eaa071..9cd6a54 100644
--- a/Editor/Assets/Styles/MainPageView.uss
+++ b/Editor/Assets/Styles/MainPageView.uss
@@ -1,13 +1,13 @@
-/* MainView Styles */
-
-.main-page-view {
- flex-grow: 1;
-}
-
-.main-page-view__top-bar {
- margin: var(--half-standard-margin) var(--standard-margin);
-}
-
-.main-page-view__tab-view {
- margin: 0 var(--standard-margin);
-}
+/* MainView Styles */
+
+.main-page-view {
+ flex-grow: 1;
+}
+
+.main-page-view__top-bar {
+ margin: var(--half-standard-margin) var(--standard-margin);
+}
+
+.main-page-view__tab-view {
+ margin: 0 var(--standard-margin);
+}
diff --git a/Editor/Assets/Styles/Paginator.uss b/Editor/Assets/Styles/Paginator.uss
index 79a76f3..e5e9327 100644
--- a/Editor/Assets/Styles/Paginator.uss
+++ b/Editor/Assets/Styles/Paginator.uss
@@ -1,21 +1,21 @@
-/* Paginator Styles */
-
-.paginator__content {
- align-items: center;
- justify-content: space-between;
- margin: var(--half-standard-margin) 0;
-}
-
-.paginator__page-text {
- padding: 0;
-}
-
-.paginator__back-button {
- border-width: 0;
- margin-left: 0;
-}
-
-.paginator__forwards-button {
- border-width: 0;
- margin-right: 0;
-}
+/* Paginator Styles */
+
+.paginator__content {
+ align-items: center;
+ justify-content: space-between;
+ margin: var(--half-standard-margin) 0;
+}
+
+.paginator__page-text {
+ padding: 0;
+}
+
+.paginator__back-button {
+ border-width: 0;
+ margin-left: 0;
+}
+
+.paginator__forwards-button {
+ border-width: 0;
+ margin-right: 0;
+}
diff --git a/Editor/Assets/Styles/ProgressView.uss b/Editor/Assets/Styles/ProgressView.uss
index 1a2b911..77e7262 100644
--- a/Editor/Assets/Styles/ProgressView.uss
+++ b/Editor/Assets/Styles/ProgressView.uss
@@ -1,20 +1,20 @@
-/* ProgressView Styles */
-
-.progress-view__label {
- margin: var(--standard-margin);
- padding: 0;
-}
-
-.progress-view__button {
- margin: 0 var(--standard-margin) 0 0;
-}
-
-.progress-view__progress-bar {
- margin: 0 var(--standard-margin);
- padding: 0;
-}
-
-.progress-view__progress-bar .unity-progress-bar__progress {
- background-image: none;
- background-color: #388AFD;
-}
+/* ProgressView Styles */
+
+.progress-view__label {
+ margin: var(--standard-margin);
+ padding: 0;
+}
+
+.progress-view__button {
+ margin: 0 var(--standard-margin) 0 0;
+}
+
+.progress-view__progress-bar {
+ margin: 0 var(--standard-margin);
+ padding: 0;
+}
+
+.progress-view__progress-bar .unity-progress-bar__progress {
+ background-image: none;
+ background-color: #388AFD;
+}
diff --git a/Editor/Assets/Styles/SearchBar.uss b/Editor/Assets/Styles/SearchBar.uss
index a3d2135..3668c16 100644
--- a/Editor/Assets/Styles/SearchBar.uss
+++ b/Editor/Assets/Styles/SearchBar.uss
@@ -1,68 +1,68 @@
-/* SearchBar Styles */
-
-.unity-search-bar {
- flex-direction: row;
-}
-
-.unity-search-bar__search-field {
- width: auto;
- flex: 1 1 auto;
- font-size: 12px;
- padding: 1px;
- border-radius: 2px;
- margin: 1px 0;
-}
-
-.unity-search-bar__search-field #unity-text-input {
- padding: 0;
- margin-top: 1px;
- font-size: 12px;
-}
-
-.unity-search-bar__search-field #unity-search {
- flex: var(--fixed-size);
- height: var(--icon-size);
- width: var(--icon-size);
-}
-
-.dark .unity-search-bar__search-field #unity-search {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/search-dark.png");
-}
-
-.light .unity-search-bar__search-field #unity-search {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/search-light.png");
-}
-
-.unity-search-bar__search-field #unity-cancel {
- flex: var(--fixed-size);
- height: var(--icon-size);
- width: var(--icon-size);
- margin-top: 0;
-}
-
-.dark .unity-search-bar__search-field #unity-cancel {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/clear-dark.png");
-}
-
-.light .unity-search-bar__search-field #unity-cancel {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/clear-light.png");
-}
-
-.unity-search-bar__search-field #unity-cancel.unity-search-field-base__cancel-button--off {
- background-image: none;
-}
-
-.unity-search-bar__placeholder {
- position: absolute;
- top: 4px;
- left: 20px;
-}
-
-.dark .unity-search-bar__placeholder {
- color: var(--dark-placeholder-text-color);
-}
-
-.light .unity-search-bar__placeholder {
- color: var(--light-placeholder-text-color);
-}
-
+/* SearchBar Styles */
+
+.unity-search-bar {
+ flex-direction: row;
+}
+
+.unity-search-bar__search-field {
+ width: auto;
+ flex: 1 1 auto;
+ font-size: 12px;
+ padding: 1px;
+ border-radius: 2px;
+ margin: 1px 0;
+}
+
+.unity-search-bar__search-field #unity-text-input {
+ padding: 0;
+ margin-top: 1px;
+ font-size: 12px;
+}
+
+.unity-search-bar__search-field #unity-search {
+ flex: var(--fixed-size);
+ height: var(--icon-size);
+ width: var(--icon-size);
+}
+
+.dark .unity-search-bar__search-field #unity-search {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/search-dark.png");
+}
+
+.light .unity-search-bar__search-field #unity-search {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/search-light.png");
+}
+
+.unity-search-bar__search-field #unity-cancel {
+ flex: var(--fixed-size);
+ height: var(--icon-size);
+ width: var(--icon-size);
+ margin-top: 0;
+}
+
+.dark .unity-search-bar__search-field #unity-cancel {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/clear-dark.png");
+}
+
+.light .unity-search-bar__search-field #unity-cancel {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/clear-light.png");
+}
+
+.unity-search-bar__search-field #unity-cancel.unity-search-field-base__cancel-button--off {
+ background-image: none;
+}
+
+.unity-search-bar__placeholder {
+ position: absolute;
+ top: 4px;
+ left: 20px;
+}
+
+.dark .unity-search-bar__placeholder {
+ color: var(--dark-placeholder-text-color);
+}
+
+.light .unity-search-bar__placeholder {
+ color: var(--light-placeholder-text-color);
+}
+
diff --git a/Editor/Assets/Styles/StartPageView.uss b/Editor/Assets/Styles/StartPageView.uss
index c0156fa..19e26fa 100644
--- a/Editor/Assets/Styles/StartPageView.uss
+++ b/Editor/Assets/Styles/StartPageView.uss
@@ -1,15 +1,15 @@
-/* StartPageView Styles */
-
-.start-page-view__title {
- margin: var(--standard-margin) var(--standard-margin);
- white-space: normal;
- font-size: 13px;
-}
-
-.start-page-view__button {
- margin: 0 var(--standard-margin);
- width: 100%;
- max-width: 128px;
- height: 24px;
- align-self: center;
-}
+/* StartPageView Styles */
+
+.start-page-view__title {
+ margin: var(--standard-margin) var(--standard-margin);
+ white-space: normal;
+ font-size: 13px;
+}
+
+.start-page-view__button {
+ margin: 0 var(--standard-margin);
+ width: 100%;
+ max-width: 128px;
+ height: 24px;
+ align-self: center;
+}
diff --git a/Editor/Assets/Styles/TabView.uss b/Editor/Assets/Styles/TabView.uss
index a6f9bcf..4978149 100644
--- a/Editor/Assets/Styles/TabView.uss
+++ b/Editor/Assets/Styles/TabView.uss
@@ -1,42 +1,42 @@
-.unity-tab-view {
- flex-grow: 1;
-}
-
-.unity-tab-view__content-container {
- flex: 1 1 auto;
-}
-
-.unity-tab-view__toolbar {
- flex-direction: row;
- border-bottom-width: 1px;
-}
-
-.dark .unity-tab-view__toolbar {
- border-color: var(--divider-dark);
-}
-
-.light .unity-tab-view__toolbar {
- border-color: var(--divider-light);
-}
-
-.unity-text-button.unity-tab-view__tab-header {
- background-color: rgba(0, 0, 0, 0);
- border-color: rgba(0, 0, 0, 0);
- border-width: 0;
- border-bottom-width: 2px;
- padding: 3px 0 2px;
- margin-right: var(--standard-margin);
-}
-
-.unity-text-button.unity-tab-view__tab-header.active {
- border-color: #357CC0;
- background-color: var(--no-color);
-}
-
-.dark .unity-text-button.unity-tab-view__tab-header.active:active {
- background-color: var(--no-color);
-}
-
-.light .unity-text-button.unity-tab-view__tab-header.active:active {
- background-color: var(--no-color);
-}
+.unity-tab-view {
+ flex-grow: 1;
+}
+
+.unity-tab-view__content-container {
+ flex: 1 1 auto;
+}
+
+.unity-tab-view__toolbar {
+ flex-direction: row;
+ border-bottom-width: 1px;
+}
+
+.dark .unity-tab-view__toolbar {
+ border-color: var(--divider-dark);
+}
+
+.light .unity-tab-view__toolbar {
+ border-color: var(--divider-light);
+}
+
+.unity-text-button.unity-tab-view__tab-header {
+ background-color: rgba(0, 0, 0, 0);
+ border-color: rgba(0, 0, 0, 0);
+ border-width: 0;
+ border-bottom-width: 2px;
+ padding: 3px 0 2px;
+ margin-right: var(--standard-margin);
+}
+
+.unity-text-button.unity-tab-view__tab-header.active {
+ border-color: #357CC0;
+ background-color: var(--no-color);
+}
+
+.dark .unity-text-button.unity-tab-view__tab-header.active:active {
+ background-color: var(--no-color);
+}
+
+.light .unity-text-button.unity-tab-view__tab-header.active:active {
+ background-color: var(--no-color);
+}
diff --git a/Editor/Assets/Styles/TextButton.uss b/Editor/Assets/Styles/TextButton.uss
index fa0a227..facb91f 100644
--- a/Editor/Assets/Styles/TextButton.uss
+++ b/Editor/Assets/Styles/TextButton.uss
@@ -1,25 +1,25 @@
-/* TextButton Styles */
-
-.unity-text-button {
- border-width: 0;
- padding: 3px 5px 2px;
- margin: 0;
-}
-
-.dark .unity-text-button:focus {
- background-color: var(--dark-button-hover-focus-bg-color);
-}
-
-.light .unity-text-button:focus {
- background-color: var(--light-button-hover-focus-bg-color);
-}
-
-.dark .unity-text-button:active,
-.dark .unity-text-button:hover:active {
- background-color: var(--dark-button-active-bg-color);
-}
-
-.light .unity-text-button:active,
-.light .unity-text-button:hover:active {
- background-color: var(--light-button-active-bg-color);
-}
+/* TextButton Styles */
+
+.unity-text-button {
+ border-width: 0;
+ padding: 3px 5px 2px;
+ margin: 0;
+}
+
+.dark .unity-text-button:focus {
+ background-color: var(--dark-button-hover-focus-bg-color);
+}
+
+.light .unity-text-button:focus {
+ background-color: var(--light-button-hover-focus-bg-color);
+}
+
+.dark .unity-text-button:active,
+.dark .unity-text-button:hover:active {
+ background-color: var(--dark-button-active-bg-color);
+}
+
+.light .unity-text-button:active,
+.light .unity-text-button:hover:active {
+ background-color: var(--light-button-active-bg-color);
+}
diff --git a/Editor/Assets/Styles/ToggleableChangeListElement.uss b/Editor/Assets/Styles/ToggleableChangeListElement.uss
index 9277039..fb010fa 100644
--- a/Editor/Assets/Styles/ToggleableChangeListElement.uss
+++ b/Editor/Assets/Styles/ToggleableChangeListElement.uss
@@ -1,6 +1,6 @@
-/* ToggleableChangeEntry Styles */
-
-.toggleable-change-list-element__toggle {
- padding: 0;
- margin: 0 var(--half-standard-margin) 0 var(--quarter-standard-margin);
-}
+/* ToggleableChangeEntry Styles */
+
+.toggleable-change-list-element__toggle {
+ padding: 0;
+ margin: 0 var(--half-standard-margin) 0 var(--quarter-standard-margin);
+}
diff --git a/Editor/Assets/Styles/TopBar.uss b/Editor/Assets/Styles/TopBar.uss
index 2111e22..f0608a8 100644
--- a/Editor/Assets/Styles/TopBar.uss
+++ b/Editor/Assets/Styles/TopBar.uss
@@ -1,36 +1,36 @@
-/* TopBar Styles */
-
-.top-bar {
- flex: var(--fixed-size);
-}
-
-.top-bar__icon {
- width: var(--icon-size);
- height: var(--icon-size);
- margin-right: var(--icon-standard-margin);
-}
-
-.top-bar__container,
-.top-bar__back {
- align-items: center;
-}
-
-.top-bar__overflow-button {
- margin-right: 0;
-}
-
-.top-bar__back-button {
- margin-right: var(--icon-standard-margin);
-}
-
-.top-bar__back {
- margin-right: var(--standard-margin);
-}
-
-.dark .top-bar__icon {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/collaborate-dark.png");
-}
-
-.light .top-bar__icon {
- background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/collaborate-light.png");
-}
+/* TopBar Styles */
+
+.top-bar {
+ flex: var(--fixed-size);
+}
+
+.top-bar__icon {
+ width: var(--icon-size);
+ height: var(--icon-size);
+ margin-right: var(--icon-standard-margin);
+}
+
+.top-bar__container,
+.top-bar__back {
+ align-items: center;
+}
+
+.top-bar__overflow-button {
+ margin-right: 0;
+}
+
+.top-bar__back-button {
+ margin-right: var(--icon-standard-margin);
+}
+
+.top-bar__back {
+ margin-right: var(--standard-margin);
+}
+
+.dark .top-bar__icon {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/collaborate-dark.png");
+}
+
+.light .top-bar__icon {
+ background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/collaborate-light.png");
+}
diff --git a/Editor/Assets/Styles/styles.uss b/Editor/Assets/Styles/styles.uss
index 35a7bd2..5abfdad 100644
--- a/Editor/Assets/Styles/styles.uss
+++ b/Editor/Assets/Styles/styles.uss
@@ -1,77 +1,77 @@
-/* Global Styles */
-
-/* can't use :root here for some reason -- the variables get lost when switching between changes and history tabs */
-* {
- --standard-margin: 8px;
- --half-standard-margin: 4px;
- --quarter-standard-margin: 2px;
- --standard-padding: var(--standard-margin);
-
- --icon-size: 16px;
- --half-icon-size: 8px;
- --large-icon-size: 22px;
- --half-large-icon-size: 11px;
- --icon-standard-margin: var(--half-standard-margin);
-
- --list-entry-height: 25px;
- --list-entry-path-font-size: 10px;
- --dark-list-entry-path-text-color: #949494;
- --light-list-entry-path-text-color: #6B6B6B;
-
- --profile-icon-font-size: 13px;
-
- --no-color: rgba(0, 0, 0, 0);
- --dark-placeholder-text-color: #7D7D7D;
- --light-placeholder-text-color: #7D7D7D;
-
- /* Colours used for custom buttons that don't have a border */
- --dark-button-hover-focus-bg-color: #303030;
- --light-button-hover-focus-bg-color: #B2B2B2;
- --dark-button-active-bg-color: #484848;
- --light-button-active-bg-color: #8F8F8F;
-
- --divider-dark: #5F5F5F;
- --divider-light: #9A9A9A;
-
- --fixed-size: 0 0 auto;
-}
-
-.hidden {
- display: none;
-}
-
-.divider-horizontal {
- height: 1px;
-}
-
-.dark .divider-horizontal {
- background-color: var(--divider-dark);
-}
-
-.light .divider-horizontal {
- background-color: var(--divider-light);
-}
-
-.divider-vertical {
- width: 1px;
-}
-
-.dark .divider-vertical {
- background-color: var(--divider-dark);
-}
-
-.light .divider-vertical {
- background-color: var(--divider-light);
-}
-
-.row {
- flex-direction: row;
-}
-
-.column {
- flex-direction: column;
-}
-
-.grow {
- flex-grow: 1;
-}
+/* Global Styles */
+
+/* can't use :root here for some reason -- the variables get lost when switching between changes and history tabs */
+* {
+ --standard-margin: 8px;
+ --half-standard-margin: 4px;
+ --quarter-standard-margin: 2px;
+ --standard-padding: var(--standard-margin);
+
+ --icon-size: 16px;
+ --half-icon-size: 8px;
+ --large-icon-size: 22px;
+ --half-large-icon-size: 11px;
+ --icon-standard-margin: var(--half-standard-margin);
+
+ --list-entry-height: 25px;
+ --list-entry-path-font-size: 10px;
+ --dark-list-entry-path-text-color: #949494;
+ --light-list-entry-path-text-color: #6B6B6B;
+
+ --profile-icon-font-size: 13px;
+
+ --no-color: rgba(0, 0, 0, 0);
+ --dark-placeholder-text-color: #7D7D7D;
+ --light-placeholder-text-color: #7D7D7D;
+
+ /* Colours used for custom buttons that don't have a border */
+ --dark-button-hover-focus-bg-color: #303030;
+ --light-button-hover-focus-bg-color: #B2B2B2;
+ --dark-button-active-bg-color: #484848;
+ --light-button-active-bg-color: #8F8F8F;
+
+ --divider-dark: #5F5F5F;
+ --divider-light: #9A9A9A;
+
+ --fixed-size: 0 0 auto;
+}
+
+.hidden {
+ display: none;
+}
+
+.divider-horizontal {
+ height: 1px;
+}
+
+.dark .divider-horizontal {
+ background-color: var(--divider-dark);
+}
+
+.light .divider-horizontal {
+ background-color: var(--divider-light);
+}
+
+.divider-vertical {
+ width: 1px;
+}
+
+.dark .divider-vertical {
+ background-color: var(--divider-dark);
+}
+
+.light .divider-vertical {
+ background-color: var(--divider-light);
+}
+
+.row {
+ flex-direction: row;
+}
+
+.column {
+ flex-direction: column;
+}
+
+.grow {
+ flex-grow: 1;
+}
diff --git a/Editor/Assets/UiConstants.cs b/Editor/Assets/UiConstants.cs
index ad189c8..8f758e2 100644
--- a/Editor/Assets/UiConstants.cs
+++ b/Editor/Assets/UiConstants.cs
@@ -1,17 +1,17 @@
-using System;
-
-namespace Unity.Cloud.Collaborate.Assets
-{
- internal static class UiConstants
- {
- public const int ChangesListViewItemHeight = 24;
- public const int HistoryListViewItemHeight = 24;
-
- // USS classes
- public const string ussDark = "dark";
- public const string ussLight = "light";
- public const string ussHidden = "hidden";
- public const string ussDefaultInset = "default-inset";
- public const string ussActive = "active";
- }
-}
+using System;
+
+namespace Unity.Cloud.Collaborate.Assets
+{
+ internal static class UiConstants
+ {
+ public const int ChangesListViewItemHeight = 24;
+ public const int HistoryListViewItemHeight = 24;
+
+ // USS classes
+ public const string ussDark = "dark";
+ public const string ussLight = "light";
+ public const string ussHidden = "hidden";
+ public const string ussDefaultInset = "default-inset";
+ public const string ussActive = "active";
+ }
+}
diff --git a/Editor/Common/ArrayContainer.cs b/Editor/Common/ArrayContainer.cs
index f6e8b6f..bd282f5 100644
--- a/Editor/Common/ArrayContainer.cs
+++ b/Editor/Common/ArrayContainer.cs
@@ -1,10 +1,10 @@
-using System;
-using UnityEngine;
-
-namespace Unity.Cloud.Collaborate.Common {
- [Serializable]
- internal class ArrayContainer
- {
- [SerializeField] public T[] Values = new T[0];
- }
-}
+using System;
+using UnityEngine;
+
+namespace Unity.Cloud.Collaborate.Common {
+ [Serializable]
+ internal class ArrayContainer
+ {
+ [SerializeField] public T[] Values = new T[0];
+ }
+}
diff --git a/Editor/Common/LocationAttribute.cs b/Editor/Common/LocationAttribute.cs
index ebadd70..e47a27a 100644
--- a/Editor/Common/LocationAttribute.cs
+++ b/Editor/Common/LocationAttribute.cs
@@ -1,38 +1,38 @@
-using System;
-using UnityEditorInternal;
-using UnityEngine;
-
-namespace Unity.Cloud.Collaborate.Common {
- [AttributeUsage(AttributeTargets.Class)]
- internal sealed class LocationAttribute : Attribute
- {
- public enum Location { PreferencesFolder, LibraryFolder }
-
- string m_RelativePath;
- readonly Location m_Location;
- string m_FilePath;
-
- public string FilePath {
- get {
- if (m_FilePath != null) return m_FilePath;
-
- if (m_RelativePath[0] == '/')
- m_RelativePath = m_RelativePath.Substring(1);
-
- if (m_Location == Location.PreferencesFolder)
- m_FilePath = $"{InternalEditorUtility.unityPreferencesFolder}/{m_RelativePath}";
- else if (m_Location == Location.LibraryFolder)
- m_FilePath = $"Library/Collab/{m_RelativePath}";
-
- return m_FilePath;
- }
- }
-
- public LocationAttribute(string relativePath, Location location)
- {
- //Guard.ArgumentNotNullOrWhiteSpace(relativePath, "relativePath");
- m_RelativePath = relativePath;
- m_Location = location;
- }
- }
-}
+using System;
+using UnityEditorInternal;
+using UnityEngine;
+
+namespace Unity.Cloud.Collaborate.Common {
+ [AttributeUsage(AttributeTargets.Class)]
+ internal sealed class LocationAttribute : Attribute
+ {
+ public enum Location { PreferencesFolder, LibraryFolder }
+
+ string m_RelativePath;
+ readonly Location m_Location;
+ string m_FilePath;
+
+ public string FilePath {
+ get {
+ if (m_FilePath != null) return m_FilePath;
+
+ if (m_RelativePath[0] == '/')
+ m_RelativePath = m_RelativePath.Substring(1);
+
+ if (m_Location == Location.PreferencesFolder)
+ m_FilePath = $"{InternalEditorUtility.unityPreferencesFolder}/{m_RelativePath}";
+ else if (m_Location == Location.LibraryFolder)
+ m_FilePath = $"Library/Collab/{m_RelativePath}";
+
+ return m_FilePath;
+ }
+ }
+
+ public LocationAttribute(string relativePath, Location location)
+ {
+ //Guard.ArgumentNotNullOrWhiteSpace(relativePath, "relativePath");
+ m_RelativePath = relativePath;
+ m_Location = location;
+ }
+ }
+}
diff --git a/Editor/Common/README.md b/Editor/Common/README.md
index 1560b43..d3ecbed 100644
--- a/Editor/Common/README.md
+++ b/Editor/Common/README.md
@@ -1,15 +1,15 @@
-# Unity Collaborate Common Code
-This directory contains common classes and logic for the package.
-
-## Overview
-This is the structure of the directory:
-```none
-
- ├── LocationAttribute.cs
- └── ScriptableObjectSingleton.cs
-```
-
-`LocationAttribute.cs` attribute used to specify where to cache the ScriptableObjectSingleton.
-
-`ScriptableObjectSingleton.cs` public version of the ScriptableSingleton class in Unity and modified from the
-GitHubForUnity implementation of it.
+# Unity Collaborate Common Code
+This directory contains common classes and logic for the package.
+
+## Overview
+This is the structure of the directory:
+```none
+
+ ├── LocationAttribute.cs
+ └── ScriptableObjectSingleton.cs
+```
+
+`LocationAttribute.cs` attribute used to specify where to cache the ScriptableObjectSingleton.
+
+`ScriptableObjectSingleton.cs` public version of the ScriptableSingleton class in Unity and modified from the
+GitHubForUnity implementation of it.
diff --git a/Editor/Common/ScriptableObjectSingleton.cs b/Editor/Common/ScriptableObjectSingleton.cs
index 035cf70..0bddf42 100644
--- a/Editor/Common/ScriptableObjectSingleton.cs
+++ b/Editor/Common/ScriptableObjectSingleton.cs
@@ -1,83 +1,83 @@
-using System;
-using System.IO;
-using System.Linq;
-using JetBrains.Annotations;
-using UnityEditorInternal;
-using UnityEngine;
-using UnityEngine.Assertions;
-using Object = UnityEngine.Object;
-
-namespace Unity.Cloud.Collaborate.Common
-{
- internal class ScriptableObjectSingleton : ScriptableObject where T : ScriptableObject
- {
- static T s_Instance;
- public static T Instance
- {
- get
- {
- if (s_Instance == null)
- CreateAndLoad();
- return s_Instance;
- }
- }
-
- protected ScriptableObjectSingleton()
- {
- if (s_Instance != null)
- {
- Debug.LogError("Singleton already exists!");
- }
- else
- {
- s_Instance = this as T;
- Assert.IsFalse(s_Instance == null);
- }
- }
-
- static void CreateAndLoad()
- {
- Assert.IsTrue(s_Instance == null);
-
- var filePath = GetFilePath();
- if (!string.IsNullOrEmpty(filePath) && File.Exists(filePath))
- {
- InternalEditorUtility.LoadSerializedFileAndForget(filePath);
- }
-
- if (s_Instance == null)
- {
- var inst = CreateInstance() as ScriptableObjectSingleton;
- Assert.IsFalse(inst == null);
- inst.hideFlags = HideFlags.HideAndDontSave;
- inst.Save();
- }
-
- Assert.IsFalse(s_Instance == null);
- }
-
- protected void Save()
- {
- if (s_Instance == null)
- {
- Debug.LogError("Cannot save singleton, no instance!");
- return;
- }
-
- var locationFilePath = GetFilePath();
- var directoryName = Path.GetDirectoryName(locationFilePath);
- if (directoryName == null) return;
- Directory.CreateDirectory(directoryName);
- InternalEditorUtility.SaveToSerializedFileAndForget(new Object[]{ s_Instance }, locationFilePath, true);
- }
-
- [CanBeNull]
- static string GetFilePath()
- {
- var attr = typeof(T).GetCustomAttributes(true)
- .OfType()
- .FirstOrDefault();
- return attr?.FilePath;
- }
- }
-}
+using System;
+using System.IO;
+using System.Linq;
+using JetBrains.Annotations;
+using UnityEditorInternal;
+using UnityEngine;
+using UnityEngine.Assertions;
+using Object = UnityEngine.Object;
+
+namespace Unity.Cloud.Collaborate.Common
+{
+ internal class ScriptableObjectSingleton : ScriptableObject where T : ScriptableObject
+ {
+ static T s_Instance;
+ public static T Instance
+ {
+ get
+ {
+ if (s_Instance == null)
+ CreateAndLoad();
+ return s_Instance;
+ }
+ }
+
+ protected ScriptableObjectSingleton()
+ {
+ if (s_Instance != null)
+ {
+ Debug.LogError("Singleton already exists!");
+ }
+ else
+ {
+ s_Instance = this as T;
+ Assert.IsFalse(s_Instance == null);
+ }
+ }
+
+ static void CreateAndLoad()
+ {
+ Assert.IsTrue(s_Instance == null);
+
+ var filePath = GetFilePath();
+ if (!string.IsNullOrEmpty(filePath) && File.Exists(filePath))
+ {
+ InternalEditorUtility.LoadSerializedFileAndForget(filePath);
+ }
+
+ if (s_Instance == null)
+ {
+ var inst = CreateInstance() as ScriptableObjectSingleton;
+ Assert.IsFalse(inst == null);
+ inst.hideFlags = HideFlags.HideAndDontSave;
+ inst.Save();
+ }
+
+ Assert.IsFalse(s_Instance == null);
+ }
+
+ protected void Save()
+ {
+ if (s_Instance == null)
+ {
+ Debug.LogError("Cannot save singleton, no instance!");
+ return;
+ }
+
+ var locationFilePath = GetFilePath();
+ var directoryName = Path.GetDirectoryName(locationFilePath);
+ if (directoryName == null) return;
+ Directory.CreateDirectory(directoryName);
+ InternalEditorUtility.SaveToSerializedFileAndForget(new Object[]{ s_Instance }, locationFilePath, true);
+ }
+
+ [CanBeNull]
+ static string GetFilePath()
+ {
+ var attr = typeof(T).GetCustomAttributes(true)
+ .OfType()
+ .FirstOrDefault();
+ return attr?.FilePath;
+ }
+ }
+}
diff --git a/Editor/Common/SerializableDictionary.cs b/Editor/Common/SerializableDictionary.cs
index 56940ec..5e08df3 100644
--- a/Editor/Common/SerializableDictionary.cs
+++ b/Editor/Common/SerializableDictionary.cs
@@ -1,55 +1,55 @@
-using System;
-using System.Collections.Generic;
-using System.Runtime.Serialization;
-using UnityEngine;
-
-namespace Unity.Cloud.Collaborate.Common
-{
- //http://answers.unity3d.com/answers/809221/view.html
-
- [Serializable]
- internal class SerializableDictionary : Dictionary, ISerializationCallbackReceiver
- {
- [SerializeField]
- List m_Keys = new List();
- [SerializeField]
- List m_Values = new List();
-
- public SerializableDictionary()
- {
- }
-
- public SerializableDictionary(IDictionary input) : base(input)
- {
- }
-
- // Save the dictionary to lists
- public void OnBeforeSerialize()
- {
- m_Keys.Clear();
- m_Values.Clear();
- foreach (var pair in this)
- {
- m_Keys.Add(pair.Key);
- m_Values.Add(pair.Value);
- }
- }
-
- // load dictionary from lists
- public void OnAfterDeserialize()
- {
- Clear();
-
- if (m_Keys.Count != m_Values.Count)
- {
- throw new SerializationException($"there are {m_Keys.Count} keys and {m_Values.Count} " +
- "values after deserialization. Make sure that both key and value types are serializable.");
- }
-
- for (var i = 0; i < m_Keys.Count; i++)
- {
- Add(m_Keys[i], m_Values[i]);
- }
- }
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Runtime.Serialization;
+using UnityEngine;
+
+namespace Unity.Cloud.Collaborate.Common
+{
+ //http://answers.unity3d.com/answers/809221/view.html
+
+ [Serializable]
+ internal class SerializableDictionary : Dictionary, ISerializationCallbackReceiver
+ {
+ [SerializeField]
+ List m_Keys = new List();
+ [SerializeField]
+ List m_Values = new List();
+
+ public SerializableDictionary()
+ {
+ }
+
+ public SerializableDictionary(IDictionary input) : base(input)
+ {
+ }
+
+ // Save the dictionary to lists
+ public void OnBeforeSerialize()
+ {
+ m_Keys.Clear();
+ m_Values.Clear();
+ foreach (var pair in this)
+ {
+ m_Keys.Add(pair.Key);
+ m_Values.Add(pair.Value);
+ }
+ }
+
+ // load dictionary from lists
+ public void OnAfterDeserialize()
+ {
+ Clear();
+
+ if (m_Keys.Count != m_Values.Count)
+ {
+ throw new SerializationException($"there are {m_Keys.Count} keys and {m_Values.Count} " +
+ "values after deserialization. Make sure that both key and value types are serializable.");
+ }
+
+ for (var i = 0; i < m_Keys.Count; i++)
+ {
+ Add(m_Keys[i], m_Values[i]);
+ }
+ }
+ }
+}
diff --git a/Editor/Common/StringArrayContainer.cs b/Editor/Common/StringArrayContainer.cs
index f1f98e7..b6895a6 100644
--- a/Editor/Common/StringArrayContainer.cs
+++ b/Editor/Common/StringArrayContainer.cs
@@ -1,7 +1,7 @@
-using System;
-
-namespace Unity.Cloud.Collaborate.Common {
- [Serializable]
- internal class StringArrayContainer : ArrayContainer
- {}
-}
+using System;
+
+namespace Unity.Cloud.Collaborate.Common {
+ [Serializable]
+ internal class StringArrayContainer : ArrayContainer
+ {}
+}
diff --git a/Editor/Components/AdapterListView.cs b/Editor/Components/AdapterListView.cs
index 8c66bda..55b3b97 100644
--- a/Editor/Components/AdapterListView.cs
+++ b/Editor/Components/AdapterListView.cs
@@ -1,84 +1,84 @@
-using System;
-using JetBrains.Annotations;
-using Unity.Cloud.Collaborate.Views.Adapters;
-using Unity.Cloud.Collaborate.Views.Adapters.ListAdapters;
-using UnityEngine.Assertions;
-using UnityEngine.UIElements;
-
-namespace Unity.Cloud.Collaborate.Components
-{
- internal class AdapterListView : VisualElement, IAdapterObserver
- {
- public const string UssClassName = "unity-adapter-list-view";
- public const string ListViewUssClassName = UssClassName + "__list-view";
-
- IAdapter m_Adapter;
- readonly ListView m_ListView;
-
- public AdapterListView()
- {
- AddToClassList(UssClassName);
- m_ListView = new ListView();
- m_ListView.style.flexGrow = new StyleFloat(1);
- m_ListView.AddToClassList(ListViewUssClassName);
- Add(m_ListView);
- }
-
- ///
- /// Set the adapter for the list.
- ///
- /// Adapter for the list to use.
- /// The type of the list entries.
- public void SetAdapter(BaseListAdapter adapter) where T : VisualElement
- {
- Assert.IsNull(m_Adapter, "There cannot be more than one adapter at a time.");
- m_Adapter = adapter;
- m_Adapter.RegisterObserver(this);
- m_ListView.makeItem = m_Adapter.MakeItem;
- m_ListView.bindItem = m_Adapter.BindItem;
- m_ListView.itemHeight = m_Adapter.Height;
- NotifyDataSetChanged();
- }
-
- ///
- /// Remove adapter from the list.
- ///
- public void RemoveAdapter()
- {
- Assert.IsNotNull(m_Adapter, "Cannot remove a non-existent adapter.");
- m_Adapter.DeregisterObserver(this);
- m_ListView.makeItem = null;
- m_ListView.bindItem = null;
- m_ListView.itemHeight = 0;
- m_ListView.itemsSource = null;
- m_Adapter = null;
- }
-
- ///
- /// Set the selection type of the list.
- ///
- public SelectionType SelectionType
- {
- set => m_ListView.selectionType = value;
- get => m_ListView.selectionType;
- }
-
- ///
- /// Notify that the data in this list has changed.
- ///
- public void NotifyDataSetChanged()
- {
- // TODO: pagination support would be done here if it happens.
- // Feed the ListView a dummy list of the correct length.
- m_ListView.itemsSource = new bool[m_Adapter.GetEntryCount()];
- }
-
- public void ScrollToIndex(int idx)
- {
- m_ListView.ScrollToItem(idx);
- }
-
- [UsedImplicitly]
- public new class UxmlFactory : UxmlFactory { }
- }
-}
+using System;
+using JetBrains.Annotations;
+using Unity.Cloud.Collaborate.Views.Adapters;
+using Unity.Cloud.Collaborate.Views.Adapters.ListAdapters;
+using UnityEngine.Assertions;
+using UnityEngine.UIElements;
+
+namespace Unity.Cloud.Collaborate.Components
+{
+ internal class AdapterListView : VisualElement, IAdapterObserver
+ {
+ public const string UssClassName = "unity-adapter-list-view";
+ public const string ListViewUssClassName = UssClassName + "__list-view";
+
+ IAdapter m_Adapter;
+ readonly ListView m_ListView;
+
+ public AdapterListView()
+ {
+ AddToClassList(UssClassName);
+ m_ListView = new ListView();
+ m_ListView.style.flexGrow = new StyleFloat(1);
+ m_ListView.AddToClassList(ListViewUssClassName);
+ Add(m_ListView);
+ }
+
+ ///
+ /// Set the adapter for the list.
+ ///
+ /// Adapter for the list to use.
+ /// The type of the list entries.
+ public void SetAdapter(BaseListAdapter adapter) where T : VisualElement
+ {
+ Assert.IsNull(m_Adapter, "There cannot be more than one adapter at a time.");
+ m_Adapter = adapter;
+ m_Adapter.RegisterObserver(this);
+ m_ListView.makeItem = m_Adapter.MakeItem;
+ m_ListView.bindItem = m_Adapter.BindItem;
+ m_ListView.itemHeight = m_Adapter.Height;
+ NotifyDataSetChanged();
+ }
+
+ ///
+ /// Remove adapter from the list.
+ ///
+ public void RemoveAdapter()
+ {
+ Assert.IsNotNull(m_Adapter, "Cannot remove a non-existent adapter.");
+ m_Adapter.DeregisterObserver(this);
+ m_ListView.makeItem = null;
+ m_ListView.bindItem = null;
+ m_ListView.itemHeight = 0;
+ m_ListView.itemsSource = null;
+ m_Adapter = null;
+ }
+
+ ///
+ /// Set the selection type of the list.
+ ///
+ public SelectionType SelectionType
+ {
+ set => m_ListView.selectionType = value;
+ get => m_ListView.selectionType;
+ }
+
+ ///
+ /// Notify that the data in this list has changed.
+ ///
+ public void NotifyDataSetChanged()
+ {
+ // TODO: pagination support would be done here if it happens.
+ // Feed the ListView a dummy list of the correct length.
+ m_ListView.itemsSource = new bool[m_Adapter.GetEntryCount()];
+ }
+
+ public void ScrollToIndex(int idx)
+ {
+ m_ListView.ScrollToItem(idx);
+ }
+
+ [UsedImplicitly]
+ public new class UxmlFactory : UxmlFactory { }
+ }
+}
diff --git a/Editor/Components/AlertBox.cs b/Editor/Components/AlertBox.cs
index 327b31e..f65b0f9 100644
--- a/Editor/Components/AlertBox.cs
+++ b/Editor/Components/AlertBox.cs
@@ -1,214 +1,214 @@
-using System;
-using System.Collections.Generic;
-using JetBrains.Annotations;
-using Unity.Cloud.Collaborate.Assets;
-using Unity.Cloud.Collaborate.UserInterface;
-using UnityEditor;
-using UnityEngine.UIElements;
-
-namespace Unity.Cloud.Collaborate.Components
-{
- [UsedImplicitly]
- internal class AlertBox : VisualElement
- {
- ///
- /// Describes the severity of the alert. Used to set the icon.
- ///
- public enum AlertLevel
- {
- Info,
- Warning,
- Alert
- }
-
- public const string UssClassName = "alert-box";
- public const string IconUssClassName = UssClassName + "__icon";
- public const string TextUssClassName = UssClassName + "__text";
- public const string ButtonUssClassName = UssClassName + "__button";
-
- static readonly string k_LayoutPath = $"{CollaborateWindow.LayoutPath}/{nameof(AlertBox)}.uxml";
- static readonly string k_StylePath = $"{CollaborateWindow.StylePath}/{nameof(AlertBox)}.uss";
-
- readonly Button m_Button;
- readonly VisualElement m_Icon;
- readonly TextElement m_Text;
-
- // Uss classes to set which icon is displayed.
- const string k_UssIconInfo = "icon-info";
- const string k_UssIconWarning = "icon-warning";
- const string k_UssIconAlert = "icon-alert";
-
- ///
- /// Queue of alerts to be displayed.
- ///
- readonly SortedSet m_AlertEntryList;
-
- ///
- /// Initialize the box and hide it.
- ///
- public AlertBox()
- {
- // Get the layout
- AddToClassList(UssClassName);
- AssetDatabase.LoadAssetAtPath(k_LayoutPath).CloneTree(this);
- styleSheets.Add(AssetDatabase.LoadAssetAtPath(k_StylePath));
-
- // Initialise fields
- m_Icon = this.Q(className: IconUssClassName);
- m_Text = this.Q(className: TextUssClassName);
- m_Button = this.Q