diff --git a/dashboard-ui/bower_components/iron-meta/.bower.json b/dashboard-ui/bower_components/iron-meta/.bower.json
index e1304d174b..f4bfef4a7c 100644
--- a/dashboard-ui/bower_components/iron-meta/.bower.json
+++ b/dashboard-ui/bower_components/iron-meta/.bower.json
@@ -26,14 +26,14 @@
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
"main": "iron-meta.html",
- "homepage": "https://github.com/PolymerElements/iron-meta",
+ "homepage": "https://github.com/polymerelements/iron-meta",
"_release": "1.1.1",
"_resolution": {
"type": "version",
"tag": "v1.1.1",
"commit": "e171ee234b482219c9514e6f9551df48ef48bd9f"
},
- "_source": "git://github.com/PolymerElements/iron-meta.git",
+ "_source": "git://github.com/polymerelements/iron-meta.git",
"_target": "^1.0.0",
- "_originalSource": "PolymerElements/iron-meta"
+ "_originalSource": "polymerelements/iron-meta"
}
\ No newline at end of file
diff --git a/dashboard-ui/music.html b/dashboard-ui/music.html
index fb020e470c..84a73af00a 100644
--- a/dashboard-ui/music.html
+++ b/dashboard-ui/music.html
@@ -13,7 +13,7 @@
${TabArtists}
${TabSongs}
${TabGenres}
- ${TabFolders}
+ ${TabFolders}
diff --git a/dashboard-ui/scripts/localsync.js b/dashboard-ui/scripts/localsync.js
index b0b49ea67d..58cd5f985f 100644
--- a/dashboard-ui/scripts/localsync.js
+++ b/dashboard-ui/scripts/localsync.js
@@ -14,28 +14,28 @@
return syncPromise.promise();
}
- var deferred = DeferredBuilder.Deferred();
+ return new Promise(function (resolve, reject) {
- require(['multiserversync'], function () {
+ require(['multiserversync'], function () {
- options = options || {};
+ options = options || {};
- LocalSync.normalizeSyncOptions(options);
+ LocalSync.normalizeSyncOptions(options);
- options.cameraUploadServers = AppSettings.cameraUploadServers();
+ options.cameraUploadServers = AppSettings.cameraUploadServers();
- syncPromise = new MediaBrowser.MultiServerSync(ConnectionManager).sync(options).then(function () {
+ syncPromise = new MediaBrowser.MultiServerSync(ConnectionManager).sync(options).then(function () {
- syncPromise = null;
- deferred.resolve();
+ syncPromise = null;
+ resolve();
- }, function () {
+ }, function () {
- syncPromise = null;
+ syncPromise = null;
+ });
});
- });
- return deferred.promise();
+ });
},
normalizeSyncOptions: function (options) {
diff --git a/dashboard-ui/scripts/loginpage.js b/dashboard-ui/scripts/loginpage.js
index b219151ff3..6111dcb1b8 100644
--- a/dashboard-ui/scripts/loginpage.js
+++ b/dashboard-ui/scripts/loginpage.js
@@ -3,16 +3,16 @@
getApiClient: function () {
var serverId = getParameterByName('serverid');
- var deferred = DeferredBuilder.Deferred();
- if (serverId) {
- deferred.resolveWith(null, [ConnectionManager.getOrCreateApiClient(serverId)]);
+ return new Promise(function (resolve, reject) {
- } else {
- deferred.resolveWith(null, [ApiClient]);
- }
+ if (serverId) {
+ resolve(ConnectionManager.getOrCreateApiClient(serverId));
- return deferred.promise();
+ } else {
+ resolve(ApiClient);
+ }
+ });
},
onPageShow: function () {
diff --git a/dashboard-ui/scripts/nowplayingbar.js b/dashboard-ui/scripts/nowplayingbar.js
index fba777e68e..0e829aaf14 100644
--- a/dashboard-ui/scripts/nowplayingbar.js
+++ b/dashboard-ui/scripts/nowplayingbar.js
@@ -97,6 +97,8 @@
return;
}
+ onfinish();
+ return;
requestAnimationFrame(function () {
var keyframes = [
{ height: getHeight(elem), offset: 0 },
@@ -117,6 +119,7 @@
if (!browserInfo.animate || browserInfo.mobile) {
return;
}
+ return;
requestAnimationFrame(function () {
diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js
index 15298393c4..0e42cd85d7 100644
--- a/dashboard-ui/scripts/site.js
+++ b/dashboard-ui/scripts/site.js
@@ -1465,21 +1465,17 @@ var Dashboard = {
loadExternalPlayer: function () {
- var deferred = DeferredBuilder.Deferred();
+ return new Promise(function (resolve, reject) {
- require(['scripts/externalplayer.js'], function () {
+ require(['scripts/externalplayer.js'], function () {
- if (Dashboard.isRunningInCordova()) {
- require(['cordova/externalplayer.js'], function () {
-
- deferred.resolve();
- });
- } else {
- deferred.resolve();
- }
+ if (Dashboard.isRunningInCordova()) {
+ require(['cordova/externalplayer.js'], resolve);
+ } else {
+ resolve();
+ }
+ });
});
-
- return deferred.promise();
},
exitOnBack: function () {
@@ -2190,6 +2186,8 @@ var AppInfo = {};
deps.push('scripts/librarymenu');
deps.push('apiclient/deferred');
+ deps.push('css!css/card.css');
+
require(deps, function () {
$.mobile.filterHtml = Dashboard.filterHtml;
diff --git a/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.popup.css b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.popup.css
index 0077d36342..60fbf4dc88 100644
--- a/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.popup.css
+++ b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.popup.css
@@ -411,6 +411,19 @@
+/* Corner styling for dialogs and popups */
+.ui-corner-all > .ui-content:first-child {
+ -webkit-border-top-left-radius: inherit;
+ border-top-left-radius: inherit;
+ -webkit-border-top-right-radius: inherit;
+ border-top-right-radius: inherit;
+}
+.ui-corner-all > .ui-content:last-child {
+ -webkit-border-bottom-left-radius: inherit;
+ border-bottom-left-radius: inherit;
+ -webkit-border-bottom-right-radius: inherit;
+ border-bottom-right-radius: inherit;
+}
/* Popup arrow */
@@ -420,3 +433,9 @@
top: .6em /*{global-radii-blocks}*/;
bottom: .6em /*{global-radii-blocks}*/;
}
+
+
+/* Used for hiding elements by the filterable widget. You can also use this class to hide list items or buttons in controlgroups; this ensures correct corner styling. */
+.ui-screen-hidden {
+ display: none !important;
+}
\ No newline at end of file
diff --git a/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.structure.css b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.structure.css
deleted file mode 100644
index 410ebdcd80..0000000000
--- a/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.structure.css
+++ /dev/null
@@ -1,293 +0,0 @@
-/*
-* jQuery Mobile v1.4.5
-* http://jquerymobile.com
-*
-* Copyright 2010, 2014 jQuery Foundation, Inc. and other contributors
-* Released under the MIT license.
-* http://jquery.org/license
-*
-*/
-
-.ui-mobile fieldset,
-.ui-page {
- padding: 0;
- margin: 0;
-}
-.ui-mobile a img,
-.ui-mobile fieldset {
- border-width: 0;
-}
-/* Fixes for fieldset issues on IE10 and FF (see #6077) */
-.ui-mobile fieldset {
- min-width: 0;
-}
-@-moz-document url-prefix() {
- .ui-mobile fieldset {
- display: table-column;
- vertical-align: middle;
- }
-}
-
-/* Viewport */
-.ui-mobile-viewport {
- margin: 0;
- overflow-x: visible;
- -webkit-text-size-adjust: 100%;
- -ms-text-size-adjust:none;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-}
-/* Issue #2066 */
-body.ui-mobile-viewport,
-div.ui-mobile-viewport {
- overflow-x: hidden;
-}
-/* "page" containers - full-screen views, one should always be in view post-pageload */
-.ui-mobile [data-role=page],
-.ui-mobile [data-role=dialog],
-.ui-page {
- top: 0;
- left: 0;
- width: 100%;
- min-height: 100%;
- position: absolute;
- display: none;
- border: 0;
-}
-.ui-page {
- /*position: static !important;*/
-}
-/* On ios4, setting focus on the page element causes flashing during transitions when there is an outline, so we turn off outlines */
-.ui-page {
- outline: none;
-}
-.ui-mobile .ui-page-active {
- display: block;
- overflow: visible;
- overflow-x: hidden;
-}
-@media screen and (orientation: portrait) {
- .ui-mobile .ui-page {
- min-height: 420px;
- }
-}
-@media screen and (orientation: landscape) {
- .ui-mobile .ui-page {
- min-height: 300px;
- }
-}
-
-/* Fouc */
-.ui-mobile-rendering > * {
- visibility: hidden;
-}
-
-/* Headers, content panels */
-.ui-bar,
-.ui-body {
- position: relative;
- padding: .4em 1em;
- overflow: hidden;
- display: block;
- clear: both;
-}
-.ui-bar h1,
-.ui-bar h2,
-.ui-bar h3,
-.ui-bar h4,
-.ui-bar h5,
-.ui-bar h6 {
- margin: 0;
- padding: 0;
- font-size: 1em;
- display: inline-block;
-}
-.ui-content {
- border-width: 0;
- overflow: visible;
- overflow-x: hidden;
- padding: 1em;
-}
-/* Corner styling for dialogs and popups */
-.ui-corner-all > .ui-content:first-child {
- -webkit-border-top-left-radius: inherit;
- border-top-left-radius: inherit;
- -webkit-border-top-right-radius: inherit;
- border-top-right-radius: inherit;
-}
-.ui-corner-all > .ui-content:last-child {
- -webkit-border-bottom-left-radius: inherit;
- border-bottom-left-radius: inherit;
- -webkit-border-bottom-right-radius: inherit;
- border-bottom-right-radius: inherit;
-}
-
-/* Buttons and icons */
-.ui-btn {
- font-size: 16px;
- margin: .5em 0;
- padding: .7em 1em;
- display: block;
- position: relative;
- text-align: center;
- text-overflow: ellipsis;
- overflow: hidden;
- white-space: nowrap;
- cursor: pointer;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.ui-btn-icon-notext {
- padding: 0;
- width: 1.75em;
- height: 1.75em;
- text-indent: -9999px;
- white-space: nowrap !important;
-}
-.ui-mini {
- font-size: 12.5px;
-}
-.ui-mini .ui-btn {
- font-size: inherit;
-}
-.ui-mini.ui-btn-icon-notext,
-.ui-mini .ui-btn-icon-notext {
- font-size: 16px;
- padding: 0;
-}
-.ui-btn-inline {
- display: inline-block;
- vertical-align: middle;
- margin-right: .625em;
-}
-.ui-btn-icon-left {
- padding-left: 2.5em;
-}
-.ui-btn-icon-right {
- padding-right: 2.5em;
-}
-.ui-btn-icon-top {
- padding-top: 2.5em;
-}
-.ui-btn-icon-bottom {
- padding-bottom: 2.5em;
-}
-.ui-btn-icon-left:after,
-.ui-btn-icon-right:after,
-.ui-btn-icon-top:after,
-.ui-btn-icon-bottom:after,
-.ui-btn-icon-notext:after {
- content: "";
- position: absolute;
- display: block;
- width: 22px;
- height: 22px;
-}
-.ui-btn-icon-notext:after,
-.ui-btn-icon-left:after,
-.ui-btn-icon-right:after {
- top: 50%;
- margin-top: -11px;
-}
-.ui-btn-icon-left:after {
- left: .5625em;
-}
-.ui-btn-icon-right:after {
- right: .5625em;
-}
-.ui-mini.ui-btn-icon-left:after,
-.ui-mini .ui-btn-icon-left:after {
- left: .37em;
-}
-.ui-mini.ui-btn-icon-right:after,
-.ui-mini .ui-btn-icon-right:after {
- right: .37em;
-}
-.ui-btn-icon-notext:after,
-.ui-btn-icon-top:after,
-.ui-btn-icon-bottom:after {
- left: 50%;
- margin-left: -11px;
-}
-.ui-btn-icon-top:after {
- top: .5625em;
-}
-.ui-btn-icon-bottom:after {
- top: auto;
- bottom: .5625em;
-}
-/* Buttons in header position classes */
-.ui-btn-left > [class*="ui-"],
-.ui-btn-right > [class*="ui-"] {
- margin: 0;
-}
-.ui-btn-left,
-.ui-btn-right {
- position: absolute;
- top: .24em;
-}
-.ui-btn-left {
- left: .4em;
-}
-.ui-btn-right {
- right: .4em;
-}
-.ui-btn-icon-notext.ui-btn-left {
- top: .3125em;
- left: .3125em;
-}
-.ui-btn-icon-notext.ui-btn-right {
- top: .3125em;
- right: .3125em;
-}
-
-/* Button elements */
-button.ui-btn,
-.ui-controlgroup-controls button.ui-btn-icon-notext {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- -webkit-appearance: none;
- -moz-appearance: none;
- width: 100%;
-}
-button.ui-btn-inline {
- width: auto;
-}
-/* Firefox adds a 1px border in a button element. We negate this to make sure they have the same height as other buttons in controlgroups. */
-button.ui-btn::-moz-focus-inner {
- border: 0;
-}
-button.ui-btn-icon-notext,
-.ui-controlgroup-horizontal .ui-controlgroup-controls button.ui-btn {
- -webkit-box-sizing: content-box;
- -moz-box-sizing: content-box;
- box-sizing: content-box;
- width: 1.75em;
-}
-
-/* Form labels */
-.ui-mobile label,
-.ui-controlgroup-label {
- display: block;
- margin: 0 0 .4em;
-}
-
-/* Accessible content hiding */
-/* ui-hide-label deprecated in 1.4. TODO: Remove in 1.5 */
-.ui-hide-label > label,
-.ui-hide-label .ui-controlgroup-label,
-.ui-hide-label .ui-rangeslider label,
-.ui-hidden-accessible {
- position: absolute !important;
- height: 1px;
- width: 1px;
- overflow: hidden;
- clip: rect(1px,1px,1px,1px);
-}
-
-/* Used for hiding elements by the filterable widget. You can also use this class to hide list items or buttons in controlgroups; this ensures correct corner styling. */
-.ui-screen-hidden {
- display: none !important;
-}
\ No newline at end of file
diff --git a/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.theme.css b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.theme.css
index aee5d14c98..9c3d00bc2f 100644
--- a/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.theme.css
+++ b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.theme.css
@@ -78,25 +78,6 @@ label.ui-btn {
background-clip: padding-box;
}
-/* Shadow
------------------------------------------------------------------------------------------------------------*/
-
-.ui-shadow {
- -webkit-box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.15) /*{global-box-shadow-color}*/;
- -moz-box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.15) /*{global-box-shadow-color}*/;
- box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.15) /*{global-box-shadow-color}*/;
-}
-.ui-shadow-inset {
- -webkit-box-shadow: inset 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.2) /*{global-box-shadow-color}*/;
- -moz-box-shadow: inset 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.2) /*{global-box-shadow-color}*/;
- box-shadow: inset 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.2) /*{global-box-shadow-color}*/;
-}
-.ui-overlay-shadow {
- -webkit-box-shadow: 0 0 12px rgba(0,0,0,.6);
- -moz-box-shadow: 0 0 12px rgba(0,0,0,.6);
- box-shadow: 0 0 12px rgba(0,0,0,.6);
-}
-
/* Icons
-----------------------------------------------------------------------------------------------------------*/
@@ -130,14 +111,6 @@ html .ui-alt-icon .ui-radio-off:after {
background-color: transparent;
}
-/* Icon shadow */
-.ui-shadow-icon.ui-btn:after,
-.ui-shadow-icon .ui-btn:after {
- -webkit-box-shadow: 0 1px 0 rgba(255,255,255,.3) /*{global-icon-shadow}*/;
- -moz-box-shadow: 0 1px 0 rgba(255,255,255,.3) /*{global-icon-shadow}*/;
- box-shadow: 0 1px 0 rgba(255,255,255,.3) /*{global-icon-shadow}*/;
-}
-
/* Checkbox and radio */
.ui-btn.ui-checkbox-off:after,
.ui-btn.ui-checkbox-on:after,
@@ -303,24 +276,6 @@ html body .ui-group-theme-a .ui-radio-on:after,
border-color: #3388cc /*{a-active-background-color}*/;
}
-/* Focus */
-.ui-page-theme-a .ui-btn:focus,
-html .ui-bar-a .ui-btn:focus,
-html .ui-body-a .ui-btn:focus,
-html body .ui-group-theme-a .ui-btn:focus,
-html head + body .ui-btn.ui-btn-a:focus,
-/* Focus buttons and text inputs with div wrap */
-.ui-page-theme-a .ui-focus,
-html .ui-bar-a .ui-focus,
-html .ui-body-a .ui-focus,
-html body .ui-group-theme-a .ui-focus,
-html head + body .ui-btn-a.ui-focus,
-html head + body .ui-body-a.ui-focus {
- -webkit-box-shadow: 0 0 12px #3388cc /*{a-active-background-color}*/;
- -moz-box-shadow: 0 0 12px #3388cc /*{a-active-background-color}*/;
- box-shadow: 0 0 12px #3388cc /*{a-active-background-color}*/;
-}
-
/* B
-----------------------------------------------------------------------------------------------------------*/
@@ -435,20 +390,263 @@ html body .ui-group-theme-b .ui-radio-on:after,
border-color: #22aadd /*{b-active-background-color}*/;
}
-/* Focus */
-.ui-page-theme-b .ui-btn:focus,
-html .ui-bar-b .ui-btn:focus,
-html .ui-body-b .ui-btn:focus,
-html body .ui-group-theme-b .ui-btn:focus,
-html head + body .ui-btn.ui-btn-b:focus,
-/* Focus buttons and text inputs with div wrap */
-.ui-page-theme-b .ui-focus,
-html .ui-bar-b .ui-focus,
-html .ui-body-b .ui-focus,
-html body .ui-group-theme-b .ui-focus,
-html head + body .ui-btn-b.ui-focus,
-html head + body .ui-body-b.ui-focus {
- -webkit-box-shadow: 0 0 12px #22aadd /*{b-active-background-color}*/;
- -moz-box-shadow: 0 0 12px #22aadd /*{b-active-background-color}*/;
- box-shadow: 0 0 12px #22aadd /*{b-active-background-color}*/;
+/*
+* jQuery Mobile v1.4.5
+* http://jquerymobile.com
+*
+* Copyright 2010, 2014 jQuery Foundation, Inc. and other contributors
+* Released under the MIT license.
+* http://jquery.org/license
+*
+*/
+
+.ui-mobile fieldset,
+.ui-page {
+ padding: 0;
+ margin: 0;
+}
+.ui-mobile a img,
+.ui-mobile fieldset {
+ border-width: 0;
+}
+/* Fixes for fieldset issues on IE10 and FF (see #6077) */
+.ui-mobile fieldset {
+ min-width: 0;
+}
+@-moz-document url-prefix() {
+ .ui-mobile fieldset {
+ display: table-column;
+ vertical-align: middle;
+ }
+}
+
+/* Viewport */
+.ui-mobile-viewport {
+ margin: 0;
+ overflow-x: visible;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust:none;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+/* Issue #2066 */
+body.ui-mobile-viewport,
+div.ui-mobile-viewport {
+ overflow-x: hidden;
+}
+/* "page" containers - full-screen views, one should always be in view post-pageload */
+.ui-mobile [data-role=page],
+.ui-mobile [data-role=dialog],
+.ui-page {
+ top: 0;
+ left: 0;
+ width: 100%;
+ min-height: 100%;
+ position: absolute;
+ display: none;
+ border: 0;
+}
+
+/* On ios4, setting focus on the page element causes flashing during transitions when there is an outline, so we turn off outlines */
+.ui-page {
+ outline: none;
+}
+.ui-mobile .ui-page-active {
+ display: block;
+ overflow: visible;
+ overflow-x: hidden;
+}
+@media screen and (orientation: portrait) {
+ .ui-mobile .ui-page {
+ min-height: 420px;
+ }
+}
+@media screen and (orientation: landscape) {
+ .ui-mobile .ui-page {
+ min-height: 300px;
+ }
+}
+
+/* Fouc */
+.ui-mobile-rendering > * {
+ visibility: hidden;
+}
+
+/* Headers, content panels */
+.ui-bar,
+.ui-body {
+ position: relative;
+ padding: .4em 1em;
+ overflow: hidden;
+ display: block;
+ clear: both;
+}
+.ui-bar h1,
+.ui-bar h2,
+.ui-bar h3,
+.ui-bar h4,
+.ui-bar h5,
+.ui-bar h6 {
+ margin: 0;
+ padding: 0;
+ font-size: 1em;
+ display: inline-block;
+}
+.ui-content {
+ border-width: 0;
+ overflow: visible;
+ overflow-x: hidden;
+ padding: 1em;
+}
+
+/* Buttons and icons */
+.ui-btn {
+ font-size: 16px;
+ margin: .5em 0;
+ padding: .7em 1em;
+ display: block;
+ position: relative;
+ text-align: center;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.ui-btn-icon-notext {
+ padding: 0;
+ width: 1.75em;
+ height: 1.75em;
+ text-indent: -9999px;
+ white-space: nowrap !important;
+}
+.ui-mini {
+ font-size: 12.5px;
+}
+.ui-mini .ui-btn {
+ font-size: inherit;
+}
+.ui-mini.ui-btn-icon-notext,
+.ui-mini .ui-btn-icon-notext {
+ font-size: 16px;
+ padding: 0;
+}
+.ui-btn-inline {
+ display: inline-block;
+ vertical-align: middle;
+ margin-right: .625em;
+}
+.ui-btn-icon-left {
+ padding-left: 2.5em;
+}
+.ui-btn-icon-right {
+ padding-right: 2.5em;
+}
+.ui-btn-icon-top {
+ padding-top: 2.5em;
+}
+.ui-btn-icon-bottom {
+ padding-bottom: 2.5em;
+}
+.ui-btn-icon-left:after,
+.ui-btn-icon-right:after,
+.ui-btn-icon-top:after,
+.ui-btn-icon-bottom:after,
+.ui-btn-icon-notext:after {
+ content: "";
+ position: absolute;
+ display: block;
+ width: 22px;
+ height: 22px;
+}
+.ui-btn-icon-notext:after,
+.ui-btn-icon-left:after,
+.ui-btn-icon-right:after {
+ top: 50%;
+ margin-top: -11px;
+}
+.ui-btn-icon-left:after {
+ left: .5625em;
+}
+.ui-btn-icon-right:after {
+ right: .5625em;
+}
+.ui-mini.ui-btn-icon-left:after,
+.ui-mini .ui-btn-icon-left:after {
+ left: .37em;
+}
+.ui-mini.ui-btn-icon-right:after,
+.ui-mini .ui-btn-icon-right:after {
+ right: .37em;
+}
+.ui-btn-icon-notext:after,
+.ui-btn-icon-top:after,
+.ui-btn-icon-bottom:after {
+ left: 50%;
+ margin-left: -11px;
+}
+.ui-btn-icon-top:after {
+ top: .5625em;
+}
+.ui-btn-icon-bottom:after {
+ top: auto;
+ bottom: .5625em;
+}
+/* Buttons in header position classes */
+.ui-btn-left > [class*="ui-"],
+.ui-btn-right > [class*="ui-"] {
+ margin: 0;
+}
+.ui-btn-left,
+.ui-btn-right {
+ position: absolute;
+ top: .24em;
+}
+.ui-btn-left {
+ left: .4em;
+}
+.ui-btn-right {
+ right: .4em;
+}
+.ui-btn-icon-notext.ui-btn-left {
+ top: .3125em;
+ left: .3125em;
+}
+.ui-btn-icon-notext.ui-btn-right {
+ top: .3125em;
+ right: .3125em;
+}
+
+/* Button elements */
+button.ui-btn,
+.ui-controlgroup-controls button.ui-btn-icon-notext {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ width: 100%;
+}
+button.ui-btn-inline {
+ width: auto;
+}
+/* Firefox adds a 1px border in a button element. We negate this to make sure they have the same height as other buttons in controlgroups. */
+button.ui-btn::-moz-focus-inner {
+ border: 0;
+}
+button.ui-btn-icon-notext,
+.ui-controlgroup-horizontal .ui-controlgroup-controls button.ui-btn {
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ width: 1.75em;
+}
+
+/* Form labels */
+.ui-mobile label,
+.ui-controlgroup-label {
+ display: block;
+ margin: 0 0 .4em;
}
\ No newline at end of file