diff --git a/MediaBrowser.WebDashboard.nuget.targets b/MediaBrowser.WebDashboard.nuget.targets
deleted file mode 100644
index e69ce0e64f..0000000000
--- a/MediaBrowser.WebDashboard.nuget.targets
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- -
',html+=options.text,html+="
");var scrollerClassName="actionSheetScroller";layoutManager.tv&&(scrollerClassName+=" actionSheetScroller-tv focuscontainer-x focuscontainer-y"),html+='0){var V=B[B.length-1];V.duration=G-V.dts}var z={dts:G,pts:G,cts:0,unit:N,size:N.byteLength,duration:0,originalDts:I,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}};B.push(z),v+=C.byteLength,U+=a}var H=B[B.length-1];H.duration=x+M-H.dts,M=Math.round(a)}A.push({dts:x,pts:x,cts:0,unit:T.unit,size:T.unit.byteLength,duration:M,originalDts:I,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}}),D&&A.push.apply(A,B)}u?p=new Uint8Array(v):(p=new Uint8Array(v),p[0]=v>>>24&255,p[1]=v>>>16&255,p[2]=v>>>8&255,p[3]=255&v,p.set(l.default.types.mdat,4));for(var K=0;K ${LabelSelectHomeScreenItemsFolders} A beautiful app for your TV and large screen tablet. '+nameText+" runs on Windows, Xbox One, Raspberry Pi, Samsung Smart TVs, Sony PS4, Web Browsers, and more. Enjoy Emby DVR, get free access to Emby apps, and more. A beautiful app for your TV and large screen tablet. Emby Theater runs on Windows, Xbox One, Raspberry Pi, Samsung Smart TVs, Sony PS4, Web Browsers, and more. Enjoy Emby DVR, get free access to Emby apps, and more. ",html+=name,html+=" "+globalize.translate("sharedcomponents#HeaderEnabledFieldsHelp")+" "+globalize.translate("sharedcomponents#HeaderEnabledFieldsHelp")+" "+globalize.translate("sharedcomponents#MessageDidYouKnowCinemaMode")+" "+globalize.translate("sharedcomponents#MessageDidYouKnowCinemaMode2")+" ',html+=globalize.translate("sharedcomponents#HowDidYouPay"),html+=" ",html+=' ",html+=' "+globalize.translate("sharedcomponents#MessageDidYouKnowCinemaMode")+" "+globalize.translate("sharedcomponents#MessageDidYouKnowCinemaMode2")+" ',html+=globalize.translate("sharedcomponents#HowDidYouPay"),html+=" ",html+=' ",html+='=s-this._config.lazyLoadRecoverDuration&&(n=!0);break}}n&&(window.clearInterval(this._progressChecker),this._progressChecker=null,n&&(d.default.v(this.TAG,"Continue loading from paused position"),this._transmuxer.resume()))}},{key:"_isTimepointBuffered",value:function(e){for(var t=this._mediaElement.buffered,n=0;n'+channel.ChannelNumber+"
"),!hasChannelImage&&channel.Name&&(html+='
",tabText+=date.getDate(),html+=' ",html+="'+channel.ChannelNumber+"
"),!hasChannelImage&&channel.Name&&(html+='
",tabText+=date.getDate(),html+=' ",html+="',prefix+=item.Name,prefix+="
",html=prefix+html,html+="
- ${HeaderHomeScreenContent}
-
-
${HeaderLibraryFolders}
diff --git a/dashboard-ui/bower_components/emby-webcomponents/homesections/homesections.css b/dashboard-ui/bower_components/emby-webcomponents/homesections/homesections.css
index 7e148bb2b2..f8c9067d94 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/homesections/homesections.css
+++ b/dashboard-ui/bower_components/emby-webcomponents/homesections/homesections.css
@@ -1 +1 @@
-@media all and (orientation:portrait) and (min-width:540px) and (max-width:1000px){.overflowHomeLibraryCard{width:30vw!important}}
\ No newline at end of file
+.homeLibraryButton{min-width:18%;margin:.5em!important}@media all and (max-width:50em){.homeLibraryButton{width:46%!important}}
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/emby-webcomponents/homesections/homesections.js b/dashboard-ui/bower_components/emby-webcomponents/homesections/homesections.js
index 502e385d44..d10f038f24 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/homesections/homesections.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/homesections/homesections.js
@@ -1 +1 @@
-define(["cardBuilder","registrationServices","appSettings","dom","apphost","layoutManager","imageLoader","globalize","itemShortcuts","itemHelper","appRouter","emby-button","paper-icon-button-light","emby-itemscontainer","emby-scroller","emby-linkbutton","css!./homesections"],function(cardBuilder,registrationServices,appSettings,dom,appHost,layoutManager,imageLoader,globalize,itemShortcuts,itemHelper,appRouter){"use strict";function getDefaultSection(index){switch(index){case 0:return"smalllibrarytiles";case 1:return"resume";case 2:return"resumeaudio";case 3:return"livetv";case 4:return"nextup";case 5:return"latestmedia";case 6:return"none";default:return""}}function getAllSectionsToShow(userSettings,sectionCount){for(var sections=[],i=0,length=sectionCount;i
'+globalize.translate("sharedcomponents#HeaderMyMedia")+"
",layoutManager.tv||(html+='Discover Emby Theater
',html+='Discover Emby Premiere
',html+=''+globalize.translate("sharedcomponents#LatestFromLibrary",parent.Name)+"
":(html+='',html+='',html+=globalize.translate("sharedcomponents#LatestFromLibrary",parent.Name),html+="
",html+='',html+=""),html+="'+globalize.translate("sharedcomponents#HeaderLatestChannelMedia")+"
",html+=enableScrollX()?''+globalize.translate("sharedcomponents#HeaderMyDownloads")+"
":(html+='',html+='',html+=globalize.translate("sharedcomponents#HeaderMyDownloads"),html+="
",html+='',html+="",html+=''),html+="'+globalize.translate("sharedcomponents#HeaderMyMedia")+"
",layoutManager.tv||(html+=''+globalize.translate("sharedcomponents#HeaderContinueWatching")+"
",html+=enableScrollX()?''+globalize.translate("sharedcomponents#HeaderContinueListening")+"
",html+=enableScrollX()?''+globalize.translate("sharedcomponents#HeaderActiveRecordings")+"
",html+=enableScrollX()?''+globalize.translate("sharedcomponents#LiveTV")+"
",html+="'+globalize.translate("sharedcomponents#HeaderOnNow")+"
":(html+='',html+='',html+=globalize.translate("sharedcomponents#HeaderOnNow"),html+="
",html+='',html+=""),html+="'+globalize.translate("sharedcomponents#LiveTvRequiresUnlock")+"
",html+=''+globalize.translate("sharedcomponents#HeaderNextUp")+"
":(html+='',html+='',html+=globalize.translate("sharedcomponents#HeaderNextUp"),html+="
",html+='',html+=""),html+="'+text+"
",layoutManager.tv||(html+=''+globalize.translate("sharedcomponents#More")+""),html+="'+globalize.translate("sharedcomponents#HeaderLatestRecordings")+"
",!layoutManager.tv,html+="'+globalize.translate("sharedcomponents#HeaderMyMedia")+"
",layoutManager.tv||(html+='Discover Emby Theater
',html+='Discover Emby Premiere
',html+=''+globalize.translate("sharedcomponents#LatestFromLibrary",parent.Name)+"
":(html+='',html+='',html+=globalize.translate("sharedcomponents#LatestFromLibrary",parent.Name),html+="
",html+='',html+=""),html+="'+globalize.translate("sharedcomponents#HeaderMyDownloads")+"
":(html+='',html+='',html+=globalize.translate("sharedcomponents#HeaderMyDownloads"),html+="
",html+='',html+="",html+=''),html+="'+globalize.translate("sharedcomponents#HeaderMyMedia")+"
",layoutManager.tv||(html+=''+globalize.translate("sharedcomponents#HeaderContinueWatching")+"
",enableScrollX()?html+=''+globalize.translate("sharedcomponents#HeaderContinueWatching")+"
",enableScrollX()?html+=''+globalize.translate("sharedcomponents#LiveTV")+"
",html+="'+globalize.translate("sharedcomponents#HeaderOnNow")+"
":(html+='',html+='',html+=globalize.translate("sharedcomponents#HeaderOnNow"),html+="
",html+='',html+=""),html+="'+globalize.translate("sharedcomponents#LiveTvRequiresUnlock")+"
",html+=''+globalize.translate("sharedcomponents#HeaderNextUp")+"
":(html+='',html+='',html+=globalize.translate("sharedcomponents#HeaderNextUp"),html+="
",html+='',html+=""),html+="'+title+"
",layoutManager.tv,html+="'):item.ImageTags.Logo?(imgUrl=apiClient.getScaledImageUrl(item.Id,{maxHeight:logoHeight,type:"logo",tag:item.ImageTags.Logo}),html+='
'):html+=parentName||name,html+="
':'
',html+=itemGroupTitle,html+="
",html+="':'
',html+=itemGroupTitle,html+="
",html+=""+globalize.translate("sharedcomponents#HeaderEnabledFields")+"
",html+=""+globalize.translate("sharedcomponents#HeaderEnabledFields")+"
",html+="
${Edit}
-
${People}
-
${Studios}
-
${Tags}
- ',html+=playerInfo.deviceName||playerInfo.name,html+="
",html+="',html+=currentDeviceName,html+="
",html+="
")})),sessionStats}function getDisplayBitrate(bitrate){return bitrate>1e6?(bitrate/1e6).toFixed(1)+" Mbps":Math.floor(bitrate/1e3)+" kbps"}function getMediaSourceStats(session,player,displayPlayMethod){var sessionStats=[],mediaSource=playbackManager.currentMediaSource(player)||{},totalBitrate=mediaSource.Bitrate;mediaSource.Container&&sessionStats.push({label:"Container:",value:mediaSource.Container}),totalBitrate&&sessionStats.push({label:"Bitrate:",value:getDisplayBitrate(totalBitrate)});var mediaStreams=mediaSource.MediaStreams||[],videoStream=mediaStreams.filter(function(s){return"Video"===s.Type})[0]||{},videoCodec=videoStream.Codec,audioStreamIndex=playbackManager.getAudioStreamIndex(player),audioStream=playbackManager.audioTracks(player).filter(function(s){return"Audio"===s.Type&&s.Index===audioStreamIndex})[0]||{},audioCodec=audioStream.Codec,audioChannels=audioStream.Channels,videoInfos=[];videoCodec&&videoInfos.push(videoCodec.toUpperCase()),videoStream.Profile&&videoInfos.push(videoStream.Profile),videoInfos.length&&sessionStats.push({label:"Video codec:",value:videoInfos.join(" ")}),videoStream.BitRate&&sessionStats.push({label:"Video bitrate:",value:getDisplayBitrate(videoStream.BitRate)});var audioInfos=[];return audioCodec&&audioInfos.push(audioCodec.toUpperCase()),audioStream.Profile&&audioInfos.push(audioStream.Profile),audioInfos.length&&sessionStats.push({label:"Audio codec:",value:audioInfos.join(" ")}),audioStream.BitRate&&sessionStats.push({label:"Audio bitrate:",value:getDisplayBitrate(audioStream.BitRate)}),audioChannels&&sessionStats.push({label:"Audio channels:",value:audioChannels}),audioStream.SampleRate&&sessionStats.push({label:"Audio sample rate:",value:audioStream.SampleRate+" Hz"}),audioStream.BitDepth&&sessionStats.push({label:"Audio bit depth:",value:audioStream.BitDepth}),sessionStats}function getStats(instance,player){var statsPromise=player.getStats?player.getStats():Promise.resolve({}),sessionPromise=getSession(instance,player);return Promise.all([statsPromise,sessionPromise]).then(function(responses){var playerStatsResult=responses[0],playerStats=playerStatsResult.categories||[],session=responses[1],displayPlayMethod=playMethodHelper.getDisplayPlayMethod(session),baseCategory={stats:[],name:"Playback Info"};baseCategory.stats.unshift({label:"Play method:",value:displayPlayMethod}),baseCategory.stats.unshift({label:"Player:",value:player.name});var categories=[];categories.push(baseCategory);for(var i=0,length=playerStats.length;i
")})),sessionStats}function getDisplayBitrate(bitrate){return bitrate>1e6?(bitrate/1e6).toFixed(1)+" Mbps":Math.floor(bitrate/1e3)+" kbps"}function getMediaSourceStats(session,player,displayPlayMethod){var sessionStats=[],mediaSource=playbackManager.currentMediaSource(player)||{},totalBitrate=mediaSource.Bitrate;mediaSource.Container&&sessionStats.push({label:"Container:",value:mediaSource.Container}),totalBitrate&&sessionStats.push({label:"Bitrate:",value:getDisplayBitrate(totalBitrate)});var mediaStreams=mediaSource.MediaStreams||[],videoStream=mediaStreams.filter(function(s){return"Video"===s.Type})[0]||{},videoCodec=videoStream.Codec,audioStreamIndex=playbackManager.getAudioStreamIndex(player),audioStream=playbackManager.audioTracks(player).filter(function(s){return"Audio"===s.Type&&s.Index===audioStreamIndex})[0]||{},audioCodec=audioStream.Codec,audioChannels=audioStream.Channels,videoInfos=[];videoCodec&&videoInfos.push(videoCodec.toUpperCase()),videoStream.Profile&&videoInfos.push(videoStream.Profile),videoInfos.length&&sessionStats.push({label:"Video codec:",value:videoInfos.join(" ")}),videoStream.BitRate&&sessionStats.push({label:"Video bitrate:",value:getDisplayBitrate(videoStream.BitRate)});var audioInfos=[];return audioCodec&&audioInfos.push(audioCodec.toUpperCase()),audioStream.Profile&&audioInfos.push(audioStream.Profile),audioInfos.length&&sessionStats.push({label:"Audio codec:",value:audioInfos.join(" ")}),audioStream.BitRate&&sessionStats.push({label:"Audio bitrate:",value:getDisplayBitrate(audioStream.BitRate)}),audioChannels&&sessionStats.push({label:"Audio channels:",value:audioChannels}),audioStream.SampleRate&&sessionStats.push({label:"Audio sample rate:",value:audioStream.SampleRate+" Hz"}),audioStream.BitDepth&&sessionStats.push({label:"Audio bit depth:",value:audioStream.BitDepth}),sessionStats}function getStats(instance,player){var statsPromise=player.getStats?player.getStats():Promise.resolve({}),sessionPromise=getSession(instance,player);return Promise.all([statsPromise,sessionPromise]).then(function(responses){var playerStatsResult=responses[0],playerStats=playerStatsResult.categories||[],session=responses[1],displayPlayMethod=playMethodHelper.getDisplayPlayMethod(session),baseCategory={stats:[],name:"Playback Info"};baseCategory.stats.unshift({label:"Play method:",value:displayPlayMethod}),baseCategory.stats.unshift({label:"Player:",value:player.name});var categories=[];categories.push(baseCategory);for(var i=0,length=playerStats.length;i',html+=title,html+="
",html+="',html+=title,html+="
",html+="
',html+=title,html+="
",html+="',html+=title,html+="
",html+="Emby Premiere',html+="
",html+=""+globalize.translate("sharedcomponents#HeaderDiscoverEmbyPremiere")+"
",html+="'+globalize.translate("sharedcomponents#HeaderBenefitsEmbyPremiere")+"
",html+='
",html+=' ",html+=""+globalize.translate("sharedcomponents#HeaderTermsOfPurchase")+"
",termsOfPurchase.push(''+globalize.translate("sharedcomponents#PrivacyPolicy")+""),termsOfPurchase.push(''+globalize.translate("sharedcomponents#TermsOfUse")+""),html+="",html+=termsOfPurchase.map(getPurchaseTermHtml).join(""),html+="
"):html}function showInAppPurchaseElement(subscriptionOptions,unlockableProductInfo,dialogOptions,resolve,reject){function onCloseButtonClick(){dialogHelper.close(dlg)}cancelInAppPurchase(),currentDisplayingProductInfos=subscriptionOptions.slice(0),unlockableProductInfo&¤tDisplayingProductInfos.push(unlockableProductInfo);var dlg=dialogHelper.createDialog({size:layoutManager.tv?"fullscreen":"fullscreen-border",removeOnClose:!0,scrollY:!1});dlg.classList.add("formDialog");var html="";html+='',html+=dialogOptions.title||"",html+="
",html+="',html+=item.name,html+="
",html+='',html+=iapManager.getRestoreButtonText(),html+="
",html+="Emby Premiere',html+="
",html+=""+globalize.translate("sharedcomponents#HeaderDiscoverEmbyPremiere")+"
",html+="'+globalize.translate("sharedcomponents#HeaderBenefitsEmbyPremiere")+"
",html+='
",html+=' ",html+=""+globalize.translate("sharedcomponents#HeaderTermsOfPurchase")+"
",termsOfPurchase.push(''+globalize.translate("sharedcomponents#PrivacyPolicy")+""),termsOfPurchase.push(''+globalize.translate("sharedcomponents#TermsOfUse")+""),html+="",html+=termsOfPurchase.map(getPurchaseTermHtml).join(""),html+="
"):html}function showInAppPurchaseElement(subscriptionOptions,unlockableProductInfo,dialogOptions,resolve,reject){function onCloseButtonClick(){dialogHelper.close(dlg)}cancelInAppPurchase(),currentDisplayingProductInfos=subscriptionOptions.slice(0),unlockableProductInfo&¤tDisplayingProductInfos.push(unlockableProductInfo);var dlg=dialogHelper.createDialog({size:layoutManager.tv?"fullscreen":"fullscreen-border",removeOnClose:!0,scrollY:!1});dlg.classList.add("formDialog");var html="";html+='',html+=dialogOptions.title||"",html+="
",html+="',html+=item.name,html+="
",html+='',html+=iapManager.getRestoreButtonText(),html+="
",html+="${Movies}
- ${Movies}
- ${Shows}
- ${Shows}
- ${Episodes}
- ${Episodes}
- ${Sports}
- ${Sports}
- ${Kids}
- ${Kids}
- ${News}
- ${News}
- ${Programs}
- ${Programs}
- ${Videos}
- ${Videos}
- ${Playlists}
+
+ ${Artists}
- ${Artists}
- ${Albums}
- ${Albums}
- ${Songs}
- ${Songs}
- ${HeaderPhotoAlbums}
+
+ ${Photos}
+
+ ${HeaderAudioBooks}
- ${HeaderAudioBooks}
- ${Books}
- ${Books}
- ${People}
- ${People}
- ${Sort}
',html+=""+globalize.translate("sharedcomponents#MySubtitles")+"
",html+=layoutManager.tv?'"+provider+"
",html+=layoutManager.tv?'"+globalize.translate("sharedcomponents#MySubtitles")+"
",html+=""+provider+"
",layoutManager.tv,html+="${Settings}
',html+="