diff --git a/MediaBrowser.Server.Mac/Emby.Server.Mac.csproj b/MediaBrowser.Server.Mac/Emby.Server.Mac.csproj
index 0b4dce140..dde4c544e 100644
--- a/MediaBrowser.Server.Mac/Emby.Server.Mac.csproj
+++ b/MediaBrowser.Server.Mac/Emby.Server.Mac.csproj
@@ -476,6 +476,9 @@
Resources\dashboard-ui\photos.html
+
+ Resources\dashboard-ui\pin.html
+
Resources\dashboard-ui\playbackconfiguration.html
@@ -1316,6 +1319,18 @@
Resources\dashboard-ui\bower_components\emby-webcomponents\visibleinviewport.js
+
+ Resources\dashboard-ui\bower_components\emby-webcomponents\actionsheet\actionsheet.css
+
+
+ Resources\dashboard-ui\bower_components\emby-webcomponents\actionsheet\actionsheet.js
+
+
+ Resources\dashboard-ui\bower_components\emby-webcomponents\confirm\confirm.js
+
+
+ Resources\dashboard-ui\bower_components\emby-webcomponents\confirm\nativeconfirm.js
+
Resources\dashboard-ui\bower_components\emby-webcomponents\images\basicimagefetcher.js
@@ -1325,6 +1340,12 @@
Resources\dashboard-ui\bower_components\emby-webcomponents\images\persistentimagefetcher.js
+
+ Resources\dashboard-ui\bower_components\emby-webcomponents\loading\loading.css
+
+
+ Resources\dashboard-ui\bower_components\emby-webcomponents\loading\loading.js
+
Resources\dashboard-ui\bower_components\emby-webcomponents\paperdialoghelper\paperdialoghelper.css
@@ -1352,6 +1373,9 @@
Resources\dashboard-ui\bower_components\emby-webcomponents\slideshow\style.css
+
+ Resources\dashboard-ui\bower_components\emby-webcomponents\toast\toast.js
+
Resources\dashboard-ui\bower_components\fastclick\.bower.json
@@ -1868,6 +1892,9 @@
Resources\dashboard-ui\bower_components\iron-demo-helpers\.gitignore
+
+ Resources\dashboard-ui\bower_components\iron-demo-helpers\.travis.yml
+
Resources\dashboard-ui\bower_components\iron-demo-helpers\CONTRIBUTING.md
@@ -2003,6 +2030,9 @@
Resources\dashboard-ui\bower_components\iron-flex-layout\index.html
+
+ Resources\dashboard-ui\bower_components\iron-flex-layout\iron-flex-layout-classes.html
+
Resources\dashboard-ui\bower_components\iron-flex-layout\iron-flex-layout.html
@@ -2012,12 +2042,18 @@
Resources\dashboard-ui\bower_components\iron-flex-layout\classes\iron-shadow-flex-layout.html
-
- Resources\dashboard-ui\bower_components\iron-flex-layout\demo\demo-snippet.html
-
Resources\dashboard-ui\bower_components\iron-flex-layout\demo\index.html
+
+ Resources\dashboard-ui\bower_components\iron-flex-layout\test\index.html
+
+
+ Resources\dashboard-ui\bower_components\iron-flex-layout\test\iron-flex-layout-classes.html
+
+
+ Resources\dashboard-ui\bower_components\iron-flex-layout\test\iron-flex-layout.html
+
Resources\dashboard-ui\bower_components\iron-form-element-behavior\.bower.json
@@ -2486,6 +2522,12 @@
Resources\dashboard-ui\bower_components\iron-resizable-behavior\.gitignore
+
+ Resources\dashboard-ui\bower_components\iron-resizable-behavior\.travis.yml
+
+
+ Resources\dashboard-ui\bower_components\iron-resizable-behavior\CONTRIBUTING.md
+
Resources\dashboard-ui\bower_components\iron-resizable-behavior\README.md
@@ -2642,50 +2684,17 @@
Resources\dashboard-ui\bower_components\jquery\.bower.json
-
- Resources\dashboard-ui\bower_components\jquery\.editorconfig
-
-
- Resources\dashboard-ui\bower_components\jquery\.gitattributes
-
-
- Resources\dashboard-ui\bower_components\jquery\.gitignore
-
-
- Resources\dashboard-ui\bower_components\jquery\.jscsrc
-
-
- Resources\dashboard-ui\bower_components\jquery\.jshintignore
-
-
- Resources\dashboard-ui\bower_components\jquery\.jshintrc
-
-
- Resources\dashboard-ui\bower_components\jquery\.mailmap
-
-
- Resources\dashboard-ui\bower_components\jquery\.npmignore
-
-
- Resources\dashboard-ui\bower_components\jquery\.travis.yml
-
Resources\dashboard-ui\bower_components\jquery\AUTHORS.txt
-
- Resources\dashboard-ui\bower_components\jquery\CONTRIBUTING.md
-
-
- Resources\dashboard-ui\bower_components\jquery\Gruntfile.js
-
Resources\dashboard-ui\bower_components\jquery\LICENSE.txt
Resources\dashboard-ui\bower_components\jquery\README.md
-
- Resources\dashboard-ui\bower_components\jquery\package.json
+
+ Resources\dashboard-ui\bower_components\jquery\bower.json
Resources\dashboard-ui\bower_components\jquery\dist\jquery.js
@@ -2696,44 +2705,14 @@
Resources\dashboard-ui\bower_components\jquery\dist\jquery.min.map
-
- Resources\dashboard-ui\bower_components\jquery\external\npo\npo.js
+
+ Resources\dashboard-ui\bower_components\jquery\dist\jquery.slim.js
-
- Resources\dashboard-ui\bower_components\jquery\external\qunit\LICENSE.txt
+
+ Resources\dashboard-ui\bower_components\jquery\dist\jquery.slim.min.js
-
- Resources\dashboard-ui\bower_components\jquery\external\qunit\MIT-LICENSE.txt
-
-
- Resources\dashboard-ui\bower_components\jquery\external\qunit\qunit.css
-
-
- Resources\dashboard-ui\bower_components\jquery\external\qunit\qunit.js
-
-
- Resources\dashboard-ui\bower_components\jquery\external\qunit-assert-step\MIT-LICENSE.txt
-
-
- Resources\dashboard-ui\bower_components\jquery\external\qunit-assert-step\qunit-assert-step.js
-
-
- Resources\dashboard-ui\bower_components\jquery\external\requirejs\require.js
-
-
- Resources\dashboard-ui\bower_components\jquery\external\sinon\sinon-1.14.1.js
-
-
- Resources\dashboard-ui\bower_components\jquery\external\sizzle\LICENSE.txt
-
-
- Resources\dashboard-ui\bower_components\jquery\external\sizzle\dist\sizzle.js
-
-
- Resources\dashboard-ui\bower_components\jquery\external\sizzle\dist\sizzle.min.js
-
-
- Resources\dashboard-ui\bower_components\jquery\external\sizzle\dist\sizzle.min.map
+
+ Resources\dashboard-ui\bower_components\jquery\dist\jquery.slim.min.map
Resources\dashboard-ui\bower_components\jquery\src\.jshintrc
@@ -2801,6 +2780,9 @@
Resources\dashboard-ui\bower_components\jquery\src\serialize.js
+
+ Resources\dashboard-ui\bower_components\jquery\src\support.js
+
Resources\dashboard-ui\bower_components\jquery\src\traversing.js
@@ -2840,6 +2822,9 @@
Resources\dashboard-ui\bower_components\jquery\src\attributes\val.js
+
+ Resources\dashboard-ui\bower_components\jquery\src\core\DOMEval.js
+
Resources\dashboard-ui\bower_components\jquery\src\core\access.js
@@ -2879,12 +2864,24 @@
Resources\dashboard-ui\bower_components\jquery\src\data\Data.js
+
+ Resources\dashboard-ui\bower_components\jquery\src\data\accepts.js
+
+
+ Resources\dashboard-ui\bower_components\jquery\src\data\support.js
+
+
+ Resources\dashboard-ui\bower_components\jquery\src\deferred\exceptionHook.js
+
Resources\dashboard-ui\bower_components\jquery\src\effects\Tween.js
Resources\dashboard-ui\bower_components\jquery\src\effects\animatedSelector.js
+
+ Resources\dashboard-ui\bower_components\jquery\src\effects\support.js
+
Resources\dashboard-ui\bower_components\jquery\src\event\ajax.js
@@ -2912,6 +2909,9 @@
Resources\dashboard-ui\bower_components\jquery\src\manipulation\buildFragment.js
+
+ Resources\dashboard-ui\bower_components\jquery\src\manipulation\createSafeFragment.js
+
Resources\dashboard-ui\bower_components\jquery\src\manipulation\getAll.js
@@ -2930,366 +2930,6 @@
Resources\dashboard-ui\bower_components\jquery\src\traversing\findFilter.js
-
- Resources\dashboard-ui\bower_components\jquery\test\.jshintrc
-
-
- Resources\dashboard-ui\bower_components\jquery\test\delegatetest.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\hovertest.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\index.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\jquery.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\localfile.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\networkerror.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\promises_aplus_adapter.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\readywait.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\xhtml.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\1x1.jpg
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\atom+xml.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\badcall.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\badjson.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\cleanScript.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\dashboard.xml
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\echoData.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\echoQuery.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\errorWithJSON.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\errorWithText.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\etag.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\headers.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\if_modified_since.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\iframe.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\jquery-1.9.1.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\json.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\json_obj.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\jsonp.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\name.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\name.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\nocontent.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\params_html.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\readywaitasset.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\readywaitloader.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\script.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\statusText.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\test.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\test.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\test2.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\test3.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\testbar.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\testinit.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\testrunner.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\testsuite.css
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\text.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\with_fries.xml
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\with_fries_over_jsonp.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\ajax\content-type.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\ajax\evalScript.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\ajax\method.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\ajax\onunload.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\ajax\unreleasedXHR.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\core\aliased.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\core\cc_on.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\core\dont_return.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\core\dynamic_ready.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\core\onready.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\css\cssWidthBeforeDocReady.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\data\dataAttrs.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\dimensions\documentLarge.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\event\focusElem.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\event\focusinCrossFrame.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\event\interactiveReady.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\event\longLoadScript.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\event\onbeforeunload.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\event\promiseReady.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\event\syncReady.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\event\triggerunload.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\manipulation\iframe-denied.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\offset\absolute.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\offset\body.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\offset\fixed.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\offset\relative.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\offset\scroll.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\offset\static.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\offset\table.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\selector\html5_selector.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\selector\sizzle_cache.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\support\bodyBackground.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\support\csp-clean.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\support\csp-log.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\support\csp.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\support\csp.php
-
-
- Resources\dashboard-ui\bower_components\jquery\test\data\support\getComputedSupport.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\integration\gh-1764-fullscreen.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\integration\gh-2343-ie-radio-click.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\integration\data\gh-1764-fullscreen-iframe.css
-
-
- Resources\dashboard-ui\bower_components\jquery\test\integration\data\gh-1764-fullscreen-iframe.html
-
-
- Resources\dashboard-ui\bower_components\jquery\test\integration\data\gh-1764-fullscreen.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\node_smoke_tests\.jshintrc
-
-
- Resources\dashboard-ui\bower_components\jquery\test\node_smoke_tests\document_missing.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\node_smoke_tests\document_passed.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\node_smoke_tests\document_present_originally.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\node_smoke_tests\iterable_with_native_symbol.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\node_smoke_tests\iterable_with_symbol_polyfill.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\node_smoke_tests\lib\ensure_global_not_created.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\node_smoke_tests\lib\ensure_iterability_es6.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\node_smoke_tests\lib\ensure_jquery.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\ajax.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\attributes.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\basic.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\callbacks.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\core.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\css.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\data.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\deferred.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\deprecated.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\dimensions.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\effects.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\event.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\exports.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\manipulation.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\offset.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\queue.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\ready.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\selector.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\serialize.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\support.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\traversing.js
-
-
- Resources\dashboard-ui\bower_components\jquery\test\unit\wrap.js
-
Resources\dashboard-ui\bower_components\jstree\.bower.json
@@ -8279,6 +7919,9 @@
Resources\dashboard-ui\components\filterdialog\filterdialog.template.html
+
+ Resources\dashboard-ui\components\filterdialog\style.css
+
Resources\dashboard-ui\components\guestinviter\guestinviter.js
@@ -8762,21 +8405,21 @@
Resources\dashboard-ui\devices\ios\ios.css
+
+ Resources\dashboard-ui\devices\windowsphone\wp.css
+
Resources\dashboard-ui\files\dummy.mp4
Resources\dashboard-ui\legacy\buttonenabled.js
-
- Resources\dashboard-ui\legacy\deferred.js
+
+ Resources\dashboard-ui\legacy\dashboard.js
Resources\dashboard-ui\scripts\aboutpage.js
-
- Resources\dashboard-ui\scripts\actionsheet.js
-
Resources\dashboard-ui\scripts\addpluginpage.js
@@ -9104,6 +8747,9 @@
Resources\dashboard-ui\scripts\photos.js
+
+ Resources\dashboard-ui\scripts\pin.js
+
Resources\dashboard-ui\scripts\playbackconfiguration.js
@@ -9122,9 +8768,6 @@
Resources\dashboard-ui\scripts\pluginspage.js
-
- Resources\dashboard-ui\scripts\queryfilters.js
-
Resources\dashboard-ui\scripts\ratingdialog.js
@@ -9920,8 +9563,11 @@
Resources\dashboard-ui\thirdparty\social-share-kit-1.0.4\dist\js\social-share-kit.min.js
-
- Resources\dashboard-ui\voice\textprocessor-en-us.js
+
+ Resources\dashboard-ui\voice\Readme.md
+
+
+ Resources\dashboard-ui\voice\grammarprocessor.js
Resources\dashboard-ui\voice\voice.css
@@ -9929,5 +9575,38 @@
Resources\dashboard-ui\voice\voice.js
+
+ Resources\dashboard-ui\voice\voicecommands.js
+
+
+ Resources\dashboard-ui\voice\voicedialog.js
+
+
+ Resources\dashboard-ui\voice\commands\controlcommands.js
+
+
+ Resources\dashboard-ui\voice\commands\disablecommands.js
+
+
+ Resources\dashboard-ui\voice\commands\enablecommands.js
+
+
+ Resources\dashboard-ui\voice\commands\playcommands.js
+
+
+ Resources\dashboard-ui\voice\commands\searchcommands.js
+
+
+ Resources\dashboard-ui\voice\commands\showcommands.js
+
+
+ Resources\dashboard-ui\voice\commands\togglecommands.js
+
+
+ Resources\dashboard-ui\voice\grammar\en-US.json
+
+
+ Resources\dashboard-ui\voice\grammar\grammar.json
+
\ No newline at end of file