diff --git a/.ci/azure-pipelines.yml b/.ci/azure-pipelines.yml index 0d6b018e07..1b16b94b62 100644 --- a/.ci/azure-pipelines.yml +++ b/.ci/azure-pipelines.yml @@ -57,3 +57,7 @@ jobs: - script: 'yarn run lint' displayName: 'Run ESLint' + + - script: | + yarn run stylelint + displayName: 'Run stylelint' diff --git a/.stylelintrc b/.stylelintrc new file mode 100644 index 0000000000..93e3592099 --- /dev/null +++ b/.stylelintrc @@ -0,0 +1,143 @@ +{ + "plugins": [ + "stylelint-no-browser-hacks/lib", + ], + "rules": { + "at-rule-empty-line-before": [ "always", { + except: [ + "blockless-after-same-name-blockless", + "first-nested", + ], + ignore: ["after-comment"], + } ], + "at-rule-name-case": "lower", + "at-rule-name-space-after": "always-single-line", + "at-rule-no-unknown": true, + "at-rule-semicolon-newline-after": "always", + "block-closing-brace-empty-line-before": "never", + "block-closing-brace-newline-after": "always", + "block-closing-brace-newline-before": "always-multi-line", + "block-closing-brace-space-before": "always-single-line", + "block-no-empty": true, + "block-opening-brace-newline-after": "always-multi-line", + "block-opening-brace-space-after": "always-single-line", + "block-opening-brace-space-before": "always", + "color-hex-case": "lower", + "color-hex-length": "short", + "color-no-invalid-hex": true, + "comment-empty-line-before": [ "always", { + except: ["first-nested"], + ignore: ["stylelint-commands"], + } ], + "comment-no-empty": true, + "comment-whitespace-inside": "always", + "custom-property-empty-line-before": [ "always", { + except: [ + "after-custom-property", + "first-nested", + ], + ignore: [ + "after-comment", + "inside-single-line-block", + ], + } ], + "declaration-bang-space-after": "never", + "declaration-bang-space-before": "always", + "declaration-block-no-duplicate-properties": [ + true, + { + ignore: ["consecutive-duplicates-with-different-values"] + } + ], + "declaration-block-no-shorthand-property-overrides": true, + "declaration-block-semicolon-newline-after": "always-multi-line", + "declaration-block-semicolon-space-after": "always-single-line", + "declaration-block-semicolon-space-before": "never", + "declaration-block-single-line-max-declarations": 1, + "declaration-block-trailing-semicolon": "always", + "declaration-colon-newline-after": "always-multi-line", + "declaration-colon-space-after": "always-single-line", + "declaration-colon-space-before": "never", + "font-family-no-duplicate-names": true, + "function-calc-no-invalid": true, + "function-calc-no-unspaced-operator": true, + "function-comma-newline-after": "always-multi-line", + "function-comma-space-after": "always-single-line", + "function-comma-space-before": "never", + "function-linear-gradient-no-nonstandard-direction": true, + "function-max-empty-lines": 0, + "function-name-case": "lower", + "function-parentheses-newline-inside": "always-multi-line", + "function-parentheses-space-inside": "never-single-line", + "function-whitespace-after": "always", + "indentation": 4, + "keyframe-declaration-no-important": true, + "length-zero-no-unit": true, + "max-empty-lines": 1, + "media-feature-colon-space-after": "always", + "media-feature-colon-space-before": "never", + "media-feature-name-case": "lower", + "media-feature-name-no-unknown": true, + "media-feature-parentheses-space-inside": "never", + "media-feature-range-operator-space-after": "always", + "media-feature-range-operator-space-before": "always", + "media-query-list-comma-newline-after": "always-multi-line", + "media-query-list-comma-space-after": "always-single-line", + "media-query-list-comma-space-before": "never", + "no-descending-specificity": true, + "no-duplicate-at-import-rules": true, + "no-duplicate-selectors": true, + "no-empty-source": true, + "no-eol-whitespace": true, + "no-extra-semicolons": true, + "no-invalid-double-slash-comments": true, + "no-missing-end-of-source-newline": true, + "number-leading-zero": "always", + "number-no-trailing-zeros": true, + "plugin/no-browser-hacks": true, + "property-case": "lower", + "property-no-unknown": [ + true, + { + "ignoreProperties": [ + "user-drag" + ] + } + ], + "rule-empty-line-before": [ "always-multi-line", { + except: ["first-nested"], + ignore: ["after-comment"], + } ], + "selector-attribute-brackets-space-inside": "never", + "selector-attribute-operator-space-after": "never", + "selector-attribute-operator-space-before": "never", + "selector-combinator-space-after": "always", + "selector-combinator-space-before": "always", + "selector-descendant-combinator-no-non-space": true, + "selector-list-comma-newline-after": "always", + "selector-list-comma-space-before": "never", + "selector-max-empty-lines": 0, + "selector-pseudo-class-case": "lower", + "selector-pseudo-class-no-unknown": true, + "selector-pseudo-class-parentheses-space-inside": "never", + "selector-pseudo-element-case": "lower", + "selector-pseudo-element-colon-notation": "double", + "selector-pseudo-element-no-unknown": [ + true, + { + "ignorePseudoElements": [ + "cue" + ] + } + ], + "selector-type-case": "lower", + "selector-type-no-unknown": true, + "string-no-newline": true, + "unit-case": "lower", + "unit-no-unknown": true, + "value-list-comma-newline-after": "always-multi-line", + "value-list-comma-space-after": "always-single-line", + "value-list-comma-space-before": "never", + "value-list-max-empty-lines": 0, + } +} \ No newline at end of file diff --git a/package.json b/package.json index 76d01b1841..55c02ffbd9 100644 --- a/package.json +++ b/package.json @@ -5,15 +5,17 @@ "repository": "https://github.com/jellyfin/jellyfin-web", "license": "GPL-2.0-or-later", "devDependencies": { - "autoprefixer": "^9.7.3", "clean-webpack-plugin": "^3.0.0", "copy-webpack-plugin": "^5.1.1", "css-loader": "^2.1.0", "eslint": "^5.16.0", "file-loader": "^3.0.1", "html-webpack-plugin": "^3.2.0", - "postcss-loader": "^3.0.0", "style-loader": "^0.23.1", + "stylelint": "^13.0.0", + "stylelint-config-rational-order": "^0.1.2", + "stylelint-no-browser-hacks": "^1.2.1", + "stylelint-order": "^4.0.0", "webpack": "^4.41.0", "webpack-cli": "^3.3.9", "webpack-concat-plugin": "^3.0.0", @@ -28,6 +30,7 @@ "howler": "^2.1.2", "jquery": "^3.4.1", "jstree": "^3.3.7", + "libass-wasm": "^2.1.1", "libjass": "^0.11.0", "native-promise-only": "^0.8.0-a", "requirejs": "^2.3.5", @@ -35,7 +38,6 @@ "shaka-player": "^2.5.5", "sortablejs": "^1.9.0", "swiper": "^3.4.2", - "libass-wasm": "^2.1.1", "webcomponents.js": "^0.7.24", "whatwg-fetch": "^1.1.1" }, @@ -51,13 +53,13 @@ "Chrome 53", "Chrome 56", "Chrome 63", - "Explorer 11", "Firefox ESR" ], "scripts": { "serve": "webpack-dev-server --config webpack.dev.js --open", "build": "webpack --config webpack.prod.js", "lint": "eslint \"src\"", + "stylelint": "stylelint src/**/*.css", "prepare": "webpack --config webpack.prod.js" } } diff --git a/postcss.config.js b/postcss.config.js deleted file mode 100644 index a26de7e9f1..0000000000 --- a/postcss.config.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - plugins: [ - require('autoprefixer') - ] -} diff --git a/src/assets/css/clearbutton.css b/src/assets/css/clearbutton.css index 2d3f8d6800..9e6c105258 100644 --- a/src/assets/css/clearbutton.css +++ b/src/assets/css/clearbutton.css @@ -9,4 +9,4 @@ vertical-align: middle; font-family: inherit; font-size: inherit; -} \ No newline at end of file +} diff --git a/src/assets/css/dashboard.css b/src/assets/css/dashboard.css index d4928db691..8c8a9ca7f1 100644 --- a/src/assets/css/dashboard.css +++ b/src/assets/css/dashboard.css @@ -1,262 +1,314 @@ .dashboardColumn, .dashboardSections { flex-direction: column; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; } .dashboardFooter { margin-top: 3.5em; - text-align: center + text-align: center; } .dashboardFooter a { - margin: 0 .7em + margin: 0 0.7em; } progress { appearance: none; + -moz-appearance: none; + -webkit-appearance: none; margin: 0; - background: #ccc !important + background: #ccc !important; } -progress[role]:after { - background-image: none +progress[role]::after { + background-image: none; } progress::-webkit-progress-bar { - background: #ccc + background: #ccc; } progress::-moz-progress-bar { - background-color: #00a4dc + background-color: #00a4dc; } progress::-webkit-progress-value { - background-color: #00a4dc + background-color: #00a4dc; } -progress[aria-valuenow]:before { - border-radius: .4em; - background-color: #00a4dc +progress[aria-valuenow]::before { + border-radius: 0.4em; + background-color: #00a4dc; } .localnav { - margin-bottom: 2.2em !important + margin-bottom: 2.2em !important; } -@media all and (min-width:50em) { - - .type-interior>.ui-panel-content-wrap>div[data-role=content], - .type-interior>div[data-role=content] { +@media all and (min-width: 50em) { + .type-interior > div[data-role=content], + .type-interior > .ui-panel-content-wrap > div[data-role=content] { padding-right: 0; padding-left: 0; padding-top: 0; - overflow: hidden + overflow: hidden; } } .dashboardDocument .dashboardEntryHeaderButton, .dashboardDocument .lnkManageServer { - display: none !important + display: none !important; } .adminDrawerLogo { padding: 1.5em 1em 1.2em; border-bottom: 1px solid #e0e0e0; margin-bottom: 1em; - display: block + display: block; } .adminDrawerLogo img { - height: 4em + height: 4em; +} + +a[data-role=button] { + background: #292929 !important; + background-clip: padding-box; + -webkit-font-smoothing: antialiased; + -webkit-user-select: none; + -webkit-background-clip: padding-box; + cursor: pointer !important; + font-family: inherit !important; + font-weight: 500 !important; + margin: 0 0.25em !important; + display: inline-block; + padding: 0.8em 1em; + text-align: center; + text-decoration: none !important; } div[data-role=controlgroup] a[data-role=button] { display: inline-block !important; margin: 0 !important; + -webkit-box-shadow: none !important; box-shadow: none !important; - border-radius: 0 + -webkit-border-radius: 0; + border-radius: 0; } div[data-role=controlgroup] a[data-role=button]:first-child { - border-bottom-left-radius: .3125em; - border-top-left-radius: .3125em + -webkit-border-bottom-left-radius: 0.3125em; + border-bottom-left-radius: 0.3125em; + -webkit-border-top-left-radius: 0.3125em; + border-top-left-radius: 0.3125em; } div[data-role=controlgroup] a[data-role=button]:last-child { - border-bottom-right-radius: .3125em; - border-top-right-radius: .3125em + -webkit-border-bottom-right-radius: 0.3125em; + border-bottom-right-radius: 0.3125em; + -webkit-border-top-right-radius: 0.3125em; + border-top-right-radius: 0.3125em; } -div[data-role=controlgroup] a[data-role=button]+a[data-role=button] { +div[data-role=controlgroup] a[data-role=button] + a[data-role=button] { border-left-width: 0 !important; - margin: 0 0 0 -.4em !important + margin: 0 0 0 -0.4em !important; } div[data-role=controlgroup] a.ui-btn-active { background: #00a4dc !important; - color: #292929 !important + color: #292929 !important; } -.header .imageLink { - display: inline-block +.sessionAppInfo img { + max-width: 40px; + max-height: 40px; + margin-right: 8px; } -.header .imageLink img { - height: 2.1em; - vertical-align: middle -} - -.content-primary { - padding-top: 6em; - padding-right: 1em; - padding-left: 1em -} - -.withTabs .content-primary { - padding-top: 9em !important -} - -@media all and (min-width:40em) { - .content-primary { - padding-top: 7em - } - - .withTabs .content-primary { - padding-top: 10em !important - } -} - -@media all and (min-width:84em) { - .withTabs .content-primary { - padding-top: 7em !important - } -} - -.content-primary ul:first-child { - margin-top: 0 -} - -.dashboardSections { - display: flex; - flex-direction: column -} - -.dashboardColumn { - display: flex; - flex-direction: column; - flex-shrink: 0; - flex-grow: 1 -} - -.activeSession:not(.playingSession) .sessionNowPlayingContent { - display: none -} - -.dashboardSection { - flex-shrink: 0; - margin: 0 0 2em -} - -.dashboardSection h3 { - margin-top: .5em; - margin-bottom: .5em -} - -.activeRecordingItems>.card { - width: 50% -} - -@media all and (min-width:70em) { - .dashboardSections { - flex-wrap: wrap; - flex-direction: row - } - - .dashboardColumn-2-60 { - width: 46% - } - - .dashboardColumn-2-40 { - width: 27% - } - - .dashboardSection { - padding: 0 1.5em - } - - .activeRecordingItems>.card { - width: 25% - } -} - -.premiumBanner img { - position: absolute; - text-align: right; - top: 0; - right: 0; - width: 4.4em; - height: 4.4em -} - -.wizardContent { - max-width: 62em; - padding: .5em 2em 1em; - margin: 0 auto; - background: #fff -} - -.wizardNavigation { - text-align: right -} - -.wizardContent form { - max-width: 100% +.appLinks img { + height: 36px; } .wizardContent h2 img { height: 2.5em; vertical-align: middle; - margin-right: .5em; + margin-right: 0.5em; position: relative; - top: -.3em + top: -0.3em; } -.scheduledTaskPaperIconItem { - outline: 0 !important +.header .imageLink { + display: inline-block; } -.activeSession { - width: 100% !important +.header .imageLink img { + height: 2.1em; + vertical-align: middle; } -.activitylogUserPhoto { - height:1.71em; - width:1.71em; - border-radius:100%; - margin-right:.5em; - background-size:cover; - background-repeat:no-repeat; - background-position:center; +.content-primary { + padding-top: 6em; + padding-right: 1em; + padding-left: 1em; } -@media all and (min-width:40em) { - .activeSession { - width: 100% !important +.withTabs .content-primary { + padding-top: 9em !important; +} + +@media all and (min-width: 40em) { + .content-primary { + padding-top: 7em; + } + + .withTabs .content-primary { + padding-top: 10em !important; } } -@media all and (min-width:50em) { +@media all and (min-width: 84em) { + .withTabs .content-primary { + padding-top: 7em !important; + } +} + +.content-primary ul:first-child { + margin-top: 0; +} + +.dashboardSections { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: column; + flex-direction: column; +} + +.dashboardColumn { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-flex-direction: column; + flex-direction: column; + -webkit-flex-shrink: 0; + flex-shrink: 0; + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + flex-grow: 1; +} + +.sessionNowPlayingContent { + -webkit-background-size: cover; + background-size: cover; + background-repeat: no-repeat; + background-position: center center; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.activeSession:not(.playingSession) .sessionNowPlayingContent { + display: none; +} + +.dashboardSection { + -webkit-flex-shrink: 0; + flex-shrink: 0; + margin: 0 0 2em; +} + +.dashboardSection h3 { + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +.activeRecordingItems > .card { + width: 50%; +} + +@media all and (min-width: 70em) { + .dashboardSections { + -webkit-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + flex-direction: row; + } + + .dashboardColumn-2-60 { + width: 46%; + } + + .dashboardColumn-2-40 { + width: 27%; + } + + .dashboardSection { + padding: 0 1.5em; + } + + .activeRecordingItems > .card { + width: 25%; + } +} + +.wizardContent { + max-width: 62em; + padding: 0.5em 2em 1em; + margin: 0 auto; + background: #fff; +} + +.wizardNavigation { + text-align: right; +} + +.wizardContent form { + max-width: 100%; +} + +.scheduledTaskPaperIconItem { + outline: 0 !important; +} + +.activeSession { + width: 100% !important; +} + +.activitylogUserPhoto { + height: 1.71em; + width: 1.71em; + border-radius: 100%; + margin-right: 0.5em; + background-size: cover; + background-repeat: no-repeat; + background-position: center; +} + +@media all and (min-width: 40em) { .activeSession { - width: 50% !important + width: 100% !important; + } +} + +@media all and (min-width: 50em) { + .activeSession { + width: 50% !important; } } .sessionCardFooter { - padding-top: .5em !important; + padding-top: 0.5em !important; padding-bottom: 1em !important; border-top: 1px solid #eee; text-align: center; - position: relative + position: relative; } .sessionAppInfo { @@ -265,22 +317,11 @@ div[data-role=controlgroup] a.ui-btn-active { } .sessionCardButtons { - min-height: 2.7em + min-height: 2.7em; } .sessionCardButton { - margin: 0 -} - -.sessionNowPlayingContent { - background-size: cover; - background-repeat: no-repeat; - background-position: center center; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0 + margin: 0; } .sessionNowPlayingInnerContent { @@ -289,23 +330,23 @@ div[data-role=controlgroup] a.ui-btn-active { left: 0; right: 0; bottom: 0; - font-weight: 400 + font-weight: 400; } -.sessionNowPlayingContent-withbackground+.sessionNowPlayingInnerContent { +.sessionNowPlayingContent-withbackground + .sessionNowPlayingInnerContent { color: #fff !important; - background: rgba(0, 0, 0, .7) + background: rgba(0, 0, 0, 0.7); } .sessionAppName { vertical-align: top; - max-width: 200px + max-width: 200px; } .sessionNowPlayingDetails { display: flex; position: absolute; - bottom: 0px; + bottom: 0; width: 100%; } @@ -315,12 +356,6 @@ div[data-role=controlgroup] a.ui-btn-active { padding: 0.8em 0.5em; } -.sessionAppInfo img { - max-width: 40px; - max-height: 40px; - margin-right: 8px; -} - .sessionNowPlayingTime { flex-shrink: 0; align-self: flex-end; @@ -332,6 +367,13 @@ div[data-role=controlgroup] a.ui-btn-active { white-space: nowrap; } +.playbackProgress, +.transcodingProgress { + margin: 0; + width: 100%; + background: transparent !important; +} + .activeSession .playbackProgress, .activeSession .transcodingProgress { position: absolute; @@ -342,13 +384,6 @@ div[data-role=controlgroup] a.ui-btn-active { width: 100%; } -.playbackProgress, -.transcodingProgress { - margin: 0px; - width: 100%; - background: transparent !important; -} - .playbackProgress > div { z-index: 1000; background-color: #00a4dc; @@ -358,70 +393,70 @@ div[data-role=controlgroup] a.ui-btn-active { background-color: #dd4919; } -@media all and (max-width:34.375em) { +@media all and (max-width: 34.375em) { .sessionAppName { - max-width: 160px + max-width: 160px; } } -@media all and (max-width:31.25em) { +@media all and (max-width: 31.25em) { .sessionAppName { - max-width: 150px + max-width: 150px; } } .disabledUser { - filter: grayscale(100%) + -webkit-filter: grayscale(100%); + filter: grayscale(100%); } .disabledUserBanner { - margin: 0 0 2em + margin: 0 0 2em; } .appLinks a { - text-decoration: none !important -} - -.appLinks a+a { - margin-left: 5px -} - -.appLinks img { - height: 36px -} - -a[data-role=button] { - background-clip: padding-box; - cursor: pointer !important; - font-family: inherit !important; - font-weight: 500 !important; - margin: 0 .25em !important; - display: inline-block; - padding: .8em 1em; - text-align: center; text-decoration: none !important; - background: #292929 !important; +} + +.appLinks a + a { + margin-left: 5px; +} + +@-webkit-keyframes rotating { + from { + -webkit-transform: rotate(0); + transform: rotate(0); + } + + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } } @keyframes rotating { from { - transform: rotate(0) + -webkit-transform: rotate(0); + transform: rotate(0); } to { - transform: rotate(360deg) + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } .rotatingCircle { - animation: rotating 2s linear infinite + -webkit-animation: rotating 2s linear infinite; + animation: rotating 2s linear infinite; } .pluginPreviewImg { - box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37) + -webkit-box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37); + box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37); } -.ui-bar-a{ +.ui-bar-a { text-align: center; padding: 0 20px; } diff --git a/src/assets/css/detailtable.css b/src/assets/css/detailtable.css index 33f0608365..4e2e16511c 100644 --- a/src/assets/css/detailtable.css +++ b/src/assets/css/detailtable.css @@ -1,7 +1,7 @@ .detailTableBodyCell, .detailTableHeaderCell { border-spacing: 0; - padding: .4em + padding: 0.4em; } .detailTable { @@ -9,11 +9,11 @@ border-spacing: 0; text-align: left; width: 100%; - margin: 0 auto + margin: 0 auto; } .detailTableHeaderCell { font-weight: 700; text-align: left; - vertical-align: top -} \ No newline at end of file + vertical-align: top; +} diff --git a/src/assets/css/flexstyles.css b/src/assets/css/flexstyles.css index b35e25d57b..a5a479f2f5 100644 --- a/src/assets/css/flexstyles.css +++ b/src/assets/css/flexstyles.css @@ -44,4 +44,4 @@ .align-self-flex-end { align-self: flex-end; -} \ No newline at end of file +} diff --git a/src/assets/css/fonts.css b/src/assets/css/fonts.css index da5515fc1e..30fd1e2eb6 100644 --- a/src/assets/css/fonts.css +++ b/src/assets/css/fonts.css @@ -1,13 +1,13 @@ html { font-family: -apple-system, "Helvetica", system-ui, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", 'Open Sans', sans-serif; -} - -html { font-size: 93%; + -webkit-text-size-adjust: 100%; text-size-adjust: 100%; } -h1, h2, h3 { +h1, +h2, +h3 { /* For better bolding, since Helvetica does not support 500 weight, and 600 is too thick */ font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", 'Open Sans', sans-serif; } diff --git a/src/assets/css/ios.css b/src/assets/css/ios.css index 47fa7bd538..57de0c5fdd 100644 --- a/src/assets/css/ios.css +++ b/src/assets/css/ios.css @@ -1,8 +1,8 @@ html { - font-size: 82% !important + font-size: 82% !important; } .formDialogFooter { position: static !important; - margin: 0 -1em !important -} \ No newline at end of file + margin: 0 -1em !important; +} diff --git a/src/assets/css/librarybrowser.css b/src/assets/css/librarybrowser.css index b9f406bc0d..26b65115b6 100644 --- a/src/assets/css/librarybrowser.css +++ b/src/assets/css/librarybrowser.css @@ -1,7 +1,7 @@ .headerUserImage, .navMenuOption, .pageTitle { - vertical-align: middle + vertical-align: middle; } .detailButton-mobile, @@ -9,34 +9,35 @@ .listPaging, .sectionTabs, .viewSettings { - text-align: center + text-align: center; } .headerSelectedPlayer, .itemMiscInfo, .navMenuOptionText { + -o-text-overflow: ellipsis; text-overflow: ellipsis; - overflow: hidden + overflow: hidden; } .libraryPage { - padding-top: 7em !important + padding-top: 7em !important; } .itemDetailPage { - padding-top: 0em !important + padding-top: 0 !important; } .standalonePage { - padding-top: 4.5em !important + padding-top: 4.5em !important; } .wizardPage { - padding-top: 7em !important + padding-top: 7em !important; } .libraryPage:not(.noSecondaryNavPage) { - padding-top: 7.5em !important + padding-top: 7.5em !important; } .absolutePageTabContent { @@ -47,22 +48,27 @@ z-index: 1; margin: 0 !important; top: 6.9em !important; - transition: transform .2s ease-out + -webkit-transition: -webkit-transform 0.2s ease-out; + -o-transition: transform 0.2s ease-out; + transition: transform 0.2s ease-out; } .pageTabContent:not(.is-active) { - display: none !important + display: none !important; } .headerUserImage { + -webkit-background-size: contain; background-size: contain; background-repeat: no-repeat; background-position: center center; + -webkit-border-radius: 100em; border-radius: 100em; - display: inline-block + display: inline-block; } .headerUserButtonRound div { + -webkit-border-radius: 100em; border-radius: 100em; background-size: cover; background-repeat: no-repeat; @@ -70,41 +76,74 @@ } .headerButton { - flex-shrink: 0 + -webkit-flex-shrink: 0; + flex-shrink: 0; } .hideMainDrawer .mainDrawerButton { - display: none + display: none; +} + +.headerLeft { + display: flex; + -webkit-align-items: center; + align-items: center; + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + flex-grow: 1; + overflow: hidden; + justify-content: flex-start; +} + +.headerRight { + display: -webkit-box; + display: -webkit-flex; + display: flex; + -webkit-align-items: center; + align-items: center; + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + justify-content: flex-end; } .noHeaderRight .headerRight, .noHomeButtonHeader .headerHomeButton { - display: none !important + display: none !important; } .pageTitle { + display: -webkit-inline-box; + display: -webkit-inline-flex; display: inline-flex; - margin: .3em 0 0 .5em; + margin: 0.3em 0 0 0.5em; height: 1.7em; + -webkit-box-align: center; + -webkit-align-items: center; align-items: center; - flex-shrink: 1 + -webkit-flex-shrink: 1; + flex-shrink: 1; } .headerLeft, .skinHeader { - display: flex; + display: -webkit-box; + display: -webkit-flex; } .detailButton-mobile, .skinHeader { flex-direction: column; + -webkit-flex-direction: column; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; } .pageTitleWithLogo { background-position: left center; + -webkit-background-size: contain; background-size: contain; background-repeat: no-repeat; - width: 13.2em + width: 13.2em; } .skinHeader { @@ -116,122 +155,114 @@ border: 0; display: flex; flex-direction: column; - contain: layout style paint -} - -.headerLeft, -.headerRight { - justify-content: center; + contain: layout style paint; } .hiddenViewMenuBar .skinHeader { - display: none + display: none; } .headerTop { - padding: .54em 0 -} - -.headerLeft { - display: flex; - align-items: center; - flex-grow: 1; - overflow: hidden; - justify-content: flex-start; + padding: 0.54em 0; } .sectionTabs { - width: 100% -} - -.headerRight { - display: flex; - align-items: center; - justify-content: flex-end + width: 100%; } .selectedMediaFolder { - background-color: #f2f2f2 !important + background-color: #f2f2f2 !important; } .navMenuOption { + display: -webkit-box !important; + display: -webkit-flex !important; display: flex !important; + -webkit-box-align: center; + -webkit-align-items: center; align-items: center; text-decoration: none; color: inherit; - padding: .9em 0 .9em 2.4em !important; + padding: 0.9em 0 0.9em 2.4em !important; + -webkit-box-flex: 1; + -webkit-flex-grow: 1; flex-grow: 1; font-weight: 400 !important; margin: 0 !important; - border-radius: 0 !important + -webkit-border-radius: 0 !important; + border-radius: 0 !important; } .navMenuOptionIcon { margin-right: 1.2em; - flex-shrink: 0 + -webkit-flex-shrink: 0; + flex-shrink: 0; } .navMenuOptionText { - white-space: nowrap + white-space: nowrap; } .sidebarHeader { padding-left: 1.2em; - margin: 1em 0 .5em + margin: 1em 0 0.5em; } .dashboardDocument .skinBody { - transition: left ease-in-out .3s, padding ease-in-out .3s; + -webkit-transition: left ease-in-out 0.3s, padding ease-in-out 0.3s; + -o-transition: left ease-in-out 0.3s, padding ease-in-out 0.3s; + transition: left ease-in-out 0.3s, padding ease-in-out 0.3s; position: absolute; top: 0; right: 0; bottom: 0; - left: 0 + left: 0; } .layout-desktop .searchTabButton, .layout-mobile .searchTabButton, .layout-tv .headerSearchButton { - display: none !important + display: none !important; } .mainDrawer-scrollContainer { - padding-bottom: 10vh + padding-bottom: 10vh; } -@media all and (min-width:40em) { - +@media all and (min-width: 40em) { .dashboardDocument .adminDrawerLogo, .dashboardDocument .mainDrawerButton { - display: none !important + display: none !important; } .dashboardDocument .mainDrawer { z-index: inherit !important; left: 0 !important; top: 0 !important; + -webkit-transform: none !important; transform: none !important; + -webkit-box-shadow: none !important; box-shadow: none !important; width: 20.205em !important; - font-size: 94% + font-size: 94%; } .dashboardDocument .mainDrawer-scrollContainer { - margin-top: 5em !important + margin-top: 5em !important; } .dashboardDocument .skinBody { - left: 20em + left: 20em; } } -@media all and (max-width:60em) { +@media all and (max-width: 60em) { .libraryDocument .mainDrawerButton { - display: none + display: none; } } -@media all and (max-width:84em) { +@media all and (max-width: 84em) { .withSectionTabs .headerTop { padding-bottom: 0.2em; } @@ -241,31 +272,36 @@ } } -@media all and (min-width:84em) { +@media all and (min-width: 84em) { .headerTop { - padding: 1.489em 0 + padding: 1.489em 0; } .headerTabs { + -webkit-align-self: center; align-self: center; width: auto; + -webkit-box-align: center; + -webkit-align-items: center; align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; justify-content: center; margin-top: -3.34em; position: relative; - top: -1.05em + top: -1.05em; } .libraryPage:not(.noSecondaryNavPage) { - padding-top: 4.6em !important + padding-top: 4.6em !important; } .pageWithAbsoluteTabs:not(.noSecondaryNavPage) { - padding-top: 6.7em !important + padding-top: 6.7em !important; } .absolutePageTabContent { - top: 5.7em !important + top: 5.7em !important; } .dashboardDocument .mainDrawer-scrollContainer { @@ -275,22 +311,22 @@ .headerSelectedPlayer { max-width: 10em; - white-space: nowrap + white-space: nowrap; } -@media all and (max-width:37.5em) { +@media all and (max-width: 37.5em) { .headerSelectedPlayer { - display: none + display: none; } } .hidingAnimatedTab { - visibility: hidden + visibility: hidden; } .headerArrowImage { height: 20px; - margin-left: .5em + margin-left: 0.5em; } .backdropContainer { @@ -299,113 +335,113 @@ left: 0; right: 0; bottom: 0; - z-index: -1 + z-index: -1; } .libraryPage .header { - padding-bottom: 0 + padding-bottom: 0; } .flexPageTabContent.is-active { - display: flex !important + display: -webkit-box !important; + display: -webkit-flex !important; + display: flex !important; } .viewSettings { - margin: 0 0 .25em + margin: 0 0 0.25em; } -.viewControls+.listTopPaging { - margin-left: .5em !important +.listTopPaging, +.viewControls { + display: inline-block; +} + +.viewControls + .listTopPaging { + margin-left: 0.5em !important; } .criticReview { margin: 1.5em 0; background: #222; - padding: .8em .8em .8em 3em; - border-radius: .3em; - position: relative + padding: 0.8em 0.8em 0.8em 3em; + -webkit-border-radius: 0.3em; + border-radius: 0.3em; + position: relative; } .detailLogo, .itemBackdrop { background-repeat: no-repeat; - background-position: center center + background-position: center center; } .criticReview:first-child { - margin-top: .5em + margin-top: 0.5em; } .criticReview img { - width: 2.4em + width: 2.4em; } .criticRatingScore { - margin-bottom: .5em + margin-bottom: 0.5em; } .itemTag { display: inline-block; - margin-right: 1em + margin-right: 1em; } .itemOverview { - white-space: pre-wrap + white-space: pre-wrap; } .itemLinks { - padding: 0 + padding: 0; } .itemLinks p { - margin: .5em 0 + margin: 0.5em 0; } .reviewLink, .reviewerName { - margin-top: .5em + margin-top: 0.5em; } .reviewerName { - color: #ccc + color: #ccc; } .reviewDate { - margin-left: 1em + margin-left: 1em; } .reviewScore { position: absolute; - left: .8em + left: 0.8em; } .itemBackdrop { + -webkit-background-size: cover; background-size: cover; background-repeat: no-repeat; background-position: center; height: 50vh; - position: relative + position: relative; } .itemBackdropProgressBar { position: absolute !important; bottom: 0; left: 0; - right: 0 + right: 0; } .desktopMiscInfoContainer { position: absolute; - bottom: .75em -} - -.layout-mobile .detailPagePrimaryContainer { - display: block; - position: relative; -} - -.layout-tv .detailPagePrimaryContainer { - position: relative; + bottom: 0.75em; } .detailPagePrimaryContainer { @@ -418,6 +454,15 @@ z-index: 2; } +.layout-mobile .detailPagePrimaryContainer { + display: block; + position: relative; +} + +.layout-tv .detailPagePrimaryContainer { + position: relative; +} + .infoWrapper { flex: 1 0 0; } @@ -437,11 +482,6 @@ padding-right: 2%; } -.layout-mobile .detailImageContainer, -.layout-tv .detailImageContainer { - position: relative; -} - .detailImageContainer { margin: 1.25em 0; position: sticky; @@ -450,9 +490,16 @@ width: 22.786458333333332vw; } +.layout-mobile .detailImageContainer, +.layout-tv .detailImageContainer { + position: relative; +} + .detailPagePrimaryContent { position: relative; - flex-grow: 1 + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + flex-grow: 1; } .detailLogo { @@ -461,22 +508,23 @@ position: absolute; top: 14.5%; right: 10.5%; - background-size: contain + -webkit-background-size: contain; + background-size: contain; } -@media all and (max-width:87.5em) { +@media all and (max-width: 87.5em) { .detailLogo { - right: 5% + right: 5%; } } -@media all and (max-width:75em) { +@media all and (max-width: 75em) { .detailLogo { - right: 2% + right: 2%; } } -@media all and (max-width:68.75em) { +@media all and (max-width: 68.75em) { .detailLogo { width: 14.91em; height: 3.5em; @@ -484,160 +532,189 @@ bottom: 5%; top: auto; background-position: center right; - display: none + display: none; } } .itemDetailImage { width: 100% !important; - box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37); + box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37); + -webkit-box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37); } -@media all and (max-width:62.5em) { +@media all and (max-width: 62.5em) { .detailPageContent { - position: relative + position: relative; } .btnPlaySimple { - display: none !important + display: none !important; } } -@media all and (max-width:75em) { +@media all and (max-width: 75em) { .lnkSibling { - display: none !important + display: none !important; } } .parentName { display: block; - margin-bottom: .5em + margin-bottom: 0.5em; +} + +.btnSyncComplete { + background: #673ab7 !important; +} + +.btnSyncComplete i { + -webkit-border-radius: 100em; + border-radius: 100em; } .emby-button.detailFloatingButton { position: absolute; - background-color: rgba(0, 0, 0, .5) !important; + background-color: rgba(0, 0, 0, 0.5) !important; z-index: 1; top: 50%; left: 50%; margin: -2.2em 0 0 -2.2em; padding: 0.4em !important; - color: rgba(255, 255, 255, .76) + color: rgba(255, 255, 255, 0.76); } .emby-button.detailFloatingButton i { - font-size: 3.5em + font-size: 3.5em; } -@media all and (max-width:62.5em) { +@media all and (max-width: 62.5em) { .parentName { - margin-bottom: 1em + margin-bottom: 1em; } .itemDetailPage { - padding-top: 0 !important + padding-top: 0 !important; } .detailimg-hidemobile { - display: none + display: none; } } -@media all and (min-width:31.25em) { +@media all and (min-width: 31.25em) { .mobileDetails { - display: none + display: none; } } -@media all and (max-width:31.25em) { +@media all and (max-width: 31.25em) { .desktopDetails { - display: none !important + display: none !important; } } .detailButton-mobile, .mainDetailButtons { display: flex; + display: -webkit-box; + display: -webkit-flex; } .itemName { - margin: .5em 0 + margin: 0.5em 0; } .empty { - margin: 0 + margin: 0; } -.detailCollapsibleSection:not(.hide)+.detailCollapsibleSection { - margin-top: -2em +.detailCollapsibleSection:not(.hide) + .detailCollapsibleSection { + margin-top: -2em; } .detailPageCollabsible { - margin-top: 0 + margin-top: 0; } .mainDetailButtons { display: flex; + -webkit-box-align: center; + -webkit-align-items: center; align-items: center; + -webkit-flex-wrap: wrap; flex-wrap: wrap; margin: 1em 0; } .recordingFields button { margin-left: 0; - margin-right: .5em; - flex-shrink: 0 + margin-right: 0.5em; + -webkit-flex-shrink: 0; + flex-shrink: 0; } -.mainDetailButtons.hide+.recordingFields { - margin-top: 1.5em !important +.mainDetailButtons.hide + .recordingFields { + margin-top: 1.5em !important; } .detailButton-mobile { display: flex; flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; align-items: center; margin: 0 !important; - padding: .5em .7em !important + padding: 0.5em 0.7em !important; } .detailButton { - margin: 0 .5em 0 0 !important + margin: 0 0.5em 0 0 !important; } -@media all and (min-width:29em) { +@media all and (min-width: 29em) { .detailButton-mobile { - padding-left: .75em !important; - padding-right: .75em !important + padding-left: 0.75em !important; + padding-right: 0.75em !important; } } -@media all and (min-width:32em) { +@media all and (min-width: 32em) { .detailButton-mobile { - padding-left: .8em !important; - padding-right: .8em !important + padding-left: 0.8em !important; + padding-right: 0.8em !important; } } -@media all and (min-width:35em) { +@media all and (min-width: 35em) { .detailButton-mobile { - padding-left: .85em !important; - padding-right: .85em !important + padding-left: 0.85em !important; + padding-right: 0.85em !important; } } .detailButton-mobile-content { + display: -webkit-box; + display: -webkit-flex; display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; flex-direction: column; + -webkit-box-pack: center; + -webkit-justify-content: center; justify-content: center; - align-items: center + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; } .detailButton-mobile-icon { font-size: 1.6em !important; width: 1em; - height: 1em + height: 1em; } .detailImageProgressContainer { @@ -646,62 +723,64 @@ } .detailButton-mobile-text { - margin-top: .7em; + margin-top: 0.7em; font-size: 80%; - font-weight: 400 + font-weight: 400; } -@media all and (max-width:62.5em) { +@media all and (max-width: 62.5em) { .mainDetailButtons { - margin-left: -.5em + margin-left: -0.5em; } .detailButton { - display: none !important + display: none !important; } } -@media all and (min-width:62.5em) { +@media all and (min-width: 62.5em) { .detailFloatingButton { - display: none !important + display: none !important; } .mainDetailButtons { font-size: 108%; - margin: 1.25em 0 + margin: 1.25em 0; } } -.listTopPaging, -.viewControls { - display: inline-block -} - -@media all and (max-width:50em) { +@media all and (max-width: 50em) { .editorMenuLink { - display: none + display: none; } } .itemMiscInfo { + display: -webkit-box; + display: -webkit-flex; display: flex; + -webkit-flex-wrap: wrap; flex-wrap: wrap; - align-items: center + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; } -@media all and (max-width:31.25em) { +@media all and (max-width: 31.25em) { .mobileDetails .itemMiscInfo { text-align: center; - justify-content: center + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; } .itemMiscInfo .endsAt { - display: none + display: none; } } .layout-tv .detailVerticalSection { - margin-bottom: 3.4em !important + margin-bottom: 3.4em !important; } .detailPageContent { @@ -709,7 +788,7 @@ border-collapse: collapse; } -@media all and (max-width:62.5em) { +@media all and (max-width: 62.5em) { .detailPageContent-nodetailimg { padding-top: 0; } @@ -718,92 +797,89 @@ .mediaInfoStream { margin: 0 3em 0 0; display: inline-block; - vertical-align: top + vertical-align: top; } .mediaInfoStreamType { display: block; - margin: 1em 0 + margin: 1em 0; } .mediaInfoAttribute, .mediaInfoLabel { - display: inline-block + display: inline-block; } .mediaInfoLabel { margin-right: 1em; - font-weight: 600 + font-weight: 600; } .recordingProgressBar::-moz-progress-bar { - background-color: #c33 + background-color: #c33; } .recordingProgressBar::-webkit-progress-value { - background-color: #c33 + background-color: #c33; } -.recordingProgressBar[aria-valuenow]:before { - background-color: #c33 +.recordingProgressBar[aria-valuenow]::before { + background-color: #c33; } .timelineHeader { - margin-bottom: .25em; + margin-bottom: 0.25em; line-height: 1.25em; - line-height: initial + line-height: initial; } .itemsContainer { - margin: 0 auto + margin: 0 auto; } -@media all and (max-height:31.25em) { +@media all and (max-height: 31.25em) { .itemBackdrop { - height: 52vh + height: 52vh; } } -@media all and (max-width:75em) { +@media all and (max-width: 75em) { .listViewUserDataButtons { - display: none !important + display: none !important; } } -@media all and (max-width:62.5em) { +@media all and (max-width: 62.5em) { .detailsHiddenOnMobile { - display: none + display: none; } } -.btnSyncComplete { - background: #673AB7 !important -} - -.btnSyncComplete i { - border-radius: 100em -} - .bulletSeparator { - margin: 0 .35em + margin: 0 0.35em; } .mediaInfoIcons { + display: -webkit-box; + display: -webkit-flex; display: flex; + -webkit-box-align: center; + -webkit-align-items: center; align-items: center; margin: 1em 0; - flex-wrap: wrap + -webkit-flex-wrap: wrap; + flex-wrap: wrap; } .verticalSection-extrabottompadding { - margin-bottom: 2.7em + margin-bottom: 2.7em; } .sectionTitleButton, .sectionTitleIconButton { margin-right: 0 !important; display: inline-block; - vertical-align: middle + vertical-align: middle; } .sectionTitleContainer { @@ -829,43 +905,49 @@ div:not(.sectionTitleContainer-cards) > .sectionTitle-cards { .sectionTitleButton { margin-left: 1.5em !important; - flex-shrink: 0 + -webkit-flex-shrink: 0; + flex-shrink: 0; } .sectionTitleButton + .sectionTitleButton { - margin-left: .5em !important + margin-left: 0.5em !important; } .sectionTitleIconButton { margin-left: 1.5em !important; + -webkit-flex-shrink: 0; flex-shrink: 0; font-size: 84% !important; - padding: .5em !important + padding: 0.5em !important; } .horizontalItemsContainer { - display: flex + display: -webkit-box; + display: -webkit-flex; + display: flex; } .sectionTitleTextButton { margin: 0 !important; + display: -webkit-inline-box !important; + display: -webkit-inline-flex !important; display: inline-flex !important; - color: inherit !important + color: inherit !important; } .sectionTitleTextButton:not(.padded-left) { - padding: 0 !important + padding: 0 !important; } .sectionTitleTextButton.padded-left { padding-bottom: 0 !important; padding-right: 0 !important; - padding-top: 0 !important + padding-top: 0 !important; } -.sectionTitleTextButton>.sectionTitle { +.sectionTitleTextButton > .sectionTitle { margin-bottom: 0; - margin-top: 0 + margin-top: 0; } .padded-left { @@ -894,7 +976,7 @@ div:not(.sectionTitleContainer-cards) > .sectionTitle-cards { margin-bottom: -1em; } -@media all and (min-height:31.25em) { +@media all and (min-height: 31.25em) { .padded-left-withalphapicker { padding-left: 7.5%; } @@ -905,7 +987,7 @@ div:not(.sectionTitleContainer-cards) > .sectionTitle-cards { } .searchfields-icon { - color: #aaaaaa; + color: #aaa; } .button-accent-flat { @@ -916,25 +998,27 @@ div:not(.sectionTitleContainer-cards) > .sectionTitle-cards { text-decoration: none; font-weight: inherit !important; vertical-align: middle; - color: inherit !important + color: inherit !important; } .itemsViewSettingsContainer { - justify-content: center + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; } -@media all and (min-width:40em) { +@media all and (min-width: 40em) { .listIconButton-autohide { - display: none !important + display: none !important; } } -@media all and (max-width:40em) { +@media all and (max-width: 40em) { .listTextButton-autohide { - display: none !important + display: none !important; } } -.itemsViewSettingsContainer>.button-flat { - margin: 0 +.itemsViewSettingsContainer > .button-flat { + margin: 0; } diff --git a/src/assets/css/livetv.css b/src/assets/css/livetv.css index 93e3e029c8..695adff8c5 100644 --- a/src/assets/css/livetv.css +++ b/src/assets/css/livetv.css @@ -1,9 +1,9 @@ .guideVerticalScroller { - padding-bottom: 15em + padding-bottom: 15em; } -@media all and (min-width:62.5em) { +@media all and (min-width: 62.5em) { #guideTab { - padding-left: .5em + padding-left: 0.5em; } -} \ No newline at end of file +} diff --git a/src/assets/css/metadataeditor.css b/src/assets/css/metadataeditor.css index c5de6f3efe..190f53187f 100644 --- a/src/assets/css/metadataeditor.css +++ b/src/assets/css/metadataeditor.css @@ -1,53 +1,57 @@ .editPageSidebar { - display: block + display: block; } .editPageSidebar-withcontent { - display: none + display: none; } .libraryTree { - margin-left: .25em + margin-left: 0.25em; } .offlineEditorNode { - color: #c33 + color: #c33; } .editorNode img { height: 18px; - margin: 0 .35em; + margin: 0 0.35em; vertical-align: middle; position: relative; - top: -2px + top: -2px; } .jstree-anchor { - font-weight: 400 !important + font-weight: 400 !important; } .jstree-wholerow-hovered { background: #38c !important; + -webkit-border-radius: 0 !important; border-radius: 0 !important; - box-shadow: none !important + -webkit-box-shadow: none !important; + box-shadow: none !important; } .jstree-default .jstree-hovered { background: 0 0 !important; + -webkit-border-radius: 0 !important; border-radius: 0 !important; + -webkit-box-shadow: none !important; box-shadow: none !important; - color: #fff !important + color: #fff !important; } .jstree-default .jstree-wholerow-clicked { - background: #00a4dc !important + background: #00a4dc !important; } .metadataSidebarIcon { - margin-right: .4em + margin-right: 0.4em; } -@media all and (min-width:50em) { +@media all and (min-width: 50em) { .editPageSidebar { position: fixed; top: 5.2em; @@ -55,21 +59,21 @@ left: 0; width: 30%; border-right: 1px solid #555; - display: block + display: block; } .editPageInnerContent { float: right; - width: 68.5% + width: 68.5%; } } -@media all and (min-width:112.5em) { +@media all and (min-width: 112.5em) { .editPageSidebar { - width: 25% + width: 25%; } .editPageInnerContent { - width: 73.5% + width: 73.5%; } } diff --git a/src/assets/css/scrollstyles.css b/src/assets/css/scrollstyles.css index 69039ce341..1cb3207e06 100644 --- a/src/assets/css/scrollstyles.css +++ b/src/assets/css/scrollstyles.css @@ -1,5 +1,6 @@ .scrollX { overflow-x: auto; + -webkit-overflow-scrolling: touch; overflow-y: hidden; white-space: nowrap; } @@ -8,39 +9,50 @@ scroll-behavior: smooth; } -.hiddenScrollX, .layout-tv .scrollX { - scrollbar-width: none; +.hiddenScrollX, +.layout-tv .scrollX { + -ms-overflow-style: none; } .hiddenScrollX-forced { - scrollbar-width: none; + overflow: -moz-scrollbars-none; } -.hiddenScrollX::-webkit-scrollbar, .layout-tv .scrollX::-webkit-scrollbar { +.hiddenScrollX::-webkit-scrollbar, +.layout-tv .scrollX::-webkit-scrollbar { height: 0 !important; display: none; } .scrollY { overflow-y: auto; + -webkit-overflow-scrolling: touch; overflow-x: hidden; } .smoothScrollY { overflow-y: auto; + -webkit-overflow-scrolling: touch; overflow-x: hidden; scroll-behavior: smooth; } -.hiddenScrollY, .layout-tv .smoothScrollY { - scrollbar-width: none; +.hiddenScrollY, +.layout-tv .smoothScrollY { + -ms-overflow-style: none; + + /* Can't do this because it not only hides the scrollbar, but also prevents scrolling */ + + /* overflow: -moz-scrollbars-none; */ } .hiddenScrollY-forced { - scrollbar-width: none; + overflow: -moz-scrollbars-none; } -.hiddenScrollY::-webkit-scrollbar, .layout-tv .smoothScrollY::-webkit-scrollbar, .layout-tv .scrollY::-webkit-scrollbar { +.hiddenScrollY::-webkit-scrollbar, +.layout-tv .smoothScrollY::-webkit-scrollbar, +.layout-tv .scrollY::-webkit-scrollbar { width: 0 !important; display: none; } diff --git a/src/assets/css/site.css b/src/assets/css/site.css index 6491799117..55ce4c8807 100644 --- a/src/assets/css/site.css +++ b/src/assets/css/site.css @@ -2,7 +2,7 @@ body, html { margin: 0; padding: 0; - height: 100% + height: 100%; } .backgroundContainer { @@ -11,52 +11,58 @@ html { left: 0; right: 0; bottom: 0; - contain: strict + contain: strict; } html { - line-height: 1.35 + line-height: 1.35; } .layout-mobile, .layout-tv { - user-select: none + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } body { overflow-x: hidden; background-color: transparent !important; + -webkit-font-smoothing: antialiased; } .mainAnimatedPage { - contain: style size !important + contain: style size !important; } .pageContainer { - overflow-x: visible !important + overflow-x: visible !important; } .bodyWithPopupOpen { - overflow-y: hidden !important + overflow-y: hidden !important; } div[data-role=page] { - outline: 0 + outline: 0; } .pageTitle { margin-top: 0; - font-family: inherit + font-family: inherit; } .fieldDescription { - padding-left: .15em; + padding-left: 0.15em; font-weight: 400; - white-space: normal !important + white-space: normal !important; } -.fieldDescription+.fieldDescription { - margin-top: .3em +.fieldDescription + .fieldDescription { + margin-top: 0.3em; } .content-primary, @@ -67,21 +73,21 @@ div[data-role=page] { padding-bottom: 5em !important; } -@media all and (min-width:50em) { +@media all and (min-width: 50em) { .readOnlyContent, form { - max-width: 54em + max-width: 54em; } } .headerHelpButton { margin-left: 1.25em !important; - padding-bottom: .4em !important; - padding-top: .4em !important + padding-bottom: 0.4em !important; + padding-top: 0.4em !important; } .mediaInfoContent { margin-left: auto; margin-right: auto; - width: 85% + width: 85%; } diff --git a/src/assets/css/videoosd.css b/src/assets/css/videoosd.css index f20abf9d07..f4f198325b 100644 --- a/src/assets/css/videoosd.css +++ b/src/assets/css/videoosd.css @@ -1,6 +1,9 @@ .chapterThumbTextContainer, .videoOsdBottom { user-select: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; } .osdPoster img, @@ -8,52 +11,59 @@ .videoOsdBottom { bottom: 0; left: 0; - right: 0 + right: 0; } .osdHeader { - transition: opacity .3s ease-out; + -webkit-transition: opacity 0.3s ease-out; + -o-transition: opacity 0.3s ease-out; + transition: opacity 0.3s ease-out; position: relative; z-index: 1; background: rgba(0, 0, 0, 0.7) !important; + -webkit-backdrop-filter: none !important; backdrop-filter: none !important; color: #eee !important; } .osdHeader-hidden { - opacity: 0 + opacity: 0; } .osdHeader .headerButton:not(.headerBackButton):not(.headerCastButton) { - display: none + display: none; } .chapterThumbContainer { + -webkit-box-shadow: 0 0 1.9vh #000; box-shadow: 0 0 1.9vh #000; + -webkit-box-flex: 1; + -webkit-flex-grow: 1; flex-grow: 1; - position: relative + position: relative; } .chapterThumb { background-position: center center; + -webkit-background-size: contain; background-size: contain; background-repeat: no-repeat; border: 0; height: 20vh; - min-width: 20vh + min-width: 20vh; } -@media all and (orientation:portrait) { +@media all and (orientation: portrait) { .chapterThumb { height: 30vw; - min-width: 30vw + min-width: 30vw; } } -@media all and (max-height:50em) and (orientation:landscape) { +@media all and (max-height: 50em) and (orientation: landscape) { .chapterThumb { height: 30vh; - min-width: 30vh + min-width: 30vh; } } @@ -62,161 +72,218 @@ bottom: 0; left: 0; right: 0; - background: rgba(0, 0, 0, .7); - padding: .25em .5em; - user-select: none + background: rgba(0, 0, 0, 0.7); + padding: 0.25em 0.5em; + user-select: none; } .chapterThumbText { - padding: .25em 0; + padding: 0.25em 0; margin: 0; - opacity: 1 + opacity: 1; } .chapterThumbText-dim { - opacity: .6 + opacity: 0.6; } .videoOsdBottom { position: fixed; background-color: rgba(0, 0, 0, 0.7); padding: 1%; + display: -webkit-box; + display: -webkit-flex; display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; flex-direction: row; will-change: opacity; + -webkit-transition: opacity 0.3s ease-out; + -o-transition: opacity 0.3s ease-out; transition: opacity 0.3s ease-out; color: #fff; - user-select: none + user-select: none; + -webkit-touch-callout: none; } .videoOsdBottom-hidden { - opacity: 0 + opacity: 0; } .osdControls { - flex-grow: 1 + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + flex-grow: 1; } .videoOsdBottom .buttons { - padding: .25em 0 0; + padding: 0.25em 0 0; + display: -webkit-box; + display: -webkit-flex; display: flex; + -webkit-flex-wrap: wrap; flex-wrap: wrap; - align-items: center + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; } .osdVolumeSliderContainer { width: 9em; - flex-grow: 1 + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + flex-grow: 1; } .osdMediaInfo, .volumeButtons { display: flex; + display: -webkit-box; + display: -webkit-flex; align-items: center; + -webkit-box-align: center; } .volumeButtons { - margin: 0 .5em 0 auto; + margin: 0 0.5em 0 auto; display: flex; - align-items: center + -webkit-align-items: center; + align-items: center; } .osdTimeText { margin-left: 1em; - user-select: none + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } .osdPoster { width: 10%; position: relative; - margin-right: .5em + margin-right: 0.5em; } .osdPoster img { position: absolute; height: auto; width: 100%; + -webkit-box-shadow: 0 0 1.9vh #000; box-shadow: 0 0 1.9vh #000; - border: .08em solid #222; + border: 0.08em solid #222; user-drag: none; - user-select: none + user-select: none; + -moz-user-select: none; + -webkit-user-drag: none; + -webkit-user-select: none; + -ms-user-select: none; } .osdTitle, .osdTitleSmall { - margin: 0 1em 0 0 + margin: 0 1em 0 0; } .osdMediaInfo { display: flex; - align-items: center + -webkit-align-items: center; + align-items: center; } .osdSecondaryMediaInfo { - padding-left: .6em !important + padding-left: 0.6em !important; } .osdTextContainer { + display: -webkit-box; + display: -webkit-flex; display: flex; + -webkit-box-align: center; + -webkit-align-items: center; align-items: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; user-select: none; - margin-bottom: .7em; - padding-left: .5em + margin-bottom: 0.7em; + padding-left: 0.5em; } .osdMainTextContainer { - align-items: baseline + -webkit-box-align: baseline; + -webkit-align-items: baseline; + align-items: baseline; } .osdMediaStatus { margin-left: auto; } +@-moz-keyframes spin { + 100% { + -moz-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@-webkit-keyframes spin { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + @keyframes spin { 100% { - transform:rotate(360deg); + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } .osdMediaStatus .animate { - animation:spin 4s linear infinite; + -webkit-animation: spin 4s linear infinite; + -moz-animation: spin 4s linear infinite; + animation: spin 4s linear infinite; } .pageContainer { top: 0; - position: fixed + position: fixed; } -@media all and (max-width:30em) { - +@media all and (max-width: 30em) { .btnFastForward, .btnRewind, .osdMediaInfo, .osdPoster { - display: none !important + display: none !important; } } -@media all and (max-width:33.75em) { +@media all and (max-width: 33.75em) { .videoOsdBottom .paper-icon-button-light { - margin: 0 + margin: 0; } } -@media all and (max-width:43em) { +@media all and (max-width: 43em) { .videoOsdBottom .volumeButtons, .osdMediaStatus span { - display: none !important - } -} -@media all and (max-width:50em) { - .videoOsdBottom .btnFastForward, .videoOsdBottom .btnRewind { - display: none !important + display: none !important; } } -@media all and (max-width:75em) { - .videoOsdBottom .endsAtText { - display: none !important +@media all and (max-width: 50em) { + .videoOsdBottom .btnFastForward, + .videoOsdBottom .btnRewind { + display: none !important; + } +} + +@media all and (max-width: 75em) { + .videoOsdBottom .endsAtText { + display: none !important; } } diff --git a/src/components/actionsheet/actionsheet.css b/src/components/actionsheet/actionsheet.css index 8e5084038a..87d6e9466c 100644 --- a/src/components/actionsheet/actionsheet.css +++ b/src/components/actionsheet/actionsheet.css @@ -4,7 +4,7 @@ padding: 0; border: none; max-height: 84%; - border-radius: .1em !important; + border-radius: 0.1em !important; } .actionsheet-not-fullscreen { @@ -24,7 +24,7 @@ .actionSheetContent { margin: 0 !important; - padding: .4em 0 !important; + padding: 0.4em 0 !important; flex-direction: column; display: flex; justify-content: center; @@ -45,7 +45,7 @@ } .actionsheetListItemBody { - padding: .4em 1em .4em .6em !important; + padding: 0.4em 1em 0.4em 0.6em !important; } .actionSheetItemText { @@ -59,13 +59,13 @@ } .actionSheetItemAsideText { - opacity: .7; + opacity: 0.7; font-size: 90%; display: flex; justify-content: flex-end; flex-shrink: 0; margin-left: 5em; - margin-right: .5em; + margin-right: 0.5em; } .actionSheetScroller { @@ -83,14 +83,14 @@ } .actionsheetDivider { - height: .07em; - margin: .25em 0; + height: 0.07em; + margin: 0.25em 0; flex-shrink: 0; } .actionSheetTitle { - margin: .6em 0 .7em !important; - padding: 0 .9em; + margin: 0.6em 0 0.7em !important; + padding: 0 0.9em; flex-grow: 0; } @@ -100,7 +100,7 @@ } .actionsheetMenuItemIcon { - margin: 0 .85em 0 .45em !important; + margin: 0 0.85em 0 0.45em !important; padding: 0 !important; } @@ -110,6 +110,6 @@ .btnCloseActionSheet { position: fixed; - top: .75em; - left: .5em; + top: 0.75em; + left: 0.5em; } diff --git a/src/components/alphapicker/style.css b/src/components/alphapicker/style.css index 29543421eb..c93341bc7d 100644 --- a/src/components/alphapicker/style.css +++ b/src/components/alphapicker/style.css @@ -35,16 +35,15 @@ font-size: inherit; min-width: initial; margin: 0; - padding: .1em .4em; + padding: 0.1em 0.4em; width: auto; - border-radius: .1em; + border-radius: 0.1em; font-weight: normal; flex-shrink: 0; flex-grow: 1; } @media all and (max-height: 50em) { - .alphaPicker-fixed { bottom: 5em; } @@ -56,14 +55,12 @@ } @media all and (max-height: 49em) { - .alphaPicker-vertical { font-size: 94%; } } @media all and (max-height: 44em) { - .alphaPicker-vertical { font-size: 90%; } @@ -75,14 +72,12 @@ } @media all and (max-height: 37em) { - .alphaPicker-vertical { font-size: 82%; } } @media all and (max-height: 32em) { - .alphaPicker-vertical { font-size: 74%; } @@ -113,15 +108,14 @@ } .alphaPicker-fixed-left { - left: .4em; + left: 0.4em; } .alphaPicker-fixed-right { - right: .4em; + right: 0.4em; } @media all and (min-width: 62.5em) { - .alphaPicker-fixed-left { left: 1em; } @@ -132,7 +126,6 @@ } @media all and (max-height: 31.25em) { - .alphaPicker-fixed { display: none !important; } diff --git a/src/components/appfooter/appfooter.css b/src/components/appfooter/appfooter.css index 789bc1db20..93cb3a75a5 100644 --- a/src/components/appfooter/appfooter.css +++ b/src/components/appfooter/appfooter.css @@ -8,6 +8,6 @@ contain: layout style; } - .appfooter.headroom--unpinned { - transform: translateY(100%)!important; - } \ No newline at end of file +.appfooter.headroom--unpinned { + transform: translateY(100%) !important; +} diff --git a/src/components/apphost.js b/src/components/apphost.js index b1b1c30dc9..c03ae0bce8 100644 --- a/src/components/apphost.js +++ b/src/components/apphost.js @@ -168,23 +168,25 @@ define(["appSettings", "browser", "events", "htmlMediaHelper"], function (appSet return false; } - var savedResult = appSettings.get(htmlMediaAutoplayAppStorageKey); - return "true" === savedResult || "false" !== savedResult && null; + return true; } - function cueSupported() { + function supportsCue() { try { var video = document.createElement("video"); var style = document.createElement("style"); + style.textContent = "video::cue {background: inherit}"; document.body.appendChild(style); document.body.appendChild(video); + var cue = window.getComputedStyle(video, "::cue").background; document.body.removeChild(style); document.body.removeChild(video); + return !!cue.length; } catch (err) { - console.log("Error detecting cue support:" + err); + console.log("error detecting cue support: " + err); return false; } } @@ -204,8 +206,6 @@ define(["appSettings", "browser", "events", "htmlMediaHelper"], function (appSet } } - var htmlMediaAutoplayAppStorageKey = "supportshtmlmediaautoplay0"; - var supportedFeatures = function () { var features = []; @@ -280,7 +280,7 @@ define(["appSettings", "browser", "events", "htmlMediaHelper"], function (appSet //features.push("multiserver"); features.push("screensaver"); - if (!browser.orsay && !browser.tizen && !browser.msie && (browser.firefox || browser.ps4 || browser.edge || cueSupported())) { + if (!browser.orsay && !browser.tizen && !browser.msie && (browser.firefox || browser.ps4 || browser.edge || supportsCue())) { features.push("subtitleappearancesettings"); } @@ -299,18 +299,6 @@ define(["appSettings", "browser", "events", "htmlMediaHelper"], function (appSet return features; }(); - if (supportedFeatures.indexOf("htmlvideoautoplay") === -1 && supportsHtmlMediaAutoplay() !== false) { - require(["autoPlayDetect"], function (autoPlayDetect) { - autoPlayDetect.supportsHtmlMediaAutoplay().then(function () { - appSettings.set(htmlMediaAutoplayAppStorageKey, "true"); - supportedFeatures.push("htmlvideoautoplay"); - supportedFeatures.push("htmlaudioautoplay"); - }, function () { - appSettings.set(htmlMediaAutoplayAppStorageKey, "false"); - }); - }); - } - var deviceId; var deviceName; var appName = "Jellyfin Web"; @@ -395,7 +383,9 @@ define(["appSettings", "browser", "events", "htmlMediaHelper"], function (appSet } } }; + var doc = self.document; + var isHidden = false; if (doc) { if (void 0 !== doc.visibilityState) { @@ -419,8 +409,6 @@ define(["appSettings", "browser", "events", "htmlMediaHelper"], function (appSet } } - var isHidden = false; - if (doc) { doc.addEventListener(visibilityChange, function () { if (document[visibilityState]) { diff --git a/src/components/cardbuilder/card.css b/src/components/cardbuilder/card.css index 5520ce2c7e..96bd28e8d1 100644 --- a/src/components/cardbuilder/card.css +++ b/src/components/cardbuilder/card.css @@ -1,23 +1,24 @@ +button { + -webkit-border-fit: border !important; +} + button::-moz-focus-inner { padding: 0; border: 0; } -button { - -webkit-border-fit: border !important; -} - .card { border: 0; font-size: inherit !important; font-family: inherit !important; text-transform: none; - background-color: transparent !important; background: none !important; + background-color: transparent !important; margin: 0; padding: 0; display: block; color: inherit !important; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); outline: none !important; cursor: pointer; contain: layout style; @@ -54,17 +55,27 @@ button { contain: layout style; } -.cardPadder-backdrop, .cardPadder-mixedBackdrop, .cardPadder-smallBackdrop, .cardPadder-overflowBackdrop, .cardPadder-overflowSmallBackdrop { +.cardPadder-backdrop, +.cardPadder-mixedBackdrop, +.cardPadder-smallBackdrop, +.cardPadder-overflowBackdrop, +.cardPadder-overflowSmallBackdrop { padding-bottom: 56.25%; contain: strict; } -.cardPadder-square, .cardPadder-mixedSquare, .cardPadder-overflowSquare, .overflowSquareCard-textCardPadder { +.cardPadder-square, +.cardPadder-mixedSquare, +.cardPadder-overflowSquare, +.overflowSquareCard-textCardPadder { padding-bottom: 100%; contain: strict; } -.cardPadder-portrait, .cardPadder-mixedPortrait, .cardPadder-overflowPortrait, .overflowPortraitCard-textCardPadder { +.cardPadder-portrait, +.cardPadder-mixedPortrait, +.cardPadder-overflowPortrait, +.overflowPortraitCard-textCardPadder { padding-bottom: 150%; contain: strict; } @@ -79,23 +90,26 @@ button { margin: 0.6em; transition: none; border: 0 solid transparent; + + /* These both are needed in case cardBox is a button */ + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); outline: none !important; contain: layout; contain: style; } +.card.show-animation .cardBox { + will-change: transform; + transition: transform 200ms ease-out; +} + .card.show-focus:not(.show-animation) .cardBox { - margin: .4em; + margin: 0.4em; } .card.show-focus:not(.show-animation) .cardBox.visualCardBox, .card.show-focus:not(.show-animation) .cardBox:not(.visualCardBox) .cardScalable { - border: .5em solid transparent; -} - -.card.show-animation .cardBox { - will-change: transform; - transition: transform 200ms ease-out; + border: 0.5em solid transparent; } .card.show-animation:focus > .cardBox { @@ -120,7 +134,7 @@ button { .btnCardOptions { position: absolute; - bottom: .25em; + bottom: 0.25em; right: 0; margin: 0 !important; z-index: 1; @@ -131,8 +145,8 @@ button { position: absolute; align-items: center; justify-content: center; - top: .3em; - left: .3em; + top: 0.3em; + left: 0.3em; text-align: center; vertical-align: middle; width: 1.6em; @@ -146,12 +160,14 @@ button { background-size: cover; background-repeat: no-repeat; background-position: center center; + display: -webkit-flex; display: flex; align-items: center; justify-content: center; position: relative; background-clip: content-box !important; color: inherit; + /* This is only needed for scalable cards */ height: 100%; contain: strict; @@ -173,12 +189,16 @@ button { left: 0; right: 0; bottom: 0; + /* Needed in case this is a button */ display: block; + /* Needed in case this is a button */ margin: 0 !important; + /* Needed in safari */ height: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); outline: none !important; contain: strict; } @@ -207,10 +227,6 @@ button { box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37); } -.cardImageContainer { - display: flex; -} - .cardImage { position: absolute; top: 0; @@ -226,6 +242,7 @@ button { .cardImage-img { max-height: 100%; max-width: 100%; + /* This is simply for lazy image purposes, to ensure the image is visible sooner when scrolling */ min-height: 70%; min-width: 70%; @@ -252,17 +269,17 @@ button { } .cardFooter { - padding: .3em .3em .5em .3em; + padding: 0.3em 0.3em 0.5em 0.3em; position: relative; } .visualCardBox { box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37); - border-radius: .145em; + border-radius: 0.145em; } .innerCardFooter { - background: rgba(0,0,0,.7); + background: rgba(0, 0, 0, 0.7); position: absolute; bottom: 0; left: 0; @@ -282,7 +299,7 @@ button { } .cardText { - padding: .06em .5em; + padding: 0.06em 0.5em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; @@ -294,7 +311,24 @@ button { } .cardText-first { - padding-top: .24em; + padding-top: 0.24em; +} + +.textActionButton { + border: 0 !important; + background: transparent; + padding: 0 !important; + cursor: pointer; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + outline: none !important; + color: inherit; + vertical-align: middle; + font-family: inherit; + font-size: inherit; +} + +.textActionButton:hover { + text-decoration: underline; } .cardText > .textActionButton { @@ -304,7 +338,7 @@ button { } .innerCardFooter > .cardText { - padding: .3em .5em; + padding: 0.3em 0.5em; } .cardFooter-withlogo { @@ -336,23 +370,6 @@ button { text-align: center; } -.textActionButton { - border: 0 !important; - background: transparent; - border: 0 !important; - padding: 0 !important; - cursor: pointer; - outline: none !important; - color: inherit; - vertical-align: middle; - font-family: inherit; - font-size: inherit; -} - -.textActionButton:hover { - text-decoration: underline; -} - .cardImageIcon { font-size: 5em; color: inherit; @@ -360,12 +377,12 @@ button { .cardImageIcon-small { font-size: 3em; - margin-bottom: .1em; + margin-bottom: 0.1em; } .cardIndicators { - right: .225em; - top: .225em; + right: 0.225em; + top: 0.225em; position: absolute; display: flex; align-items: center; @@ -382,16 +399,16 @@ button { } .programAttributeIndicator { - padding: .18em .5em; + padding: 0.18em 0.5em; color: #fff; font-weight: 500; } .cardOverlayButton { - color: rgba(255, 255, 255, .76); + color: rgba(255, 255, 255, 0.76); margin: 0; z-index: 1; - padding: .75em; + padding: 0.75em; font-size: 88%; } @@ -402,7 +419,7 @@ button { } .cardOverlayButtonIcon { - background-color: rgba(0,0,0,.7) !important; + background-color: rgba(0, 0, 0, 0.7) !important; border-radius: 100em; width: 1.5em !important; height: 1.5em !important; @@ -424,10 +441,10 @@ button { height: 2.6em; top: 50%; left: 50%; - background-color: rgba(0,0,0,.5) !important; - border: .06em solid rgba(255,255,255,.6); - padding: .38em !important; - color: rgba(255, 255, 255, .76); + background-color: rgba(0, 0, 0, 0.5) !important; + border: 0.06em solid rgba(255, 255, 255, 0.6); + padding: 0.38em !important; + color: rgba(255, 255, 255, 0.76); transition: transform 200ms ease-out; } @@ -474,13 +491,15 @@ button { width: 33.333333333333333333333333333333%; } - .squareCard, .portraitCard { + .squareCard, + .portraitCard { width: 33.333333333333333333333333333333%; } } @media (min-width: 43.75em) { - .squareCard, .portraitCard { + .squareCard, + .portraitCard { width: 25%; } } @@ -496,7 +515,8 @@ button { width: 50%; } - .squareCard, .portraitCard { + .squareCard, + .portraitCard { width: 20%; } @@ -516,7 +536,8 @@ button { width: 25%; } - .squareCard, .portraitCard { + .squareCard, + .portraitCard { width: 16.666666666666666666666666666667%; } @@ -529,9 +550,9 @@ button { } } - @media (min-width: 87.5em) { - .squareCard, .portraitCard { + .squareCard, + .portraitCard { width: 14.285714285714285714285714285714%; } @@ -549,13 +570,15 @@ button { width: 20%; } - .squareCard, .portraitCard { + .squareCard, + .portraitCard { width: 12.5%; } } @media (min-width: 120em) { - .squareCard, .portraitCard { + .squareCard, + .portraitCard { width: 11.111111111111111111111111111111%; } } @@ -565,7 +588,8 @@ button { width: 25%; } - .squareCard, .portraitCard { + .squareCard, + .portraitCard { width: 10%; } } @@ -596,7 +620,8 @@ button { width: 72vw; } -.overflowSquareCard, .overflowPortraitCard { +.overflowSquareCard, +.overflowPortraitCard { width: 40vw; } @@ -621,29 +646,34 @@ button { } @media (min-width: 43.75em) { - .overflowSquareCard, .overflowPortraitCard { + .overflowSquareCard, + .overflowPortraitCard { width: 23.1vw; } } @media (min-width: 48.125em) { - .overflowBackdropCard, .overflowSmallBackdropCard { + .overflowBackdropCard, + .overflowSmallBackdropCard { width: 30vw; } } @media (orientation: landscape) { - .overflowBackdropCard, .overflowSmallBackdropCard { + .overflowBackdropCard, + .overflowSmallBackdropCard { width: 30vw; } - .overflowSquareCard, .overflowPortraitCard { + .overflowSquareCard, + .overflowPortraitCard { width: 23.1vw; } } @media (orientation: landscape) and (min-width: 48.125em) { - .overflowBackdropCard, .overflowSmallBackdropCard { + .overflowBackdropCard, + .overflowSmallBackdropCard { width: 23.1vw; } } @@ -655,55 +685,60 @@ button { } @media (min-width: 50em) { - .overflowSquareCard, .overflowPortraitCard { + .overflowSquareCard, + .overflowPortraitCard { width: 18.5vw; } } @media (min-width: 75em) { - .overflowBackdropCard, .overflowSmallBackdropCard { + .overflowBackdropCard, + .overflowSmallBackdropCard { width: 23.1vw; } - .overflowSquareCard, .overflowPortraitCard { + .overflowSquareCard, + .overflowPortraitCard { width: 15.5vw; } } @media (min-width: 87.5em) { - .overflowSquareCard, .overflowPortraitCard { + .overflowSquareCard, + .overflowPortraitCard { width: 13.3vw; } } @media (min-width: 100em) { - - .overflowBackdropCard, .overflowSmallBackdropCard { + .overflowBackdropCard, + .overflowSmallBackdropCard { width: 18.7vw; } - .overflowSquareCard, .overflowPortraitCard { + .overflowSquareCard, + .overflowPortraitCard { width: 11.6vw; } } @media (min-width: 120em) { - - .overflowSquareCard, .overflowPortraitCard { + .overflowSquareCard, + .overflowPortraitCard { width: 10.3vw; } } @media (min-width: 131.25em) { - - .overflowSquareCard, .overflowPortraitCard { + .overflowSquareCard, + .overflowPortraitCard { width: 9.3vw; } } @media (min-width: 156.25em) { - - .overflowBackdropCard, .overflowSmallBackdropCard { + .overflowBackdropCard, + .overflowSmallBackdropCard { width: 15.6vw; } } @@ -720,7 +755,8 @@ button { padding-bottom: 87.75%; } -.itemsContainer-tv > .overflowSquareCard, .itemsContainer-tv > .overflowPortraitCard { +.itemsContainer-tv > .overflowSquareCard, +.itemsContainer-tv > .overflowPortraitCard { width: 15.6vw; } @@ -729,9 +765,9 @@ button { } .cardOverlayContainer { - background: rgba(0,0,0,0.5); + background: rgba(0, 0, 0, 0.5); opacity: 0; - transition: opacity .2s; + transition: opacity 0.2s; position: absolute; top: 0; left: 0; @@ -760,7 +796,7 @@ button { } .cardOverlayFab-primary { - background-color: rgba(0,0,0,0.7); + background-color: rgba(0, 0, 0, 0.7); font-size: 130%; padding: 0; width: 3em; diff --git a/src/components/cardbuilder/cardBuilder.js b/src/components/cardbuilder/cardBuilder.js index 44c5b3b079..92cc6d38ac 100644 --- a/src/components/cardbuilder/cardBuilder.js +++ b/src/components/cardbuilder/cardBuilder.js @@ -1018,7 +1018,7 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'focusMana return text; } - var html = ''; diff --git a/src/components/dialogHelper/dialoghelper.css b/src/components/dialogHelper/dialoghelper.css index aa4145e016..df2adf075f 100644 --- a/src/components/dialogHelper/dialoghelper.css +++ b/src/components/dialogHelper/dialoghelper.css @@ -15,10 +15,12 @@ .dialog { margin: 0; - border-radius: .2em; + border-radius: 0.2em; + -webkit-font-smoothing: antialiased; border: 0; padding: 0; will-change: transform, opacity; + /* Strict does not work well with actionsheet */ contain: style paint; box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.4); @@ -50,13 +52,13 @@ to { opacity: 0; - transform: scale(.5); + transform: scale(0.5); } } @keyframes scaleup { from { - transform: scale(.5); + transform: scale(0.5); opacity: 0; } @@ -77,7 +79,6 @@ } @keyframes fadeout { - from { opacity: 1; } @@ -100,7 +101,6 @@ } @keyframes slidedown { - from { opacity: 1; transform: none; @@ -113,8 +113,8 @@ } @media all and (max-width: 80em), all and (max-height: 45em) { - - .dialog-fixedSize, .dialog-fullscreen-lowres { + .dialog-fixedSize, + .dialog-fullscreen-lowres { position: fixed !important; top: 0 !important; bottom: 0 !important; @@ -126,7 +126,6 @@ } @media all and (min-width: 80em) and (min-height: 45em) { - .dialog-medium { width: 80%; height: 80%; @@ -168,5 +167,5 @@ } .dialogBackdropOpened { - opacity: .5; + opacity: 0.5; } diff --git a/src/components/directorybrowser/directorybrowser.css b/src/components/directorybrowser/directorybrowser.css index 0f3f22f073..ef6d58934f 100644 --- a/src/components/directorybrowser/directorybrowser.css +++ b/src/components/directorybrowser/directorybrowser.css @@ -1,8 +1,8 @@ #ulDirectoryPickerList a { - padding-top: .4em; - padding-bottom: .4em + padding-top: 0.4em; + padding-bottom: 0.4em; } .lblDirectoryPickerPath { - white-space: nowrap -} \ No newline at end of file + white-space: nowrap; +} diff --git a/src/components/emby-scrollbuttons/emby-scrollbuttons.css b/src/components/emby-scrollbuttons/emby-scrollbuttons.css index 6786824bd6..32e60292ad 100644 --- a/src/components/emby-scrollbuttons/emby-scrollbuttons.css +++ b/src/components/emby-scrollbuttons/emby-scrollbuttons.css @@ -4,11 +4,11 @@ right: 0; align-items: center; justify-content: center; - min-width:104px; - min-height:24px; + min-width: 104px; + min-height: 24px; padding-top: 1.25em; z-index: 1; - color: #ffffff; + color: #fff; display: flex; } diff --git a/src/components/emby-scroller/emby-scroller.js b/src/components/emby-scroller/emby-scroller.js index 0b36483be3..f943047f52 100644 --- a/src/components/emby-scroller/emby-scroller.js +++ b/src/components/emby-scroller/emby-scroller.js @@ -155,7 +155,7 @@ define(['scroller', 'dom', 'layoutManager', 'inputManager', 'focusManager', 'bro initCenterFocus(this, this.scroller); } - if (bindHeader) { + if (bindHeader && layoutManager.mobile) { initHeadroom(this); } diff --git a/src/components/filterdialog/style.css b/src/components/filterdialog/style.css index 989b7c1245..f05ef2e4a8 100644 --- a/src/components/filterdialog/style.css +++ b/src/components/filterdialog/style.css @@ -5,31 +5,32 @@ margin-top: 0 !important; margin-bottom: 0 !important; margin-right: 0 !important; + -webkit-border-radius: 0 !important; border-radius: 0 !important; max-height: none !important; - max-width: none !important + max-width: none !important; } -@media all and (min-height:600px) { +@media all and (min-height: 600px) { .dynamicFilterDialog { top: 10% !important; - bottom: 25% !important + bottom: 25% !important; } } -@media all and (max-width:400px) { +@media all and (max-width: 400px) { .dynamicFilterDialog { width: auto; left: 10vw !important; right: 10vw !important; - margin-left: 0 !important + margin-left: 0 !important; } } -@media all and (min-width:400px) { +@media all and (min-width: 400px) { .dynamicFilterDialog { width: 20.16em; margin-left: -10.08em !important; - left: 50% !important + left: 50% !important; } } diff --git a/src/components/formdialog.css b/src/components/formdialog.css index b976d8130e..788331da94 100644 --- a/src/components/formdialog.css +++ b/src/components/formdialog.css @@ -5,14 +5,15 @@ } .formDialogHeader { - padding: 1em .5em; + padding: 1em 0.5em; display: flex; align-items: center; flex-shrink: 0; } .formDialogHeaderTitle { - margin-left: .25em; + margin-left: 0.25em; + /* In case of h1, h2, h3 */ margin-top: 0; margin-bottom: 0; @@ -23,7 +24,7 @@ } .dialogContentInner { - padding: .5em 1em 20em 1em; + padding: 0.5em 1em 20em 1em; } .dialogContentInner-mini { @@ -46,6 +47,7 @@ display: flex; position: absolute; padding: 1.25em 1em; + /* Without this emby-checkbox is able to appear on top */ z-index: 1; align-items: center; @@ -62,11 +64,11 @@ padding-bottom: 1.5em; flex-direction: column; width: 80% !important; - padding-top: .5em; + padding-top: 0.5em; } .formDialogFooterItem { - margin: .5em !important; + margin: 0.5em !important; flex-grow: 1; text-align: center; flex-basis: 0; @@ -91,7 +93,6 @@ } @media all and (min-width: 50em) { - .formDialogFooterItem { max-width: 80%; } @@ -103,7 +104,6 @@ } @media all and (min-width: 80em) { - .formDialogFooterItem { max-width: 70%; } diff --git a/src/components/guide/guide.css b/src/components/guide/guide.css index 7dd0594149..3b776e6dde 100644 --- a/src/components/guide/guide.css +++ b/src/components/guide/guide.css @@ -14,12 +14,12 @@ } .layout-desktop .tvGuideHeader { - margin-bottom: .5em; + margin-bottom: 0.5em; } .guideHeaderDateSelection { font-size: 86%; - padding: .4em 0; + padding: 0.4em 0; } .guide-headerTimeslots { @@ -39,10 +39,10 @@ .guideProgramIndicator { text-transform: uppercase; - border-radius: .25em; - margin-right: .5em; + border-radius: 0.25em; + margin-right: 0.5em; font-size: 82%; - padding: .2em .25em; + padding: 0.2em 0.25em; display: inline-flex; align-items: center; justify-content: center; @@ -51,6 +51,8 @@ } .guide-channelTimeslotHeader { + border: 0 !important; + border-right-color: transparent; flex-shrink: 0; justify-content: center; } @@ -69,9 +71,14 @@ } .channelPrograms { + height: 4.42em; + contain: strict; + display: flex; + flex-direction: column; + border-style: solid; + border-width: 1px 0 1px 0; white-space: nowrap; position: relative; - contain: strict; box-sizing: border-box; } @@ -80,31 +87,32 @@ } .guideSpacer { - width: .3em; + width: 0.3em; flex-shrink: 0; } -.channelPrograms, .timeslotHeadersInner { +.channelPrograms, +.timeslotHeadersInner { width: 1800vw; } @media all and (min-width: 37.5em) { - - .channelPrograms, .timeslotHeadersInner { + .channelPrograms, + .timeslotHeadersInner { width: 1400vw; } } @media all and (min-width: 50em) { - - .channelPrograms, .timeslotHeadersInner { + .channelPrograms, + .timeslotHeadersInner { width: 1200vw; } } @media all and (min-width: 80em) { - - .channelPrograms, .timeslotHeadersInner { + .channelPrograms, + .timeslotHeadersInner { width: 810vw; } } @@ -112,11 +120,17 @@ .timeslotHeader { display: inline-flex; align-items: center; - text-indent: .25em; + text-indent: 0.25em; width: 2.0833333333333333333333333333333%; } -.guide-channelHeaderCell, .guide-channelTimeslotHeader { +.programCell, +.guide-channelHeaderCell { + outline: none !important; +} + +.guide-channelHeaderCell, +.guide-channelTimeslotHeader { padding: 0 !important; cursor: pointer; outline: none !important; @@ -130,11 +144,12 @@ display: flex; align-items: center; text-decoration: none; + /* Needed in firefox */ text-align: left; contain: strict; flex-shrink: 0; - border-radius: .12em; + border-radius: 0.12em; color: inherit; } @@ -148,37 +163,38 @@ background: transparent; } -.guide-channelTimeslotHeader { - border: 0 !important; -} - /* Important - have to put the fixed width on channelsContainer, not the individual channelHeaderCell This was causing channelsContainer to extend beyond the fixed width on ps4, tizen, lg and opera tv. */ -.channelsContainer, .guide-channelTimeslotHeader { +.channelsContainer, +.guide-channelTimeslotHeader { width: 24vw; } -@media all and (min-width:31.25em) { - .channelsContainer, .guide-channelTimeslotHeader { +@media all and (min-width: 31.25em) { + .channelsContainer, + .guide-channelTimeslotHeader { width: 16vw; } } -@media all and (min-width:37.5em) { - .channelsContainer, .guide-channelTimeslotHeader { +@media all and (min-width: 37.5em) { + .channelsContainer, + .guide-channelTimeslotHeader { width: 16vw; } } -@media all and (min-width:50em) { - .channelsContainer, .guide-channelTimeslotHeader { +@media all and (min-width: 50em) { + .channelsContainer, + .guide-channelTimeslotHeader { width: 14vw; } } -@media all and (min-width:80em) { - .channelsContainer, .guide-channelTimeslotHeader { +@media all and (min-width: 80em) { + .channelsContainer, + .guide-channelTimeslotHeader { width: 12vw; } } @@ -197,34 +213,26 @@ } @media all and (max-width: 50em) { - - .newTvProgram, .liveTvProgram, .premiereTvProgram, .guideHdIcon { + .newTvProgram, + .liveTvProgram, + .premiereTvProgram, + .guideHdIcon { display: none; } } -.channelPrograms { - height: 4.42em; - contain: strict; - display: flex; - flex-direction: column; - border-style: solid; - border-width: 1px 0 1px 0; +.channelPrograms + .channelPrograms, +.guide-channelHeaderCell + .guide-channelHeaderCell { + margin-top: -1px; } - .channelPrograms + .channelPrograms, .guide-channelHeaderCell + .guide-channelHeaderCell { - margin-top: -1px; - } - -.channelPrograms-tv, .guide-channelHeaderCell-tv { +.channelPrograms-tv, +.guide-channelHeaderCell-tv { height: 3em; } -.guide-channelTimeslotHeader { - border-right-color: transparent; -} - -.guide-channelTimeslotHeader, .timeslotHeader { +.guide-channelTimeslotHeader, +.timeslotHeader { background: transparent !important; height: 2.8em; } @@ -253,6 +261,7 @@ text-decoration: none; overflow: hidden; align-items: center; + /* Needed for Firefox */ text-align: left; contain: strict; @@ -261,7 +270,7 @@ } .guideProgramName { - padding: 0 .7em 0; + padding: 0 0.7em 0; overflow: hidden; text-overflow: ellipsis; align-items: center; @@ -269,7 +278,8 @@ position: relative; flex-grow: 1; contain: layout style paint; - /*transition: transform 60ms ease-out;*/ + + /* transition: transform 60ms ease-out; */ } .guide-programNameCaret { @@ -289,11 +299,11 @@ .guideProgramSecondaryInfo { display: flex; align-items: center; - margin-top: .1em; + margin-top: 0.1em; } .programIcon { - margin-left: .5em; + margin-left: 0.5em; height: 1em; width: 1em; font-size: 1.6em; @@ -304,16 +314,16 @@ .guide-programTextIcon { font-weight: bold; - font-size: .9em; - padding: .16em .3em; - border-radius: .25em; - margin-right: .35em; + font-size: 0.9em; + padding: 0.16em 0.3em; + border-radius: 0.25em; + margin-right: 0.35em; width: auto; height: auto; } .guide-programTextIcon-tv { - font-size: .74em; + font-size: 0.74em; } .guideChannelNumber { @@ -345,14 +355,12 @@ } @media all and (min-width: 62.5em) { - .guideChannelName { max-width: 40%; } } @media all and (max-width: 62.5em) { - .guideChannelNumber { display: none; } @@ -368,21 +376,19 @@ flex-direction: column; } -.channelsContainer, .programGrid { +.channelsContainer, +.programGrid { contain: layout style paint; } -.programCell, .guide-channelHeaderCell { - outline: none !important; -} - -.timerIcon, .seriesTimerIcon { - color: #cc3333 !important; +.timerIcon, +.seriesTimerIcon { + color: #c33 !important; } .seriesTimerIcon-inactive { color: inherit !important; - opacity: .7; + opacity: 0.7; } .guideOptions { @@ -392,7 +398,6 @@ } @media all and (max-width: 50em), all and (max-height: 37.5em) { - .tvGuideHeader { padding-left: 0; } @@ -415,16 +420,16 @@ } .guide-date-tab-button { - padding: .3em .7em !important; - margin: 0 .3em !important; + padding: 0.3em 0.7em !important; + margin: 0 0.3em !important; font-weight: normal; } - .guide-date-tab-button.emby-tab-button-active { - border-color: transparent !important; - } +.guide-date-tab-button.emby-tab-button-active { + border-color: transparent !important; +} - .guide-date-tab-button.show-focus:focus { - border-radius: .15em !important; - transform: none !important; - } +.guide-date-tab-button.show-focus:focus { + border-radius: 0.15em !important; + transform: none !important; +} diff --git a/src/components/guide/programs.css b/src/components/guide/programs.css index 7a559e173f..34976e81ec 100644 --- a/src/components/guide/programs.css +++ b/src/components/guide/programs.css @@ -1,15 +1,15 @@ .newTvProgram { - background: #3388cc; + background: #38c; color: #fff; } .liveTvProgram { - background: #cc3333; + background: #c33; color: #fff; } .premiereTvProgram { - background: #EF6C00; + background: #ef6c00; color: #fff; } diff --git a/src/components/headroom/headroom.css b/src/components/headroom/headroom.css index caac40a1b6..df985892ff 100644 --- a/src/components/headroom/headroom.css +++ b/src/components/headroom/headroom.css @@ -8,4 +8,4 @@ .headroom--unpinned:not(.headroomDisabled) { transform: translateY(-100%); -} \ No newline at end of file +} diff --git a/src/components/homesections/homesections.css b/src/components/homesections/homesections.css index 5df2440f82..2a119c0981 100644 --- a/src/components/homesections/homesections.css +++ b/src/components/homesections/homesections.css @@ -1,23 +1,24 @@ .homeLibraryButton { min-width: 18%; - margin: .5em !important; + margin: 0.5em !important; } @media all and (max-width: 50em) { - .homeLibraryButton { width: 46% !important; } } .homeLibraryIcon { - margin-left: .5em; - margin-right: .5em; - flex-shrink: 0 + margin-left: 0.5em; + margin-right: 0.5em; + -webkit-flex-shrink: 0; + flex-shrink: 0; } .homeLibraryText { white-space: nowrap; + -o-text-overflow: ellipsis; text-overflow: ellipsis; - overflow: hidden + overflow: hidden; } diff --git a/src/components/htmlvideoplayer/plugin.js b/src/components/htmlvideoplayer/plugin.js index a71b053a21..d2f9632adb 100644 --- a/src/components/htmlvideoplayer/plugin.js +++ b/src/components/htmlvideoplayer/plugin.js @@ -1054,7 +1054,9 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa var options = { video: videoElement, subUrl: getTextTrackUrl(track, item), - fonts: attachments.map(i => i.DeliveryUrl), + fonts: attachments.map(function (i) { + return i.DeliveryUrl; + }), workerUrl: appRouter.baseUrl() + "/libraries/subtitles-octopus-worker.js", onError: function() { htmlMediaHelper.onErrorInternal(self, 'mediadecodeerror') @@ -1401,7 +1403,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa dlg.classList.add('videoPlayerContainer'); if (options.backdropUrl) { - dlg.classList.add('videoPlayerContainer-withBackdrop'); dlg.style.backgroundImage = "url('" + options.backdropUrl + "')"; } @@ -1410,11 +1411,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa dlg.classList.add('videoPlayerContainer-onTop'); } - // playsinline new for iOS 10 - // https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_0.html - var html = ''; - var cssClass = 'htmlvideoplayer'; if (!browser.chromecast) { @@ -1449,7 +1446,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa self._mediaElement = videoElement; if (mediaManager) { - if (!mediaManager.embyInit) { initMediaManager(); mediaManager.embyInit = true; @@ -1465,9 +1461,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa } else { resolve(videoElement); } - }); - } else { if (options.backdropUrl) { dlg.classList.add('videoPlayerContainer-withBackdrop'); diff --git a/src/components/htmlvideoplayer/style.css b/src/components/htmlvideoplayer/style.css index e1875ff332..5ecf4af66a 100644 --- a/src/components/htmlvideoplayer/style.css +++ b/src/components/htmlvideoplayer/style.css @@ -42,6 +42,7 @@ video::-webkit-media-controls { .htmlvideoplayer::cue { background-color: transparent; text-shadow: 0.14em 0.14em 0.14em rgba(0, 0, 0, 1); + -webkit-font-smoothing: antialiased; font-family: inherit; } @@ -71,7 +72,7 @@ video::-webkit-media-controls { @keyframes htmlvideoplayer-zoomin { from { transform: scale3d(0.2, 0.2, 0.2); - opacity: .6; + opacity: 0.6; } to { diff --git a/src/components/imageeditor/imageeditor.css b/src/components/imageeditor/imageeditor.css index d45400cac9..5587e7d8d1 100644 --- a/src/components/imageeditor/imageeditor.css +++ b/src/components/imageeditor/imageeditor.css @@ -6,4 +6,4 @@ .first-imageEditor-buttons { margin-top: 2em; -} \ No newline at end of file +} diff --git a/src/components/images/style.css b/src/components/images/style.css index 06fbf1f9cf..2836dd0159 100644 --- a/src/components/images/style.css +++ b/src/components/images/style.css @@ -1,5 +1,22 @@ .lazy-image-fadein { + opacity: 0; animation: lazy-image-fadein 330ms ease-in normal both; + -webkit-animation-duration: 0.8s; + -moz-animation-duration: 0.8s; + -o-animation-duration: 0.8s; + animation-duration: 0.8s; + -webkit-animation-name: popInAnimation; + -moz-animation-name: popInAnimation; + -o-animation-name: popInAnimation; + animation-name: popInAnimation; + -webkit-animation-fill-mode: forwards; + -moz-animation-fill-mode: forwards; + -o-animation-fill-mode: forwards; + animation-fill-mode: forwards; + -webkit-animation-timing-function: cubic-bezier(0, 0, 0.5, 1); + -moz-animation-timing-function: cubic-bezier(0, 0, 0.5, 1); + -o-animation-timing-function: cubic-bezier(0, 0, 0.5, 1); + animation-timing-function: cubic-bezier(0, 0, 0.5, 1); } .lazy-image-fadein-fast { @@ -16,14 +33,6 @@ } } -.lazy-image-fadein { - opacity: 0; - animation-duration: .8s; - animation-name: popInAnimation; - animation-fill-mode: forwards; - animation-timing-function: cubic-bezier(0,0,.5,1); -} - @keyframes popInAnimation { 0% { opacity: 0; @@ -32,4 +41,4 @@ 100% { opacity: 1; } -} \ No newline at end of file +} diff --git a/src/components/imageuploader/style.css b/src/components/imageuploader/style.css index bd86d8bff3..dc4fecb108 100644 --- a/src/components/imageuploader/style.css +++ b/src/components/imageuploader/style.css @@ -1,6 +1,7 @@ .imageEditor-dropZone { - border: .2em dashed currentcolor; - border-radius: .25em; + border: 0.2em dashed currentcolor; + border-radius: 0.25em; + /* padding: 1.6em; */ text-align: center; position: relative; @@ -8,4 +9,4 @@ display: flex; align-items: center; justify-content: center; -} \ No newline at end of file +} diff --git a/src/components/indicators/indicators.css b/src/components/indicators/indicators.css index b0d0119c05..e4e7985817 100644 --- a/src/components/indicators/indicators.css +++ b/src/components/indicators/indicators.css @@ -1,8 +1,8 @@ .itemProgressBar { background: #333; - background: rgba(51,51,51,.8); + background: rgba(51, 51, 51, 0.8); position: relative; - height: .28em; + height: 0.28em; } .itemProgressBarForeground { @@ -14,6 +14,7 @@ .indicator { border-radius: 100em; + display: -webkit-flex; display: flex; align-items: center; justify-content: center; @@ -23,7 +24,7 @@ } .timerIndicator { - color: #CB272A; + color: #cb272a; } .timerIndicator-inactive { @@ -31,7 +32,7 @@ } .indicator + .indicator { - margin-left: .25em; + margin-left: 0.25em; } .indicatorIcon { @@ -42,6 +43,7 @@ .countIndicator { border-radius: 100em; + display: -webkit-flex; display: flex; align-items: center; justify-content: center; @@ -53,6 +55,7 @@ .playedIndicator { border-radius: 100em; + display: -webkit-flex; display: flex; align-items: center; justify-content: center; @@ -64,6 +67,7 @@ .videoIndicator { background: #444; border-radius: 100em; + display: -webkit-flex; display: flex; align-items: center; justify-content: center; @@ -81,12 +85,13 @@ color: #333; } -.missingIndicator, .unairedIndicator { - background: #cc3333; - padding: .25em .5em; +.missingIndicator, +.unairedIndicator { + background: #c33; + padding: 0.25em 0.5em; border-radius: 100em; color: #fff; font-size: 84%; font-weight: 500; - margin: 0 .25em; -} \ No newline at end of file + margin: 0 0.25em; +} diff --git a/src/components/keyboardnavigation.js b/src/components/keyboardnavigation.js index 8c0bb1a3ae..d1ed03138c 100644 --- a/src/components/keyboardnavigation.js +++ b/src/components/keyboardnavigation.js @@ -1,36 +1,133 @@ -define(['inputManager', 'focusManager'], function(inputManager, focusManager) { - 'use strict'; +define(["inputManager", "layoutManager"], function (inputManager, layoutManager) { + "use strict"; console.log("keyboardnavigation"); + /** + * Key name mapping. + */ + // Add more to support old browsers + var KeyNames = { + 13: "Enter", + 19: "Pause", + 27: "Escape", + 32: "Space", + 37: "ArrowLeft", + 38: "ArrowUp", + 39: "ArrowRight", + 40: "ArrowDown", + // MediaRewind (Tizen/WebOS) + 412: "MediaRewind", + // MediaStop (Tizen/WebOS) + 413: "MediaStop", + // MediaPlay (Tizen/WebOS) + 415: "MediaPlay", + // MediaFastForward (Tizen/WebOS) + 417: "MediaFastForward", + // Back (WebOS) + 461: "Back", + // Back (Tizen) + 10009: "Back", + // MediaTrackPrevious (Tizen) + 10232: "MediaTrackPrevious", + // MediaTrackNext (Tizen) + 10233: "MediaTrackNext", + // MediaPlayPause (Tizen) + 10252: "MediaPlayPause" + }; + + var hasFieldKey = false; + try { + hasFieldKey = "key" in new KeyboardEvent("keydown"); + } catch (e) { + console.log("error checking 'key' field"); + } + + if (!hasFieldKey) { + // Add [a..z] + for (var i = 65; i <= 90; i++) { + KeyNames[i] = String.fromCharCode(i).toLowerCase(); + } + } + + /** + * Returns key name from event. + * + * @param {KeyboardEvent} keyboard event + * @return {string} key name + */ + function getKeyName(event) { + return KeyNames[event.keyCode] || event.key; + } + function enable() { - document.addEventListener('keydown', function(e) { + document.addEventListener("keydown", function (e) { var capture = true; - switch (e.keyCode) { - case 37: // ArrowLeft - inputManager.handle('left'); + switch (getKeyName(e)) { + case "ArrowLeft": + inputManager.handle("left"); break; - case 38: // ArrowUp - inputManager.handle('up'); + case "ArrowUp": + inputManager.handle("up"); break; - case 39: // ArrowRight - inputManager.handle('right'); + case "ArrowRight": + inputManager.handle("right"); break; - case 40: // ArrowDown - inputManager.handle('down'); + case "ArrowDown": + inputManager.handle("down"); break; + + case "Back": + inputManager.handle("back"); + break; + + case "Escape": + if (layoutManager.tv) { + inputManager.handle("back"); + } else { + capture = false; + } + break; + + case "MediaPlay": + inputManager.handle("play"); + break; + case "Pause": + inputManager.handle("pause"); + break; + case "MediaPlayPause": + inputManager.handle("playpause"); + break; + case "MediaRewind": + inputManager.handle("rewind"); + break; + case "MediaFastForward": + inputManager.handle("fastforward"); + break; + case "MediaStop": + inputManager.handle("stop"); + break; + case "MediaTrackPrevious": + inputManager.handle("previoustrack"); + break; + case "MediaTrackNext": + inputManager.handle("nexttrack"); + break; + default: capture = false; } + if (capture) { console.log("Disabling default event handling"); e.preventDefault(); } }); - } + return { - enable: enable + enable: enable, + getKeyName: getKeyName }; }); diff --git a/src/components/layoutManager.js b/src/components/layoutManager.js index 1059bf5758..21bcdf5933 100644 --- a/src/components/layoutManager.js +++ b/src/components/layoutManager.js @@ -2,7 +2,6 @@ define(['browser', 'appSettings', 'events'], function (browser, appSettings, eve 'use strict'; function setLayout(instance, layout, selectedLayout) { - if (layout === selectedLayout) { instance[layout] = true; document.documentElement.classList.add('layout-' + layout); @@ -38,7 +37,6 @@ define(['browser', 'appSettings', 'events'], function (browser, appSettings, eve }; LayoutManager.prototype.getSavedLayout = function (layout) { - return appSettings.get('layout'); }; @@ -64,4 +62,4 @@ define(['browser', 'appSettings', 'events'], function (browser, appSettings, eve }; return new LayoutManager(); -}); \ No newline at end of file +}); diff --git a/src/components/lazyloader/lazyedgehack.css b/src/components/lazyloader/lazyedgehack.css index e0fea48c40..e358872f16 100644 --- a/src/components/lazyloader/lazyedgehack.css +++ b/src/components/lazyloader/lazyedgehack.css @@ -1,5 +1,5 @@ .lazy { /* In edge, intersection observer will not fire on 0px sized elements */ - min-width: .1em; - min-height: .1em; + min-width: 0.1em; + min-height: 0.1em; } diff --git a/src/components/listview/listview.css b/src/components/listview/listview.css index bdd9cd8acf..1a37e45561 100644 --- a/src/components/listview/listview.css +++ b/src/components/listview/listview.css @@ -10,7 +10,7 @@ display: block; align-items: center; text-align: left; - padding: .25em .25em .25em .5em; + padding: 0.25em 0.25em 0.25em 0.5em; cursor: pointer; overflow: hidden; } @@ -50,14 +50,18 @@ } .listItem-border.show-focus:focus { - transform: scale(1.0) !important; + transform: scale(1) !important; } -.listItemImage, .listItemIcon, .listItemAside { +.listItemImage, +.listItemIcon, +.listItemAside { flex-shrink: 0; } -.listItemBody, .listItemImage, .listItemIcon { +.listItemBody, +.listItemImage, +.listItemIcon { display: inline-block; vertical-align: middle; } @@ -71,13 +75,13 @@ } .listViewDragHandle { - margin-left: -.25em !important; + margin-left: -0.25em !important; touch-action: none; } .listItemBody { flex-grow: 1; - padding: .85em .75em; + padding: 0.85em 0.75em; overflow: hidden; text-overflow: ellipsis; flex-direction: column; @@ -85,8 +89,15 @@ justify-content: center; } +.listItem, +.listItemBody, +.listItemMediaInfo { + display: flex; + contain: layout style; +} + .layout-tv .listItemBody { - padding: .35em .75em; + padding: 0.35em 0.75em; } .listItemBody-noleftpadding { @@ -95,7 +106,7 @@ .listItemBodyText { margin: 0; - padding: .1em 0; + padding: 0.1em 0; overflow: hidden; text-overflow: ellipsis; } @@ -121,7 +132,7 @@ width: 19.5vw; height: 13vw; background-position: center center; - margin-right: .75em; + margin-right: 0.75em; } .listItemImageButton { @@ -161,13 +172,13 @@ } .listItemBody { - padding-left: .75em; + padding-left: 0.75em; } } @media all and (max-width: 50em) { .listItemBody { - padding-right: .5em; + padding-right: 0.5em; } } @@ -180,15 +191,15 @@ width: 1em !important; height: 1em !important; font-size: 143%; - padding: 0 .25em 0 0; + padding: 0 0.25em 0 0; } .listItemIcon:not(.listItemIcon-transparent) { background-color: #00a4dc; color: #fff; - padding: .5em; + padding: 0.5em; border-radius: 100em; - margin: 0 .2em 0 .4em; + margin: 0 0.2em 0 0.4em; } .listItemProgressBar { @@ -199,7 +210,7 @@ } .listItem:focus { - border-radius: .2em; + border-radius: 0.2em; } .listItem:focus .secondary { @@ -207,7 +218,7 @@ } .listItem-focusscale { - transition: transform .2s ease-out; + transition: transform 0.2s ease-out; } .listItem-focusscale:focus { @@ -215,7 +226,7 @@ } .paperList { - margin: .5em auto; + margin: 0.5em auto; } .paperList-clear { @@ -234,26 +245,23 @@ } .listItemIndicators { - right: .324em; - top: .324em; + right: 0.324em; + top: 0.324em; position: absolute; display: flex; align-items: center; } -.listItem, .listItemBody, .listItemMediaInfo { - display: flex; - contain: layout style; -} - .listItem-bottomoverview { font-size: 88%; margin-bottom: 1em; - margin-top: .2em; + margin-top: 0.2em; } @media all and (max-width: 50em) { - .listItem .endsAt, .listItem .criticRating, .listItem-overview { + .listItem .endsAt, + .listItem .criticRating, + .listItem-overview { display: none !important; } } diff --git a/src/components/loading/loading.css b/src/components/loading/loading.css index e3f10c0e2e..dae33aa9b8 100644 --- a/src/components/loading/loading.css +++ b/src/components/loading/loading.css @@ -7,11 +7,20 @@ .mdlSpinnerActive { display: inline-block; + -webkit-animation: mdl-spinner__container-rotate 1568.23529412ms linear infinite; animation: mdl-spinner__container-rotate 1568.23529412ms linear infinite; } +@-webkit-keyframes mdl-spinner__container-rotate { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + @keyframes mdl-spinner__container-rotate { to { + -webkit-transform: rotate(360deg); transform: rotate(360deg); } } @@ -24,67 +33,121 @@ } .mdl-spinner__layer-1 { - border-color: rgb(66,165,245); + border-color: rgb(66, 165, 245); } .mdl-spinner__layer-1-active { + -webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } .mdl-spinner__layer-2 { - border-color: rgb(244,67,54); + border-color: rgb(244, 67, 54); } .mdl-spinner__layer-2-active { + -webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } .mdl-spinner__layer-3 { - border-color: rgb(253,216,53); + border-color: rgb(253, 216, 53); } .mdl-spinner__layer-3-active { + -webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } .mdl-spinner__layer-4 { - border-color: rgb(76,175,80); + border-color: rgb(76, 175, 80); } .mdl-spinner__layer-4-active { + -webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } -@keyframes mdl-spinner__fill-unfill-rotate { +@-webkit-keyframes mdl-spinner__fill-unfill-rotate { 12.5% { + -webkit-transform: rotate(135deg); transform: rotate(135deg); } 25% { + -webkit-transform: rotate(270deg); transform: rotate(270deg); } 37.5% { + -webkit-transform: rotate(405deg); transform: rotate(405deg); } 50% { + -webkit-transform: rotate(540deg); transform: rotate(540deg); } 62.5% { + -webkit-transform: rotate(675deg); transform: rotate(675deg); } 75% { + -webkit-transform: rotate(810deg); transform: rotate(810deg); } 87.5% { + -webkit-transform: rotate(945deg); transform: rotate(945deg); } to { + -webkit-transform: rotate(1080deg); + transform: rotate(1080deg); + } +} + +@keyframes mdl-spinner__fill-unfill-rotate { + 12.5% { + -webkit-transform: rotate(135deg); + transform: rotate(135deg); + } + + 25% { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); + } + + 37.5% { + -webkit-transform: rotate(405deg); + transform: rotate(405deg); + } + + 50% { + -webkit-transform: rotate(540deg); + transform: rotate(540deg); + } + + 62.5% { + -webkit-transform: rotate(675deg); + transform: rotate(675deg); + } + + 75% { + -webkit-transform: rotate(810deg); + transform: rotate(810deg); + } + + 87.5% { + -webkit-transform: rotate(945deg); + transform: rotate(945deg); + } + + to { + -webkit-transform: rotate(1080deg); transform: rotate(1080deg); } } @@ -98,6 +161,32 @@ * - https://github.com/Polymer/paper-spinner/issues/9 * - https://code.google.com/p/chromium/issues/detail?id=436255 */ +@-webkit-keyframes mdl-spinner__layer-1-fade-in-out { + from { + opacity: 0.99; + } + + 25% { + opacity: 0.99; + } + + 26% { + opacity: 0; + } + + 89% { + opacity: 0; + } + + 90% { + opacity: 0.99; + } + + 100% { + opacity: 0.99; + } +} + @keyframes mdl-spinner__layer-1-fade-in-out { from { opacity: 0.99; @@ -124,6 +213,28 @@ } } +@-webkit-keyframes mdl-spinner__layer-2-fade-in-out { + from { + opacity: 0; + } + + 15% { + opacity: 0; + } + + 25% { + opacity: 0.99; + } + + 50% { + opacity: 0.99; + } + + 51% { + opacity: 0; + } +} + @keyframes mdl-spinner__layer-2-fade-in-out { from { opacity: 0; @@ -146,6 +257,28 @@ } } +@-webkit-keyframes mdl-spinner__layer-3-fade-in-out { + from { + opacity: 0; + } + + 40% { + opacity: 0; + } + + 50% { + opacity: 0.99; + } + + 75% { + opacity: 0.99; + } + + 76% { + opacity: 0; + } +} + @keyframes mdl-spinner__layer-3-fade-in-out { from { opacity: 0; @@ -168,6 +301,28 @@ } } +@-webkit-keyframes mdl-spinner__layer-4-fade-in-out { + from { + opacity: 0; + } + + 65% { + opacity: 0; + } + + 75% { + opacity: 0.99; + } + + 90% { + opacity: 0.99; + } + + 100% { + opacity: 0; + } +} + @keyframes mdl-spinner__layer-4-fade-in-out { from { opacity: 0; @@ -190,6 +345,23 @@ } } +.mdl-spinner__circle { + box-sizing: border-box; + height: 100%; + border-width: 0.21em; + border-style: solid; + border-color: inherit; + border-bottom-color: transparent !important; + border-radius: 50%; + -webkit-animation: none; + animation: none; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + .mdl-spinner__circle-clipper { display: inline-block; position: relative; @@ -199,69 +371,97 @@ border-color: inherit; } - .mdl-spinner__circle-clipper .mdl-spinner__circle { - width: 200%; - } - -.mdl-spinner__circle { - box-sizing: border-box; - height: 100%; - border-width: .21em; - border-style: solid; - border-color: inherit; - border-bottom-color: transparent !important; - border-radius: 50%; - animation: none; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; +.mdl-spinner__circle-clipper .mdl-spinner__circle { + width: 200%; } .mdl-spinner__circleLeft { border-right-color: transparent !important; + -webkit-transform: rotate(129deg); transform: rotate(129deg); } .mdl-spinner__circleLeft-active { + -webkit-animation: mdl-spinner__left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; animation: mdl-spinner__left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } .mdl-spinner__circleRight { left: -100%; border-left-color: transparent !important; + -webkit-transform: rotate(-129deg); transform: rotate(-129deg); } .mdl-spinner__circleRight-active { + -webkit-animation: mdl-spinner__right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; animation: mdl-spinner__right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; } -@keyframes mdl-spinner__left-spin { +@-webkit-keyframes mdl-spinner__left-spin { from { + -webkit-transform: rotate(130deg); transform: rotate(130deg); } 50% { + -webkit-transform: rotate(-5deg); transform: rotate(-5deg); } to { + -webkit-transform: rotate(130deg); transform: rotate(130deg); } } +@keyframes mdl-spinner__left-spin { + from { + -webkit-transform: rotate(130deg); + transform: rotate(130deg); + } + + 50% { + -webkit-transform: rotate(-5deg); + transform: rotate(-5deg); + } + + to { + -webkit-transform: rotate(130deg); + transform: rotate(130deg); + } +} + +@-webkit-keyframes mdl-spinner__right-spin { + from { + -webkit-transform: rotate(-130deg); + transform: rotate(-130deg); + } + + 50% { + -webkit-transform: rotate(5deg); + transform: rotate(5deg); + } + + to { + -webkit-transform: rotate(-130deg); + transform: rotate(-130deg); + } +} + @keyframes mdl-spinner__right-spin { from { + -webkit-transform: rotate(-130deg); transform: rotate(-130deg); } 50% { + -webkit-transform: rotate(5deg); transform: rotate(5deg); } to { + -webkit-transform: rotate(-130deg); transform: rotate(-130deg); } } diff --git a/src/components/mediainfo/mediainfo.css b/src/components/mediainfo/mediainfo.css index 2203ba6676..b957c3a5b2 100644 --- a/src/components/mediainfo/mediainfo.css +++ b/src/components/mediainfo/mediainfo.css @@ -4,13 +4,13 @@ } .mediaInfoText { - padding: .22em .5em; - border-radius: .25em; + padding: 0.22em 0.5em; + border-radius: 0.25em; font-size: 92%; display: flex; align-items: center; white-space: nowrap; - margin: 0 .5em 0 0; + margin: 0 0.5em 0 0; } .mediaInfoText-upper { @@ -21,7 +21,7 @@ width: auto; height: auto; font-size: 1.6em; - margin-right: .6em; + margin-right: 0.6em; } .mediaInfoItem:last-child { @@ -63,8 +63,8 @@ .mediaInfoProgramAttribute { text-transform: uppercase; - padding: .16em .6em; - border-radius: .15em; + padding: 0.16em 0.6em; + border-radius: 0.15em; font-size: 80%; } @@ -73,13 +73,13 @@ } .mediaInfoOfficialRating { - border: .09em solid currentColor; - padding: 0 .6em; + border: 0.09em solid currentColor; + padding: 0 0.6em; height: 1.3em; line-height: 1.8em; display: flex; align-items: center; justify-content: center; - border-radius: .1em; + border-radius: 0.1em; font-size: 96%; } diff --git a/src/components/multiselect/multiselect.css b/src/components/multiselect/multiselect.css index 9c2a58cd20..e9c66c57a4 100644 --- a/src/components/multiselect/multiselect.css +++ b/src/components/multiselect/multiselect.css @@ -4,7 +4,7 @@ left: 0; right: 0; top: 0; - background-color: rgba(0, 0, 0, .3); + background-color: rgba(0, 0, 0, 0.3); z-index: 99998; } @@ -13,7 +13,7 @@ top: 0; left: 0; right: 0; - padding: 1em .5em; + padding: 1em 0.5em; display: flex; align-items: center; z-index: 99999; diff --git a/src/components/navdrawer/navdrawer.css b/src/components/navdrawer/navdrawer.css index 5d63e150d1..6d5d098de2 100644 --- a/src/components/navdrawer/navdrawer.css +++ b/src/components/navdrawer/navdrawer.css @@ -3,40 +3,50 @@ position: fixed; top: 0; bottom: 0; - contain: strict + contain: strict; } .touch-menu-la { - background-color: #FFF; + background-color: #fff; will-change: transform; + display: -webkit-box; + display: -webkit-flex; display: flex; + -webkit-transition: -webkit-transform ease-out 40ms, left ease-out 260ms; + -o-transition: transform ease-out 40ms, left ease-out 260ms; transition: transform ease-out 40ms, left ease-out 260ms; - z-index: 1099 + z-index: 1099; } .touch-menu-la.transition { - transition: transform ease-out 240ms, left ease-out 260ms + -webkit-transition: -webkit-transform ease-out 240ms, left ease-out 260ms; + -o-transition: transform ease-out 240ms, left ease-out 260ms; + transition: transform ease-out 240ms, left ease-out 260ms; } .drawer-open { - box-shadow: 2px 0 12px rgba(0, 0, 0, .4) + -webkit-box-shadow: 2px 0 12px rgba(0, 0, 0, 0.4); + box-shadow: 2px 0 12px rgba(0, 0, 0, 0.4); } .scrollContainer { - flex-grow: 1 + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + flex-grow: 1; } .tmla-mask { left: 0; right: 0; - background-color: #000; opacity: 0; z-index: 1098; - transition: opacity ease-in-out .38s, visibility ease-in-out .38s; + -webkit-transition: opacity ease-in-out 0.38s, visibility ease-in-out 0.38s; + -o-transition: opacity ease-in-out 0.38s, visibility ease-in-out 0.38s; + transition: opacity ease-in-out 0.38s, visibility ease-in-out 0.38s; will-change: opacity; - background-color: rgba(0, 0, 0, .3) + background-color: rgba(0, 0, 0, 0.3); } .tmla-mask.backdrop { - opacity: 1 -} \ No newline at end of file + opacity: 1; +} diff --git a/src/components/nowplayingbar/nowplayingbar.css b/src/components/nowplayingbar/nowplayingbar.css index 120a0508a0..b1e77715ff 100644 --- a/src/components/nowplayingbar/nowplayingbar.css +++ b/src/components/nowplayingbar/nowplayingbar.css @@ -16,7 +16,7 @@ } .nowPlayingBar-hidden { - transform: translate3d(0,100%,0); + transform: translate3d(0, 100%, 0); } .nowPlayingBarTop { @@ -28,7 +28,8 @@ justify-content: center; } -.mediaButton, .nowPlayingBarUserDataButtons .btnUserItemRating { +.mediaButton, +.nowPlayingBarUserDataButtons .btnUserItemRating { vertical-align: middle; margin: 0; text-align: center; @@ -62,6 +63,7 @@ .nowPlayingBarCenter { vertical-align: middle; text-align: center; + /* Need this to make sure it's on top of nowPlayingBarPositionContainer so that buttons are fully clickable */ z-index: 2; flex-grow: 1; @@ -74,7 +76,7 @@ .nowPlayingBarPositionContainer { position: absolute !important; left: 0; - top: -.56em; + top: -0.56em; right: 0; z-index: 1; } @@ -89,7 +91,8 @@ .nowPlayingBarRight { position: relative; - margin: 0 .5em 0 auto; + margin: 0 0.5em 0 auto; + /* Need this to make sure it's on top of nowPlayingBarPositionContainer so that buttons are fully clickable */ z-index: 2; display: flex; @@ -121,7 +124,6 @@ } @media all and (max-width: 70em) { - .nowPlayingBarRight .nowPlayingBarUserDataButtons { display: none; } @@ -155,13 +157,15 @@ .nowPlayingBarRight .nowPlayingBarVolumeSliderContainer { display: none !important; } + .nowPlayingBarInfoContainer { width: 70%; } } @media all and (max-width: 24em) { - .nowPlayingBar .muteButton, .nowPlayingBar .unmuteButton { + .nowPlayingBar .muteButton, + .nowPlayingBar .unmuteButton { display: none; } } diff --git a/src/components/playback/autoplaydetect.js b/src/components/playback/autoplaydetect.js deleted file mode 100644 index 3610eef2ab..0000000000 --- a/src/components/playback/autoplaydetect.js +++ /dev/null @@ -1,61 +0,0 @@ -define([], function () { - 'use strict'; - - function supportsHtmlMediaAutoplay() { - - return new Promise(function (resolve, reject) { - - var timeout; - var elem = document.createElement('video'); - var elemStyle = elem.style; - //skip the test if video itself, or the autoplay - //element on it isn't supported - if (!('autoplay' in elem)) { - reject(); - return; - } - elemStyle.position = 'absolute'; - elemStyle.height = 0; - elemStyle.width = 0; - - elem.setAttribute('autoplay', 'autoplay'); - elem.style.display = 'none'; - document.body.appendChild(elem); - - var testAutoplay = function (arg) { - clearTimeout(timeout); - elem.removeEventListener('playing', testAutoplay); - elem.removeEventListener('play', testAutoplay); - var supported = (arg && arg.type === 'playing') || (arg && arg.type === 'play') || elem.currentTime !== 0; - elem.parentNode.removeChild(elem); - - if (supported) { - resolve(); - } else { - reject(); - } - }; - - // play needed for firefox - elem.addEventListener('play', testAutoplay); - elem.addEventListener('playing', testAutoplay); - - try { - elem.src = 'data:video/mp4;base64,AAAAHGZ0eXBtcDQyAAAAAG1wNDJpc29tYXZjMQAAAz5tb292AAAAbG12aGQAAAAAzaNacc2jWnEAAV+QAAFfkAABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAGGlvZHMAAAAAEICAgAcAT////3//AAACQ3RyYWsAAABcdGtoZAAAAAHNo1pxzaNacQAAAAEAAAAAAAFfkAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAEAAAABAAAAAAAd9tZGlhAAAAIG1kaGQAAAAAzaNacc2jWnEAAV+QAAFfkFXEAAAAAAAhaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAAAAAAGWbWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAABVnN0YmwAAACpc3RzZAAAAAAAAAABAAAAmWF2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAEAAQAEgAAABIAAAAAAAAAAEOSlZUL0FWQyBDb2RpbmcAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAxYXZjQwH0AAr/4QAZZ/QACq609NQYBBkAAAMAAQAAAwAKjxImoAEABWjOAa8gAAAAEmNvbHJuY2xjAAYAAQAGAAAAGHN0dHMAAAAAAAAAAQAAAAUAAEZQAAAAKHN0c3oAAAAAAAAAAAAAAAUAAAIqAAAACAAAAAgAAAAIAAAACAAAAChzdHNjAAAAAAAAAAIAAAABAAAABAAAAAEAAAACAAAAAQAAAAEAAAAYc3RjbwAAAAAAAAACAAADYgAABaQAAAAUc3RzcwAAAAAAAAABAAAAAQAAABFzZHRwAAAAAAREREREAAAAb3VkdGEAAABnbWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcgAAAAAAAAAAAAAAAAAAAAA6aWxzdAAAADKpdG9vAAAAKmRhdGEAAAABAAAAAEhhbmRCcmFrZSAwLjkuOCAyMDEyMDcxODAwAAACUm1kYXQAAAHkBgX/4NxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxMjAgLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29weWxlZnQgMjAwMy0yMDExIC0gaHR0cDovL3d3dy52aWRlb2xhbi5vcmcveDI2NC5odG1sIC0gb3B0aW9uczogY2FiYWM9MCByZWY9MSBkZWJsb2NrPTE6MDowIGFuYWx5c2U9MHgxOjAgbWU9ZXNhIHN1Ym1lPTkgcHN5PTAgbWl4ZWRfcmVmPTAgbWVfcmFuZ2U9NCBjaHJvbWFfbWU9MSB0cmVsbGlzPTAgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0wIGNocm9tYV9xcF9vZmZzZXQ9MCB0aHJlYWRzPTYgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTUwIGtleWludF9taW49NSBzY2VuZWN1dD00MCBpbnRyYV9yZWZyZXNoPTAgcmM9Y3FwIG1idHJlZT0wIHFwPTAAgAAAAD5liISscR8A+E4ACAACFoAAITAAAgsAAPgYCoKgoC+L4vi+KAvi+L4YfAEAACMzgABF9AAEUGUgABDJiXnf4AAAAARBmiKUAAAABEGaQpQAAAAEQZpilAAAAARBmoKU'; - var promise = elem.play(); - if (promise && promise.catch) { - promise.catch(reject); - } - - timeout = setTimeout(testAutoplay, 500); - } catch (e) { - reject(); - return; - } - }); - } - - return { - supportsHtmlMediaAutoplay: supportsHtmlMediaAutoplay - }; -}); \ No newline at end of file diff --git a/src/components/playback/iconosd.css b/src/components/playback/iconosd.css index b2c4fca91a..8f197a179e 100644 --- a/src/components/playback/iconosd.css +++ b/src/components/playback/iconosd.css @@ -4,11 +4,11 @@ right: 3%; z-index: 100000; background: #222; - background: rgba(0, 0, 0, .8); + background: rgba(0, 0, 0, 0.8); padding: 1em; color: #fff; backdrop-filter: blur(5px); - border-radius: .25em; + border-radius: 0.25em; transition: opacity 200ms ease-out; } @@ -19,22 +19,22 @@ .iconOsdIcon { font-size: 320%; display: block; - margin: .25em .7em; + margin: 0.25em 0.7em; } .iconOsdProgressOuter { - margin: 1.5em .25em 1em; - height: .35em; + margin: 1.5em 0.25em 1em; + height: 0.35em; background: #222; - border-radius: .25em; + border-radius: 0.25em; } .iconOsdProgressInner { background: #00a4dc; height: 100%; - border-radius: .25em; + border-radius: 0.25em; } .brightnessOsdProgressInner { - background: #FF9800; -} \ No newline at end of file + background: #ff9800; +} diff --git a/src/components/playerstats/playerstats.css b/src/components/playerstats/playerstats.css index b9d6355bd2..dfdf75a2e0 100644 --- a/src/components/playerstats/playerstats.css +++ b/src/components/playerstats/playerstats.css @@ -1,11 +1,10 @@ .playerStats { - background: rgba(28,28,28,0.8); - border-radius: .3em; + background: rgba(28, 28, 28, 0.8); + border-radius: 0.3em; color: #fff; left: 1.5em; position: absolute; top: 5em; - color: #fff; } .playerStats-tv { @@ -23,8 +22,8 @@ .playerStats-closeButton { position: absolute; - top: .25em; - right: .25em; + top: 0.25em; + right: 0.25em; color: #ccc; z-index: 1; } @@ -44,7 +43,7 @@ .playerStats-stat-label { font-weight: 500; - margin: 0 .5em 0 0; + margin: 0 0.5em 0 0; } .playerStats-stat-header { diff --git a/src/components/recordingcreator/recordingcreator.css b/src/components/recordingcreator/recordingcreator.css index dc1ba9b31a..031d04b860 100644 --- a/src/components/recordingcreator/recordingcreator.css +++ b/src/components/recordingcreator/recordingcreator.css @@ -9,7 +9,7 @@ } .recordingDialog-itemName { - margin-top: .7em; + margin-top: 0.7em; } .recordingDetailsContainer { diff --git a/src/components/recordingcreator/recordingfields.css b/src/components/recordingcreator/recordingfields.css index c8492f5298..db0c7e0692 100644 --- a/src/components/recordingcreator/recordingfields.css +++ b/src/components/recordingcreator/recordingfields.css @@ -4,9 +4,9 @@ } .recordingIcon-active { - color: #cc3333; + color: #c33; } .recordSeriesContainer { - margin-bottom: .8em; -} \ No newline at end of file + margin-bottom: 0.8em; +} diff --git a/src/components/remotecontrol/remotecontrol.css b/src/components/remotecontrol/remotecontrol.css index 349416a979..83a1c48e5f 100644 --- a/src/components/remotecontrol/remotecontrol.css +++ b/src/components/remotecontrol/remotecontrol.css @@ -1,69 +1,89 @@ .nowPlayingInfoContainer { + display: -webkit-box; + display: -webkit-flex; display: flex; - flex-direction: row + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + flex-direction: row; } .navigationSection { - text-align: center + text-align: center; } -.btnArrowUp{ +.btnArrowUp { border-radius: 40% 40% 10% 10%; } -.btnArrowLeft{ +.btnArrowLeft { border-radius: 40% 10% 10% 40%; } -.btnArrowRight{ +.btnArrowRight { border-radius: 10% 40% 40% 10%; } -.btnArrowDown{ +.btnArrowDown { border-radius: 10% 10% 40% 40%; } -.btnOk{ +.btnOk { border-radius: 10%; } .nowPlayingPageTitle { - margin: 0 0 .5em .5em + margin: 0 0 0.5em 0.5em; } .nowPlayingPositionSliderContainer { - margin: .7em 0 .7em 1em + margin: 0.7em 0 0.7em 1em; } .nowPlayingInfoButtons { + display: -webkit-box; + display: -webkit-flex; display: flex; + -webkit-box-align: center; + -webkit-align-items: center; align-items: center; - flex-wrap: wrap + -webkit-flex-wrap: wrap; + flex-wrap: wrap; } .nowPlayingInfoControls, .nowPlayingTime { display: flex; + display: -webkit-box; + display: -webkit-flex; } .nowPlayingPageImageContainer { width: 20%; - margin-right: .25em; + margin-right: 0.25em; position: relative; - flex-shrink: 0 + -webkit-flex-shrink: 0; + flex-shrink: 0; } -@media all and (min-width:50em) { +@media all and (min-width: 50em) { .nowPlayingPageImageContainer { - width: 16% + width: 16%; } } .nowPlayingInfoControls { + -webkit-box-flex: 1; + -webkit-flex-grow: 1; flex-grow: 1; display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; flex-direction: column; - justify-content: center + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; } .nowPlayingPageImage { @@ -71,121 +91,149 @@ left: 0; right: 0; width: 100%; + -webkit-box-shadow: 0 0 1.9vh #000; box-shadow: 0 0 1.9vh #000; - border: .1em solid #222; + border: 0.1em solid #222; user-drag: none; user-select: none; + -moz-user-select: none; + -webkit-user-drag: none; + -webkit-user-select: none; + -ms-user-select: none; } -@media all and (orientation:portrait) and (max-width:50em) { +@media all and (orientation: portrait) and (max-width: 50em) { .nowPlayingInfoContainer { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -webkit-flex-direction: column !important; flex-direction: column !important; - align-items: center + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; } .nowPlayingPageTitle { text-align: center; - margin: .5em 0 .75em + margin: 0.5em 0 0.75em; } .nowPlayingPositionSliderContainer { - margin: .7em 1em + margin: 0.7em 1em; } .nowPlayingInfoButtons { - justify-content: center + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; } .nowPlayingPageImageContainer { width: auto; - margin-right: 0 + margin-right: 0; } .nowPlayingInfoControls { margin-top: 1em; - max-width: 100% + max-width: 100%; } .nowPlayingPageImage { width: auto; - height: 36vh + height: 36vh; } } -@media all and (orientation:portrait) and (max-width:40em) { +@media all and (orientation: portrait) and (max-width: 40em) { .nowPlayingPageImage { - height: 30vh + height: 30vh; } } .nowPlayingTime { display: flex; + -webkit-box-align: center; + -webkit-align-items: center; align-items: center; - margin: 0 1em + margin: 0 1em; } .nowPlayingSecondaryButtons { + display: -webkit-box; + display: -webkit-flex; display: flex; + -webkit-box-align: center; + -webkit-align-items: center; align-items: center; + -webkit-flex-wrap: wrap; flex-wrap: wrap; - justify-content: center + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; } -@media all and (min-width:50em) { +@media all and (min-width: 50em) { .nowPlayingSecondaryButtons { + -webkit-box-flex: 1; + -webkit-flex-grow: 1; flex-grow: 1; - justify-content: flex-end + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + justify-content: flex-end; } } -@media all and (min-width:80em) { +@media all and (min-width: 80em) { .nowPlayingPageImageContainer { - margin-right: .75em + margin-right: 0.75em; } } .nowPlayingNavButtonContainer { - width: 30em + width: 30em; } -.smallBackdropPosterItem .cardOverlayInner>div { +.smallBackdropPosterItem .cardOverlayInner > div { white-space: nowrap; + -o-text-overflow: ellipsis; text-overflow: ellipsis; - overflow: hidden + overflow: hidden; } .playlistIndexIndicatorImage { + -webkit-background-size: initial initial !important; background-size: initial !important; - background-image: url(assets/img/equalizer.gif) !important; + background-image: url(../../assets/img/equalizer.gif) !important; } .hideVideoButtons .videoButton { - display: none + display: none; } .nowPlayingVolumeSliderContainer { - width: 9em + width: 9em; } -@media all and (max-width:50em) { +@media all and (max-width: 50em) { .nowPlayingInfoButtons .nowPlayingPageUserDataButtons { - display: none !important + display: none !important; } - .navigationSection .collapseContent i{ + + .navigationSection .collapseContent i { font-size: 4em; } } -@media all and (max-width:47em) { +@media all and (max-width: 47em) { .nowPlayingInfoButtons .repeatToggleButton { - display: none !important + display: none !important; } } -@media all and (max-width:34em) { +@media all and (max-width: 34em) { .nowPlayingInfoButtons .btnNowPlayingFastForward, .nowPlayingInfoButtons .btnNowPlayingRewind, .nowPlayingInfoButtons .playlist .listItemMediaInfo { - display: none !important + display: none !important; } } diff --git a/src/components/search/searchfields.css b/src/components/search/searchfields.css index 01981ed998..08d8515c86 100644 --- a/src/components/search/searchfields.css +++ b/src/components/search/searchfields.css @@ -4,8 +4,8 @@ } .searchfields-icon { - margin-bottom: .1em; - margin-right: .25em; + margin-bottom: 0.1em; + margin-right: 0.25em; font-size: 2em; align-self: flex-end; } diff --git a/src/components/slideshow/style.css b/src/components/slideshow/style.css index 1167a972c8..2bea7c9696 100644 --- a/src/components/slideshow/style.css +++ b/src/components/slideshow/style.css @@ -3,11 +3,14 @@ background: #000; } -.slideshowSwiperContainer, .swiper-wrapper, .swiper-slide { +.slideshowSwiperContainer, +.swiper-wrapper, +.swiper-slide { background: #000; } -.slideshowImage, .slideshowSwiperContainer { +.slideshowImage, +.slideshowSwiperContainer { position: fixed; top: 0; right: 0; @@ -27,11 +30,12 @@ .slideshowImageText { position: fixed; - bottom: .25em; - right: .5em; + bottom: 0.25em; + right: 0.5em; color: #fff; z-index: 1002; font-weight: normal; + /* Add an outline */ text-shadow: 3px 3px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000; } @@ -41,6 +45,9 @@ height: auto; max-width: 100%; max-height: 100%; + -ms-transform: translate(-50%, -50%); + -webkit-transform: translate(-50%, -50%); + -moz-transform: translate(-50%, -50%); transform: translate(-50%, -50%); position: absolute; left: 50%; @@ -49,26 +56,26 @@ .slideshowButtonIcon { color: #fff; - opacity: .7; + opacity: 0.7; } .btnSlideshowPrevious { - left: .5vh; + left: 0.5vh; top: 45vh; z-index: 1002; position: absolute; } .btnSlideshowNext { - right: .5vh; + right: 0.5vh; top: 45vh; z-index: 1002; position: absolute; } .topActionButtons { - right: .5vh; - top: .5vh; + right: 0.5vh; + top: 0.5vh; z-index: 1002; position: absolute; } @@ -78,9 +85,9 @@ left: 0; bottom: 0; right: 0; - background-color: rgba(0, 0, 0, .7); + background-color: rgba(0, 0, 0, 0.7); color: #fff; - padding: .5%; + padding: 0.5%; display: flex; flex-direction: row; align-items: center; @@ -92,9 +99,9 @@ left: 0; top: 0; right: 0; - background-color: rgba(0, 0, 0, .7); + background-color: rgba(0, 0, 0, 0.7); color: #fff; - padding: .5%; + padding: 0.5%; display: flex; flex-direction: row; align-items: center; @@ -118,14 +125,14 @@ .slideTextInner { margin: 0 auto; max-width: 60%; - background: rgba(0,0,0,.8); + background: rgba(0, 0, 0, 0.8); display: inline-block; - padding: .5em 1em; - border-radius: .25em; + padding: 0.5em 1em; + border-radius: 0.25em; } .slideTitle { - margin: 0 0 .25em; + margin: 0 0 0.25em; } .slideSubtitle { diff --git a/src/components/subtitleeditor/subtitleeditor.css b/src/components/subtitleeditor/subtitleeditor.css index a97b20b38a..08e6faffba 100644 --- a/src/components/subtitleeditor/subtitleeditor.css +++ b/src/components/subtitleeditor/subtitleeditor.css @@ -1,3 +1,3 @@ .originalSubtitleFileLabel { margin-right: 1em; -} \ No newline at end of file +} diff --git a/src/components/subtitlesync/subtitlesync.css b/src/components/subtitlesync/subtitlesync.css index 38a15be901..2ff8a3e905 100644 --- a/src/components/subtitlesync/subtitlesync.css +++ b/src/components/subtitlesync/subtitlesync.css @@ -3,8 +3,8 @@ margin-left: 30%; margin-right: 30%; height: 4.2em; - background: rgba(28,28,28,0.8); - border-radius: .3em; + background: rgba(28, 28, 28, 0.8); + border-radius: 0.3em; color: #fff; position: absolute; } @@ -14,7 +14,7 @@ top: 0; right: 0; color: #ccc; - z-index: 2; + z-index: 2; } .subtitleSyncTextField { @@ -27,7 +27,7 @@ text-align: center; font-size: 20px; color: white; - z-index: 2; + z-index: 2; } #prompt { @@ -40,7 +40,9 @@ margin-right: 1%; top: 2.5em; height: 1.4em; + -webkit-box-flex: 1; + -webkit-flex-grow: 1; flex-grow: 1; - border-radius: .3em; - z-index: 1; -} \ No newline at end of file + border-radius: 0.3em; + z-index: 1; +} diff --git a/src/components/toast/toast.css b/src/components/toast/toast.css index 09d89abca5..28d6cb52fc 100644 --- a/src/components/toast/toast.css +++ b/src/components/toast/toast.css @@ -3,9 +3,9 @@ min-width: 20em; box-sizing: border-box; box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37); - border-radius: .15em; + border-radius: 0.15em; cursor: default; - transition: transform .3s ease-out; + transition: transform 0.3s ease-out; min-height: initial; padding: 1em 1.5em; bottom: 1em; diff --git a/src/components/upnextdialog/upnextdialog.css b/src/components/upnextdialog/upnextdialog.css index 784c79cbb7..15f91b29d9 100644 --- a/src/components/upnextdialog/upnextdialog.css +++ b/src/components/upnextdialog/upnextdialog.css @@ -11,6 +11,7 @@ background-color: rgba(0, 0, 0, 0.7); color: #fff; user-select: none; + -webkit-touch-callout: none; } .upNextDialog-hidden { @@ -27,7 +28,7 @@ position: relative; margin-right: 1em; flex-shrink: 0; - margin-bottom: .5em; + margin-bottom: 0.5em; } .upNextDialog-button { @@ -36,7 +37,6 @@ } @media all and (orientation: landscape) { - .upNextDialog { flex-direction: row; } @@ -66,4 +66,8 @@ border: 0; user-drag: none; user-select: none; + -moz-user-select: none; + -webkit-user-drag: none; + -webkit-user-select: none; + -ms-user-select: none; } diff --git a/src/components/userdatabuttons/userdatabuttons.css b/src/components/userdatabuttons/userdatabuttons.css index 0138631734..f93f47ffcc 100644 --- a/src/components/userdatabuttons/userdatabuttons.css +++ b/src/components/userdatabuttons/userdatabuttons.css @@ -1,3 +1,3 @@ .btnUserDataOn { - color: #cc3333 !important; -} \ No newline at end of file + color: #c33 !important; +} diff --git a/src/components/usersettings/usersettings.js b/src/components/usersettings/usersettings.js deleted file mode 100644 index 6b3dc90d49..0000000000 --- a/src/components/usersettings/usersettings.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['userSettingsBuilder'], function (userSettingsBuilder) { - 'use strict'; - - return new userSettingsBuilder(); -}); \ No newline at end of file diff --git a/src/components/viewManager/viewContainer.css b/src/components/viewManager/viewContainer.css index edfa101976..61d9345014 100644 --- a/src/components/viewManager/viewContainer.css +++ b/src/components/viewManager/viewContainer.css @@ -5,8 +5,10 @@ right: 0; bottom: 0; contain: layout style size; - /* Can't use will-change because it causes the alpha picker to move when the page scrolls*/ - /*will-change: transform;*/ + + /* Can't use will-change because it causes the alpha picker to move when the page scrolls */ + + /* will-change: transform; */ } @keyframes view-fadeout { @@ -18,6 +20,7 @@ opacity: 0; } } + @keyframes view-fadein { from { opacity: 0; @@ -66,4 +69,4 @@ to { transform: translate3d(100%, 0, 0); } -} \ No newline at end of file +} diff --git a/src/components/youtubeplayer/style.css b/src/components/youtubeplayer/style.css index 8c59a541cf..1328e6f3d5 100644 --- a/src/components/youtubeplayer/style.css +++ b/src/components/youtubeplayer/style.css @@ -9,13 +9,13 @@ align-items: center; } - .youtubePlayerContainer.onTop { - z-index: 1000; - } +.youtubePlayerContainer.onTop { + z-index: 1000; +} - .youtubePlayerContainer video { - margin: 0 !important; - padding: 0 !important; - width: 100%; - height: 100%; - } \ No newline at end of file +.youtubePlayerContainer video { + margin: 0 !important; + padding: 0 !important; + width: 100%; + height: 100%; +} diff --git a/src/controllers/dashboard/general.js b/src/controllers/dashboard/general.js index 742cae112f..7eed352329 100644 --- a/src/controllers/dashboard/general.js +++ b/src/controllers/dashboard/general.js @@ -18,22 +18,6 @@ define(["jQuery", "loading", "fnchecked", "emby-checkbox", "emby-textarea", "emb return '"; })).val(config.UICulture); currentLanguage = config.UICulture; - - if (systemInfo.CanSelfUpdate) { - page.querySelector(".fldAutomaticUpdates").classList.remove("hide"); - } else { - page.querySelector(".fldAutomaticUpdates").classList.add("hide"); - } - - $("#chkEnableAutomaticServerUpdates", page).checked(config.EnableAutoUpdate); - $("#chkEnableAutomaticRestart", page).checked(config.EnableAutomaticRestart); - - if (systemInfo.CanSelfRestart) { - page.querySelector("#fldEnableAutomaticRestart").classList.remove("hide"); - } else { - page.querySelector("#fldEnableAutomaticRestart").classList.add("hide"); - } - if (systemInfo.CanSelfRestart || systemInfo.CanSelfUpdate) { $(".autoUpdatesContainer", page).removeClass("hide"); } else { @@ -55,10 +39,8 @@ define(["jQuery", "loading", "fnchecked", "emby-checkbox", "emby-textarea", "emb config.MetadataNetworkPath = $("#txtMetadataNetworkPath", form).val(); var requiresReload = config.UICulture !== currentLanguage; config.AutoRunWebApp = $("#chkAutoRunWebApp", form).checked(); - config.EnableAutomaticRestart = $("#chkEnableAutomaticRestart", form).checked(); - config.EnableAutoUpdate = $("#chkEnableAutomaticServerUpdates", form).checked(); - ApiClient.updateServerConfiguration(config).then(function () { - ApiClient.getNamedConfiguration(brandingConfigKey).then(function (brandingConfig) { + ApiClient.updateServerConfiguration(config).then(function() { + ApiClient.getNamedConfiguration(brandingConfigKey).then(function(brandingConfig) { brandingConfig.LoginDisclaimer = form.querySelector("#txtLoginDisclaimer").value; brandingConfig.CustomCss = form.querySelector("#txtCustomCss").value; diff --git a/src/controllers/movies/moviegenres.js b/src/controllers/movies/moviegenres.js index e51274d254..6d32e4ab2a 100644 --- a/src/controllers/movies/moviegenres.js +++ b/src/controllers/movies/moviegenres.js @@ -114,7 +114,10 @@ define(["layoutManager", "loading", "libraryBrowser", "cardBuilder", "lazyLoader shape: getPortraitShape(), scalable: true, overlayMoreButton: true, - allowBottomPadding: false + allowBottomPadding: true, + showTitle: true, + centerText: true, + showYear: true }); } if (result.Items.length >= query.Limit) { diff --git a/src/controllers/movies/moviesrecommended.js b/src/controllers/movies/moviesrecommended.js index 0327217e44..31ded5c594 100644 --- a/src/controllers/movies/moviesrecommended.js +++ b/src/controllers/movies/moviesrecommended.js @@ -1,4 +1,4 @@ -define(["events", "layoutManager", "inputManager", "userSettings", "libraryMenu", "mainTabsManager", "cardBuilder", "dom", "imageLoader", "playbackManager", "emby-itemscontainer", "emby-tabs", "emby-button"], function (events, layoutManager, inputManager, userSettings, libraryMenu, mainTabsManager, cardBuilder, dom, imageLoader, playbackManager) { +define(["events", "layoutManager", "inputManager", "userSettings", "libraryMenu", "mainTabsManager", "cardBuilder", "dom", "imageLoader", "playbackManager", "emby-scroller", "emby-itemscontainer", "emby-tabs", "emby-button"], function (events, layoutManager, inputManager, userSettings, libraryMenu, mainTabsManager, cardBuilder, dom, imageLoader, playbackManager) { "use strict"; function enableScrollX() { @@ -114,18 +114,25 @@ define(["events", "layoutManager", "inputManager", "userSettings", "libraryMenu" var allowBottomPadding = true; if (enableScrollX()) { - allowBottomPadding = false; - html += '
'; + html += '
'; + html += '
'; } else { - html += '
'; + html += '
'; } html += cardBuilder.getCardsHtml(recommendation.Items, { shape: getPortraitShape(), scalable: true, overlayPlayButton: true, - allowBottomPadding: allowBottomPadding + allowBottomPadding: allowBottomPadding, + showTitle: true, + showYear: true, + centerText: true }); + + if (enableScrollX()) { + html += '
'; + } html += "
"; html += "
"; return html; diff --git a/src/controllers/playback/nowplayingpage.js b/src/controllers/playback/nowplaying.js similarity index 100% rename from src/controllers/playback/nowplayingpage.js rename to src/controllers/playback/nowplaying.js diff --git a/src/controllers/playback/videoosd.js b/src/controllers/playback/videoosd.js index bd12ba5075..122b2c8080 100644 --- a/src/controllers/playback/videoosd.js +++ b/src/controllers/playback/videoosd.js @@ -1,4 +1,4 @@ -define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "mediaInfo", "focusManager", "imageLoader", "scrollHelper", "events", "connectionManager", "browser", "globalize", "apphost", "layoutManager", "userSettings", "scrollStyles", "emby-slider", "paper-icon-button-light", "css!assets/css/videoosd"], function (playbackManager, dom, inputManager, datetime, itemHelper, mediaInfo, focusManager, imageLoader, scrollHelper, events, connectionManager, browser, globalize, appHost, layoutManager, userSettings) { +define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "mediaInfo", "focusManager", "imageLoader", "scrollHelper", "events", "connectionManager", "browser", "globalize", "apphost", "layoutManager", "userSettings", "keyboardnavigation", "scrollStyles", "emby-slider", "paper-icon-button-light", "css!assets/css/videoosd"], function (playbackManager, dom, inputManager, datetime, itemHelper, mediaInfo, focusManager, imageLoader, scrollHelper, events, connectionManager, browser, globalize, appHost, layoutManager, userSettings, keyboardnavigation) { "use strict"; function seriesImageUrl(item, options) { @@ -437,6 +437,11 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med }); currentVisibleMenu = null; toggleSubtitleSync("hide"); + + // Firefox does not blur by itself + if (document.activeElement) { + document.activeElement.blur(); + } } } @@ -1087,64 +1092,79 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med */ var NavigationKeys = ["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown"]; + /** + * Clicked element. + * To skip 'click' handling on Firefox/Edge. + */ + var clickedElement; + function onWindowKeyDown(e) { + clickedElement = e.srcElement; + + var key = keyboardnavigation.getKeyName(e); + if (!currentVisibleMenu && 32 === e.keyCode) { playbackManager.playPause(currentPlayer); showOsd(); return; } - if (layoutManager.tv && NavigationKeys.indexOf(e.key) != -1) { + if (layoutManager.tv && NavigationKeys.indexOf(key) != -1) { showOsd(); return; } - switch (e.key) { + switch (key) { + case "Enter": + showOsd(); + break; + case "Escape": + case "Back": + // Ignore key when some dialog is opened + if (currentVisibleMenu === "osd" && !document.querySelector(".dialogContainer")) { + hideOsd(); + e.stopPropagation(); + } + break; case "k": playbackManager.playPause(currentPlayer); showOsd(); break; - case "l": case "ArrowRight": case "Right": playbackManager.fastForward(currentPlayer); showOsd(); break; - case "j": case "ArrowLeft": case "Left": playbackManager.rewind(currentPlayer); showOsd(); break; - case "f": if (!e.ctrlKey && !e.metaKey) { playbackManager.toggleFullscreen(currentPlayer); showOsd(); } break; - case "m": playbackManager.toggleMute(currentPlayer); showOsd(); break; - case "NavigationLeft": case "GamepadDPadLeft": case "GamepadLeftThumbstickLeft": - // Ignores gamepad events that are always triggered, even when not focused. + // Ignores gamepad events that are always triggered, even when not focused. if (document.hasFocus()) { playbackManager.rewind(currentPlayer); showOsd(); } break; - case "NavigationRight": case "GamepadDPadRight": case "GamepadLeftThumbstickRight": - // Ignores gamepad events that are always triggered, even when not focused. + // Ignores gamepad events that are always triggered, even when not focused. if (document.hasFocus()) { playbackManager.fastForward(currentPlayer); showOsd(); @@ -1152,6 +1172,14 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med } } + function onWindowMouseDown(e) { + clickedElement = e.srcElement; + } + + function onWindowTouchStart(e) { + clickedElement = e.srcElement; + } + function getImgUrl(item, chapter, index, maxWidth, apiClient) { if (chapter.ImageTag) { return apiClient.getScaledImageUrl(item.Id, { @@ -1280,6 +1308,12 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med showOsd(); inputManager.on(window, onInputCommand); dom.addEventListener(window, "keydown", onWindowKeyDown, { + capture: true + }); + dom.addEventListener(window, window.PointerEvent ? "pointerdown" : "mousedown", onWindowMouseDown, { + passive: true + }); + dom.addEventListener(window, "touchstart", onWindowTouchStart, { passive: true }); } catch (e) { @@ -1294,6 +1328,12 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med } dom.removeEventListener(window, "keydown", onWindowKeyDown, { + capture: true + }); + dom.removeEventListener(window, window.PointerEvent ? "pointerdown" : "mousedown", onWindowMouseDown, { + passive: true + }); + dom.removeEventListener(window, "touchstart", onWindowTouchStart, { passive: true }); stopOsdHideTimer(); @@ -1465,7 +1505,10 @@ define(["playbackManager", "dom", "inputManager", "datetime", "itemHelper", "med playbackManager.previousTrack(currentPlayer); }); view.querySelector(".btnPause").addEventListener("click", function () { - playbackManager.playPause(currentPlayer); + // Ignore 'click' if another element was originally clicked (Firefox/Edge issue) + if (this.contains(clickedElement)) { + playbackManager.playPause(currentPlayer); + } }); view.querySelector(".btnNextTrack").addEventListener("click", function () { playbackManager.nextTrack(currentPlayer); diff --git a/src/dashboardgeneral.html b/src/dashboardgeneral.html index 6387128d5e..559e80ee0a 100644 --- a/src/dashboardgeneral.html +++ b/src/dashboardgeneral.html @@ -56,21 +56,6 @@
-
-

${HeaderAutomaticUpdates}

- -
- -
${LabelAllowServerAutoRestartHelp}
-
-
-

${HeaderBranding}

diff --git a/src/elements/emby-button/emby-button.css b/src/elements/emby-button/emby-button.css index ee15e2e125..2776dec65d 100644 --- a/src/elements/emby-button/emby-button.css +++ b/src/elements/emby-button/emby-button.css @@ -8,20 +8,26 @@ font-size: inherit; font-family: inherit; color: inherit; + + /* These are getting an outline in opera tv browsers, which run chrome 30 */ + outline: none !important; outline-width: 0; + -moz-user-select: none; + -ms-user-select: none; + -webkit-user-select: none; user-select: none; cursor: pointer; z-index: 0; padding: 0.9em 1em; vertical-align: middle; border: 0; - vertical-align: middle; border-radius: 0.2em; - /* These are getting an outline in opera tv browsers, which run chrome 30 */ - outline: none !important; - position: relative; font-weight: 600; + + /* Disable webkit tap highlighting */ + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-decoration: none; + /* Not crazy about this but it normalizes heights between anchors and buttons */ line-height: 1.35; transform-origin: center; @@ -42,7 +48,7 @@ } .button-flat:hover { - opacity: .5; + opacity: 0.5; } .button-link { @@ -79,7 +85,7 @@ display: block; align-items: center; justify-content: center; - margin: .25em 0; + margin: 0.25em 0; width: 100%; } @@ -88,12 +94,15 @@ display: inline-flex; align-items: center; box-sizing: border-box; - margin: 0 .29em; + margin: 0 0.29em; background: transparent; text-align: center; font-size: inherit; font-family: inherit; color: inherit; + -moz-user-select: none; + -ms-user-select: none; + -webkit-user-select: none; user-select: none; cursor: pointer; z-index: 0; @@ -101,15 +110,17 @@ min-height: initial; width: auto; height: auto; - padding: .556em; + padding: 0.556em; vertical-align: middle; border: 0; - vertical-align: middle; + /* These are getting an outline in opera tv browsers, which run chrome 30 */ outline: none !important; - position: relative; overflow: hidden; border-radius: 50%; + + /* Disable webkit tap highlighting */ + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); justify-content: center; transform-origin: center; transition: 0.2s; @@ -120,32 +131,33 @@ z-index: 1; } - .paper-icon-button-light::-moz-focus-inner { - border: 0; - } +.paper-icon-button-light::-moz-focus-inner { + border: 0; +} - .paper-icon-button-light:disabled { - opacity: 0.3; - cursor: default; - } +.paper-icon-button-light:disabled { + opacity: 0.3; + cursor: default; +} - .paper-icon-button-light > i { - font-size: 1.66956521739130434em; - /* Make sure its on top of the ripple */ - position: relative; - z-index: 1; - vertical-align: middle; - } +.paper-icon-button-light > i { + font-size: 1.66956521739130434em; - .paper-icon-button-light > div { - max-height: 100%; - transform: scale(1.8); - position: relative; - z-index: 1; - vertical-align: middle; - display: inline; - margin: 0 auto; - } + /* Make sure its on top of the ripple */ + position: relative; + z-index: 1; + vertical-align: middle; +} + +.paper-icon-button-light > div { + max-height: 100%; + transform: scale(1.8); + position: relative; + z-index: 1; + vertical-align: middle; + display: inline; + margin: 0 auto; +} .emby-button-foreground { position: relative; @@ -159,7 +171,6 @@ .filterButtonBubble { color: #fff; position: absolute; - background: #444; top: 0; right: 0; width: 1.6em; @@ -170,7 +181,7 @@ justify-content: center; font-size: 82%; border-radius: 100em; - box-shadow: 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12), 0px 2px 4px -1px rgba(0, 0, 0, 0.2); - background: #03A9F4; + box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2); + background: #03a9f4; font-weight: bold; } diff --git a/src/elements/emby-checkbox/emby-checkbox.css b/src/elements/emby-checkbox/emby-checkbox.css index 4e27928e2a..e694342571 100644 --- a/src/elements/emby-checkbox/emby-checkbox.css +++ b/src/elements/emby-checkbox/emby-checkbox.css @@ -32,12 +32,16 @@ .emby-checkbox { position: absolute; + /* This is for focusing purposes, so the focusManager doesn't skip over it */ width: 1px; height: 1px; margin: 0; padding: 0; opacity: 0; + -ms-appearance: none; + -moz-appearance: none; + -webkit-appearance: none; appearance: none; border: none; } @@ -46,14 +50,13 @@ position: absolute; top: 3px; left: 0; - display: inline-block; box-sizing: border-box; width: 1.83em; height: 1.83em; margin: 0; overflow: hidden; border: 2px solid currentcolor; - border-radius: .14em; + border-radius: 0.14em; z-index: 2; display: flex; align-items: center; @@ -98,18 +101,18 @@ flex-wrap: wrap; } - .checkboxList-verticalwrap > .emby-checkbox-label { - display: inline-flex; - margin: .3em 0 .3em 0; - width: 12em; - } +.checkboxList-verticalwrap > .emby-checkbox-label { + display: inline-flex; + margin: 0.3em 0 0.3em 0; + width: 12em; +} .checkboxList-paperList { padding: 1em !important; } .checkboxListLabel { - margin-bottom: .25em; + margin-bottom: 0.25em; } @keyframes repaintChrome { @@ -121,3 +124,13 @@ padding: 0; } } + +@-webkit-keyframes repaintChrome { + from { + padding: 0; + } + + to { + padding: 0; + } +} diff --git a/src/elements/emby-collapse/emby-collapse.css b/src/elements/emby-collapse/emby-collapse.css index 0a982e975d..dd22c20b5b 100644 --- a/src/elements/emby-collapse/emby-collapse.css +++ b/src/elements/emby-collapse/emby-collapse.css @@ -1,5 +1,5 @@ .emby-collapse { - margin: .5em 0; + margin: 0.5em 0; } .collapseContent { @@ -18,10 +18,9 @@ text-transform: none; width: 100%; text-align: left; - text-transform: none; - border-width: 0 0 .1em 0; + border-width: 0 0 0.1em 0; border-style: solid; - padding-left: .1em; + padding-left: 0.1em; background: transparent; box-shadow: none; } @@ -30,7 +29,7 @@ transform-origin: 50% 50%; transition: transform 180ms ease-out; position: absolute; - right: .5em; + right: 0.5em; font-size: 1.5em; } diff --git a/src/elements/emby-input/emby-input.css b/src/elements/emby-input/emby-input.css index 57a46ec7b6..176f8874e8 100644 --- a/src/elements/emby-input/emby-input.css +++ b/src/elements/emby-input/emby-input.css @@ -2,22 +2,24 @@ display: block; margin: 0; margin-bottom: 0 !important; - /* Remove select styling */ - /* Font size must the 16px or larger to prevent iOS page zoom on focus */ - font-size: 110%; - /* General select styles: change as needed */ font-family: inherit; font-weight: inherit; - padding: .4em .25em; - /* Prevent padding from causing width overflow */ + padding: 0.4em 0.25em; + + /* must the 16px or larger to prevent iOS page zoom on focus */ + font-size: 110%; + + /* prevent padding from causing width overflow */ + -webkit-box-sizing: border-box; box-sizing: border-box; outline: none !important; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); width: 100%; } - .emby-input::-moz-focus-inner { - border: 0; - } +.emby-input::-moz-focus-inner { + border: 0; +} .inputContainer { margin-bottom: 1.8em; @@ -25,13 +27,14 @@ .inputLabel { display: inline-block; - margin-bottom: .25em; + margin-bottom: 0.25em; } .emby-input + .fieldDescription { - margin-top: .25em; + margin-top: 0.25em; } .emby-input-iconbutton { + -webkit-align-self: flex-end; align-self: flex-end; } diff --git a/src/elements/emby-progressring/emby-progressring.css b/src/elements/emby-progressring/emby-progressring.css index 7bef7c35f7..014db3aedf 100644 --- a/src/elements/emby-progressring/emby-progressring.css +++ b/src/elements/emby-progressring/emby-progressring.css @@ -11,9 +11,9 @@ width: 100%; height: 100%; border-radius: 50%; - border: .25em solid rgba(0, 0, 0, 1); + border: 0.25em solid rgba(0, 0, 0, 1); box-sizing: border-box; - background: rgba(0, 0, 0, .9); + background: rgba(0, 0, 0, 0.9); display: flex; align-items: center; justify-content: center; @@ -51,7 +51,7 @@ width: 200%; height: 200%; border-radius: 50%; - border-width: .25em; + border-width: 0.25em; border-style: solid; box-sizing: border-box; } diff --git a/src/elements/emby-radio/emby-radio.css b/src/elements/emby-radio/emby-radio.css index 6b8575bc86..6db3c39e4d 100644 --- a/src/elements/emby-radio/emby-radio.css +++ b/src/elements/emby-radio/emby-radio.css @@ -4,29 +4,29 @@ display: inline-block; box-sizing: border-box; margin: 0; - padding-left: 0; + padding-left: 24px; } .radio-label-block { display: flex; align-items: center; - margin-top: .5em; - margin-bottom: .5em; -} - -.mdl-radio { - padding-left: 24px; + margin-top: 0.5em; + margin-bottom: 0.5em; } .mdl-radio__button { line-height: 24px; position: absolute; + /* 1px is for focusing purposes, so the focusManager doesn't skip over it */ width: 1px; height: 1px; margin: 0; padding: 0; opacity: 0; + -ms-appearance: none; + -moz-appearance: none; + -webkit-appearance: none; appearance: none; border: none; } @@ -51,7 +51,7 @@ } .mdl-radio__button:disabled + .mdl-radio__label + .mdl-radio__outer-circle { - border: 2px solid rgba(0,0,0, 0.26); + border: 2px solid rgba(0, 0, 0, 0.26); cursor: auto; } @@ -67,27 +67,31 @@ cursor: pointer; transition-duration: 0.28s; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-property: -webkit-transform; transition-property: transform; + transition-property: transform, -webkit-transform; + -webkit-transform: scale3d(0, 0, 0); transform: scale3d(0, 0, 0); border-radius: 50%; background: #00a4dc; } .mdl-radio__button:checked + .mdl-radio__label + .mdl-radio__outer-circle + .mdl-radio__inner-circle { + -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } .mdl-radio__button:disabled + .mdl-radio__label + .mdl-radio__outer-circle + .mdl-radio__inner-circle { - background: rgba(0,0,0, 0.26); + background: rgba(0, 0, 0, 0.26); cursor: auto; } .mdl-radio__button:focus + .mdl-radio__label + .mdl-radio__outer-circle + .mdl-radio__inner-circle { - box-shadow: 0 0 0px 10px rgba(255, 255, 255, 0.76); + box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.76); } .mdl-radio__button:checked:focus + .mdl-radio__label + .mdl-radio__outer-circle + .mdl-radio__inner-circle { - box-shadow: 0 0 0 10px rgba(0, 164, 220, 0.26) + box-shadow: 0 0 0 10px rgba(0, 164, 220, 0.26); } .mdl-radio__label { @@ -95,6 +99,6 @@ } .mdl-radio__button:disabled + .mdl-radio__label { - color: rgba(0,0,0, 0.26); + color: rgba(0, 0, 0, 0.26); cursor: auto; } diff --git a/src/elements/emby-select/emby-select.css b/src/elements/emby-select/emby-select.css index 4aff8cab92..b508e5d0e3 100644 --- a/src/elements/emby-select/emby-select.css +++ b/src/elements/emby-select/emby-select.css @@ -2,52 +2,60 @@ display: block; margin: 0; margin-bottom: 0 !important; + /* Remove select styling */ + /* Font size must the 16px or larger to prevent iOS page zoom on focus */ font-size: 110%; + /* General select styles: change as needed */ font-family: inherit; font-weight: inherit; - padding: .5em 1.9em .5em .5em; + padding: 0.5em 1.9em 0.5em 0.5em; + /* Prevent padding from causing width overflow */ box-sizing: border-box; outline: none !important; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); width: 100%; } - .emby-select[disabled] { - background: none !important; - border-color: transparent !important; - color: inherit !important; - appearance: none; - } - -.selectContainer-inline > .emby-select { - padding: .3em 1.9em .3em .5em; - font-size: inherit; +.emby-select[disabled] { + background: none !important; + border-color: transparent !important; + color: inherit !important; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } - .selectContainer-inline > .emby-select[disabled] { - padding-left: 0; - padding-right: 0; - } - .emby-select::-moz-focus-inner { border: 0; } +.selectContainer-inline > .emby-select { + padding: 0.3em 1.9em 0.3em 0.5em; + font-size: inherit; +} + +.selectContainer-inline > .emby-select[disabled] { + padding-left: 0; + padding-right: 0; +} + .emby-select-focusscale { transition: transform 180ms ease-out !important; + -webkit-transform-origin: center center; transform-origin: center center; } - .emby-select-focusscale:focus { - transform: scale(1.04); - z-index: 1; - } +.emby-select-focusscale:focus { + transform: scale(1.04); + z-index: 1; +} .emby-select + .fieldDescription { - margin-top: .25em; + margin-top: 0.25em; } .selectContainer { @@ -63,31 +71,32 @@ .selectLabel { display: block; - margin-bottom: .25em; + margin-bottom: 0.25em; } .selectContainer-inline > .selectLabel { margin-bottom: 0; - margin-right: .5em; + margin-right: 0.5em; flex-shrink: 0; } .emby-select-withcolor { + -webkit-appearance: none; appearance: none; - border-radius: .2em; + border-radius: 0.2em; } .selectArrowContainer { position: absolute; - right: .3em; - top: .2em; + right: 0.3em; + top: 0.2em; color: inherit; pointer-events: none; } .selectContainer-inline > .selectArrowContainer { top: initial; - bottom: .24em; + bottom: 0.24em; font-size: 90%; } @@ -96,7 +105,7 @@ } .selectArrow { - margin-top: .35em; + margin-top: 0.35em; font-size: 1.7em; } diff --git a/src/elements/emby-slider/emby-slider.css b/src/elements/emby-slider/emby-slider.css index 6fc861deb0..30d4ccb6d8 100644 --- a/src/elements/emby-slider/emby-slider.css +++ b/src/elements/emby-slider/emby-slider.css @@ -1,73 +1,85 @@ -_:-ms-input-placeholder { +:-ms-input-placeholder { appearance: none; + -ms-appearance: none; height: 2.223em; margin: 0; } .mdl-slider { width: 100%; + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; appearance: none; - height: 150%;/*150% is needed, else ie and edge won't display the thumb properly*/ + height: 150%;/* 150% is needed, else ie and edge won't display the thumb properly */ background: transparent; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; user-select: none; outline: 0; color: #00a4dc; + -webkit-align-self: center; + -ms-flex-item-align: center; align-self: center; z-index: 1; cursor: pointer; margin: 0; + + /* Disable webkit tap highlighting */ + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); display: block; } - .mdl-slider::-moz-focus-outer { - border: 0; - } +.mdl-slider::-moz-focus-outer { + border: 0; +} - .mdl-slider::-ms-tooltip { - display: none; - } +.mdl-slider::-ms-tooltip { + display: none; +} - .mdl-slider::-webkit-slider-runnable-track { - background: transparent; - } +.mdl-slider::-webkit-slider-runnable-track { + background: transparent; +} - .mdl-slider::-moz-range-track { - background: #444; - border: none; - width: calc(100% - 20px); - } +.mdl-slider::-moz-range-track { + background: #444; + border: none; + width: calc(100% - 20px); +} - .mdl-slider::-moz-range-progress { - background: #00a4dc; - width: calc(100% - 20px); - } +.mdl-slider::-moz-range-progress { + background: #00a4dc; + width: calc(100% - 20px); +} - .mdl-slider::-ms-track { - background: none; - color: transparent; - height: .2em; - width: 100%; - border: none; - } +.mdl-slider::-ms-track { + background: none; + color: transparent; + height: 0.2em; + width: 100%; + border: none; +} - .mdl-slider::-ms-fill-lower { - display: none; - } +.mdl-slider::-ms-fill-lower { + display: none; +} - .mdl-slider::-ms-fill-upper { - display: none; - } +.mdl-slider::-ms-fill-upper { + display: none; +} - .mdl-slider::-webkit-slider-thumb { - appearance: none; - width: 1.2em; - height: 1.2em; - box-sizing: border-box; - border-radius: 50%; - background: #00a4dc; - border: none; - transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1); - } +.mdl-slider::-webkit-slider-thumb { + -webkit-appearance: none; + width: 1.2em; + height: 1.2em; + box-sizing: border-box; + border-radius: 50%; + background: #00a4dc; + border: none; + transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1); +} .mdl-slider-hoverthumb::-webkit-slider-thumb { transform: none; @@ -91,27 +103,27 @@ _:-ms-input-placeholder { height: 0.9em; box-sizing: border-box; border-radius: 50%; - background-image: none; background: #00a4dc; + background-image: none; border: none; - transform: Scale(1.4, 1.4); + transform: scale(1.4, 1.4); } .mdl-slider::-ms-thumb { - appearance: none; + -webkit-appearance: none; width: 1.8em; height: 1.8em; box-sizing: border-box; border-radius: 50%; background: #00a4dc; border: none; - transform: scale(.9, .9); + transform: scale(0.9, 0.9); transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1); } .mdl-slider-hoverthumb::-ms-thumb { - margin-left: -.4em; - transform: scale(.5, .5); + margin-left: -0.4em; + transform: scale(0.5, 0.5); } .mdl-slider:hover::-ms-thumb { @@ -149,15 +161,15 @@ _:-ms-input-placeholder { .mdl-slider-background-flex-container { width: 100%; box-sizing: border-box; - margin-top: -.05em; + margin-top: -0.05em; top: 50%; position: absolute; } .mdl-slider-background-flex { background: #333; - height: .2em; - margin-top: -.08em; + height: 0.2em; + margin-top: -0.08em; width: 100%; top: 50%; left: 0; @@ -173,7 +185,7 @@ _:-ms-input-placeholder { } .mdl-slider-background-lower { - /*transition: width 0.18s cubic-bezier(0.4, 0, 0.2, 1);*/ + /* transition: width 0.18s cubic-bezier(0.4, 0, 0.2, 1); */ position: absolute; left: 0; width: 0; @@ -188,15 +200,16 @@ _:-ms-input-placeholder { .mdl-slider-background-lower-withtransform { width: 100%; - /*transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1);*/ + + /* transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1); */ transform-origin: left center; transform: scaleX(0); } .mdl-slider-background-upper { - /*transition: left 0.18s cubic-bezier(0.4, 0, 0.2, 1), width 0.18s cubic-bezier(0.4, 0, 0.2, 1);*/ + /* transition: left 0.18s cubic-bezier(0.4, 0, 0.2, 1), width 0.18s cubic-bezier(0.4, 0, 0.2, 1); */ background: #666; - background: rgba(255, 255, 255, .4); + background: rgba(255, 255, 255, 0.4); position: absolute; left: 0; width: 0; @@ -218,5 +231,5 @@ _:-ms-input-placeholder { .sliderBubbleText { margin: 0; - padding: .5em .75em; + padding: 0.5em 0.75em; } diff --git a/src/elements/emby-slider/emby-slider.js b/src/elements/emby-slider/emby-slider.js index c340e79359..24592f4515 100644 --- a/src/elements/emby-slider/emby-slider.js +++ b/src/elements/emby-slider/emby-slider.js @@ -1,4 +1,4 @@ -define(['browser', 'dom', 'layoutManager', 'css!./emby-slider', 'registerElement', 'emby-input'], function (browser, dom, layoutManager) { +define(['browser', 'dom', 'layoutManager', 'keyboardnavigation', 'css!./emby-slider', 'registerElement', 'emby-input'], function (browser, dom, layoutManager, keyboardnavigation) { 'use strict'; var EmbySliderPrototype = Object.create(HTMLInputElement.prototype); @@ -250,7 +250,7 @@ define(['browser', 'dom', 'layoutManager', 'css!./emby-slider', 'registerElement * Handle KeyDown event */ function onKeyDown(e) { - switch (e.key) { + switch (keyboardnavigation.getKeyName(e)) { case 'ArrowLeft': case 'Left': stepKeyboard(this, -this.keyboardStepDown || -1); diff --git a/src/elements/emby-textarea/emby-textarea.css b/src/elements/emby-textarea/emby-textarea.css index 0dab1b1ece..0866664914 100644 --- a/src/elements/emby-textarea/emby-textarea.css +++ b/src/elements/emby-textarea/emby-textarea.css @@ -2,30 +2,35 @@ display: block; margin: 0; margin-bottom: 0 !important; + /* Remove select styling */ + /* Font size must the 16px or larger to prevent iOS page zoom on focus */ font-size: inherit; + /* General select styles: change as needed */ font-family: inherit; font-weight: inherit; color: inherit; - padding: .35em .25em; + padding: 0.35em 0.25em; + /* Prevent padding from causing width overflow */ box-sizing: border-box; outline: none !important; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); width: 100%; } - .emby-textarea::-moz-focus-inner { - border: 0; - } +.emby-textarea::-moz-focus-inner { + border: 0; +} .textareaLabel { display: inline-block; - transition: all .2s ease-out; - margin-bottom: .25em; + transition: all 0.2s ease-out; + margin-bottom: 0.25em; } .emby-textarea + .fieldDescription { - margin-top: .25em; + margin-top: 0.25em; } diff --git a/src/elements/emby-toggle/emby-toggle.css b/src/elements/emby-toggle/emby-toggle.css index 3b14b8cf09..3b5c5a5f64 100644 --- a/src/elements/emby-toggle/emby-toggle.css +++ b/src/elements/emby-toggle/emby-toggle.css @@ -9,6 +9,10 @@ margin: 0; padding: 0; overflow: visible; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; user-select: none; flex-direction: row-reverse; justify-content: flex-end; @@ -24,6 +28,9 @@ margin: 0; padding: 0; opacity: 0; + -ms-appearance: none; + -moz-appearance: none; + -webkit-appearance: none; appearance: none; border: none; } @@ -34,7 +41,7 @@ } .mdl-switch__track { - background: rgba(128,128,128, 0.5); + background: rgba(128, 128, 128, 0.5); height: 1em; border-radius: 1em; cursor: pointer; @@ -45,7 +52,7 @@ } .mdl-switch__input[disabled] + .mdl-switch__label + .mdl-switch__trackContainer > .mdl-switch__track { - background: rgba(0,0,0, 0.12); + background: rgba(0, 0, 0, 0.12); cursor: auto; } @@ -53,7 +60,7 @@ background: #999; position: absolute; left: 0; - top: -.25em; + top: -0.25em; height: 1.44em; width: 1.44em; border-radius: 50%; @@ -70,11 +77,11 @@ .mdl-switch__input:checked + .mdl-switch__label + .mdl-switch__trackContainer > .mdl-switch__thumb { background: #00a4dc; left: 1.466em; - box-shadow: 0 3px 0.28em 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px .56em 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 0.28em 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 0.56em 0 rgba(0, 0, 0, 0.12); } .mdl-switch__input[disabled] + .mdl-switch__label + .mdl-switch__trackContainer > .mdl-switch__thumb { - background: rgb(189,189,189); + background: rgb(189, 189, 189); cursor: auto; } @@ -82,17 +89,18 @@ position: absolute; top: 50%; left: 50%; + -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); display: inline-block; box-sizing: border-box; - width: .6em; - height: .6em; + width: 0.6em; + height: 0.6em; border-radius: 50%; background-color: transparent; } .mdl-switch__input:focus + .mdl-switch__label + .mdl-switch__trackContainer .mdl-switch__focus-helper { - box-shadow: 0 0 0 1.39em rgba(0, 0, 0, .05); + box-shadow: 0 0 0 1.39em rgba(0, 0, 0, 0.05); } .mdl-switch__input:checked:focus + .mdl-switch__label + .mdl-switch__trackContainer .mdl-switch__focus-helper { @@ -105,10 +113,10 @@ margin: 0; display: inline-flex; align-items: center; - margin-left: .7em; + margin-left: 0.7em; } .mdl-switch__input[disabled] .mdl-switch__label { - color: rgb(189,189,189); + color: rgb(189, 189, 189); cursor: auto; } diff --git a/src/scripts/inputManager.js b/src/scripts/inputManager.js index 634b5e1b30..6839b0b6f6 100644 --- a/src/scripts/inputManager.js +++ b/src/scripts/inputManager.js @@ -22,9 +22,7 @@ define(['playbackManager', 'focusManager', 'appRouter', 'dom'], function (playba var eventListenerCount = 0; function on(scope, fn) { - if (eventListenerCount) { - eventListenerCount++; - } + eventListenerCount++; dom.addEventListener(scope, 'command', fn, {}); } diff --git a/src/scripts/librarymenu.js b/src/scripts/librarymenu.js index 1db13b07ee..63827fd698 100644 --- a/src/scripts/librarymenu.js +++ b/src/scripts/librarymenu.js @@ -140,7 +140,9 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", " headerCastButton.addEventListener("click", onCastButtonClicked); } - initHeadRoom(skinHeader); + if (layoutManager.mobile) { + initHeadRoom(skinHeader); + } } function onCastButtonClicked() { diff --git a/src/components/appSettings.js b/src/scripts/settings/appSettings.js similarity index 99% rename from src/components/appSettings.js rename to src/scripts/settings/appSettings.js index d1a981148c..bd91786f87 100644 --- a/src/components/appSettings.js +++ b/src/scripts/settings/appSettings.js @@ -10,13 +10,13 @@ define(['appStorage', 'events'], function (appStorage, events) { } function AppSettings() { - } AppSettings.prototype.enableAutoLogin = function (val) { if (val != null) { this.set('enableAutoLogin', val.toString()); } + return this.get('enableAutoLogin') !== 'false'; }; @@ -132,4 +132,4 @@ define(['appStorage', 'events'], function (appStorage, events) { }; return new AppSettings(); -}); \ No newline at end of file +}); diff --git a/src/components/usersettings/usersettingsbuilder.js b/src/scripts/settings/userSettings.js similarity index 99% rename from src/components/usersettings/usersettingsbuilder.js rename to src/scripts/settings/userSettings.js index f852dacc43..4105a8611e 100644 --- a/src/components/usersettings/usersettingsbuilder.js +++ b/src/scripts/settings/userSettings.js @@ -242,5 +242,5 @@ define(['appSettings', 'events'], function (appSettings, events) { return this.get(key, true); }; - return UserSettings; + return new UserSettings(); }); diff --git a/src/scripts/site.js b/src/scripts/site.js index d7c3a1c8a4..9d7757d344 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -315,6 +315,14 @@ var AppInfo = {}; return "components"; } + function getElementsPath() { + return "elements" + } + + function getScriptsPath() { + return "scripts" + } + function getPlaybackManager(playbackManager) { window.addEventListener("beforeunload", function () { try { @@ -650,8 +658,12 @@ var AppInfo = {}; (function () { var urlArgs = "v=" + (window.dashboardVersion || new Date().getDate()); + var bowerPath = getBowerPath(); var componentsPath = getComponentsPath(); + var elementsPath = getElementsPath(); + var scriptsPath = getScriptsPath(); + var paths = { browserdeviceprofile: "scripts/browserdeviceprofile", browser: "scripts/browser", @@ -672,7 +684,6 @@ var AppInfo = {}; itemHelper: componentsPath + "/itemhelper", itemShortcuts: componentsPath + "/shortcuts", playQueueManager: componentsPath + "/playback/playqueuemanager", - autoPlayDetect: componentsPath + "/playback/autoplaydetect", nowPlayingHelper: componentsPath + "/playback/nowplayinghelper", pluginManager: componentsPath + "/pluginManager", packageManager: componentsPath + "/packagemanager", @@ -765,7 +776,6 @@ var AppInfo = {}; return queryString; }); - var elementsPath = "elements" define("emby-button", [elementsPath + "/emby-button/emby-button"], returnFirstDependency); define("paper-icon-button-light", [elementsPath + "/emby-button/paper-icon-button-light"], returnFirstDependency); define("emby-checkbox", [elementsPath + "/emby-checkbox/emby-checkbox"], returnFirstDependency); @@ -778,6 +788,9 @@ var AppInfo = {}; define("emby-textarea", [elementsPath + "/emby-textarea/emby-textarea"], returnFirstDependency); define("emby-toggle", [elementsPath + "/emby-toggle/emby-toggle"], returnFirstDependency); + define("appSettings", [scriptsPath + "/settings/appSettings"], returnFirstDependency); + define("userSettings", [scriptsPath + "/settings/userSettings"], returnFirstDependency); + define("chromecastHelper", [componentsPath + "/chromecast/chromecasthelpers"], returnFirstDependency); define("mediaSession", [componentsPath + "/playback/mediasession"], returnFirstDependency); define("actionsheet", [componentsPath + "/actionsheet/actionsheet"], returnFirstDependency); @@ -865,9 +878,6 @@ var AppInfo = {}; define("toast", [componentsPath + "/toast/toast"], returnFirstDependency); define("scrollHelper", [componentsPath + "/scrollhelper"], returnFirstDependency); define("touchHelper", [componentsPath + "/touchhelper"], returnFirstDependency); - define("appSettings", [componentsPath + "/appSettings"], returnFirstDependency); - define("userSettings", [componentsPath + "/usersettings/usersettings"], returnFirstDependency); - define("userSettingsBuilder", [componentsPath + "/usersettings/usersettingsbuilder", "layoutManager", "browser"], returnFirstDependency); define("imageUploader", [componentsPath + "/imageuploader/imageuploader"], returnFirstDependency); define("htmlMediaHelper", [componentsPath + "/htmlMediaHelper"], returnFirstDependency); define("viewContainer", [componentsPath + "/viewContainer"], returnFirstDependency); diff --git a/src/strings/ar.json b/src/strings/ar.json index d9e0040d9d..0adf5e045b 100644 --- a/src/strings/ar.json +++ b/src/strings/ar.json @@ -699,7 +699,6 @@ "OptionEnableAccessFromAllDevices": "تفعيل الدخول على كافة الأجهزة", "OptionEnableAccessToAllChannels": "تفعيل الدخول على كافة القنوات", "OptionEnableAccessToAllLibraries": "تمكين الدخول على كافة المكتبات", - "OptionEnableAutomaticServerUpdates": "تمكين التحديثات الآلية في الخادم", "OptionEnableExternalContentInSuggestions": "تمكين المحتوى الخارجي في المقترحات", "OptionEnableExternalContentInSuggestionsHelp": "السماح للعروض الإعلانية من الإنترنت وبرامج بث التلفزة الحي لتضمّن في المحتوى المقترح.", "OptionEnableForAllTuners": "تمكين كل أجهزة المولفات", diff --git a/src/strings/bg-bg.json b/src/strings/bg-bg.json index c7ce361903..d1f6b11b96 100644 --- a/src/strings/bg-bg.json +++ b/src/strings/bg-bg.json @@ -565,7 +565,6 @@ "OptionEnableAccessFromAllDevices": "Позволяване на достъпа от всички устройства", "OptionEnableAccessToAllChannels": "Позволяване на достъпа до всички канали", "OptionEnableAccessToAllLibraries": "Позволяване на достъпа до всички библиотеки", - "OptionEnableAutomaticServerUpdates": "Разрешаване на автоматичните обновления", "OptionEnded": "Приключило", "OptionEveryday": "Всеки ден", "OptionExternallyDownloaded": "Външно сваляне", diff --git a/src/strings/cs.json b/src/strings/cs.json index b0827ca887..aa2ed1a485 100644 --- a/src/strings/cs.json +++ b/src/strings/cs.json @@ -930,7 +930,6 @@ "OptionEnableAccessFromAllDevices": "Povolit přístup ze všech zařízení", "OptionEnableAccessToAllChannels": "Povolit přístup ze všech kanálů", "OptionEnableAccessToAllLibraries": "Povolit přístup ke všem knihovnám", - "OptionEnableAutomaticServerUpdates": "Povolit automatickou aktualizaci serveru", "OptionEnableExternalContentInSuggestions": "Aktivovat externí obsah v návrzích", "OptionEnableExternalContentInSuggestionsHelp": "Povolit zahrnutí internetových upoutávek a živých televizních programů do navrhovaného obsahu.", "OptionEnableForAllTuners": "Povolit pro všechna zařízení tunerů", diff --git a/src/strings/da.json b/src/strings/da.json index 4ddd00252e..cd8d9472ca 100644 --- a/src/strings/da.json +++ b/src/strings/da.json @@ -825,7 +825,6 @@ "OptionEnableAccessFromAllDevices": "Tillad adgang fra alle enheder", "OptionEnableAccessToAllChannels": "Tillad adgang til alle kanaler", "OptionEnableAccessToAllLibraries": "Tillad adgang til alle biblioteker", - "OptionEnableAutomaticServerUpdates": "Aktiver automatiske serveropdateringer", "OptionEnableExternalContentInSuggestions": "Aktiver eksternt indhold i anbefalinger", "OptionEnableExternalContentInSuggestionsHelp": "Tillad at internet-trailers og live-tv-programmer bliver inkluderet i det anbefalede indhold.", "OptionEnableForAllTuners": "Aktiver for alle tuner-enheder", diff --git a/src/strings/de.json b/src/strings/de.json index 034cf04d55..d9b40800b0 100644 --- a/src/strings/de.json +++ b/src/strings/de.json @@ -974,7 +974,6 @@ "OptionEnableAccessFromAllDevices": "Erlaube Zugriff von allen Geräten", "OptionEnableAccessToAllChannels": "Erlaube Zugriff auf alle Kanäle", "OptionEnableAccessToAllLibraries": "Erlaube Zugriff auf alle Bibliotheken", - "OptionEnableAutomaticServerUpdates": "Aktiviere automatische Server Updates", "OptionEnableExternalContentInSuggestions": "Aktiviere externe Inhalte in Empfehlungen", "OptionEnableExternalContentInSuggestionsHelp": "Erlaube Internet Trailer und Live TV Sendungen in Empfehlungen.", "OptionEnableForAllTuners": "Aktiviere für alle Tuner", diff --git a/src/strings/el.json b/src/strings/el.json index e189620c64..c718fa609f 100644 --- a/src/strings/el.json +++ b/src/strings/el.json @@ -868,7 +868,6 @@ "OptionEnableAccessFromAllDevices": "Πρόσβαση από όλες τις συσκευές", "OptionEnableAccessToAllChannels": "Ενεργοποιήστε την πρόσβαση σε όλα τα κανάλια", "OptionEnableAccessToAllLibraries": "Πρόσβαση σε όλες τις Βιβλιοθήκες", - "OptionEnableAutomaticServerUpdates": "Ενεργοποίηση αυτόματων ενημερώσεων διακομιστή", "OptionEnableExternalContentInSuggestionsHelp": "Να επιτρέπεται η συμπερίληψη internet trailers και προγράμματα live tv στο προτεινόμενο περιεχόμενο.", "OptionEnableM2tsMode": "Ενεργοποίηση λειτουργίας M2ts", "OptionEnded": "Τέλος", diff --git a/src/strings/en-gb.json b/src/strings/en-gb.json index 240ca57fae..4c42629b49 100644 --- a/src/strings/en-gb.json +++ b/src/strings/en-gb.json @@ -1303,7 +1303,6 @@ "OptionEnableM2tsModeHelp": "Enable m2ts mode when encoding to mpegts.", "OptionEnableM2tsMode": "Enable M2ts mode", "OptionEnableExternalContentInSuggestions": "Enable external content in suggestions", - "OptionEnableAutomaticServerUpdates": "Enable automatic server updates", "OptionEnableAccessToAllLibraries": "Enable access to all libraries", "OptionEnableAccessToAllChannels": "Enable access to all channels", "OptionEnableAccessFromAllDevices": "Enable access from all devices", @@ -1461,5 +1460,6 @@ "ButtonAddImage": "Add Image", "OptionRandom": "Random", "SelectAdminUsername": "Please select a username for the admin account.", - "ButtonSplit": "Split" + "ButtonSplit": "Split", + "HeaderNavigation": "Navigation" } diff --git a/src/strings/en-us.json b/src/strings/en-us.json index c9c00f0da4..e587090918 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -1104,7 +1104,6 @@ "OptionEnableAccessFromAllDevices": "Enable access from all devices", "OptionEnableAccessToAllChannels": "Enable access to all channels", "OptionEnableAccessToAllLibraries": "Enable access to all libraries", - "OptionEnableAutomaticServerUpdates": "Enable automatic server updates", "OptionEnableExternalContentInSuggestions": "Enable external content in suggestions", "OptionEnableExternalContentInSuggestionsHelp": "Allow internet trailers and live TV programs to be included within suggested content.", "OptionEnableForAllTuners": "Enable for all tuner devices", diff --git a/src/strings/es-mx.json b/src/strings/es-mx.json index 26b6643ffe..f1f73c5d9e 100644 --- a/src/strings/es-mx.json +++ b/src/strings/es-mx.json @@ -1018,7 +1018,6 @@ "OptionEnableAccessFromAllDevices": "Habilitar acceso desde todos los dispositivos", "OptionEnableAccessToAllChannels": "Habilitar acceso a todos los canales", "OptionEnableAccessToAllLibraries": "Habilitar el acceso a todas las bibliotecas", - "OptionEnableAutomaticServerUpdates": "Habilitar actualizaciones automáticas del servidor", "OptionEnableExternalContentInSuggestions": "Habilitar contenido externo en las sugerencias", "OptionEnableExternalContentInSuggestionsHelp": "Permitir que los trailers de Internet y los programas de televisión en vivo se incluyan en el contenido sugerido.", "OptionEnableForAllTuners": "Habilitar para todos los dispositivos sintonizadores", diff --git a/src/strings/es.json b/src/strings/es.json index 9bb44f01e6..86f32d3d54 100644 --- a/src/strings/es.json +++ b/src/strings/es.json @@ -95,7 +95,7 @@ "ButtonRestart": "Reiniciar", "ButtonResume": "Continuar", "ButtonRevoke": "Revocar", - "ButtonSave": "Grabar", + "ButtonSave": "Guardar", "ButtonScanAllLibraries": "Escanear todas las bibliotecas", "ButtonSearch": "Buscar", "ButtonSelectDirectory": "Seleccionar directorio", @@ -120,7 +120,7 @@ "CancelRecording": "Cancelar grabación", "CancelSeries": "Cancelar series", "Categories": "Categorías", - "ChannelAccessHelp": "Seleccione los canales para compartir con este usuario. Los administradores podrán editar todos los canales mediante el gestor de metadatos.", + "ChannelAccessHelp": "Seleccione los canales para compartir con este usuario. Los administradores podrán editar todos los canales mediante el editor de etiquetas.", "ChannelNameOnly": "Canal {0} solo", "ChannelNumber": "Número de canal", "Channels": "Canales", @@ -139,8 +139,8 @@ "DeathDateValue": "Murió: {0}", "Default": "Por defecto", "DefaultErrorMessage": "Ha habido un error procesando la solicitud. Por favor inténtalo más tarde.", - "DefaultMetadataLangaugeDescription": "Estos son tus ajustes y se pueden personalizar para cada librería.", - "DefaultSubtitlesHelp": "Los subtítulos se activan en función de los ajustes por defecto y etiquetas en los metadatos integrados. Los ajustes de idioma se tienen en cuenta cuando hay varias opciones disponibles.", + "DefaultMetadataLangaugeDescription": "Estos son tus ajustes y se pueden personalizar para cada biblioteca.", + "DefaultSubtitlesHelp": "Los subtítulos que se utilizarán dependerán de como estén etiquetadas las pistas de los archivos (si \"por defecto\" o \"forzado\"). Los ajustes de idioma se tienen en cuenta cuando hay varias opciones disponibles.", "Delete": "Borrar", "DeleteDeviceConfirmation": "¿Estás seguro de que quieres borrar este dispositivo? Volverá a aparecer la próxima vez que un usuario inicie sesión en él.", "DeleteImage": "Borrar imagen", @@ -304,7 +304,7 @@ "HeaderItems": "Elementos", "HeaderKeepRecording": "Mantener grabación", "HeaderKeepSeries": "Mantener series", - "HeaderKodiMetadataHelp": "Para habilitar o deshabilitar metadatos NFO, edite una biblioteca en la configuración de la biblioteca Jellyfin y localice la sección de metadatos.", + "HeaderKodiMetadataHelp": "Puedes activar o desactivar las etiquetas en formato NFO abriendo la configuración de una biblioteca y revisando los ajustes en la sección de etiquetas.", "HeaderLatestEpisodes": "Últimos episodios", "HeaderLatestMedia": "Últimos medios", "HeaderLatestMovies": "Últimas películas", @@ -322,7 +322,7 @@ "HeaderMedia": "Medios", "HeaderMediaFolders": "Carpetas de medios", "HeaderMediaInfo": "Información multimedia", - "HeaderMetadataSettings": "Ajustes de metadatos", + "HeaderMetadataSettings": "Ajustes de etiquetas", "HeaderMoreLikeThis": "Más como este", "HeaderMovies": "Películas", "HeaderMusicVideos": "Vídeos musicales", @@ -349,7 +349,7 @@ "HeaderPlaybackError": "Error de reproducción", "HeaderPleaseSignIn": "Por favor, inicie sesión", "HeaderPluginInstallation": "Instalación del complemento", - "HeaderPreferredMetadataLanguage": "Idioma preferido para los metadatos", + "HeaderPreferredMetadataLanguage": "Idioma preferido para las etiquetas", "HeaderProfile": "Perfil", "HeaderProfileInformation": "Información del perfil", "HeaderProfileServerSettingsHelp": "Estos valores controlan como el servidor Jellyfin se presenta al dispositivo.", @@ -369,8 +369,8 @@ "HeaderSeasons": "Temporadas", "HeaderSecondsValue": "{0} segundos", "HeaderSelectCertificatePath": "Elige la ruta del certificado", - "HeaderSelectMetadataPath": "Seleccione la ruta para Metadatos", - "HeaderSelectMetadataPathHelp": "Busque o escriba la ruta donde desea almacenar los metadatos. La carpeta debe tener permiso de escritura.", + "HeaderSelectMetadataPath": "Seleccione la ruta para las etiquetas", + "HeaderSelectMetadataPathHelp": "Busque o escriba la ruta donde almacenar las etiquetas. La carpeta debe tener permiso de escritura.", "HeaderSelectPath": "Elige ruta", "HeaderSelectServer": "Selecionar servidor", "HeaderSelectServerCachePath": "Seleccione la ruta para el caché del servidor", @@ -459,7 +459,7 @@ "LabelArtists": "Artistas:", "LabelArtistsHelp": "Separar múltiples artistas usando ;", "LabelAudioLanguagePreference": "Idioma de audio preferido:", - "LabelAutomaticallyRefreshInternetMetadataEvery": "Actualizar los metadatos automáticamente de internet:", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Actualizar las etiquetas automáticamente desde Internet:", "LabelBindToLocalNetworkAddress": "Vincular a la dirección de red local:", "LabelBindToLocalNetworkAddressHelp": "Opcional. Anule la dirección IP local para enlazar el servidor HTTP. Si se deja vacío, el servidor se enlazará a todas las direcciones disponibles. Para cambiar este valor, debe reiniciar el servidor Jellyfin.", "LabelBirthDate": "Fecha de nacimiento:", @@ -489,7 +489,7 @@ "LabelCustomRating": "Valoración pesonalizada:", "LabelDateAdded": "Fecha de añadido:", "LabelDateAddedBehavior": "Comportamiento de la fecha añadida para contenido nuevo:", - "LabelDateAddedBehaviorHelp": "Si un valor de metadato está disponible su usará siempre antes que ninguna de esas opciones.", + "LabelDateAddedBehaviorHelp": "Si el elemento tiene etiquetas que contengan información sobre la fecha de creación, independientemente de lo seleccionado aquí, se utilizarán para ordenar el contenido.", "LabelDay": "Día:", "LabelDeathDate": "Fecha de muerte:", "LabelDefaultUser": "Usuario por defecto:", @@ -595,15 +595,15 @@ "LabelMaxStreamingBitrateHelp": "Especifica la tasa de bits máxima de la transmisión.", "LabelMessageText": "Mensaje de texto:", "LabelMessageTitle": "Título del mensaje:", - "LabelMetadata": "Metadatos:", + "LabelMetadata": "Etiquetas:", "LabelMetadataDownloadLanguage": "Idioma preferido de visualizado:", - "LabelMetadataDownloadersHelp": "Activa y ordena tus descargadores de metadatos por prioridad. Los que tengan menor prioridad se sólo se utilizarán para llenar la información faltante.", - "LabelMetadataPath": "Ruta de los metadatos:", - "LabelMetadataPathHelp": "Especifica una ruta para los pósteres y metadatos.", - "LabelMetadataReaders": "Lectores de metadatos:", - "LabelMetadataReadersHelp": "Ordena tus fuentes de metadatos locales por prioridad. Se leerá el primer archivo encontrado.", - "LabelMetadataSavers": "Almacenadores de metadatos:", - "LabelMetadataSaversHelp": "Elige el formato de archivo para guardar tus metadatos.", + "LabelMetadataDownloadersHelp": "Activa y ordena estos proveedores de etiquetas por prioridad. Los que tengan menor prioridad sólo se utilizarán para completar la información que falte.", + "LabelMetadataPath": "Ruta de las etiquetas:", + "LabelMetadataPathHelp": "Especifica una ruta para las imágenes y las etiquetas.", + "LabelMetadataReaders": "Lectores de etiquetas:", + "LabelMetadataReadersHelp": "Ordena los proveedores de etiquetas locales por prioridad. Se leerá el primer archivo encontrado.", + "LabelMetadataSavers": "Formato de etiquetas:", + "LabelMetadataSaversHelp": "Elige el formato de archivo para guardar las etiquetas.", "LabelMethod": "Método:", "LabelMinBackdropDownloadWidth": "Anchura mínima de descarga de imágenes de fondo:", "LabelMinResumeDuration": "Duración mínima de reanudación:", @@ -676,8 +676,8 @@ "LabelRemoteClientBitrateLimit": "Límite de la transmisión de tasa de bits por internet (Mbps):", "LabelRemoteClientBitrateLimitHelp": "Un límite opcional de tasa de bits para todos los dispositivos fuera de la red. Esto es útil para evitar que los dispositivos soliciten una tasa de bits más alta que la que su conexión a Internet puede manejar. Esto puede ocasionar una mayor carga de la CPU en su servidor para transcodificar vídeos sobre la marcha a una tasa de bits más baja.", "LabelRuntimeMinutes": "Tiempo de ejecución (minutos):", - "LabelSaveLocalMetadata": "Guardar imágenes y metadatos en las carpetas de medios", - "LabelSaveLocalMetadataHelp": "Guardar imágenes y metadatos directamente en las carpetas de medios, permitirá colocarlas en un lugar donde se pueden editar fácilmente.", + "LabelSaveLocalMetadata": "Guardar imágenes y etiquetas en las carpetas de medios", + "LabelSaveLocalMetadataHelp": "Guardar imágenes y etiquetas directamente en las carpetas en las que estén los elementos hará que se puedan editar más fácilmente.", "LabelScheduledTaskLastRan": "Última ejecución {0}, tardando {1}.", "LabelScreensaver": "Salvapantallas:", "LabelSeasonNumber": "Número de temporada:", @@ -729,7 +729,7 @@ "LabelTunerIpAddress": "IP del sintonizador:", "LabelTunerType": "Tipo de sintonizador:", "LabelType": "Tipo:", - "LabelTypeMetadataDownloaders": "{0} descargadores de metadatos:", + "LabelTypeMetadataDownloaders": "Proveedores de etiquetas para {0}:", "LabelTypeText": "Texto", "LabelUseNotificationServices": "Usar los siguientes servicios:", "LabelUser": "Usuario:", @@ -754,7 +754,7 @@ "LanNetworksHelp": "Lista de direcciones IP separadas por comas o entradas de dirección IP / máscara de red para redes que se considerarán en la red local al imponer restricciones de ancho de banda. Si se establece, todas las demás direcciones IP se considerarán en la red externa y estarán sujetas a las restricciones de ancho de banda externo. Si se deja en blanco, solo se considera que la subred del servidor está en la red local.", "Large": "Grande", "LatestFromLibrary": "Reciente en {0}", - "LibraryAccessHelp": "Seleccione las bibliotecas a compartir con este usuario. Los administradores podrán editar todas las carpetas usando el gestor de metadatos.", + "LibraryAccessHelp": "Seleccione las bibliotecas a compartir con este usuario. Los administradores podrán editar todas las carpetas usando el gestor de etiquetas.", "Like": "Me gusta", "Live": "Directo", "LiveBroadcasts": "Emisiones en vivo", @@ -824,7 +824,7 @@ "MessageNoTrailersFound": "No se han encontrado tráilers. Instala el canal de tráilers para mejorar su experiencia añadiendo una biblioteca de tráilers por internet.", "MessageNothingHere": "Nada aquí.", "MessagePasswordResetForUsers": "Se ha restablecido las contraseñas a los siguientes usuarios. Ahora pueden iniciar sesión con los códigos PIN que usaron para el restablecimiento.", - "MessagePleaseEnsureInternetMetadata": "Por favor, asegúrese que la descarga de metadatos de internet está habilitada.", + "MessagePleaseEnsureInternetMetadata": "Asegúrate de que la descarga de etiquetas desde internet está activada.", "MessagePleaseWait": "Por favor, espere.", "MessagePluginConfigurationRequiresLocalAccess": "Para configurar este complemento inicia sesión en tu servidor local directamente.", "MessagePluginInstallDisclaimer": "Los complementos creados por los miembros de la comunidad de Jellyfin son una buena forma de mejorar tu experiencia Jellyfin con características adicionales y otros beneficios. Antes de instalarlos considera los efectos que pueden tener en tu servidor Jellyfin, como escaneos de la biblioteca más largos, procesado en segundo plano adicional y una reducción de la estabilidad del sistema.", @@ -834,9 +834,9 @@ "MessageUnableToConnectToServer": "No podemos conectar con el servidor seleccionado ahora mismo. Por favor, asegúrate de que esta funcionando e inténtalo otra vez.", "MessageUnsetContentHelp": "El contenido se mostrará como carpetas planas. Para tener mejores resultados utiliza el gestor de metadatos para establecer los tipos de contenidos de las sub-carpetas.", "MessageYouHaveVersionInstalled": "Actualmente tienes la versión {0} instalada.", - "Metadata": "Metadatos", - "MetadataManager": "Administrador de metadatos", - "MetadataSettingChangeHelp": "El cambio de la configuración de metadatos afectará al nuevo contenido que se añada en el futuro. Para actualizar el contenido existente, abra la pantalla de detalles y haga clic en el botón Actualizar o realice actualizaciones masivas utilizando el administrador de metadatos.", + "Metadata": "Etiquetas", + "MetadataManager": "Administrador de etiquetas", + "MetadataSettingChangeHelp": "Este cambio afectará al nuevo contenido que se añada en el futuro. Para actualizar el contenido existente abra la pantalla de detalles y haga clic en el botón \"Actualizar\". También se pueden actualizar todas las etiquetas a la vez utilizando el administrador de etiquetas.", "MinutesAfter": "minutos después", "MinutesBefore": "minutos antes", "Mobile": "Móvil", @@ -928,7 +928,6 @@ "OptionEnableAccessFromAllDevices": "Habilitar acceso desde todos los equipos", "OptionEnableAccessToAllChannels": "Habilitar acceso a todos los canales", "OptionEnableAccessToAllLibraries": "Habilitar acceso a todas las bibliotecas", - "OptionEnableAutomaticServerUpdates": "Activar actualizaciones automáticas del servidor", "OptionEnableExternalContentInSuggestions": "Habilitar contenido externo en sugerencias", "OptionEnableExternalContentInSuggestionsHelp": "Permite incluir los tráilers de Internet y los programas de TV en vivo en el contenido sugerido.", "OptionEnableForAllTuners": "Activar para todos los dispositivos sintonizadores", @@ -982,8 +981,8 @@ "OptionResumable": "Se puede continuar", "OptionRuntime": "Tiempo", "OptionSaturday": "Sábado", - "OptionSaveMetadataAsHidden": "Guardar los metadatos e imágenes como archivos ocultos", - "OptionSaveMetadataAsHiddenHelp": "Cambiar esto se aplicará a los nuevos metadatos guardados en el futuro. Los archivos de metadatos existentes se actualizarán la próxima vez que sean guardados por el servidor Jellyfin.", + "OptionSaveMetadataAsHidden": "Guardar las etiquetas e imágenes como archivos ocultos", + "OptionSaveMetadataAsHiddenHelp": "La configuración se aplicará a las nuevas etiquetas que se creen. Las etiquetas existentes se actualizarán la próxima vez que sean guardadas por Jellyfin.", "OptionSpecialEpisode": "Especiales", "OptionSunday": "Domingo", "OptionThursday": "Jueves", @@ -1025,7 +1024,7 @@ "PleaseSelectTwoItems": "Seleccione al menos dos elementos.", "PluginInstalledMessage": "El complemento se ha instalado correctamente. El servidor Jellyfin deberá reiniciarse para que los cambios surjan efecto.", "PreferEmbeddedTitlesOverFileNames": "Preferir títulos incrustados sobre los nombres de archivo", - "PreferEmbeddedTitlesOverFileNamesHelp": "Esto determina el título por defecto cuando no hay ningún metadato de internet o local.", + "PreferEmbeddedTitlesOverFileNamesHelp": "Esto determina el título que se utilizará cuando un elemento no tenga etiquetas ni estas se hayan podido descargar de Internet.", "PreferredNotRequired": "Preferido, pero no requerido", "Premieres": "Estrenos", "Previous": "Anterior", @@ -1048,7 +1047,7 @@ "RecordingScheduled": "Grabación programada.", "Recordings": "Grabaciones", "Refresh": "Refrescar", - "RefreshMetadata": "Actualizar metadatos", + "RefreshMetadata": "Actualizar etiquetas", "RefreshQueued": "Actualización programada.", "ReleaseDate": "Fecha de lanzamiento", "RememberMe": "Recuérdame", @@ -1059,7 +1058,7 @@ "RepeatEpisodes": "Repetir episodios", "RepeatMode": "Modo de repetición", "RepeatOne": "Repetir uno", - "ReplaceAllMetadata": "Reemplazar todos los metadatos", + "ReplaceAllMetadata": "Reemplazar todas las etiquetas", "ReplaceExistingImages": "Reemplazar imágenes existentes", "RequiredForAllRemoteConnections": "Requerido para todas las conexiones remotas", "ResumeAt": "Continuar desde {0}", @@ -1075,8 +1074,8 @@ "Screenshot": "Captura de pantalla", "Screenshots": "Capturas de pantalla", "Search": "Buscar", - "SearchForCollectionInternetMetadata": "Buscar en internet ilustraciones y metadatos", - "SearchForMissingMetadata": "Buscar metadatos faltantes", + "SearchForCollectionInternetMetadata": "Buscar en internet imágenes y etiquetas", + "SearchForMissingMetadata": "Buscar etiquetas que falten", "SearchForSubtitles": "Búsqueda de subtítulos", "SearchResults": "Resultados de la búsqueda", "SendMessage": "Enviar mensaje", @@ -1097,7 +1096,7 @@ "Shows": "Series", "Shuffle": "Mezclar", "SimultaneousConnectionLimitHelp": "Número máximo de transmisiones simultáneas permitidas. Pon 0 para no tener límite.", - "SkipEpisodesAlreadyInMyLibrary": "No grabar episodios que ya están en mi librería", + "SkipEpisodesAlreadyInMyLibrary": "No grabar episodios que ya están en mi biblioteca", "SkipEpisodesAlreadyInMyLibraryHelp": "Los episodios serán comparados usando el número de temporada y de episodio, cuando estén disponibles.", "Small": "Pequeño", "Smart": "Inteligente", @@ -1135,7 +1134,7 @@ "TabLatest": "Novedades", "TabLibrary": "Biblioteca", "TabLiveTV": "Televisión en directo", - "TabMetadata": "Metadatos", + "TabMetadata": "Etiquetas", "TabMovies": "Películas", "TabMusic": "Música", "TabMusicVideos": "Videos musicales", @@ -1237,7 +1236,7 @@ "Banner": "Pancarta", "BurnSubtitlesHelp": "Determina si el servidor debería incrustar los subtítulos al convertir el vídeo dependiendo del formato de los subtítulos. Evitar incrustar los subtítulos mejorará el rendimiento del servidor. Selecciona Auto para incrustar subtítulos basados en imágenes (VOBSUB, PGS, SUB/IDX, etc.) y algunos subtítulos de tipo ASS/SSA.", "ButtonInfo": "Información", - "ChangingMetadataImageSettingsNewContent": "Los cambios a la configuración de descarga de metadatos o arte sólo se aplicará al nuevo contenido añadido a la biblioteca. Para aplicar los cambios a los títulos existentes, necesitarás actualizar los metadatos manualmente.", + "ChangingMetadataImageSettingsNewContent": "Los cambios a la configuración de descarga de etiquetas e imágenes sólo se aplicará al nuevo contenido que se añada a la biblioteca. Para aplicar los cambios a los elementos existentes necesitarás actualizar las etiquetas manualmente.", "ColorPrimaries": "Colores primarios", "ColorSpace": "Espacio de color", "ColorTransfer": "Transferencia de color", @@ -1258,7 +1257,7 @@ "DisplayMissingEpisodesWithinSeasons": "Mostrar episodios ausentes en las temporadas", "DisplayMissingEpisodesWithinSeasonsHelp": "Esto también debe ser habilitado para la biblioteca de TV en la configuración del servidor.", "DropShadow": "Sombra", - "EditMetadata": "Editar metadatos", + "EditMetadata": "Editar etiquetas", "EnableBackdrops": "Imágenes de fondo", "EnableBackdropsHelp": "Mostrar imágenes de fondo en algunas páginas mientras se explora la biblioteca.", "EnableColorCodedBackgrounds": "Fondos con código de colores", @@ -1402,7 +1401,7 @@ "PlayCount": "Reproducciones", "Premiere": "Estreno", "Raised": "Elevación", - "RefreshDialogHelp": "Los metadatos se actualizan basados en las configuraciones y los servicios de internet habilitados en el panel del servidor Jellyfin.", + "RefreshDialogHelp": "Las etiquetas se actualizan basándose en las configuraciones y los servicios de internet activados desde el panel de control de Jellyfin.", "RestartPleaseWaitMessage": "Por favor, espera mientras el servidor Jellyfin se reinicia. Esto puede tardar un minuto o dos.", "RunAtStartup": "Ejecutar al iniciar", "Series": "Series", @@ -1461,5 +1460,6 @@ "HeaderFavoritePeople": "Personas favoritas", "OptionRandom": "Aleatorio", "SelectAdminUsername": "Por favor seleccione un nombre de usuario para la cuenta de administrador.", - "ButtonSplit": "Dividir" + "ButtonSplit": "Dividir", + "HeaderNavigation": "Navegación" } diff --git a/src/strings/fr.json b/src/strings/fr.json index 9e29c4f14b..c4dfa80534 100644 --- a/src/strings/fr.json +++ b/src/strings/fr.json @@ -1009,7 +1009,6 @@ "OptionEnableAccessFromAllDevices": "Autoriser l'accès depuis tous les appareils", "OptionEnableAccessToAllChannels": "Activer l'accès à toutes les chaînes", "OptionEnableAccessToAllLibraries": "Activer l'accès à toutes les librairies", - "OptionEnableAutomaticServerUpdates": "Activer les mises à jour automatiques du serveur", "OptionEnableExternalContentInSuggestions": "Activer le contenu externe dans les suggestions", "OptionEnableExternalContentInSuggestionsHelp": "Autoriser les bandes-annonces sur internet et les programmes TV en direct à être inclus dans le contenu suggéré.", "OptionEnableForAllTuners": "Autoriser pour tous les tuners", @@ -1455,5 +1454,6 @@ "HeaderFavoritePeople": "Personnes préférées", "OptionRandom": "Aléatoire", "ButtonSplit": "Séparer", - "SelectAdminUsername": "Veuillez choisir un nom d'utilisateur pour le compte administrateur." + "SelectAdminUsername": "Veuillez choisir un nom d'utilisateur pour le compte administrateur.", + "HeaderNavigation": "Navigation" } diff --git a/src/strings/hr.json b/src/strings/hr.json index a1c700df64..1cdccf69b3 100644 --- a/src/strings/hr.json +++ b/src/strings/hr.json @@ -755,7 +755,6 @@ "OptionEnableAccessFromAllDevices": "Omogući pristup svim uređajima", "OptionEnableAccessToAllChannels": "Omogući pristup svim kanalima", "OptionEnableAccessToAllLibraries": "Omogući pristup svim bibliotekama", - "OptionEnableAutomaticServerUpdates": "Omogući automatska ažuriranja servera", "OptionEnableExternalContentInSuggestions": "Omogući vanjske sadržaje u prijedlozima", "OptionEnableExternalContentInSuggestionsHelp": "Dopusti internet kratkim filmovima i TV programima uživo da budu uključeni u preporučenom sadržaju.", "OptionEnableForAllTuners": "Omogući za sve TV/Radio uređaje", diff --git a/src/strings/hu.json b/src/strings/hu.json index 4cc1fde947..7ea57e5156 100644 --- a/src/strings/hu.json +++ b/src/strings/hu.json @@ -411,7 +411,6 @@ "OptionEnableAccessFromAllDevices": "Hozzáférés engedélyezése minden eszközről", "OptionEnableAccessToAllChannels": "Hozzáférés engedélyezése minden csatornához", "OptionEnableAccessToAllLibraries": "Hozzáférés engedélyezése minden könyvtárhoz", - "OptionEnableAutomaticServerUpdates": "Automatikus szerverfrissítés engedélyezése", "OptionExternallyDownloaded": "Külső letöltés", "OptionFavorite": "Kedvencek", "OptionFriday": "Péntek", diff --git a/src/strings/it.json b/src/strings/it.json index 5f81717e8a..a54203665c 100644 --- a/src/strings/it.json +++ b/src/strings/it.json @@ -969,7 +969,6 @@ "OptionEnableAccessFromAllDevices": "Abilita l'accesso da tutti i dispositivi", "OptionEnableAccessToAllChannels": "Abilita l'accesso a tutti i canali", "OptionEnableAccessToAllLibraries": "Abilita l'accesso a tutte le librerie", - "OptionEnableAutomaticServerUpdates": "Attiva aggiornamenti automatici del server", "OptionEnableExternalContentInSuggestions": "Abilita contenuto remoto nei suggerimenti", "OptionEnableExternalContentInSuggestionsHelp": "Consenti l'inclusione di trailer Internet e programmi TV tra i contenuti suggeriti.", "OptionEnableForAllTuners": "Abilita per tutti i sintonizzatori", diff --git a/src/strings/ja.json b/src/strings/ja.json index ee0ef90de1..0dd7737459 100644 --- a/src/strings/ja.json +++ b/src/strings/ja.json @@ -643,7 +643,6 @@ "OptionDownloadLogoImage": "ロゴ", "OptionEnableAccessToAllChannels": "すべてのチャンネルへのアクセスを有効化", "OptionEnableAccessToAllLibraries": "すべてのライブラリへのアクセスを優幸化", - "OptionEnableAutomaticServerUpdates": "サーバーの自動アップデートを有効化", "OptionWeekly": "週間", "OriginalAirDateValue": "元の公開日: {0}", "RepeatOne": "リピート", diff --git a/src/strings/kk.json b/src/strings/kk.json index 45025bb1bd..3bf88ed5e1 100644 --- a/src/strings/kk.json +++ b/src/strings/kk.json @@ -1065,7 +1065,6 @@ "OptionEnableAccessFromAllDevices": "Barlyq qurylǵylardan qatynaýdy qosý", "OptionEnableAccessToAllChannels": "Barlyq arnalarǵa qatynaýdy qosý", "OptionEnableAccessToAllLibraries": "Barlyq tasyǵyshhanalarǵa qatynaýdy qosý", - "OptionEnableAutomaticServerUpdates": "Serverdiń avtomatty jańartylýyn qosý", "OptionEnableExternalContentInSuggestions": "Uynystarǵa syrtqy mazmundy qosý", "OptionEnableExternalContentInSuggestionsHelp": "Internet-treılerler men efırlik kórsetimderge usynǵan mazmunǵa kirý úshin ruqsat etedi.", "OptionEnableForAllTuners": "Barlyq túner qurylǵylary úshin qosý", diff --git a/src/strings/ko.json b/src/strings/ko.json index 0f2b32c64c..a0276b700c 100644 --- a/src/strings/ko.json +++ b/src/strings/ko.json @@ -585,7 +585,6 @@ "OptionEnableAccessFromAllDevices": "모든 기기에서 접속 허용", "OptionEnableAccessToAllChannels": "모든 채널에 접속 허용", "OptionEnableAccessToAllLibraries": "모든 라이브러리에 접속 허용", - "OptionEnableAutomaticServerUpdates": "서버 자동 업데이트 사용", "OptionEnableM2tsMode": "M2ts 모드 활성화", "OptionEnded": "종료됨", "OptionEveryday": "매일", diff --git a/src/strings/nb.json b/src/strings/nb.json index 0ad9459aca..f708c33245 100644 --- a/src/strings/nb.json +++ b/src/strings/nb.json @@ -115,7 +115,7 @@ "ColorSpace": "Fargeutvalg", "ColorTransfer": "Overføring av farger", "Composer": "Komponist", - "ConfigureDateAdded": "Konfigurer hvordan lagt til-dato bestemmes på Jellyfin-serveren sitt dashbord under instillinger for Bibliotek", + "ConfigureDateAdded": "Konfigurer hvordan \"Dato lagt til\" bestemmes på Jellyfin-serveren sitt dashbord under instillinger for Bibliotek", "ConfirmDeleteImage": "Slett bilde?", "ConfirmDeleteItem": "Sletting av elementet vil slette det fra både filsystemet og biblioteket. Er du sikker på at du vil fortsette?", "ConfirmDeleteItems": "Sletting av disse elementene vil slette dem fra både filsystemet og mediebiblioteket. Er du sikker på at du vil fortsette?", @@ -436,7 +436,7 @@ "LabelCustomDeviceDisplayNameHelp": "Oppgi et egendefinert visningsnavn eller la det være tomt for å bruke navnet som enheten rapporterer.", "LabelCustomRating": "Egen anmeldelse:", "LabelDateAdded": "Dato lagt til:", - "LabelDateAddedBehavior": "Dato lagt til-atferd for nytt innhold:", + "LabelDateAddedBehavior": "Hvordan bestemme \"Dato lagt til\" for nytt innhold:", "LabelDateAddedBehaviorHelp": "Hvis en metadataverdi finnes, vil den alltid bli brukt fremfor noen av disse valgene.", "LabelDay": "Dag:", "LabelDeathDate": "Dødsdato:", @@ -501,7 +501,7 @@ "LabelImageFetchersHelp": "Aktiver og ranger dine foretrukne kilder for omslagsbilder i prioritert rekkefølge.", "LabelImageType": "Bildetype:", "LabelImportOnlyFavoriteChannels": "Begrens til kanaler som er merket som favoritt", - "LabelInNetworkSignInWithEasyPassword": "Tillat PIN-kode-innlogging på det lokale nettverket", + "LabelInNetworkSignInWithEasyPassword": "Tillat innlogging med PIN-kode på det lokale nettverket", "LabelInNetworkSignInWithEasyPasswordHelp": "Bruk den enkle PIN-koden for å logge inn på klienter som befinner seg i hjemmenettverket. Det vanlige passordet ditt vil kun være nødvendig ved pålogging fra eksternt nettverk. Hvis PIN-koden er tom, trenger du ikke passord i hjemmenettverket.", "LabelKeepUpTo": "Bevar opptil:", "LabelKidsCategories": "Barnekategorier:", @@ -713,7 +713,7 @@ "MessageCreateAccountAt": "Opprett en konto hos {0}", "MessageDeleteTaskTrigger": "Er du sikker på at du vil slette denne oppgaveutløseren?", "MessageDirectoryPickerBSDInstruction": "På BSD-systemer må du kanskje endre lagringsinnstillinger i FreeNAS Jail slik at Jellyfin har tilgang dit.", - "MessageDirectoryPickerInstruction": "Nettverksplasseringer kan skrives inn manuelt i tilfelle Nettverk-knappen ikke klarer å lokalisere enhetene dine. For eksempel {0} eller {1}.", + "MessageDirectoryPickerInstruction": "Nettverksbaner kan skrives inn manuelt i tilfelle søke-knappen ikke klarer å lokalisere enhetene dine. For eksempel {0} eller {1}.", "MessageDirectoryPickerLinuxInstruction": "På Linux-systemer med Arch Linux, CentOS, Debian, Fedora, openSUSE eller Ubuntu må du minimum gi tjenestebrukeren lesetilgang til lagringsplassene dine.", "MessageDownloadQueued": "Nedlasting lagt i kø.", "MessageEnablingOptionLongerScans": "Aktivering av dette alternativet kan føre til at skanning av biblioteket tar betydelig lenger tid.", @@ -822,7 +822,6 @@ "OptionEnableAccessFromAllDevices": "Gi tilgang fra alle enheter", "OptionEnableAccessToAllChannels": "Gi tilgang til alle kanaler", "OptionEnableAccessToAllLibraries": "Gi tilgang til alle bibliotek", - "OptionEnableAutomaticServerUpdates": "Aktiver automatiske serveroppdateringer", "OptionEnableExternalContentInSuggestions": "Aktiver eksternt innhold i forslag", "OptionEnableExternalContentInSuggestionsHelp": "Tillat at Internett-trailere og programmer på direkte-TV inkluderes i foreslått innhold.", "OptionEnableForAllTuners": "Aktiver for alle mottakerenheter", @@ -1225,7 +1224,7 @@ "EnableNextVideoInfoOverlayHelp": "Vis informasjon om den neste videoen i spillelisten ved slutten av en video.", "ExtractChapterImagesHelp": "Uthenting av kapittelbilder vil gjøre det mulig for klienter å vise bilder i menyer for å velge kapitel. Denne prosessen kan være treg, ressurskrevende, og kan kreve flere gigabyte med lagringsplass. Prosessen kjører når videoer oppdages, samt som en daglig planlagt hendelse. Tidsplanen kan endres i innstillinger for planlagte hendelser. Det anbefales ikke at denne prosessen kjøres når det er mange aktive brukere innlogget.", "Extras": "Ekstramateriale", - "HeaderKodiMetadataHelp": "For å aktivere eller deaktivere NFO-metadata, gå til bibliotekoppsettet i Jellyfin og finn valgene for metadatalagring.", + "HeaderKodiMetadataHelp": "For å aktivere eller deaktivere NFO-metadata, gå til bibliotekoppsettet i Jellyfin og finn valgene for lagring av metadata.", "OptionArtist": "Artist", "HeaderPhotoAlbums": "Fotoalbum", "HeaderRestartingServer": "Serveren starter på nytt", @@ -1362,7 +1361,7 @@ "DashboardArchitecture": "Arkitektur: {0}", "LabelVideoBitrate": "Bithastighet på video:", "LabelVideoCodec": "Videokodek:", - "LabelWeb": "Web: ", + "LabelWeb": "Web:", "LabelXDlnaCap": "X-DLNA-begrensning:", "LabelXDlnaDoc": "X-DLNA-doc:", "LabelYear": "År:", @@ -1453,5 +1452,7 @@ "OptionRandom": "Tilfeldig", "HeaderFavoritePeople": "Favorittpersoner", "Raised": "Hevet", - "ButtonSplit": "Del opp" + "ButtonSplit": "Del opp", + "SelectAdminUsername": "Vennligst velg et brukernavn for administrator-kontoen.", + "HeaderNavigation": "Navigering" } diff --git a/src/strings/nl.json b/src/strings/nl.json index 8e5c9714a4..40d449cb9c 100644 --- a/src/strings/nl.json +++ b/src/strings/nl.json @@ -953,7 +953,6 @@ "OptionEnableAccessFromAllDevices": "Toegang vanaf alle apparaten toestaan", "OptionEnableAccessToAllChannels": "Toegang tot alle kanalen inschakelen", "OptionEnableAccessToAllLibraries": "Toegang tot alle bibliotheken inschakelen", - "OptionEnableAutomaticServerUpdates": "Schakel automatische server updates in", "OptionEnableExternalContentInSuggestions": "Inschakelen externe inhoud in suggesties", "OptionEnableExternalContentInSuggestionsHelp": "Laat internet trailers en live-tv-programma's op te nemen binnen de voorgestelde inhoud.", "OptionEnableForAllTuners": "Inschakelen voor alle tuners", diff --git a/src/strings/pl.json b/src/strings/pl.json index 15603fc139..37ef09c707 100644 --- a/src/strings/pl.json +++ b/src/strings/pl.json @@ -1026,7 +1026,6 @@ "OptionEnableAccessFromAllDevices": "Udostępniaj na wszystkich urządzeniach", "OptionEnableAccessToAllChannels": "Udostępniaj wszystkie kanały", "OptionEnableAccessToAllLibraries": "Udostępniaj wszystkie biblioteki", - "OptionEnableAutomaticServerUpdates": "Aktualizuj serwer automatycznie", "OptionEnableExternalContentInSuggestions": "Dodawaj zewnętrzną zawartość do polecanych", "OptionEnableExternalContentInSuggestionsHelp": "Umożliwia dodawanie zwiastunów i programów telewizyjnych do polecanej zawartości.", "OptionEnableForAllTuners": "Aktywuj dla wszystkich tunerów", diff --git a/src/strings/pt-br.json b/src/strings/pt-br.json index f3d3562691..06ad3fb9e5 100644 --- a/src/strings/pt-br.json +++ b/src/strings/pt-br.json @@ -994,7 +994,6 @@ "OptionEnableAccessFromAllDevices": "Ativar o acesso de todos os dispositivos", "OptionEnableAccessToAllChannels": "Ativar o acesso a todos os canais", "OptionEnableAccessToAllLibraries": "Ativar o acesso a todas as bibliotecas", - "OptionEnableAutomaticServerUpdates": "Ativar as atualizações automáticas do servidor", "OptionEnableExternalContentInSuggestions": "Ativar conteúdo externo nas sugestões", "OptionEnableExternalContentInSuggestionsHelp": "Permitir que trailers da internet e programas de TV ao vivo sejam incluídos em conteúdos sugeridos.", "OptionEnableForAllTuners": "Ativar para todos os sintonizadores", diff --git a/src/strings/pt-pt.json b/src/strings/pt-pt.json index 19f00d9e0f..d5822cd26a 100644 --- a/src/strings/pt-pt.json +++ b/src/strings/pt-pt.json @@ -581,7 +581,6 @@ "OptionEnableAccessFromAllDevices": "Ativar acesso de todos os dispositivos", "OptionEnableAccessToAllChannels": "Permitir acesso a todos os canais", "OptionEnableAccessToAllLibraries": "Permitir acesso a todas as bibliotecas", - "OptionEnableAutomaticServerUpdates": "Ativar as atualizações automáticas do servidor", "OptionEnableM2tsMode": "Ativar modo M2ts", "OptionEnableM2tsModeHelp": "Ativar o modo m2ts durante a transcodificação para mpegts.", "OptionEnded": "Terminado", diff --git a/src/strings/pt.json b/src/strings/pt.json index abf208a766..200077568d 100644 --- a/src/strings/pt.json +++ b/src/strings/pt.json @@ -1053,7 +1053,6 @@ "OptionEnableM2tsModeHelp": "Activar o modo m2ts ao codificar para mpegts.", "OptionEnableM2tsMode": "Activar modo M2ts", "OptionEnableExternalContentInSuggestionsHelp": "Permitir que trailers da Internet e programas de TV em Directo sejam incluídos no conteúdo sugerido.", - "OptionEnableAutomaticServerUpdates": "Activar actualizações automáticas do servidor", "OptionEnableAccessToAllLibraries": "Permitir acesso a todas as bibliotecas", "OptionEnableAccessFromAllDevices": "Activar acesso de todos os dispositivos", "OptionEmbedSubtitles": "Incorporar no contentor", diff --git a/src/strings/ro.json b/src/strings/ro.json index 80ddcbdd32..c21b57198b 100644 --- a/src/strings/ro.json +++ b/src/strings/ro.json @@ -243,7 +243,7 @@ "AddToPlayQueue": "Adaugă la coada de redare", "AddItemToCollectionHelp": "Adaugă obiectele la colecții căutând-le și folosind meniul de click-dreapta sau apasare pentru a le adăuga la colecție.", "Add": "Adaugă", - "Actor": "Actor", + "Actor": "Artist", "AccessRestrictedTryAgainLater": "Accesul este restricționat. Te rugăm să încerci mai târziu.", "AllowedRemoteAddressesHelp": "Listă separată prin virgulă de adrese IP sau IP/netmask pentru rețelele care for permise din conexiuni externe. Dacă este lăsat gol, toate adresele externe vor fi permise.", "ButtonStop": "Stop", @@ -284,7 +284,7 @@ "Disc": "Placă", "CopyStreamURL": "Copiază Stream URL", "CriticRating": "Evaluare critici", - "Desktop": "Desktop", + "Desktop": "Birou", "Director": "Regizor", "AllowOnTheFlySubtitleExtractionHelp": "Subtitrările încorporate pot fi extrase din video și transmise către client în mod text pentru a preveni transcodarea videoului. Pe unele sisteme acest lucru poate dura mult timp și poate cauza oprirea redării video în timpul procesului de extragere. Dezactivează opțiunea pentru a avea subtitrările încorporate incluse în videoul transcodat atunci când nu sunt nativ suportate de către dispozitivul client.", "BirthLocation": "Locul nașterii", @@ -412,7 +412,7 @@ "HDPrograms": "Programe HD", "HandledByProxy": "Gestionat de proxy invers", "HeaderApiKeys": "Chei API", - "HeaderApp": "App", + "HeaderApp": "Aplicație", "HeaderCastCrew": "Distribuție și echipă", "HeaderConfirmPluginInstallation": "Confirmați instalarea plugin-ului", "HeaderDeleteItems": "Ștergeți Elemente", @@ -429,7 +429,7 @@ "HeaderError": "Eroare", "HeaderExternalIds": "ID-uri Externe:", "HeaderFavoriteBooks": "Cărți Favorite", - "HeaderBranding": "Branding", + "HeaderBranding": "Marca", "HeaderApiKeysHelp": "Aplicațiile externe trebuie să aibă o cheie API pentru a comunica cu Jellyfin Server. Cheile sunt emise prin conectarea cu un cont Jellyfin sau prin acordarea manuală a unei chei aplicației.", "Sync": "Sincronizare", "ErrorAddingXmlTvFile": "A apărut o eroare la accesarea fișierului XMLTV. Vă rugăm să vă asigurați că fișierul există și încercați din nou.", @@ -642,7 +642,7 @@ "LabelTranscodingFramerate": "Rata de cadru a transcodării:", "LabelTranscodes": "Transcodează:", "LabelTranscodePath": "Cale transcodare:", - "LabelTranscodingContainer": "Container:", + "LabelTranscodingContainer": "Container :", "LabelTranscodingAudioCodec": "Codec audio:", "LabelTrackNumber": "Număr melodie:", "LabelTitle": "Titlu:", @@ -709,7 +709,7 @@ "LabelProtocol": "Protocol:", "LabelProfileVideoCodecs": "Codecuri video:", "LabelProfileContainersHelp": "Separat prin virgulă. Poate fi lăsat gol pentru a se aplica tuturor containerelor.", - "LabelProfileContainer": "Container:", + "LabelProfileContainer": "Container :", "LabelProfileCodecsHelp": "Separat prin virgulă. Poate fi lăsat gol pentru a se aplica tuturor codecurilor.", "LabelProfileCodecs": "Codecuri:", "LabelProfileAudioCodecs": "Codecuri audio:", @@ -812,7 +812,7 @@ "LabelHardwareAccelerationTypeHelp": "Aceasta este o caracteristică experimentală disponibilă doar pe sistemele acceptate.", "LabelHardwareAccelerationType": "Accelerare hardware:", "LabelH264EncodingPreset": "H264 encoding presetat:", - "LabelH264Crf": "H264 encoding CRF:", + "LabelH264Crf": "CRF codare H264:", "LabelGroupMoviesIntoCollectionsHelp": "La afișarea listelor de filme, filmele aparținând unei colecții vor fi afișate ca un articol grupat.", "LabelGroupMoviesIntoCollections": "Grupează filmele în colecții", "LabelServerNameHelp": "Acest nume va fi utilizat pentru a identifica serverul și va fi implicit la numele computerului serverului.", @@ -978,7 +978,7 @@ "ButtonSplit": "Împarte", "OptionCustomUsers": "Personalizat", "OptionCaptionInfoExSamsung": "CaptionInfoEx (Samsung)", - "OptionBluray": "Blu-ray", + "OptionBluray": "BluRay", "OptionBlockTvShows": "Seriale TV", "OptionBlockTrailers": "Trailere", "OptionBlockMusic": "Muzică", @@ -1094,7 +1094,7 @@ "MediaInfoStreamTypeData": "Date", "MediaInfoStreamTypeAudio": "Audio", "MediaInfoSoftware": "Software", - "MediaInfoTimestamp": "Timestamp", + "MediaInfoTimestamp": "Data și ora", "MediaInfoSize": "Mărime", "MediaInfoSampleRate": "Rata monstrei", "MediaInfoResolution": "Rezoluție", @@ -1110,7 +1110,7 @@ "MediaInfoForced": "Forțat", "MediaInfoExternal": "Extern", "MediaInfoDefault": "Implicit", - "MediaInfoContainer": "Container", + "MediaInfoContainer": "Recipient", "MediaInfoCodecTag": "Etichetă codec", "MediaInfoCodec": "Codec", "MediaInfoChannels": "Canale", @@ -1129,7 +1129,7 @@ "Live": "În direct", "List": "Listă", "LinksValue": "Linkuri: {0}", - "Like": "Like", + "Like": "Îmi place", "LeaveBlankToNotSetAPassword": "Puteți lăsa acest câmp necompletat pentru a nu seta o parolă.", "LearnHowYouCanContribute": "Aflați cum puteți contribui.", "LaunchWebAppOnStartupHelp": "Deschideți clientul web în browserul dvs. implicit la pornirea inițială a serverului. Acest lucru nu se va produce atunci când se utilizează funcția serverului de repornire.", @@ -1142,9 +1142,9 @@ "LabelZipCode": "Cod poștal:", "LabelYear": "Anul:", "LabelXDlnaDocHelp": "Determină conținutul elementului X_DLNADOC din domeniul urn:schemas-dlna-org:device-1-0.", - "LabelXDlnaDoc": "X-DLNA doc:", + "LabelXDlnaDoc": "Documentație X-DLNA:", "LabelXDlnaCapHelp": "Determină conținutul elementului X_DLNACAP din domeniul urn:schemas-dlna-org:device-1-0.", - "LabelXDlnaCap": "X-DLNA cap:", + "LabelXDlnaCap": "Limită X-DLNA:", "LabelWeb": "Web:", "LabelVideoCodec": "Codec video:", "LabelVideoBitrate": "Rata de biți a video-ului:", @@ -1367,7 +1367,6 @@ "OptionDisplayFolderViewHelp": "Afișați dosarele alături de celelalte biblioteci media. Acest lucru poate fi util dacă doriți să aveți o vizualizare direct în dosar.", "OptionDisplayFolderView": "Afișați o vizualizare de dosar pentru a afișa dosarele media simple", "OptionDateAddedImportTime": "Utilizați data scanării în bibliotecă", - "OptionEnableAutomaticServerUpdates": "Activați actualizările automate ale serverului", "OptionDateAddedFileTime": "Utilizați data creării fișierelor", "Yesterday": "Ieri", "Yes": "Da", @@ -1415,7 +1414,7 @@ "Unmute": "Activați sunetul", "UninstallPluginHeader": "Dezinstalați pluginul", "UninstallPluginConfirmation": "Sigur doriți să dezinstalați {0}?", - "Uniform": "Uniform", + "Uniform": "Constant", "TvLibraryHelp": "Examinați {0}ghidul de denumire TV{1}.", "Transcoding": "Conversie", "Trailers": "Trailere", @@ -1451,7 +1450,8 @@ "TabDashboard": "Tablou de bord", "TabContainers": "Containere", "TabCodecs": "Codecuri", - "TabCatalog": "Catalog", + "TabCatalog": "Registru", "TV": "TV", - "SystemDlnaProfilesHelp": "Profilele de sistem pot fi numai citite. Modificările aduse unui profil de sistem vor fi salvate într-un nou profil personalizat." + "SystemDlnaProfilesHelp": "Profilele de sistem pot fi numai citite. Modificările aduse unui profil de sistem vor fi salvate într-un nou profil personalizat.", + "HeaderNavigation": "Navigare" } diff --git a/src/strings/ru.json b/src/strings/ru.json index 4e612aa5bd..b03a5a90c1 100644 --- a/src/strings/ru.json +++ b/src/strings/ru.json @@ -1036,7 +1036,6 @@ "OptionEnableAccessFromAllDevices": "Включить доступ со всех устройств", "OptionEnableAccessToAllChannels": "Включить доступ ко всем каналам", "OptionEnableAccessToAllLibraries": "Включить доступ ко всем медиатекам", - "OptionEnableAutomaticServerUpdates": "Включить автоматические обновления сервера", "OptionEnableExternalContentInSuggestions": "Включать внешнее содержание в предложения", "OptionEnableExternalContentInSuggestionsHelp": "Разрешить охват интернет-трейлеров и эфирных передач в предлагаемом содержании.", "OptionEnableForAllTuners": "Включить для всех тюнерных устройств", diff --git a/src/strings/sk.json b/src/strings/sk.json index ec536dd17a..be7a504710 100644 --- a/src/strings/sk.json +++ b/src/strings/sk.json @@ -632,7 +632,6 @@ "OptionEnableAccessFromAllDevices": "Povoliť prístup zo všetkých zariadení", "OptionEnableAccessToAllChannels": "Povoliť prístup ku všetkým kanálom", "OptionEnableAccessToAllLibraries": "Povoliť prístup ku všetkým knižniciam", - "OptionEnableAutomaticServerUpdates": "Povoliť automatické aktualizácie servera", "OptionEnableM2tsMode": "Povoliť M2ts mód", "OptionEnableM2tsModeHelp": "Povoliť režim M2TS pri kódovaní do MPEGTS.", "OptionEnded": "Ukončené", diff --git a/src/strings/sl-si.json b/src/strings/sl-si.json index 7d8be16217..05db2ee3e9 100644 --- a/src/strings/sl-si.json +++ b/src/strings/sl-si.json @@ -39,7 +39,7 @@ "OptionHasSubtitles": "Podnapisi", "OptionLikes": "Všeč mi je", "OptionPlayed": "Predvajano", - "OptionReleaseDate": "Datum Izdaje", + "OptionReleaseDate": "Datum izida", "OptionUnplayed": "Nepredvajano", "ParentalRating": "Ocena za starše", "Settings": "Nastavitve", @@ -58,7 +58,7 @@ "TabProfiles": "Profili", "TabShows": "Oddaje", "TabSuggestions": "Predlogi", - "TabUpcoming": "V prihodu", + "TabUpcoming": "Prihajajoče", "TellUsAboutYourself": "Povej nam nekaj o sebi", "ThisWizardWillGuideYou": "Čarovnik vas bo vodil skozi postopek namestitve. Za začetek, izberite jezik.", "WelcomeToProject": "Dobrodosli v Jellyfin!", @@ -92,7 +92,7 @@ "Books": "Knjige", "Channels": "Kanali", "Collections": "Zbirke", - "Favorites": "Priljubljeni", + "Favorites": "Priljubljeno", "Folders": "Mape", "Genres": "Zvrsti", "HeaderAlbumArtists": "Izvajalci albuma", @@ -219,7 +219,7 @@ "ButtonShuffle": "Premešaj", "ButtonShutdown": "Ugasni", "ButtonSignIn": "Prijava", - "ButtonSort": "Sortiraj", + "ButtonSort": "Razvrsti", "ButtonStart": "Začetek", "ButtonStop": "Stop", "ButtonSubtitles": "Podnapisi", @@ -343,7 +343,7 @@ "HeaderPendingInvitations": "Povabila na čakanju", "HeaderPasswordReset": "Ponastavi geslo", "HeaderPassword": "Geslo", - "HeaderParentalRatings": "Starševska ocena", + "HeaderParentalRatings": "Ocena za starše", "HeaderOnNow": "Zdaj", "HeaderNextVideoPlayingInValue": "Naslednji video se bo predvajal čez {0}", "HeaderNextEpisodePlayingInValue": "Naslednja epizoda se bo predvajala čez {0}", @@ -542,7 +542,7 @@ "HeaderUploadImage": "Naloži sliko", "HeaderUpcomingOnTV": "Prihaja na TV", "HeaderTypeText": "Vnesi besedilo", - "HeaderTypeImageFetchers": "{0} prejemniki slik", + "HeaderTypeImageFetchers": "{0} pridobivanje slik", "HeaderTuners": "Sprejemniki", "HeaderTunerDevices": "Sprejemniki", "LabelAllowHWTranscoding": "Dovoli strojno pospešeno prekodiranje", @@ -566,7 +566,7 @@ "HeaderSpecialFeatures": "Dodatki", "HeaderSpecialEpisodeInfo": "Informacije o posebni epizodi", "HeaderSortOrder": "Vrstni red", - "HeaderSortBy": "Uredi po", + "HeaderSortBy": "Razvrsti po", "HeaderShutdown": "Ugasni", "HeaderSetupLibrary": "Nastavite vaše knjižnjice predstavnosti", "HeaderServerSettings": "Nastavitve strežnika", @@ -1038,5 +1038,85 @@ "MediaInfoChannels": "Kanali", "MediaInfoBitrate": "Bitna hitrost", "MediaInfoBitDepth": "Bitna globina", - "HeaderFavoritePeople": "Priljubljene osebe" + "HeaderFavoritePeople": "Priljubljene osebe", + "ReleaseDate": "Datum izida", + "LabelReleaseDate": "Datum izida:", + "Runtime": "Trajanje", + "UserProfilesIntro": "Jellyfin podpira uporabniške profile z natančnimi nastavitvami prikaza, stanjem predvajanja in starševskim nadzorom.", + "TabParentalControl": "Starševski nadzor", + "OptionParentalRating": "Ocena za starše", + "LabelParentalRating": "Ocena za starše:", + "OptionPlayCount": "Število predvajanj", + "LabelTranscodingThreadCount": "Število niti prekodiranja:", + "OptionBlockChannelContent": "Vsebina spletnega kanala", + "OneChannel": "En kanal", + "SortName": "Ime razvrščanja", + "SortChannelsBy": "Razvrsti kanale po:", + "SortByValue": "Razvrsti po {0}", + "Sort": "Razvrsti", + "LabelSortTitle": "Naslov razvrščanja:", + "LabelSortOrder": "Vrstni red:", + "LabelSortBy": "Razvrsti po:", + "Thumb": "Sličica", + "OptionThumbCard": "Sličica", + "OptionThumb": "Sličica", + "OptionDownloadThumbImage": "Sličica", + "ButtonSplit": "Razdeli", + "MessageYouHaveVersionInstalled": "Trenutno je nameščena različica {0}.", + "DashboardVersionNumber": "Različica: {0}", + "LabelVersion": "Različica:", + "LabelSelectVersionToInstall": "Izberite različico za namestitev:", + "Never": "Nikoli", + "ServerUpdateNeeded": "Jellyfin strežnik je potrebno posodobiti. Za prenos najnovejše različice prosimo obiščite {0}", + "LatestFromLibrary": "Najnovejši {0}", + "LabelScheduledTaskLastRan": "Nazadnje zagnano {0}. Čas trajanja {1}.", + "OptionRandom": "Naključno", + "OptionProtocolHttp": "HTTP", + "OptionProfilePhoto": "Slika", + "OptionProfileAudio": "Zvok", + "OptionPremiereDate": "Datum premiere", + "OptionOnInterval": "V intervalu", + "OptionOnAppStartup": "Ob zagonu aplikacije", + "OptionNew": "Novo...", + "OptionMonday": "Ponedeljek", + "OptionMissingEpisode": "Manjkajoče epizode", + "OptionLoginAttemptsBeforeLockoutHelp": "Vrednost nič (0) pomeni 3 poskuse za običajne uporabnike in 5 za skrbnike. Nastavite na -1 za onemogočanje te funkcije.", + "OptionLoginAttemptsBeforeLockout": "Določa število spodletelih poskusov prijave pred zaklenitvijo uporabnika.", + "OptionIsSD": "SD", + "OptionIsHD": "HD", + "OptionImdbRating": "IMDb ocena", + "OptionHomeVideos": "Slike", + "OptionHideUser": "Skrij tega uporabnika z vstopne strani", + "OptionHasTrailer": "Napovednik", + "OptionFriday": "Petek", + "OptionEveryday": "Vsak dan", + "OptionEnableAutomaticServerUpdates": "Omogoči samodejno posodabljanje strežnika", + "OptionDvd": "DVD", + "OptionDownloadMenuImage": "Meni", + "OptionDownloadLogoImage": "Logotip", + "OptionDownloadImagesInAdvanceHelp": "Privzeto se večina slik prenese šele, ko jih zahtevajo aplikacije. Omogočite to možnost za prenos slik vnaprej, pri uvozu predstavnosti. To lahko občutno podaljša preiskovanje knjižnice.", + "OptionDownloadImagesInAdvance": "Prenesi slike vnaprej", + "OptionAllowSyncTranscoding": "Dovoli prenašanje in sinhronizacijo predstavnosti ki zahteva pretvarjanje", + "OptionAllowRemoteControlOthers": "Dovoli daljinsko upravljanje drugih uporabnikov", + "OptionAllowLinkSharingHelp": "Deljene so zgolj spletne strani z informacijami o predstavnosti. Predstavnostne datoteke niso nikoli javno deljene. Deljene strani so časovno omejene in potečejo po {0} dneh.", + "OptionAllowLinkSharing": "Dovoli deljenje na družbenih omrežjih", + "OptionAllowContentDownloading": "Dovoli prenašanje in sinhronizacijo predstavnosti", + "OptionAllUsers": "Vsi uporabniki", + "OptionAlbumArtist": "Izvajalec albuma", + "OptionAlbum": "Album", + "OptionAdminUsers": "Skrbniki", + "Option3D": "3D", + "NumLocationsValue": "{0} mape", + "NoPluginConfigurationMessage": "Ta dodatek nima nobenih nastavitev.", + "No": "Ne", + "News": "Novice", + "NewEpisodesOnly": "Samo nove epizode", + "NewEpisodes": "Nove epizode", + "NewCollectionNameExample": "Primer: Star Wars zbirka", + "NewCollection": "Nova zbirka", + "Name": "Ime", + "MySubtitles": "Moji podnapisi", + "Mute": "Utišaj", + "MoveLeft": "Premakni levo", + "MoveRight": "Premakni desno" } diff --git a/src/strings/sr.json b/src/strings/sr.json index 8b1abcfa7e..394ef9352e 100644 --- a/src/strings/sr.json +++ b/src/strings/sr.json @@ -30,5 +30,70 @@ "AddItemToCollectionHelp": "Додајте ставке у колекцију претрагом па затим десним кликом у менију изаберите да додате у колекцију.", "Add": "Додај", "Actor": "Глумац", - "AccessRestrictedTryAgainLater": "Приступ је тренутно ограничен. Покушајте поново касније." + "AccessRestrictedTryAgainLater": "Приступ је тренутно ограничен. Покушајте поново касније.", + "ButtonPause": "Пауза", + "ButtonParentalControl": "Родитељска контрола", + "ButtonOpen": "Отвори", + "ButtonOk": "Ок", + "ButtonOff": "Искључи", + "ButtonNextTrack": "Следећа трака", + "ButtonNew": "Ново", + "ButtonNetwork": "Мрежа", + "ButtonMore": "Више", + "ButtonManualLogin": "Ручни логин", + "ButtonLibraryAccess": "Приступ библиотеци", + "ButtonLearnMore": "Научи више", + "ButtonInfo": "Информације", + "ButtonHome": "Почетна страна", + "ButtonHelp": "Помоћ", + "ButtonGuide": "Водич", + "ButtonGotIt": "У реду", + "ButtonFullscreen": "Пун екран", + "ButtonForgotPassword": "Заборављена шифра", + "ButtonFilter": "Филтер", + "ButtonDownload": "Скини (даунлоадуј)", + "ButtonDown": "Доле", + "ButtonDeleteImage": "Обриши слику", + "ButtonDelete": "Обриши", + "ButtonConnect": "Повежи се", + "ButtonChangeServer": "Промени Сервер", + "ButtonCancel": "Откажи", + "ButtonBack": "Назад", + "ButtonAudioTracks": "Избор језика звука", + "ButtonArrowUp": "Горе", + "ButtonArrowRight": "Десно", + "ButtonArrowLeft": "Лево", + "ButtonArrowDown": "Доле", + "ButtonAddUser": "Додај корисника", + "ButtonAddServer": "Додај сервер", + "ButtonAddScheduledTaskTrigger": "Додај прекидач", + "ButtonAddMediaLibrary": "Додај каталог медија", + "ButtonAddImage": "Додај слику", + "ButtonAdd": "Додај", + "BrowsePluginCatalogMessage": "Претражуј наш каталог доступних додатака", + "Browse": "Изабери", + "BoxRear": "Омот (позади)", + "Box": "Омот", + "Blacklist": "Црна листа", + "BirthPlaceValue": "Место рођења", + "BirthLocation": "Место рођења", + "BirthDateValue": "Рођен", + "AutoBasedOnLanguageSetting": "Аутоматски (зависи од подешавања језика)", + "Audio": "Звук", + "AttributeNew": "Ново", + "AroundTime": "Около", + "AnyLanguage": "Било који језик", + "AlwaysPlaySubtitles": "Увек налепи титлове", + "AllowRemoteAccess": "Дозволи удаљено конектовање на Jellyfin Server.", + "AllowOnTheFlySubtitleExtraction": "Дозволи екстракцију титлова у реалном времену", + "AllowMediaConversionHelp": "Дозволи или забрани приступ функционалности конвертовања", + "AllowMediaConversion": "Дозволи конверзију медија", + "AllowHWTranscodingHelp": "Дозволи тјунеру да конвертује стрим у релном времену. Ово може да смањи потребу за конверзију на серверу.", + "AllLibraries": "Све библиотеке", + "AllLanguages": "Сви језици", + "AllEpisodes": "Све епизоде", + "AllChannels": "Сви канали", + "All": "Све", + "Alerts": "Упозорења", + "Aired": "Емитовано" } diff --git a/src/strings/sv.json b/src/strings/sv.json index cc273bec17..c7d1931201 100644 --- a/src/strings/sv.json +++ b/src/strings/sv.json @@ -962,7 +962,6 @@ "OptionEnableAccessFromAllDevices": "Aktivera åtkomst från alla enheter", "OptionEnableAccessToAllChannels": "Aktivera åtkomst till alla kanaler", "OptionEnableAccessToAllLibraries": "Aktivera åtkomst till alla bibliotek", - "OptionEnableAutomaticServerUpdates": "Aktivera automatiska serveruppdateringar", "OptionEnableExternalContentInSuggestions": "Aktivera externt innehåll under förslag", "OptionEnableExternalContentInSuggestionsHelp": "Tillåt internet trailers och livetv-program att visas under förslag på innehåll.", "OptionEnableForAllTuners": "Aktivera för alla TV-mottagare", diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json index 3383782895..e7bb4d7730 100644 --- a/src/strings/zh-cn.json +++ b/src/strings/zh-cn.json @@ -983,7 +983,6 @@ "OptionEnableAccessFromAllDevices": "允许所有设备访问", "OptionEnableAccessToAllChannels": "允许访问所有频道", "OptionEnableAccessToAllLibraries": "允许访问所有媒体库", - "OptionEnableAutomaticServerUpdates": "开启自动服务器更新", "OptionEnableExternalContentInSuggestions": "在建议中启用外部内容", "OptionEnableExternalContentInSuggestionsHelp": "允许建议的内容中包含互联网预告片和电视直播节目。", "OptionEnableForAllTuners": "给所有调谐器开启", diff --git a/src/strings/zh-tw.json b/src/strings/zh-tw.json index 4397c06c56..d4d6141d14 100644 --- a/src/strings/zh-tw.json +++ b/src/strings/zh-tw.json @@ -1312,7 +1312,6 @@ "OptionDownloadBannerImage": "橫幅", "OptionEnableAccessToAllChannels": "允許存取所有頻道", "OptionEnableAccessToAllLibraries": "允許存取所有媒體庫", - "OptionEnableAutomaticServerUpdates": "啟用自動更新", "OptionEnableForAllTuners": "开启所有调谐器", "OptionExtractChapterImage": "開啟章節圖片擷取", "OptionEnableM2tsModeHelp": "當編碼為 MPEGTS 時啟用 M2TS 模式。", diff --git a/src/themes/appletv/theme.css b/src/themes/appletv/theme.css index 4b694d6ece..9c3bc803ec 100644 --- a/src/themes/appletv/theme.css +++ b/src/themes/appletv/theme.css @@ -1,60 +1,68 @@ .skinHeader, html { color: #222; - color: rgba(0, 0, 0, .87) + color: rgba(0, 0, 0, 0.87); } .wizardStartForm, .ui-corner-all, .ui-shadow { - background-color: #303030 + background-color: #303030; } .emby-collapsible-button { border-color: #ccc; - border-color: rgba(0, 0, 0, .158) + border-color: rgba(0, 0, 0, 0.158); } .collapseContent { - background-color: #eaeaea + background-color: #eaeaea; } .formDialogHeader:not(.formDialogHeader-clear), .skinHeader-withBackground { - color: rgba(0, 0, 0, .7); + color: rgba(0, 0, 0, 0.7); background: #303030; - background: linear-gradient(to right, #BCBCBC, #A7B4B7, #BEB5A5, #ADBEC2, #B9C7CB) + background: -webkit-gradient(linear, left top, right top, from(#bcbcbc), color-stop(#a7b4b7), color-stop(#beb5a5), color-stop(#adbec2), to(#b9c7cb)); + background: -webkit-linear-gradient(left, #bcbcbc, #a7b4b7, #beb5a5, #adbec2, #b9c7cb); + background: -o-linear-gradient(left, #bcbcbc, #a7b4b7, #beb5a5, #adbec2, #b9c7cb); + background: linear-gradient(to right, #bcbcbc, #a7b4b7, #beb5a5, #adbec2, #b9c7cb); } .skinHeader.semiTransparent { - backdrop-filter: none !important + -webkit-backdrop-filter: none !important; + backdrop-filter: none !important; } .pageTitleWithDefaultLogo { - background-image: url(assets/img/banner-dark.png) + background-image: url(../../assets/img/banner-dark.png); } html { - background: #D5E9F2 + background: #d5e9f2; } .backgroundContainer, .dialog { - background: #D5E9F2; - background-size: 100% 100% + background: #d5e9f2; + -webkit-background-size: 100% 100%; + background-size: 100% 100%; } .backgroundContainer.withBackdrop { - background: linear-gradient(to bottom, rgba(192, 212, 222, .94), rgba(235, 250, 254, .94), rgba(227, 220, 212, .94), rgba(206, 214, 216, .94), rgba(192, 211, 218, .94)) + background: -webkit-gradient(linear, left top, left bottom, from(rgba(192, 212, 222, 0.94)), color-stop(rgba(235, 250, 254, 0.94)), color-stop(rgba(227, 220, 212, 0.94)), color-stop(rgba(206, 214, 216, 0.94)), to(rgba(192, 211, 218, 0.94))); + background: -webkit-linear-gradient(top, rgba(192, 212, 222, 0.94), rgba(235, 250, 254, 0.94), rgba(227, 220, 212, 0.94), rgba(206, 214, 216, 0.94), rgba(192, 211, 218, 0.94)); + background: -o-linear-gradient(top, rgba(192, 212, 222, 0.94), rgba(235, 250, 254, 0.94), rgba(227, 220, 212, 0.94), rgba(206, 214, 216, 0.94), rgba(192, 211, 218, 0.94)); + background: linear-gradient(to bottom, rgba(192, 212, 222, 0.94), rgba(235, 250, 254, 0.94), rgba(227, 220, 212, 0.94), rgba(206, 214, 216, 0.94), rgba(192, 211, 218, 0.94)); } .actionSheet { - background: #f0f0f0 + background: #f0f0f0; } .paper-icon-button-light:hover:not(:disabled) { color: #00a4dc; - background-color: rgba(0,164,220, .2); + background-color: rgba(0, 164, 220, 0.2); } .paper-icon-button-light.show-focus:focus { @@ -64,31 +72,31 @@ html { .fab, .raised { background: #fff; - background: rgba(0, 0, 0, .14); - color: inherit + background: rgba(0, 0, 0, 0.14); + color: inherit; } .fab:focus, .raised:focus { - background: rgba(0, 0, 0, .24) + background: rgba(0, 0, 0, 0.24); } .button-submit { background: #00a4dc; - color: #fff + color: #fff; } .button-submit:focus { - background: #0cb0e8 + background: #0cb0e8; } .button-delete { background: rgb(247, 0, 0); - color: rgba(255, 255, 255, .87) + color: rgba(255, 255, 255, 0.87); } .checkboxLabel { - color: inherit + color: inherit; } .checkboxListLabel, @@ -97,49 +105,49 @@ html { .paperListLabel, .textareaLabelUnfocused { color: #555; - color: rgba(0, 0, 0, .7) + color: rgba(0, 0, 0, 0.7); } .button-link, .inputLabelFocused, .selectLabelFocused, .textareaLabelFocused { - color: green + color: green; } .checkboxOutline { - border-color: currentColor + border-color: currentColor; } .paperList, .visualCardBox { background-color: #fff; - background-color: rgba(0, 0, 0, .1) + background-color: rgba(0, 0, 0, 0.1); } .defaultCardBackground1 { - background-color: #009688 + background-color: #009688; } .defaultCardBackground2 { - background-color: #D32F2F + background-color: #d32f2f; } .defaultCardBackground3 { - background-color: #0288D1 + background-color: #0288d1; } .defaultCardBackground4 { - background-color: #388E3C + background-color: #388e3c; } .defaultCardBackground5 { - background-color: #F57F17 + background-color: #f57f17; } .formDialogFooter:not(.formDialogFooter-clear) { border-top: 1px solid #ddd; - border-top: 1px solid rgba(0, 0, 0, .08) + border-top: 1px solid rgba(0, 0, 0, 0.08); } .cardText-secondary, @@ -150,173 +158,177 @@ html { .programSecondaryTitle, .secondaryText { color: #888; - color: rgba(0, 0, 0, .5) + color: rgba(0, 0, 0, 0.5); } .actionsheetDivider { background: #ddd; - background: rgba(0, 0, 0, .14) + background: rgba(0, 0, 0, 0.14); } .cardFooter-vibrant .cardText-secondary { color: inherit; - opacity: .5 + opacity: 0.5; } .formDialogHeader a, .toast { - color: #fff + color: #fff; } .actionSheetMenuItem:hover { - background-color: #ddd + background-color: #ddd; } .toast { background: #303030; - color: rgba(255, 255, 255, .87) + color: rgba(255, 255, 255, 0.87); } .appfooter, .formDialogFooter:not(.formDialogFooter-clear) { - color: rgba(0, 0, 0, .7); + color: rgba(0, 0, 0, 0.7); background: #303030; - background: linear-gradient(to right, #BCBCBC, #A7B4B7, #BEB5A5, #ADBEC2, #B9C7CB) + background: -webkit-gradient(linear, left top, right top, from(#bcbcbc), color-stop(#a7b4b7), color-stop(#beb5a5), color-stop(#adbec2), to(#b9c7cb)); + background: -webkit-linear-gradient(left, #bcbcbc, #a7b4b7, #beb5a5, #adbec2, #b9c7cb); + background: -o-linear-gradient(left, #bcbcbc, #a7b4b7, #beb5a5, #adbec2, #b9c7cb); + background: linear-gradient(to right, #bcbcbc, #a7b4b7, #beb5a5, #adbec2, #b9c7cb); } .nowPlayingBarSecondaryText { - color: #999 + color: #999; } .itemSelectionPanel { - border: 1px solid #00a4dc + border: 1px solid #00a4dc; } .selectionCommandsPanel { background: #00a4dc; - color: #fff + color: #fff; } .upNextDialog-countdownText { - color: #00a4dc + color: #00a4dc; } .alphaPickerButton { color: #555; - color: rgba(0, 0, 0, .7); - background-color: transparent + color: rgba(0, 0, 0, 0.7); + background-color: transparent; } .alphaPickerButton-selected, .alphaPickerButton-tv:focus { background-color: #00a4dc; - color: #fff !important + color: #fff !important; } .detailTableBodyRow-shaded:nth-child(even) { background: #f8f8f8; - background: rgba(0, 0, 0, .1) + background: rgba(0, 0, 0, 0.1); } .listItem-border { - border-color: rgba(0, 0, 0, .1) !important + border-color: rgba(0, 0, 0, 0.1) !important; } .listItem:focus { - background: rgba(0, 0, 0, .2) + background: rgba(0, 0, 0, 0.2); } .progressring-spiner { - border-color: #00a4dc + border-color: #00a4dc; } .mediaInfoText { color: #333; - background: #fff + background: #fff; } .mediaInfoTimerIcon, .starIcon { - color: #CB272A + color: #cb272a; } .emby-input, .emby-textarea { color: inherit; - background: rgba(255, 255, 255, .9); - border: .07em solid rgba(0, 0, 0, .158); - border-radius: .15em + background: rgba(255, 255, 255, 0.9); + border: 0.16em solid rgba(0, 0, 0, 0.158); + -webkit-border-radius: 0.2em; + border-radius: 0.2em; } .emby-input:focus, .emby-textarea:focus { - border-color: #00a4dc + border-color: #00a4dc; } .emby-select-withcolor { color: inherit; - background: rgba(255, 255, 255, .9); - border: .07em solid rgba(0, 0, 0, .158) + background: rgba(255, 255, 255, 0.9); + border: 0.07em solid rgba(0, 0, 0, 0.158); } -.emby-checkbox:checked+span+.checkboxOutline, +.emby-checkbox:checked + span + .checkboxOutline, .emby-select-withcolor:focus { - border-color: #00a4dc -} - -.emby-checkbox:focus+span+.checkboxOutline { - border-color: #fff; -} - -.emby-checkbox:focus:not(:checked)+span+.checkboxOutline { border-color: #00a4dc; } -.emby-select-withcolor>option { +.emby-checkbox:focus + span + .checkboxOutline { + border-color: #fff; +} + +.emby-checkbox:checked + span + .checkboxOutline, +.itemProgressBarForeground { + background-color: #00a4dc; +} + +.emby-checkbox:focus:not(:checked) + span + .checkboxOutline { + border-color: #00a4dc; +} + +.emby-select-withcolor > option { color: #000; - background: #fff + background: #fff; } .emby-select-tv-withcolor:focus { background-color: #00a4dc; - color: #fff -} - -.emby-checkbox:checked+span+.checkboxOutline, -.itemProgressBarForeground { - background-color: #00a4dc + color: #fff; } .itemProgressBarForeground-recording { - background-color: #CB272A + background-color: #cb272a; } .countIndicator, .fullSyncIndicator, .playedIndicator { - background: #00a4dc + background: #00a4dc; } .fullSyncIndicator { - color: #fff + color: #fff; } .mainDrawer { - background: #fff + background: #fff; } .navMenuOption:hover { - background: #f2f2f2 + background: #f2f2f2; } .navMenuOption-selected { background: #00a4dc !important; - color: #fff + color: #fff; } .emby-button.show-focus:focus { background: #00a4dc; - color: #fff + color: #fff; } .emby-tab-button { @@ -339,88 +351,89 @@ html { .guide-channelHeaderCell, .programCell { border-color: #555; - border-color: rgba(0, 0, 0, .1) + border-color: rgba(0, 0, 0, 0.1); } .programCell-sports { - background: #3949AB !important + background: #3949ab !important; } .programCell-movie { - background: #5E35B1 !important + background: #5e35b1 !important; } .programCell-kids { - background: #039BE5 !important + background: #039be5 !important; } .programCell-news { - background: #43A047 !important + background: #43a047 !important; } .programCell-active { - background: rgba(0, 0, 0, .1) !important + background: rgba(0, 0, 0, 0.1) !important; } .guide-channelHeaderCell:focus, .programCell:focus { background-color: #00a4dc !important; - color: #fff !important + color: #fff !important; } .guide-programTextIcon { color: #1e1e1e; - background: #555 + background: #555; } .guide-headerTimeslots { - color: inherit + color: inherit; } .guide-date-tab-button { color: #555; - color: rgba(0, 0, 0, .54) + color: rgba(0, 0, 0, 0.54); } .guide-date-tab-button.emby-tab-button-active, .guide-date-tab-button:focus { - color: #00a4dc + color: #00a4dc; } .guide-date-tab-button.show-focus:focus { background-color: #00a4dc; - color: #fff + color: #fff; } .infoBanner { color: #000; background: #fff3a5; padding: 1em; - border-radius: .25em + -webkit-border-radius: 0.25em; + border-radius: 0.25em; } .ratingbutton-icon-withrating { - color: #c33 + color: #c33; } .downloadbutton-icon-complete, .downloadbutton-icon-on { - color: #4285F4 + color: #4285f4; } .playstatebutton-icon-played { - color: #c33 + color: #c33; } .repeatButton-active { - color: #4285F4 + color: #4285f4; } .card:focus .cardBox.visualCardBox, .card:focus .cardBox:not(.visualCardBox) .cardScalable { - border-color: #00a4dc !important + border-color: #00a4dc !important; } .metadataSidebarIcon { - color: #00a4dc + color: #00a4dc; } diff --git a/src/themes/blueradiance/theme.css b/src/themes/blueradiance/theme.css index 5ab67ca317..b1979e4901 100644 --- a/src/themes/blueradiance/theme.css +++ b/src/themes/blueradiance/theme.css @@ -1,58 +1,66 @@ .skinHeader, html { color: #ddd; - color: rgba(255, 255, 255, .8) + color: rgba(255, 255, 255, 0.8); } .wizardStartForm, .ui-corner-all, .ui-shadow { - background-color: #303030 + background-color: #303030; } .emby-collapsible-button { border-color: #383838; - border-color: rgba(255, 255, 255, .135) + border-color: rgba(255, 255, 255, 0.135); } .skinHeader-withBackground { background: #303030; - background: linear-gradient(to right, #291A31, #033664, #011432, #141A3A, #291A31) + background: -webkit-gradient(linear, left top, right top, from(#291a31), color-stop(#033664), color-stop(#011432), color-stop(#141a3a), to(#291a31)); + background: -webkit-linear-gradient(left, #291a31, #033664, #011432, #141a3a, #291a31); + background: -o-linear-gradient(left, #291a31, #033664, #011432, #141a3a, #291a31); + background: linear-gradient(to right, #291a31, #033664, #011432, #141a3a, #291a31); } .skinHeader.semiTransparent { + -webkit-backdrop-filter: none !important; backdrop-filter: none !important; - background-color: rgba(0, 0, 0, .3); - background: linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)) + background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.6)), to(rgba(0, 0, 0, 0))); + background: -webkit-linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0)); + background: -o-linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0)); + background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0)); + background-color: rgba(0, 0, 0, 0.3); } .pageTitleWithDefaultLogo { - background-image: url(assets/img/banner-light.png) + background-image: url(../../assets/img/banner-light.png); } .dialog, html { - background-color: #033361 + background-color: #033361; } .backgroundContainer { background: url(bg.jpg) center top no-repeat #033361; - background-size: cover + -webkit-background-size: cover; + background-size: cover; } .backgroundContainer.withBackdrop { - opacity: .86 + opacity: 0.86; } -@media (orientation:portrait) { +@media (orientation: portrait) { .backgroundContainer { - background-position: 30% top + background-position: 30% top; } } .paper-icon-button-light:hover:not(:disabled) { color: #00a4dc; - background-color: rgba(0,164,220, .2); + background-color: rgba(0, 164, 220, 0.2); } .paper-icon-button-light.show-focus:focus { @@ -61,32 +69,32 @@ html { .fab, .raised { - background: rgba(0, 0, 0, .5); - color: rgba(255, 255, 255, .87) + background: rgba(0, 0, 0, 0.5); + color: rgba(255, 255, 255, 0.87); } .fab:focus, .raised:focus { - background: rgba(0, 0, 0, .7) + background: rgba(0, 0, 0, 0.7); } .button-submit { background: #00a4dc; - color: #fff + color: #fff; } .button-submit:focus { background: #0cb0e8; - color: #fff + color: #fff; } .button-delete { background: rgb(247, 0, 0); - color: rgba(255, 255, 255, .87) + color: rgba(255, 255, 255, 0.87); } .checkboxLabel { - color: inherit + color: inherit; } .checkboxListLabel, @@ -95,17 +103,17 @@ html { .paperListLabel, .textareaLabelUnfocused { color: #bbb; - color: rgba(255, 255, 255, .7) + color: rgba(255, 255, 255, 0.7); } .inputLabelFocused, .selectLabelFocused, .textareaLabelFocused { - color: #00a4dc + color: #00a4dc; } .checkboxOutline { - border-color: currentColor + border-color: currentColor; } .collapseContent, @@ -113,27 +121,27 @@ html { .formDialogHeader:not(.formDialogHeader-clear), .paperList, .visualCardBox { - background-color: rgba(0, 0, 0, .5) + background-color: rgba(0, 0, 0, 0.5); } .defaultCardBackground1 { - background-color: #d2b019 + background-color: #d2b019; } .defaultCardBackground2 { - background-color: #338abb + background-color: #338abb; } .defaultCardBackground3 { - background-color: #6b689d + background-color: #6b689d; } .defaultCardBackground4 { - background-color: #dd452b + background-color: #dd452b; } .defaultCardBackground5 { - background-color: #5ccea9 + background-color: #5ccea9; } .cardText-secondary, @@ -144,186 +152,187 @@ html { .programSecondaryTitle, .secondaryText { color: #999; - color: rgba(255, 255, 255, .5) + color: rgba(255, 255, 255, 0.5); } .actionsheetDivider { background: #444; - background: rgba(255, 255, 255, .14) + background: rgba(255, 255, 255, 0.14); } .cardFooter-vibrant .cardText-secondary { color: inherit; - opacity: .5 + opacity: 0.5; } .actionSheetMenuItem:hover { - background-color: rgba(0, 0, 0, .5) + background-color: rgba(0, 0, 0, 0.5); } .toast { background: #303030; color: #fff; - color: rgba(255, 255, 255, .87) + color: rgba(255, 255, 255, 0.87); } .appfooter { background: #033664; color: #ccc; - color: rgba(255, 255, 255, .78) + color: rgba(255, 255, 255, 0.78); } -@supports (backdrop-filter:blur(10px)) { +@supports (backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px)) { .appfooter-blurred { - background: rgba(1, 2, 50, .7); - backdrop-filter: blur(20px) + background: rgba(1, 2, 50, 0.7); + backdrop-filter: blur(20px); } } .itemSelectionPanel { - border: 1px solid #00a4dc + border: 1px solid #00a4dc; } .selectionCommandsPanel { background: #00a4dc; - color: #fff + color: #fff; } .upNextDialog-countdownText { - color: #00a4dc + color: #00a4dc; } .alphaPickerButton { color: #999; - color: rgba(255, 255, 255, .5); - background-color: transparent + color: rgba(255, 255, 255, 0.5); + background-color: transparent; } .alphaPickerButton-selected { - color: #fff + color: #fff; } .alphaPickerButton-tv:focus { background-color: #00a4dc; - color: #fff !important + color: #fff !important; } .detailTableBodyRow-shaded:nth-child(even) { background: #1c1c1c; - background: rgba(30, 30, 30, .9) + background: rgba(30, 30, 30, 0.9); } .listItem-border { - border-color: rgba(255, 255, 255, .1) !important + border-color: rgba(255, 255, 255, 0.1) !important; } .listItem:focus { - background: rgba(0, 0, 0, .3) + background: rgba(0, 0, 0, 0.3); } .progressring-spiner { - border-color: #00a4dc + border-color: #00a4dc; } .button-flat-accent, .button-link { - color: #00a4dc + color: #00a4dc; } .mediaInfoText { color: #ddd; - background: rgba(170, 170, 190, .2) + background: rgba(170, 170, 190, 0.2); } .mediaInfoTimerIcon, .starIcon { - color: #CB272A + color: #cb272a; } .emby-input, .emby-textarea { color: inherit; - background: rgba(0, 0, 0, .5); - border: .07em solid transparent; - border-radius: .15em + background: rgba(0, 0, 0, 0.5); + border: 0.16em solid transparent; + -webkit-border-radius: 0.2em; + border-radius: 0.2em; } .emby-input:focus, .emby-textarea:focus { - border-color: #00a4dc + border-color: #00a4dc; } .emby-select-withcolor { color: inherit; - background: rgba(0, 0, 0, .5); - border: .07em solid transparent + background: rgba(0, 0, 0, 0.5); + border: 0.07em solid transparent; } -.emby-select-withcolor>option { +.emby-select-withcolor > option { color: inherit; - background: #222 + background: #222; } .emby-select-withcolor:focus { - border-color: #00a4dc !important + border-color: #00a4dc !important; } .emby-select-tv-withcolor:focus { background-color: #00a4dc !important; - color: #fff !important + color: #fff !important; } -.emby-checkbox:checked+span+.checkboxOutline { - border-color: #00a4dc -} - -.emby-checkbox:focus+span+.checkboxOutline { - border-color: #fff; -} - -.emby-checkbox:focus:not(:checked)+span+.checkboxOutline { +.emby-checkbox:checked + span + .checkboxOutline { border-color: #00a4dc; } -.emby-checkbox:checked+span+.checkboxOutline, +.emby-checkbox:focus + span + .checkboxOutline { + border-color: #fff; +} + +.emby-checkbox:checked + span + .checkboxOutline, .itemProgressBarForeground { - background-color: #00a4dc + background-color: #00a4dc; +} + +.emby-checkbox:focus:not(:checked) + span + .checkboxOutline { + border-color: #00a4dc; } .itemProgressBarForeground-recording { - background-color: #CB272A + background-color: #cb272a; } .countIndicator, .fullSyncIndicator, .playedIndicator { - background: #00a4dc + background: #00a4dc; } .fullSyncIndicator { - color: #fff + color: #fff; } .mainDrawer { - background-color: rgba(0, 0, 0, .5) + background-color: rgba(0, 0, 0, 0.5); } .drawer-open { - background-color: #011432 + background-color: #011432; } .navMenuOption:hover { - background: rgba(221, 221, 221, 0.068) + background: rgba(221, 221, 221, 0.068); } .navMenuOption-selected { background: #00a4dc !important; - color: #fff + color: #fff; } .emby-button.show-focus:focus { background: #00a4dc; - color: #fff + color: #fff; } .emby-tab-button { @@ -331,7 +340,7 @@ html { } .emby-tab-button-active { - color: #00a4dc + color: #00a4dc; } .emby-tab-button.show-focus:focus { @@ -345,111 +354,114 @@ html { .channelPrograms, .guide-channelHeaderCell, .programCell { - border-color: rgba(255, 255, 255, .05) + border-color: rgba(255, 255, 255, 0.05); } .programCell-sports { - background: #3949AB !important + background: #3949ab !important; } .programCell-movie { - background: #5E35B1 !important + background: #5e35b1 !important; } .programCell-kids { - background: #039BE5 !important + background: #039be5 !important; } .programCell-news { - background: #43A047 !important + background: #43a047 !important; } .programCell-active { - background: rgba(0, 0, 0, .4) !important + background: rgba(0, 0, 0, 0.4) !important; } .guide-channelHeaderCell:focus, .programCell:focus { background-color: #00a4dc !important; - color: #fff !important + color: #fff !important; } .guide-programTextIcon { color: #1e1e1e; - background: #555 + background: #555; } .guide-headerTimeslots { - color: inherit + color: inherit; } .guide-date-tab-button { color: #555; - color: rgba(255, 255, 255, .3) + color: rgba(255, 255, 255, 0.3); } .guide-date-tab-button.emby-tab-button-active, .guide-date-tab-button:focus { - color: #00a4dc + color: #00a4dc; } .guide-date-tab-button.show-focus:focus { background-color: #00a4dc; - color: #fff + color: #fff; } .infoBanner { color: #ddd; background: #111; padding: 1em; - border-radius: .25em + -webkit-border-radius: 0.25em; + border-radius: 0.25em; } .ratingbutton-icon-withrating { - color: #c33 + color: #c33; } .downloadbutton-icon-complete, .downloadbutton-icon-on { - color: #4285F4 + color: #4285f4; } .playstatebutton-icon-played { - color: #c33 + color: #c33; } .repeatButton-active { - color: #4285F4 + color: #4285f4; } .card:focus .cardBox.visualCardBox, .card:focus .cardBox:not(.visualCardBox) .cardScalable { - border-color: #00a4dc !important + border-color: #00a4dc !important; +} + +::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); + box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); +} + +::-webkit-scrollbar-track-piece { + background-color: #3b3b3b; } .layout-desktop ::-webkit-scrollbar { width: 1em; - height: 1em -} - -::-webkit-scrollbar-track { - box-shadow: inset 0 0 6px rgba(0, 0, 0, .3) -} - -::-webkit-scrollbar-track-piece { - background-color: #3b3b3b + height: 1em; } ::-webkit-scrollbar-thumb:horizontal, ::-webkit-scrollbar-thumb:vertical { border-radius: 2px; - background: center no-repeat #888 + -webkit-border-radius: 2px; + background: center no-repeat #888; } .timeslotHeaders-desktop::-webkit-scrollbar { - height: .7em + height: 0.7em; } .metadataSidebarIcon { - color: #00a4dc + color: #00a4dc; } diff --git a/src/themes/dark/theme.css b/src/themes/dark/theme.css index bff054169d..4912e591c7 100644 --- a/src/themes/dark/theme.css +++ b/src/themes/dark/theme.css @@ -1,46 +1,47 @@ .skinHeader, html { color: #ddd; - color: rgba(255, 255, 255, .8) + color: rgba(255, 255, 255, 0.8); } .wizardStartForm, .ui-corner-all, .ui-shadow { - background-color: #101010 + background-color: #101010; } .emby-collapsible-button { border-color: #383838; - border-color: rgba(255, 255, 255, .135) + border-color: rgba(255, 255, 255, 0.135); } .skinHeader-withBackground { - background-color: #101010 + background-color: #101010; } .skinHeader.semiTransparent { + -webkit-backdrop-filter: none !important; backdrop-filter: none !important; background-color: rgba(0, 0, 0, 0.4); } .pageTitleWithDefaultLogo { - background-image: url(assets/img/banner-light.png) + background-image: url(../../assets/img/banner-light.png); } .backgroundContainer, .dialog, html { - background-color: #101010 + background-color: #101010; } .backgroundContainer.withBackdrop { - background-color: rgba(0, 0, 0, .86) + background-color: rgba(0, 0, 0, 0.86); } .paper-icon-button-light:hover:not(:disabled) { color: #00a4dc; - background-color: rgba(0,164,220, .2); + background-color: rgba(0, 164, 220, 0.2); } .paper-icon-button-light.show-focus:focus { @@ -50,31 +51,31 @@ html { .fab, .raised { background: #303030; - color: rgba(255, 255, 255, .87) + color: rgba(255, 255, 255, 0.87); } .fab:focus, .raised:focus { - background: #383838 + background: #383838; } .button-submit { background: #00a4dc; - color: #fff + color: #fff; } .button-submit:focus { background: #0cb0e8; - color: #fff + color: #fff; } .button-delete { background: rgb(247, 0, 0); - color: rgba(255, 255, 255, .87) + color: rgba(255, 255, 255, 0.87); } .checkboxLabel { - color: inherit + color: inherit; } .checkboxListLabel, @@ -83,17 +84,17 @@ html { .paperListLabel, .textareaLabelUnfocused { color: #bbb; - color: rgba(255, 255, 255, .7) + color: rgba(255, 255, 255, 0.7); } .inputLabelFocused, .selectLabelFocused, .textareaLabelFocused { - color: #00a4dc + color: #00a4dc; } .checkboxOutline { - border-color: currentColor + border-color: currentColor; } .collapseContent, @@ -101,27 +102,27 @@ html { .formDialogHeader:not(.formDialogHeader-clear), .paperList, .visualCardBox { - background-color: #242424 + background-color: #242424; } .defaultCardBackground1 { - background-color: #d2b019 + background-color: #d2b019; } .defaultCardBackground2 { - background-color: #338abb + background-color: #338abb; } .defaultCardBackground3 { - background-color: #6b689d + background-color: #6b689d; } .defaultCardBackground4 { - background-color: #dd452b + background-color: #dd452b; } .defaultCardBackground5 { - background-color: #5ccea9 + background-color: #5ccea9; } .cardText-secondary, @@ -132,175 +133,176 @@ html { .programSecondaryTitle, .secondaryText { color: #999; - color: rgba(255, 255, 255, .5) + color: rgba(255, 255, 255, 0.5); } .actionsheetDivider { background: #444; - background: rgba(255, 255, 255, .14) + background: rgba(255, 255, 255, 0.14); } .cardFooter-vibrant .cardText-secondary { color: inherit; - opacity: .5 + opacity: 0.5; } .actionSheetMenuItem:hover { - background-color: #242424 + background-color: #242424; } .toast { background: #303030; color: #fff; - color: rgba(255, 255, 255, .87) + color: rgba(255, 255, 255, 0.87); } .appfooter { background: #101010; color: #ccc; - color: rgba(255, 255, 255, .78) + color: rgba(255, 255, 255, 0.78); } .itemSelectionPanel { - border: 1px solid #00a4dc + border: 1px solid #00a4dc; } .selectionCommandsPanel { background: #00a4dc; - color: #fff + color: #fff; } .upNextDialog-countdownText { - color: #00a4dc + color: #00a4dc; } .alphaPickerButton { color: #999; - color: rgba(255, 255, 255, .5); - background-color: transparent + color: rgba(255, 255, 255, 0.5); + background-color: transparent; } .alphaPickerButton-selected { - color: #fff + color: #fff; } .alphaPickerButton-tv:focus { background-color: #00a4dc; - color: #fff !important + color: #fff !important; } .detailTableBodyRow-shaded:nth-child(even) { background: #1c1c1c; - background: rgba(30, 30, 30, .9) + background: rgba(30, 30, 30, 0.9); } .listItem-border { - border-color: rgba(34, 34, 34, .9) !important + border-color: rgba(34, 34, 34, 0.9) !important; } .listItem:focus { - background: #333 + background: #333; } .progressring-spiner { - border-color: #00a4dc + border-color: #00a4dc; } .button-flat-accent, .button-link { - color: #00a4dc + color: #00a4dc; } .mediaInfoText { color: #ddd; - background: rgba(170, 170, 190, .2) + background: rgba(170, 170, 190, 0.2); } .mediaInfoTimerIcon, .starIcon { - color: #CB272A + color: #cb272a; } .emby-input, .emby-textarea { color: inherit; background: #292929; - border: .07em solid #292929; - border-radius: .15em + border: 0.16em solid #292929; + -webkit-border-radius: 0.2em; + border-radius: 0.2em; } .emby-input:focus, .emby-textarea:focus { - border-color: #00a4dc + border-color: #00a4dc; } .emby-select-withcolor { color: inherit; background: #292929; - border: .07em solid #292929 + border: 0.07em solid #292929; } -.emby-select-withcolor>option { +.emby-select-withcolor > option { color: inherit; - background: #222 + background: #222; } .emby-select-withcolor:focus { - border-color: #00a4dc !important + border-color: #00a4dc !important; } .emby-select-tv-withcolor:focus { background-color: #00a4dc !important; - color: #fff !important + color: #fff !important; } -.emby-checkbox:checked+span+.checkboxOutline { - border-color: #00a4dc -} - -.emby-checkbox:focus+span+.checkboxOutline { - border-color: #fff; -} - -.emby-checkbox:focus:not(:checked)+span+.checkboxOutline { +.emby-checkbox:checked + span + .checkboxOutline { border-color: #00a4dc; } -.emby-checkbox:checked+span+.checkboxOutline, +.emby-checkbox:focus + span + .checkboxOutline { + border-color: #fff; +} + +.emby-checkbox:checked + span + .checkboxOutline, .itemProgressBarForeground { - background-color: #00a4dc + background-color: #00a4dc; +} + +.emby-checkbox:focus:not(:checked) + span + .checkboxOutline { + border-color: #00a4dc; } .itemProgressBarForeground-recording { - background-color: #CB272A + background-color: #cb272a; } .countIndicator, .fullSyncIndicator, .playedIndicator { - background: #00a4dc + background: #00a4dc; } .fullSyncIndicator { - color: #fff + color: #fff; } .mainDrawer { - background-color: #101010 + background-color: #101010; } .navMenuOption:hover { - background: #252528 + background: #252528; } .navMenuOption-selected { background: #00a4dc !important; - color: #fff + color: #fff; } .emby-button.show-focus:focus { background: #00a4dc; - color: #fff + color: #fff; } .emby-tab-button { @@ -322,111 +324,114 @@ html { .channelPrograms, .guide-channelHeaderCell, .programCell { - border-color: rgba(255, 255, 255, .05) + border-color: rgba(255, 255, 255, 0.05); } .programCell-sports { - background: #3949AB !important + background: #3949ab !important; } .programCell-movie { - background: #5E35B1 !important + background: #5e35b1 !important; } .programCell-kids { - background: #039BE5 !important + background: #039be5 !important; } .programCell-news { - background: #43A047 !important + background: #43a047 !important; } .programCell-active { - background: #1e1e1e !important + background: #1e1e1e !important; } .guide-channelHeaderCell:focus, .programCell:focus { background-color: #00a4dc !important; - color: #fff !important + color: #fff !important; } .guide-programTextIcon { color: #1e1e1e; - background: #555 + background: #555; } .guide-headerTimeslots { - color: inherit + color: inherit; } .guide-date-tab-button { color: #555; - color: rgba(255, 255, 255, .3) + color: rgba(255, 255, 255, 0.3); } .guide-date-tab-button.emby-tab-button-active, .guide-date-tab-button:focus { - color: #00a4dc + color: #00a4dc; } .guide-date-tab-button.show-focus:focus { background-color: #00a4dc; - color: #fff + color: #fff; } .infoBanner { color: #ddd; background: #111; padding: 1em; - border-radius: .25em + -webkit-border-radius: 0.25em; + border-radius: 0.25em; } .ratingbutton-icon-withrating { - color: #c33 + color: #c33; } .downloadbutton-icon-complete, .downloadbutton-icon-on { - color: #4285F4 + color: #4285f4; } .playstatebutton-icon-played { - color: #c33 + color: #c33; } .repeatButton-active { - color: #4285F4 + color: #4285f4; } .card:focus .cardBox.visualCardBox, .card:focus .cardBox:not(.visualCardBox) .cardScalable { - border-color: #00a4dc !important + border-color: #00a4dc !important; +} + +::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); + box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); +} + +::-webkit-scrollbar-track-piece { + background-color: #3b3b3b; } .layout-desktop ::-webkit-scrollbar { width: 1em; - height: 1em -} - -::-webkit-scrollbar-track { - box-shadow: inset 0 0 6px rgba(0, 0, 0, .3) -} - -::-webkit-scrollbar-track-piece { - background-color: #3b3b3b + height: 1em; } ::-webkit-scrollbar-thumb:horizontal, ::-webkit-scrollbar-thumb:vertical { border-radius: 2px; - background: center no-repeat #888 + -webkit-border-radius: 2px; + background: center no-repeat #888; } .timeslotHeaders-desktop::-webkit-scrollbar { - height: .7em + height: 0.7em; } .metadataSidebarIcon { - color: #00a4dc + color: #00a4dc; } diff --git a/src/themes/emby/theme.css b/src/themes/emby/theme.css new file mode 100644 index 0000000000..ba0699cc65 --- /dev/null +++ b/src/themes/emby/theme.css @@ -0,0 +1,432 @@ +.skinHeader, +html { + color: #ddd; + color: rgba(255, 255, 255, 0.8); +} + +.wizardStartForm, +.ui-corner-all, +.ui-shadow { + background-color: #1f1f1f; +} + +.emby-collapsible-button { + border-color: #383838; + border-color: rgba(255, 255, 255, 0.135); +} + +.skinHeader-withBackground { + background-color: #1f1f1f; +} + +.skinHeader.semiTransparent { + backdrop-filter: none !important; + background-color: rgba(0, 0, 0, 0.4); +} + +.pageTitleWithDefaultLogo { + background-image: url(../logowhite.png); +} + +.backgroundContainer, +.dialog, +html { + background-color: #1a1a1a; +} + +.backgroundContainer.withBackdrop { + background-color: rgba(0, 0, 0, 0.86); +} + +.paper-icon-button-light:hover:not(:disabled) { + color: #52b54b; + background-color: rgba(82, 181, 75, 0.2); +} + +.paper-icon-button-light.show-focus:focus { + color: #52b54b; +} + +.fab, +.raised { + background: #303030; + color: rgba(255, 255, 255, 0.87); +} + +.fab:focus, +.raised:focus { + background: #383838; +} + +.button-submit { + background: #52b54b; + color: #fff; +} + +.button-submit:focus { + background: #5ec157; + color: #fff; +} + +.button-delete { + background: rgb(247, 0, 0); + color: rgba(255, 255, 255, 0.87); +} + +.checkboxLabel { + color: inherit; +} + +.checkboxListLabel, +.inputLabel, +.inputLabelUnfocused, +.paperListLabel, +.textareaLabelUnfocused { + color: #bbb; + color: rgba(255, 255, 255, 0.7); +} + +.inputLabelFocused, +.selectLabelFocused, +.textareaLabelFocused { + color: #52b54b; +} + +.checkboxOutline { + border-color: currentColor; +} + +.collapseContent, +.formDialogFooter:not(.formDialogFooter-clear), +.formDialogHeader:not(.formDialogHeader-clear), +.paperList, +.visualCardBox { + background-color: #242424; +} + +.defaultCardBackground1 { + background-color: #d2b019; +} + +.defaultCardBackground2 { + background-color: #338abb; +} + +.defaultCardBackground3 { + background-color: #6b689d; +} + +.defaultCardBackground4 { + background-color: #dd452b; +} + +.defaultCardBackground5 { + background-color: #5ccea9; +} + +.cardText-secondary, +.fieldDescription, +.guide-programNameCaret, +.listItem .secondary, +.nowPlayingBarSecondaryText, +.programSecondaryTitle, +.secondaryText { + color: #999; + color: rgba(255, 255, 255, 0.5); +} + +.actionsheetDivider { + background: #444; + background: rgba(255, 255, 255, 0.14); +} + +.cardFooter-vibrant .cardText-secondary { + color: inherit; + opacity: 0.5; +} + +.actionSheetMenuItem:hover { + background-color: #242424; +} + +.toast { + background: #303030; + color: #fff; + color: rgba(255, 255, 255, 0.87); +} + +.appfooter { + background: #101010; + color: #ccc; + color: rgba(255, 255, 255, 0.78); +} + +.itemSelectionPanel { + border: 1px solid #52b54b; +} + +.selectionCommandsPanel { + background: #52b54b; + color: #fff; +} + +.upNextDialog-countdownText { + color: #52b54b; +} + +.alphaPickerButton { + color: #999; + color: rgba(255, 255, 255, 0.5); + background-color: transparent; +} + +.alphaPickerButton-selected { + color: #fff; +} + +.alphaPickerButton-tv:focus { + background-color: #52b54b; + color: #fff !important; +} + +.detailTableBodyRow-shaded:nth-child(even) { + background: #1c1c1c; + background: rgba(30, 30, 30, 0.9); +} + +.listItem-border { + border-color: rgba(34, 34, 34, 0.9) !important; +} + +.listItem:focus { + background: #333; +} + +.progressring-spiner { + border-color: #52b54b; +} + +.button-flat-accent, +.button-link { + color: #52b54b; +} + +.mediaInfoText { + color: #ddd; + background: rgba(170, 170, 190, 0.2); +} + +.mediaInfoTimerIcon, +.starIcon { + color: #cb272a; +} + +.emby-input, +.emby-textarea { + color: inherit; + background: #292929; + border: 0.16em solid #292929; + border-radius: 0.2em; +} + +.emby-input:focus, +.emby-textarea:focus { + border-color: #52b54b; +} + +.emby-select-withcolor { + color: inherit; + background: #292929; + border: 0.07em solid #292929; +} + +.emby-select-withcolor > option { + color: inherit; + background: #222; +} + +.emby-select-withcolor:focus { + border-color: #52b54b !important; +} + +.emby-select-tv-withcolor:focus { + background-color: #52b54b !important; + color: #fff !important; +} + +.emby-checkbox:checked + span + .checkboxOutline { + border-color: #52b54b; +} + +.emby-checkbox:focus + span + .checkboxOutline { + border-color: #fff; +} + +.emby-checkbox:checked + span + .checkboxOutline, +.itemProgressBarForeground { + background-color: #52b54b; +} + +.emby-checkbox:focus:not(:checked) + span + .checkboxOutline { + border-color: #52b54b; +} + +.itemProgressBarForeground-recording { + background-color: #cb272a; +} + +.countIndicator, +.fullSyncIndicator, +.playedIndicator { + background: #52b54b; +} + +.fullSyncIndicator { + color: #fff; +} + +.mainDrawer { + background-color: #1c1c1c; +} + +.navMenuOption:hover { + background: #252528; +} + +.navMenuOption-selected { + background: #52b54b !important; + color: #fff; +} + +.emby-button.show-focus:focus { + background: #52b54b; + color: #fff; +} + +.emby-tab-button { + color: #999; +} + +.emby-tab-button-active { + color: #52b54b; +} + +.emby-tab-button.show-focus:focus { + color: #52b54b; +} + +.emby-tab-button:hover { + color: #52b54b; +} + +.channelPrograms, +.guide-channelHeaderCell, +.programCell { + border-color: rgba(255, 255, 255, 0.05); +} + +.programCell-sports { + background: #3949ab !important; +} + +.programCell-movie { + background: #5e35b1 !important; +} + +.programCell-kids { + background: #039be5 !important; +} + +.programCell-news { + background: #43a047 !important; +} + +.programCell-active { + background: #1e1e1e !important; +} + +.guide-channelHeaderCell:focus, +.programCell:focus { + background-color: #52b54b !important; + color: #fff !important; +} + +.guide-programTextIcon { + color: #1e1e1e; + background: #555; +} + +.guide-headerTimeslots { + color: inherit; +} + +.guide-date-tab-button { + color: #555; + color: rgba(255, 255, 255, 0.3); +} + +.guide-date-tab-button.emby-tab-button-active, +.guide-date-tab-button:focus { + color: #52b54b; +} + +.guide-date-tab-button.show-focus:focus { + background-color: #52b54b; + color: #fff; +} + +.infoBanner { + color: #ddd; + background: #111; + padding: 1em; + border-radius: 0.25em; +} + +.ratingbutton-icon-withrating { + color: #c33; +} + +.downloadbutton-icon-complete, +.downloadbutton-icon-on { + color: #4285f4; +} + +.playstatebutton-icon-played { + color: #c33; +} + +.repeatButton-active { + color: #4285f4; +} + +.card:focus .cardBox.visualCardBox, +.card:focus .cardBox:not(.visualCardBox) .cardScalable { + border-color: #52b54b !important; +} + +::-webkit-scrollbar-track { + box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); +} + +::-webkit-scrollbar-track-piece { + background-color: #3b3b3b; +} + +.layout-desktop ::-webkit-scrollbar { + width: 1em; + height: 1em; +} + +::-webkit-scrollbar-thumb:horizontal, +::-webkit-scrollbar-thumb:vertical { + border-radius: 2px; + background: center no-repeat #888; +} + +.timeslotHeaders-desktop::-webkit-scrollbar { + height: 0.7em; +} + +.metadataSidebarIcon { + color: #00a4dc; +} diff --git a/src/themes/light/theme.css b/src/themes/light/theme.css index 719678d0a6..c6e5bca899 100644 --- a/src/themes/light/theme.css +++ b/src/themes/light/theme.css @@ -1,60 +1,63 @@ .skinHeader, html { color: #222; - color: rgba(0, 0, 0, .87) + color: rgba(0, 0, 0, 0.87); } .wizardStartForm, .ui-corner-all, .ui-shadow { - background-color: #303030 + background-color: #303030; } .emby-collapsible-button { border-color: #ccc; - border-color: rgba(0, 0, 0, .158) + border-color: rgba(0, 0, 0, 0.158); } .collapseContent { - background-color: #eaeaea + background-color: #eaeaea; } .skinHeader-withBackground { background-color: #303030; color: #ccc; - color: rgba(255, 255, 255, .87); - box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37) + color: rgba(255, 255, 255, 0.87); + -webkit-box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37); + box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37); } .osdHeader { - box-shadow: none !important + -webkit-box-shadow: none !important; + box-shadow: none !important; } .skinHeader.semiTransparent { + -webkit-backdrop-filter: none !important; backdrop-filter: none !important; background-color: rgba(0, 0, 0, 0.4); } .pageTitleWithDefaultLogo { - background-image: url(assets/img/banner-light.png) + background-image: url(../../assets/img/banner-light.png); } .backgroundContainer, html { - background-color: #f2f2f2 + background-color: #f2f2f2; } .backgroundContainer.withBackdrop { - background-color: rgba(255, 255, 255, .80) + background-color: rgba(255, 255, 255, 0.8); } .dialog { - background-color: #f0f0f0 + background-color: #f0f0f0; } .paper-icon-button-light:hover:not(:disabled) { color: #00a4dc; - background-color: rgba(0,164,220, .2); + background-color: rgba(0, 164, 220, 0.2); } .paper-icon-button-light.show-focus:focus { @@ -64,30 +67,30 @@ html { .fab, .raised { background: #d8d8d8; - color: inherit + color: inherit; } .fab:focus, .raised:focus { - background: #ccc + background: #ccc; } .button-submit { background: #00a4dc; - color: #fff + color: #fff; } .button-submit:focus { - background: #0cb0e8 + background: #0cb0e8; } .button-delete { background: rgb(247, 0, 0); - color: rgba(255, 255, 255, .87) + color: rgba(255, 255, 255, 0.87); } .checkboxLabel { - color: inherit + color: inherit; } .checkboxListLabel, @@ -95,55 +98,55 @@ html { .inputLabelUnfocused, .paperListLabel, .textareaLabelUnfocused { - color: #555 + color: #555; } .button-link, .inputLabelFocused, .selectLabelFocused, .textareaLabelFocused { - color: green + color: green; } .checkboxOutline { - border-color: currentColor + border-color: currentColor; } .paperList, .visualCardBox { - background-color: #fff + background-color: #fff; } .defaultCardBackground1 { - background-color: #009688 + background-color: #009688; } .defaultCardBackground2 { - background-color: #D32F2F + background-color: #d32f2f; } .defaultCardBackground3 { - background-color: #0288D1 + background-color: #0288d1; } .defaultCardBackground4 { - background-color: #388E3C + background-color: #388e3c; } .defaultCardBackground5 { - background-color: #F57F17 + background-color: #f57f17; } .formDialogHeader:not(.formDialogHeader-clear) { background-color: #00a4dc; - color: #fff + color: #fff; } .formDialogFooter:not(.formDialogFooter-clear) { background-color: #f0f0f0; border-top: 1px solid #ddd; - border-top: 1px solid rgba(0, 0, 0, .08); - color: inherit + border-top: 1px solid rgba(0, 0, 0, 0.08); + color: inherit; } .cardText-secondary, @@ -153,171 +156,172 @@ html { .nowPlayingBarSecondaryText, .programSecondaryTitle, .secondaryText { - color: #888 + color: #888; } .actionsheetDivider { background: #ddd; - background: rgba(0, 0, 0, .14) + background: rgba(0, 0, 0, 0.14); } .cardFooter-vibrant .cardText-secondary { color: inherit; - opacity: .5 + opacity: 0.5; } .formDialogHeader a, .toast { - color: #fff + color: #fff; } .actionSheetMenuItem:hover { - background-color: #ddd + background-color: #ddd; } .toast { background: #303030; - color: rgba(255, 255, 255, .87) + color: rgba(255, 255, 255, 0.87); } .appfooter { background: #282828; color: #ccc; - color: rgba(255, 255, 255, .78) + color: rgba(255, 255, 255, 0.78); } .nowPlayingBarSecondaryText { - color: #999 + color: #999; } .itemSelectionPanel { - border: 1px solid #00a4dc + border: 1px solid #00a4dc; } .selectionCommandsPanel { background: #00a4dc; - color: #fff + color: #fff; } .upNextDialog-countdownText { - color: #00a4dc + color: #00a4dc; } .alphaPickerButton { color: #555; - color: rgba(0, 0, 0, .7); - background-color: transparent + color: rgba(0, 0, 0, 0.7); + background-color: transparent; } .alphaPickerButton-selected, .alphaPickerButton-tv:focus { background-color: #00a4dc; - color: #fff !important + color: #fff !important; } .detailTableBodyRow-shaded:nth-child(even) { - background: #f8f8f8 + background: #f8f8f8; } .listItem-border { - border-color: #f0f0f0 !important + border-color: #f0f0f0 !important; } .listItem:focus { - background: #ddd + background: #ddd; } .progressring-spiner { - border-color: #00a4dc + border-color: #00a4dc; } .mediaInfoText { color: #333; - background: #fff + background: #fff; } .mediaInfoTimerIcon, .starIcon { - color: #CB272A + color: #cb272a; } .emby-input, .emby-textarea { color: inherit; background: #fff; - border: .07em solid rgba(0, 0, 0, .158); - border-radius: .15em + border: 0.16em solid rgba(0, 0, 0, 0.158); + -webkit-border-radius: 0.2em; + border-radius: 0.2em; } .emby-input:focus, .emby-textarea:focus { - border-color: #00a4dc + border-color: #00a4dc; } .emby-select-withcolor { color: inherit; background: #fff; - border: .07em solid rgba(0, 0, 0, .158) + border: 0.07em solid rgba(0, 0, 0, 0.158); } -.emby-checkbox:checked+span+.checkboxOutline, +.emby-checkbox:checked + span + .checkboxOutline, .emby-select-withcolor:focus { - border-color: #00a4dc -} - -.emby-checkbox:focus+span+.checkboxOutline { - border-color: #000; -} - -.emby-checkbox:focus:not(:checked)+span+.checkboxOutline { border-color: #00a4dc; } -.emby-select-withcolor>option { +.emby-checkbox:focus + span + .checkboxOutline { + border-color: #000; +} + +.emby-checkbox:checked + span + .checkboxOutline, +.itemProgressBarForeground { + background-color: #00a4dc; +} + +.emby-checkbox:focus:not(:checked) + span + .checkboxOutline { + border-color: #00a4dc; +} + +.emby-select-withcolor > option { color: #000; - background: #fff + background: #fff; } .emby-select-tv-withcolor:focus { background-color: #00a4dc; - color: #fff -} - -.emby-checkbox:checked+span+.checkboxOutline, -.itemProgressBarForeground { - background-color: #00a4dc + color: #fff; } .itemProgressBarForeground-recording { - background-color: #CB272A + background-color: #cb272a; } .countIndicator, .fullSyncIndicator, .playedIndicator { - background: #00a4dc + background: #00a4dc; } .fullSyncIndicator { - color: #fff + color: #fff; } .mainDrawer { - background: #fff + background: #fff; } .navMenuOption:hover { - background: #f2f2f2 + background: #f2f2f2; } .navMenuOption-selected { background: #00a4dc !important; - color: #fff + color: #fff; } .emby-button.show-focus:focus { background: #00a4dc; - color: #fff + color: #fff; } .emby-tab-button { @@ -339,88 +343,89 @@ html { .channelPrograms, .guide-channelHeaderCell, .programCell { - border-color: rgba(0, 0, 0, .12) + border-color: rgba(0, 0, 0, 0.12); } .programCell-sports { - background: #3949AB !important + background: #3949ab !important; } .programCell-movie { - background: #5E35B1 !important + background: #5e35b1 !important; } .programCell-kids { - background: #039BE5 !important + background: #039be5 !important; } .programCell-news { - background: #43A047 !important + background: #43a047 !important; } .programCell-active { - background: rgba(0, 0, 0, .1) !important + background: rgba(0, 0, 0, 0.1) !important; } .guide-channelHeaderCell:focus, .programCell:focus { background-color: #00a4dc !important; - color: #fff !important + color: #fff !important; } .guide-programTextIcon { color: #1e1e1e; - background: #555 + background: #555; } .guide-headerTimeslots { - color: inherit + color: inherit; } .guide-date-tab-button { color: #555; - color: rgba(0, 0, 0, .54) + color: rgba(0, 0, 0, 0.54); } .guide-date-tab-button.emby-tab-button-active, .guide-date-tab-button:focus { - color: #00a4dc + color: #00a4dc; } .guide-date-tab-button.show-focus:focus { background-color: #00a4dc; - color: #fff + color: #fff; } .infoBanner { color: #000; background: #fff3a5; padding: 1em; - border-radius: .25em + -webkit-border-radius: 0.25em; + border-radius: 0.25em; } .ratingbutton-icon-withrating { - color: #c33 + color: #c33; } .downloadbutton-icon-complete, .downloadbutton-icon-on { - color: #4285F4 + color: #4285f4; } .playstatebutton-icon-played { - color: #c33 + color: #c33; } .repeatButton-active { - color: #4285F4 + color: #4285f4; } .card:focus .cardBox.visualCardBox, .card:focus .cardBox:not(.visualCardBox) .cardScalable { - border-color: #00a4dc !important + border-color: #00a4dc !important; } .metadataSidebarIcon { - color: #00a4dc + color: #00a4dc; } diff --git a/src/themes/purplehaze/theme.css b/src/themes/purplehaze/theme.css index c53e80e80a..7f10c9265b 100644 --- a/src/themes/purplehaze/theme.css +++ b/src/themes/purplehaze/theme.css @@ -1,58 +1,65 @@ .skinHeader, html { color: #f8f8fe; - color: rgba(248, 248, 254, 0.973) + color: rgba(248, 248, 254, 0.973); } .wizardStartForm, .ui-corner-all, .ui-shadow { - background-color: #303030 + background-color: #303030; } .emby-collapsible-button { border-color: #383838; - border-color: rgba(255, 255, 255, .135) + border-color: rgba(255, 255, 255, 0.135); } .skinHeader-withBackground { background: #000420; - background: linear-gradient(to right, #000420 0%,#06256f 18%,#2b052b 38%,#2b052b 68%,#06256f 81%,#000420 100%); + background: -moz-linear-gradient(left, #000420 0%, #06256f 18%, #2b052b 38%, #2b052b 68%, #06256f 81%, #000420 100%); + background: -webkit-linear-gradient(left, #000420 0%, #06256f 18%, #2b052b 38%, #2b052b 68%, #06256f 81%, #000420 100%); + background: linear-gradient(to right, #000420 0%, #06256f 18%, #2b052b 38%, #2b052b 68%, #06256f 81%, #000420 100%); } .skinHeader.semiTransparent { + -webkit-backdrop-filter: none !important; backdrop-filter: none !important; - background-color: rgba(0, 0, 0, .3); - background: linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)) + background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.6)), to(rgba(0, 0, 0, 0))); + background: -webkit-linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0)); + background: -o-linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0)); + background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0)); + background-color: rgba(0, 0, 0, 0.3); } .pageTitleWithDefaultLogo { - background-image: url(assets/img/banner-light.png) + background-image: url(../../assets/img/banner-light.png); } .dialog, html { - background-color: #230c33 + background-color: #230c33; } .backgroundContainer { background: url(bg.jpg) center top no-repeat #030322; - background-size: cover + -webkit-background-size: cover; + background-size: cover; } .backgroundContainer.withBackdrop { - opacity: .86 + opacity: 0.86; } -@media (orientation:portrait) { +@media (orientation: portrait) { .backgroundContainer { - background-position: 30% top + background-position: 30% top; } } .paper-icon-button-light:hover:not(:disabled) { color: rgb(12, 232, 214); - background-color: rgba(0,164,220, .2); + background-color: rgba(0, 164, 220, 0.2); } .paper-icon-button-light.show-focus:focus { @@ -60,35 +67,35 @@ html { } progress { - border-radius: .4em; + border-radius: 0.4em; } progress::-webkit-progress-bar { - border-radius: .4em; + border-radius: 0.4em; } progress::-moz-progress-bar { - border-radius: .4em; + border-radius: 0.4em; } progress::-webkit-progress-value { - border-radius: .4em; + border-radius: 0.4em; } .fab, .raised { - background: rgba(0, 0, 0, .5); - color: rgba(255, 255, 255, .87); + background: rgba(0, 0, 0, 0.5); + color: rgba(255, 255, 255, 0.87); } .fab:focus, .raised:focus { - background: #ff77f1 + background: #ff77f1; } div[data-role=controlgroup] a.ui-btn-active { background: #55828b !important; - color: #e1e5f2 !important + color: #e1e5f2 !important; } a[data-role=button] { @@ -106,7 +113,21 @@ a[data-role=button] { .button-alt, .btnOption { background: rgb(72, 195, 200); - color: rgb(225, 229, 242) + color: rgb(225, 229, 242); +} + +#btnResetPassword, +.btnForgotPassword, +.btnCancel, +.button-cancel { + background: rgba(0, 0, 0, 0.5); + color: rgba(255, 255, 255, 0.87); +} + +.alphaPickerButton { + color: #999; + color: rgba(255, 255, 255, 0.5); + background-color: transparent; } #btnResetPassword:hover, @@ -128,39 +149,31 @@ a[data-role=button] { .btnManual:hover, .block:hover { background: rgb(12, 232, 214); - color: rgba(255, 255, 255, .87) + color: rgba(255, 255, 255, 0.87); } .button-submit:focus { - background: #ff77f1 + background: #ff77f1; } .button-delete { background: rgb(247, 0, 0); - color: rgba(255, 255, 255, .87) -} - -#btnResetPassword, -.btnForgotPassword, -.btnCancel, -.button-cancel { - background: rgba(0, 0, 0, .5); - color: rgba(255, 255, 255, .87); + color: rgba(255, 255, 255, 0.87); } .itemName { - color: #f1f7ee + color: #f1f7ee; } .textareaLabel, .sectionTitle, .fieldDescription, .checkboxLabel { - color: #f1f7ee + color: #f1f7ee; } .checkboxLabel { - color: inherit + color: inherit; } .selectLabel, @@ -176,15 +189,15 @@ a[data-role=button] { .inputLabelFocused, .selectLabelFocused, .textareaLabelFocused { - color: #ff77f1 + color: #ff77f1; } .checkboxOutline { - border-color: currentColor + border-color: currentColor; } .cardContent { - border-radius: 1.000em + border-radius: 1em; } .collapseContent, @@ -192,36 +205,37 @@ a[data-role=button] { .formDialogHeader:not(.formDialogHeader-clear), .paperList, .visualCardBox { - background-color: rgba(0, 0, 0, .5); - border-radius: 1.000em + background-color: rgba(0, 0, 0, 0.5); + border-radius: 1em; } .cardOverlayContainer { border-radius: 0.8em; } + .visualCardBox .cardOverlayContainer { - border-bottom-right-radius: 0em; - border-bottom-left-radius: 0em; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; } .defaultCardBackground1 { - background-color: #d2b019 + background-color: #d2b019; } .defaultCardBackground2 { - background-color: #338abb + background-color: #338abb; } .defaultCardBackground3 { - background-color: #6b689d + background-color: #6b689d; } .defaultCardBackground4 { - background-color: #dd452b + background-color: #dd452b; } .defaultCardBackground5 { - background-color: #5ccea9 + background-color: #5ccea9; } .cardText-secondary, @@ -232,150 +246,145 @@ a[data-role=button] { .programSecondaryTitle, .secondaryText { color: #999; - color: rgba(255, 255, 255, .5) + color: rgba(255, 255, 255, 0.5); } .actionsheetDivider { background: #444; - background: rgba(255, 255, 255, .14) + background: rgba(255, 255, 255, 0.14); } .cardFooter-vibrant .cardText-secondary { color: inherit; - opacity: .5 + opacity: 0.5; } .actionSheetMenuItem:hover { - background-color: rgba(0, 0, 0, .5) + background-color: rgba(0, 0, 0, 0.5); } .toast { background: #303030; color: #f8f8fe; - color: rgba(255, 255, 255, .87) + color: rgba(255, 255, 255, 0.87); } .appfooter { background: #06256f; color: #ccc; - color: rgba(255, 255, 255, .78) + color: rgba(255, 255, 255, 0.78); } -@supports (backdrop-filter:blur(10px)) { +@supports (backdrop-filter:blur(10px)) or (-webkit-backdrop-filter:blur(10px)) { .appfooter-blurred { - background: rgba(6, 37, 111, .7); - backdrop-filter: blur(20px) + background: rgba(6, 37, 111, 0.7); + backdrop-filter: blur(20px); } } .itemSelectionPanel { - border: 1px solid #48C3C8 + border: 1px solid #48c3c8; } .selectionCommandsPanel { - background: #48C3C8; - color: #f8f8fe + background: #48c3c8; + color: #f8f8fe; } .upNextDialog-countdownText { - color: #48C3C8 -} - -.alphaPickerButton { - color: #999; - color: rgba(255, 255, 255, .5); - background-color: transparent + color: #48c3c8; } .alphaPickerButton-selected { - color: #0ce8d6 + color: #0ce8d6; } .alphaPickerButton-tv:focus { background: #ff77f1; - color: #f8f8fe !important + color: #f8f8fe !important; } .detailTableBodyRow-shaded:nth-child(even) { background: #1c1c1c; - background: rgba(30, 30, 30, .9) + background: rgba(30, 30, 30, 0.9); } .listItem-border { - border-color: rgba(255, 255, 255, .1) !important + border-color: rgba(255, 255, 255, 0.1) !important; } .listItem:focus { - background: rgba(0, 0, 0, .3) + background: rgba(0, 0, 0, 0.3); } .progressring-spiner { - border-color: #48C3C8 + border-color: #48c3c8; } .button-flat-accent, .button-link { - color: #48C3C8 + color: #48c3c8; } .mediaInfoText { color: #f8f8fe; - background: rgba(170, 170, 190, .2) + background: rgba(170, 170, 190, 0.2); } .mediaInfoTimerIcon, .starIcon { - color: #f2b01e + color: #f2b01e; } .emby-input, .emby-textarea { color: inherit; - background: rgba(0, 0, 0, .5); - border: .07em solid transparent; - border-radius: .15em + background: rgba(0, 0, 0, 0.5); + border: 0.16em solid transparent; + -webkit-border-radius: 0.2em; + border-radius: 0.2em; } .emby-input:focus, .emby-textarea:focus { - border-color: #ff77f1 + border-color: #ff77f1; } .emby-select-withcolor { color: inherit; - background: rgba(0, 0, 0, .5); - border: .07em solid transparent + background: rgba(0, 0, 0, 0.5); + border: 0.07em solid transparent; } -.emby-select-withcolor>option { +.emby-select-withcolor > option { color: inherit; - background: #030322d7 + background: #030322d7; } .emby-select-withcolor:focus { - border-color: #ff77f1 !important + border-color: #ff77f1 !important; } .emby-select-tv-withcolor:focus { background-color: #ff77f1 !important; - color: #fff !important + color: #fff !important; } -.emby-checkbox:checked+span+.checkboxOutline { +.emby-checkbox:checked + span + .checkboxOutline { background-color: #030322; - border:2px solid rgb(72, 195, 200); + border: 2px solid rgb(72, 195, 200); } .emby-checkbox:checked + span + .checkboxOutline > .checkboxIcon-checked { color: rgb(12, 232, 214); } -.emby-checkbox:focus:not(:checked)+span+.checkboxOutline { - border:2px solid #ff77f1; +.emby-checkbox:focus + span + .checkboxOutline { + border-color: #ff77f1; } -.emby-checkbox:focus+span+.checkboxOutline { - border-color: #ff77f1; +.emby-checkbox:focus:not(:checked) + span + .checkboxOutline { + border: 2px solid #ff77f1; } .itemProgressBarForeground { @@ -383,7 +392,7 @@ a[data-role=button] { } .itemProgressBarForeground-recording { - background-color: #CB272A + background-color: #cb272a; } .countIndicator, @@ -393,30 +402,30 @@ a[data-role=button] { } .fullSyncIndicator { - color: #fff + color: #fff; } .mainDrawer { color: #f8f8fe; - background: rgba(0, 0, 0, .5) + background: rgba(0, 0, 0, 0.5); } .drawer-open { - background-color: #030322 + background-color: #030322; } .navMenuOption:hover { - background: rgba(221, 221, 221, 0.068) + background: rgba(221, 221, 221, 0.068); } .navMenuOption-selected { background: #6f0765 !important; - color: #f8f8fe + color: #f8f8fe; } .emby-button.show-focus:focus { background: #8ae9c1; - color: #f8f8fe + color: #f8f8fe; } .emby-tab-button { @@ -438,129 +447,82 @@ a[data-role=button] { .channelPrograms, .guide-channelHeaderCell, .programCell { - border-color: rgba(255, 255, 255, .05) + border-color: rgba(255, 255, 255, 0.05); } .programCell-sports { - background: #3949AB !important + background: #3949ab !important; } .programCell-movie { - background: #5E35B1 !important + background: #5e35b1 !important; } .programCell-kids { - background: #039BE5 !important + background: #039be5 !important; } .programCell-news { - background: #43A047 !important + background: #43a047 !important; } .programCell-active { - background: rgba(0, 0, 0, .4) !important + background: rgba(0, 0, 0, 0.4) !important; } .guide-channelHeaderCell:focus, .programCell:focus { - background-color: #48C3C8 !important; - color: #fff !important + background-color: #48c3c8 !important; + color: #fff !important; } .guide-programTextIcon { color: #1e1e1e; - background: #555 + background: #555; } .guide-headerTimeslots { - color: inherit + color: inherit; } .guide-date-tab-button { color: #555; - color: rgba(255, 255, 255, .3) + color: rgba(255, 255, 255, 0.3); } .guide-date-tab-button.emby-tab-button-active, .guide-date-tab-button:focus { - color: #ff77f1 + color: #ff77f1; } .guide-date-tab-button.show-focus:focus { - background-color: #48C3C8; - color: #fff + background-color: #48c3c8; + color: #fff; } .infoBanner { color: #0e0f2d; background: #dbe6ff; padding: 1em; - border-radius: .25em + -webkit-border-radius: 0.25em; + border-radius: 0.25em; } .ratingbutton-icon-withrating { - color: #c33 + color: #c33; } .downloadbutton-icon-complete, .downloadbutton-icon-on { - color: #4285F4 + color: #4285f4; } .playstatebutton-icon-played { - color: #c33 + color: #c33; } .repeatButton-active { - color: #4285F4 -} - -.card:focus .cardBox.visualCardBox, -.card:focus .cardBox:not(.visualCardBox) .cardScalable { - border-color: #ff77f1 !important -} - -.layout-desktop, -.scrollY { - scrollbar-width: thin; - scrollbar-color: #888 rgba(59, 59, 59, 0.5) -} - -.layout-desktop ::-webkit-scrollbar { - width: .4em; - height: 1em -} - -::-webkit-scrollbar-track { - box-shadow: inset 0 0 6px rgba(0, 0, 0, .3) -} - -::-webkit-scrollbar-track-piece { - background-color: rgba(59, 59, 59, 0.5) -} - -::-webkit-scrollbar-thumb:horizontal, -::-webkit-scrollbar-thumb:vertical { - border-radius: 2px; - background: center no-repeat #888 -} - -.timeslotHeaders-desktop::-webkit-scrollbar { - height: .7em -} - -.mediaInfoOfficialRating { - border: .09em solid #583fa0; - background-color: #dbe6ff; - color: #0e0f2d; -} - -.metadataSidebarIcon { - color: #dbe6ff -} - -.personCard .overflowPortraitCard { - width: 40vw; + color: #4285f4; } .personCard .cardScalable { @@ -568,17 +530,67 @@ a[data-role=button] { border: 1px solid rgb(255, 255, 255); } +.card:focus .cardBox.visualCardBox, +.card:focus .cardBox:not(.visualCardBox) .cardScalable { + border-color: #ff77f1 !important; +} + +.layout-desktop, +.scrollY { + scrollbar-width: thin; + scrollbar-color: #888 rgba(59, 59, 59, 0.5); +} + +::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); + box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); +} + +::-webkit-scrollbar-track-piece { + background-color: rgba(59, 59, 59, 0.5); +} + +.layout-desktop ::-webkit-scrollbar { + width: 0.4em; + height: 1em; +} + +::-webkit-scrollbar-thumb:horizontal, +::-webkit-scrollbar-thumb:vertical { + border-radius: 2px; + -webkit-border-radius: 2px; + background: center no-repeat #888; +} + +.timeslotHeaders-desktop::-webkit-scrollbar { + height: 0.7em; +} + +.mediaInfoOfficialRating { + border: 0.09em solid #583fa0; + background-color: #dbe6ff; + color: #0e0f2d; +} + +.metadataSidebarIcon { + color: #dbe6ff; +} + +.personCard .overflowPortraitCard { + width: 40vw; +} + .personCard .cardPadder-overflowPortrait, .personCard .cardPadder-portrait { padding-bottom: 100%; contain: strict; } -.personCard .coveredImage { +.personCard .coveredImage { clip-path: circle(50% at 50% 50%); } -.personCard .cardOverlayContainer { +.personCard .cardOverlayContainer { clip-path: circle(50% at 50% 50%); } diff --git a/src/themes/wmc/theme.css b/src/themes/wmc/theme.css index e51f4311ef..4243204172 100644 --- a/src/themes/wmc/theme.css +++ b/src/themes/wmc/theme.css @@ -1,54 +1,64 @@ html { color: #eee; - color: rgba(255, 255, 255, .9); - background-color: #0F3562 + color: rgba(255, 255, 255, 0.9); + background-color: #0f3562; } .wizardStartForm, .ui-corner-all, .ui-shadow { - background-color: #0C2450 + background-color: #0c2450; } .emby-collapsible-button { border-color: #383838; - border-color: rgba(255, 255, 255, .135) + border-color: rgba(255, 255, 255, 0.135); } .skinHeader { color: #ccc; - color: rgba(255, 255, 255, .78) + color: rgba(255, 255, 255, 0.78); } .formDialogHeader:not(.formDialogHeader-clear), .skinHeader-withBackground { - background-color: #0C2450; - background: linear-gradient(to bottom, #0C2450, #081B3B) + background: -webkit-gradient(linear, left top, left bottom, from(#0c2450), to(#081b3b)); + background: -webkit-linear-gradient(top, #0c2450, #081b3b); + background: -o-linear-gradient(top, #0c2450, #081b3b); + background: linear-gradient(to bottom, #0c2450, #081b3b); + background-color: #0c2450; } .skinHeader.semiTransparent { + -webkit-backdrop-filter: none !important; backdrop-filter: none !important; - background-color: rgba(0, 0, 0, .3); - background: linear-gradient(rgba(0, 0, 0, .6), rgba(0, 0, 0, 0)) + background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.6)), to(rgba(0, 0, 0, 0))); + background: -webkit-linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0)); + background: -o-linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0)); + background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0)); + background-color: rgba(0, 0, 0, 0.3); } .pageTitleWithDefaultLogo { - background-image: url(assets/img/banner-light.png) + background-image: url(../../assets/img/banner-light.png); } .backgroundContainer, .dialog { - background-color: #0F3562; - background: linear-gradient(to bottom, #0F3562, #1162A4, #03215F) + background: -webkit-gradient(linear, left top, left bottom, from(#0f3562), color-stop(#1162a4), to(#03215f)); + background: -webkit-linear-gradient(top, #0f3562, #1162a4, #03215f); + background: -o-linear-gradient(top, #0f3562, #1162a4, #03215f); + background: linear-gradient(to bottom, #0f3562, #1162a4, #03215f); + background-color: #0f3562; } .backgroundContainer.withBackdrop { - background: rgba(17, 98, 164, .9) + background: rgba(17, 98, 164, 0.9); } .paper-icon-button-light:hover:not(:disabled) { color: #00a4dc; - background-color: rgba(0,164,220, .2); + background-color: rgba(0, 164, 220, 0.2); } .paper-icon-button-light.show-focus:focus { @@ -58,31 +68,31 @@ html { .fab, .raised { background: #082845; - color: #fff + color: #fff; } .fab:focus, .raised:focus { - background: #143451 + background: #143451; } .button-submit { background: #00a4dc; - color: #fff + color: #fff; } .button-submit:focus { background: #0cb0e8; - color: #fff + color: #fff; } .button-delete { background: rgb(247, 0, 0); - color: rgba(255, 255, 255, .87) + color: rgba(255, 255, 255, 0.87); } .checkboxLabel { - color: inherit + color: inherit; } .checkboxListLabel, @@ -91,43 +101,43 @@ html { .paperListLabel, .textareaLabelUnfocused { color: #bbb; - color: rgba(255, 255, 255, .7) + color: rgba(255, 255, 255, 0.7); } .inputLabelFocused, .selectLabelFocused, .textareaLabelFocused { - color: #00a4dc + color: #00a4dc; } .checkboxOutline { - border-color: currentColor + border-color: currentColor; } .collapseContent, .paperList, .visualCardBox { - background-color: #0F3562 + background-color: #0f3562; } .defaultCardBackground1 { - background-color: #d2b019 + background-color: #d2b019; } .defaultCardBackground2 { - background-color: #338abb + background-color: #338abb; } .defaultCardBackground3 { - background-color: #6b689d + background-color: #6b689d; } .defaultCardBackground4 { - background-color: #dd452b + background-color: #dd452b; } .defaultCardBackground5 { - background-color: #5ccea9 + background-color: #5ccea9; } .cardText-secondary, @@ -138,170 +148,174 @@ html { .programSecondaryTitle, .secondaryText { color: #999; - color: rgba(255, 255, 255, .5) + color: rgba(255, 255, 255, 0.5); } .actionsheetDivider { background: #ddd; - background: rgba(255, 255, 255, .14) + background: rgba(255, 255, 255, 0.14); } .cardFooter-vibrant .cardText-secondary { color: inherit; - opacity: .5 + opacity: 0.5; } .toast { - background: #081B3B; + background: #081b3b; color: #fff; - color: rgba(255, 255, 255, .87) + color: rgba(255, 255, 255, 0.87); } .appfooter, .formDialogFooter:not(.formDialogFooter-clear) { - background: #0C2450; - background: linear-gradient(to top, #0C2450, #081B3B); - color: rgba(255, 255, 255, .78) + background: #0c2450; + background: -webkit-gradient(linear, left bottom, left top, from(#0c2450), to(#081b3b)); + background: -webkit-linear-gradient(bottom, #0c2450, #081b3b); + background: -o-linear-gradient(bottom, #0c2450, #081b3b); + background: linear-gradient(to top, #0c2450, #081b3b); + color: rgba(255, 255, 255, 0.78); } .itemSelectionPanel { - border: 1px solid #00a4dc + border: 1px solid #00a4dc; } .selectionCommandsPanel { background: #00a4dc; - color: #fff + color: #fff; } .upNextDialog-countdownText { - color: #00a4dc + color: #00a4dc; } .alphaPickerButton { color: #999; - color: rgba(255, 255, 255, .5); - background-color: transparent + color: rgba(255, 255, 255, 0.5); + background-color: transparent; } .alphaPickerButton-selected, .alphaPickerButton-tv:focus { background-color: #00a4dc; - color: #fff !important + color: #fff !important; } .detailTableBodyRow-shaded:nth-child(even) { background: #1c1c1c; - background: rgba(0, 0, 0, .3) + background: rgba(0, 0, 0, 0.3); } .listItem-border { - border-color: rgba(0, 0, 0, .3) !important + border-color: rgba(0, 0, 0, 0.3) !important; } .listItem:focus { - background: #333 + background: #333; } .progressring-spiner { - border-color: #00a4dc + border-color: #00a4dc; } .button-flat-accent, .button-link { - color: #00a4dc + color: #00a4dc; } .mediaInfoText { color: #ddd; - background: rgba(170, 170, 190, .2) + background: rgba(170, 170, 190, 0.2); } .mediaInfoTimerIcon, .starIcon { - color: #CB272A + color: #cb272a; } .emby-input, .emby-textarea { color: inherit; - background: rgba(255, 255, 255, .2); - border: .07em solid rgba(255, 255, 255, .135); - border-radius: .15em + background: rgba(255, 255, 255, 0.2); + border: 0.16em solid rgba(255, 255, 255, 0.135); + -webkit-border-radius: 0.2em; + border-radius: 0.2em; } .emby-input:focus, .emby-textarea:focus { - border-color: #00a4dc + border-color: #00a4dc; } .emby-select-withcolor { color: inherit; - background: rgba(255, 255, 255, .2); - border: .07em solid rgba(255, 255, 255, .135) + background: rgba(255, 255, 255, 0.2); + border: 0.07em solid rgba(255, 255, 255, 0.135); } -.emby-checkbox:checked+span+.checkboxOutline, +.emby-checkbox:checked + span + .checkboxOutline, .emby-select-withcolor:focus { - border-color: #00a4dc -} - -.emby-checkbox:focus+span+.checkboxOutline { - border-color: #fff; -} - -.emby-checkbox:focus:not(:checked)+span+.checkboxOutline { border-color: #00a4dc; } -.emby-select-withcolor>option { +.emby-checkbox:focus + span + .checkboxOutline { + border-color: #fff; +} + +.emby-checkbox:checked + span + .checkboxOutline, +.itemProgressBarForeground { + background-color: #00a4dc; +} + +.emby-checkbox:focus:not(:checked) + span + .checkboxOutline { + border-color: #00a4dc; +} + +.emby-select-withcolor > option { color: #000; - background: #fff + background: #fff; } .emby-select-tv-withcolor:focus { background-color: #00a4dc; - color: #fff -} - -.emby-checkbox:checked+span+.checkboxOutline, -.itemProgressBarForeground { - background-color: #00a4dc + color: #fff; } .itemProgressBarForeground-recording { - background-color: #CB272A + background-color: #cb272a; } .countIndicator, .fullSyncIndicator, .playedIndicator { - background: #00a4dc + background: #00a4dc; } .fullSyncIndicator { - color: #fff + color: #fff; } .mainDrawer { - background-color: #0F3562; + background-color: #0f3562; color: #ccc; - color: rgba(255, 255, 255, .7) + color: rgba(255, 255, 255, 0.7); } .actionSheetMenuItem:hover, .navMenuOption:hover { background: #252528; - background: rgba(0, 0, 0, .2) + background: rgba(0, 0, 0, 0.2); } .navMenuOption-selected { background: #00a4dc !important; - color: #fff + color: #fff; } .emby-button.show-focus:focus { background: #00a4dc; - color: #fff + color: #fff; } .emby-tab-button { @@ -309,7 +323,7 @@ html { } .emby-tab-button-active { - color: #fff + color: #fff; } .emby-tab-button.show-focus:focus { @@ -324,107 +338,110 @@ html { .guide-channelHeaderCell, .programCell { border-color: #999; - border-color: rgba(255, 255, 255, .1) + border-color: rgba(255, 255, 255, 0.1); } .programCell-sports { - background: #3949AB !important + background: #3949ab !important; } .programCell-movie { - background: #5E35B1 !important + background: #5e35b1 !important; } .programCell-kids { - background: #039BE5 !important + background: #039be5 !important; } .programCell-news { - background: #43A047 !important + background: #43a047 !important; } .programCell-active { - background: rgba(0, 0, 0, .3) !important + background: rgba(0, 0, 0, 0.3) !important; } .guide-channelHeaderCell:focus, .programCell:focus { background-color: #00a4dc !important; - color: #fff !important + color: #fff !important; } .guide-programTextIcon { color: #1e1e1e; - background: #555 + background: #555; } .guide-headerTimeslots { - color: inherit + color: inherit; } .guide-date-tab-button { color: #555; - color: rgba(255, 255, 255, .3) + color: rgba(255, 255, 255, 0.3); } .guide-date-tab-button.emby-tab-button-active, .guide-date-tab-button:focus { - color: #00a4dc + color: #00a4dc; } .guide-date-tab-button.show-focus:focus { background-color: #00a4dc; - color: #fff + color: #fff; } .infoBanner { color: #000; background: #fff3a5; padding: 1em; - border-radius: .25em + -webkit-border-radius: 0.25em; + border-radius: 0.25em; } .ratingbutton-icon-withrating { - color: #c33 + color: #c33; } .downloadbutton-icon-complete, .downloadbutton-icon-on { - color: #4285F4 + color: #4285f4; } .playstatebutton-icon-played { - color: #c33 + color: #c33; } .repeatButton-active { - color: #4285F4 + color: #4285f4; } .card:focus .cardBox.visualCardBox, .card:focus .cardBox:not(.visualCardBox) .cardScalable { - border-color: #fff !important + border-color: #fff !important; +} + +::-webkit-scrollbar-track { + box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); + -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); +} + +::-webkit-scrollbar-track-piece { + background-color: #081b3b; } .layout-desktop ::-webkit-scrollbar { width: 1em; - height: 1em -} - -::-webkit-scrollbar-track { - box-shadow: inset 0 0 6px rgba(0, 0, 0, .3) -} - -::-webkit-scrollbar-track-piece { - background-color: #081B3B + height: 1em; } ::-webkit-scrollbar-thumb:horizontal, ::-webkit-scrollbar-thumb:vertical { border-radius: 2px; - background: center no-repeat rgba(255, 255, 255, .7) + -webkit-border-radius: 2px; + background: center no-repeat rgba(255, 255, 255, 0.7); } .metadataSidebarIcon { - color: #00a4dc + color: #00a4dc; } diff --git a/webpack.dev.js b/webpack.dev.js index d3791e679f..3aecac1a53 100644 --- a/webpack.dev.js +++ b/webpack.dev.js @@ -15,7 +15,7 @@ module.exports = merge(common, { rules: [ { test: /\.css$/i, - use: ["style-loader", "css-loader", "postcss-loader"] + use: ["style-loader", "css-loader"] }, { test: /\.(png|jpg|gif)$/i, diff --git a/webpack.prod.js b/webpack.prod.js index 319d8f14fc..2055051dac 100644 --- a/webpack.prod.js +++ b/webpack.prod.js @@ -13,7 +13,7 @@ module.exports = merge(common, { rules: [ { test: /\.css$/i, - use: ["style-loader", "css-loader", "postcss-loader"] + use: ["style-loader", "css-loader"] }, { test: /\.(png|jpg|gif)$/i, diff --git a/yarn.lock b/yarn.lock index 705eac6a19..73a3ff982d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,6 +9,76 @@ dependencies: "@babel/highlight" "^7.0.0" +"@babel/code-frame@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== + dependencies: + "@babel/highlight" "^7.8.3" + +"@babel/core@>=7.2.2": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.3.tgz#30b0ebb4dd1585de6923a0b4d179e0b9f5d82941" + integrity sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.8.3" + "@babel/helpers" "^7.8.3" + "@babel/parser" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.0" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.3.tgz#0e22c005b0a94c1c74eafe19ef78ce53a4d45c03" + integrity sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug== + dependencies: + "@babel/types" "^7.8.3" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + +"@babel/helper-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" + integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== + dependencies: + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-get-function-arity@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" + integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-split-export-declaration@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" + integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helpers@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.3.tgz#382fbb0382ce7c4ce905945ab9641d688336ce85" + integrity sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ== + dependencies: + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + "@babel/highlight@^7.0.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" @@ -18,6 +88,60 @@ esutils "^2.0.2" js-tokens "^4.0.0" +"@babel/highlight@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" + integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.3.tgz#790874091d2001c9be6ec426c2eed47bc7679081" + integrity sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ== + +"@babel/runtime@^7.6.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.3.tgz#0811944f73a6c926bb2ad35e918dcc1bfab279f1" + integrity sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w== + dependencies: + regenerator-runtime "^0.13.2" + +"@babel/template@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8" + integrity sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/parser" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/traverse@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.3.tgz#a826215b011c9b4f73f3a893afbc05151358bf9a" + integrity sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.8.3" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/parser" "^7.8.3" + "@babel/types" "^7.8.3" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + +"@babel/types@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" + integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -26,16 +150,42 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== + dependencies: + "@nodelib/fs.stat" "2.0.3" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== + "@nodelib/fs.stat@^1.1.2": version "1.1.3" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== +"@nodelib/fs.walk@^1.2.3": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + dependencies: + "@nodelib/fs.scandir" "2.1.3" + fastq "^1.6.0" + "@types/anymatch@*": version "1.3.1" resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + "@types/events@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" @@ -55,11 +205,26 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== +"@types/minimist@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" + integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= + "@types/node@*": version "12.7.12" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.12.tgz#7c6c571cc2f3f3ac4a59a5f2bd48f5bdbc8653cc" integrity sha512-KPYGmfD0/b1eXurQ59fXD1GBzhSQfz6/lKBxkaHX9dKTzjXbK68Zt7yGUxUsCS1jeTy/8aL+d9JEr+S54mpkWQ== +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + "@types/source-list-map@*": version "0.1.2" resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" @@ -77,6 +242,27 @@ dependencies: source-map "^0.6.1" +"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" + integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== + +"@types/vfile-message@*": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/vfile-message/-/vfile-message-2.0.0.tgz#690e46af0fdfc1f9faae00cd049cc888957927d5" + integrity sha512-GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw== + dependencies: + vfile-message "*" + +"@types/vfile@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/vfile/-/vfile-3.0.2.tgz#19c18cd232df11ce6fa6ad80259bc86c366b09b9" + integrity sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw== + dependencies: + "@types/node" "*" + "@types/unist" "*" + "@types/vfile-message" "*" + "@types/webpack-sources@*": version "0.1.5" resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.5.tgz#be47c10f783d3d6efe1471ff7f042611bd464a92" @@ -332,6 +518,16 @@ ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -339,6 +535,14 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -382,6 +586,11 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -392,13 +601,18 @@ array-flatten@^2.1.0: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-union@^1.0.1: +array-union@^1.0.1, array-union@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= dependencies: array-uniq "^1.0.1" +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" @@ -461,19 +675,6 @@ atob@^2.1.1: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@^9.7.3: - version "9.7.3" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.3.tgz#fd42ed03f53de9beb4ca0d61fb4f7268a9bb50b4" - integrity sha512-8T5Y1C5Iyj6PgkPSFd0ODvK9DIleuPKUPYniNxybS47g2k2wFgLZ46lGQHlBuGKIAEV8fbCDfKCCRS1tvOgc3Q== - dependencies: - browserslist "^4.8.0" - caniuse-lite "^1.0.30001012" - chalk "^2.4.2" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.23" - postcss-value-parser "^4.0.2" - balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -584,6 +785,13 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" +braces@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" @@ -648,15 +856,6 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.8.0: - version "4.8.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.2.tgz#b45720ad5fbc8713b7253c20766f701c9a694289" - integrity sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA== - dependencies: - caniuse-lite "^1.0.30001015" - electron-to-chromium "^1.3.322" - node-releases "^1.1.42" - buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -696,17 +895,16 @@ bytes@3.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -cacache@^12.0.2: - version "12.0.2" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.2.tgz#8db03205e36089a3df6954c66ce92541441ac46c" - integrity sha512-ifKgxH2CKhJEg6tNdAwziu6Q33EvuG26tYcda6PT3WKisZcYDXsnEdnRv67Po3yCzFfaSoMjGZzJyD2c3DT1dg== +cacache@^11.3.3: + version "11.3.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc" + integrity sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA== dependencies: bluebird "^3.5.5" chownr "^1.1.1" figgy-pudding "^3.5.1" glob "^7.1.4" graceful-fs "^4.1.15" - infer-owner "^1.0.3" lru-cache "^5.1.1" mississippi "^3.0.0" mkdirp "^0.5.1" @@ -758,25 +956,6 @@ call-me-maybe@^1.0.1: resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -790,16 +969,34 @@ camel-case@3.0.x: no-case "^2.2.0" upper-case "^1.1.1" -camelcase@^5.0.0, camelcase@^5.2.0: +camelcase-keys@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" + integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= + dependencies: + camelcase "^4.1.0" + map-obj "^2.0.0" + quick-lru "^1.0.0" + +camelcase-keys@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.1.1.tgz#0d24dde78cea4c7d2da7f4ea40b7995083328c8d" + integrity sha512-kEPCddRFChEzO0d6w61yh0WbBiSv9gBnfZWGfXRYPlGqIdIGef6HMR6pgqVSEWCYkrp8B0AtEpEXNY+Jx0xk1A== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +camelcase@^5.0.0, camelcase@^5.2.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30001012, caniuse-lite@^1.0.30001015: - version "1.0.30001017" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001017.tgz#d3ad6ec18148b9bd991829958d9d7e562bb78cd6" - integrity sha512-EDnZyOJ6eYh6lHmCvCdHAFbfV4KJ9lSdfv4h/ppEhrU/Yudkl7jujwMZ1we6RX7DXqBfT04pVMQ4J+1wcTlsKA== - chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -809,6 +1006,45 @@ chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +character-entities-html4@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.3.tgz#5ce6e01618e47048ac22f34f7f39db5c6fd679ef" + integrity sha512-SwnyZ7jQBCRHELk9zf2CN5AnGEc2nA+uKMZLHvcqhpPprjkYhiLn0DywMHgN5ttFZuITMATbh68M6VIVKwJbcg== + +character-entities-legacy@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz#3c729991d9293da0ede6dddcaf1f2ce1009ee8b4" + integrity sha512-YAxUpPoPwxYFsslbdKkhrGnXAtXoHNgYjlBM3WMXkWGTl5RsY3QmOyhwAgL8Nxm9l5LBThXGawxKPn68y6/fww== + +character-entities@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.3.tgz#bbed4a52fe7ef98cc713c6d80d9faa26916d54e6" + integrity sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w== + +character-reference-invalid@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.3.tgz#1647f4f726638d3ea4a750cf5d1975c1c7919a85" + integrity sha512-VOq6PRzQBam/8Jm6XBGk2fNEnHXAdGd6go0rtd4weAGECBamHDwwCQSOT12TACIYUZegUXnV6xBXqUssijtxIg== + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -927,11 +1163,31 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" +clone-regexp@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-1.0.1.tgz#051805cd33173375d82118fc0918606da39fd60f" + integrity sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw== + dependencies: + is-regexp "^1.0.0" + is-supported-regexp-flag "^1.0.0" + +clone-regexp@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-2.2.0.tgz#7d65e00885cd8796405c35a737e7a86b7429e36f" + integrity sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q== + dependencies: + is-regexp "^2.0.0" + code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= +collapse-white-space@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.5.tgz#c2495b699ab1ed380d29a1091e01063e75dbbe3a" + integrity sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ== + collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -947,11 +1203,23 @@ color-convert@^1.9.0: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + commander@2.17.x: version "2.17.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" @@ -1058,6 +1326,13 @@ content-type@~1.0.4: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== +convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" @@ -1108,16 +1383,6 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - create-ecdh@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" @@ -1214,6 +1479,13 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" @@ -1238,14 +1510,22 @@ debug@^3.0.0, debug@^3.2.5, debug@^3.2.6: dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: +debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== dependencies: ms "^2.1.1" -decamelize@^1.2.0: +decamelize-keys@^1.0.0, decamelize-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -1382,13 +1662,20 @@ dir-glob@2.0.0: arrify "^1.0.1" path-type "^3.0.0" -dir-glob@^2.0.0: +dir-glob@^2.0.0, dir-glob@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== dependencies: path-type "^3.0.0" +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" @@ -1474,6 +1761,13 @@ domutils@^1.5.1: dom-serializer "0" domelementtype "1" +dot-prop@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== + dependencies: + is-obj "^1.0.0" + duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" @@ -1489,11 +1783,6 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.322: - version "1.3.322" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz#a6f7e1c79025c2b05838e8e344f6e89eb83213a8" - integrity sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA== - elliptic@^6.0.0: version "6.5.0" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.0.tgz#2b8ed4c891b7de3200e14412a5b8248c7af505ca" @@ -1512,6 +1801,11 @@ emoji-regex@^7.0.1: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -1555,13 +1849,6 @@ errno@^0.1.3, errno@~0.1.7: dependencies: prr "~1.0.1" -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - es-abstract@^1.5.1: version "1.16.2" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.2.tgz#4e874331645e9925edef141e74fc4bd144669d34" @@ -1597,7 +1884,7 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -1750,6 +2037,20 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execall@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execall/-/execall-1.0.0.tgz#73d0904e395b3cab0658b08d09ec25307f29bb73" + integrity sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M= + dependencies: + clone-regexp "^1.0.0" + +execall@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/execall/-/execall-2.0.0.tgz#16a06b5fe5099df7d00be5d9c06eecded1663b45" + integrity sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow== + dependencies: + clone-regexp "^2.1.0" + expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -1821,6 +2122,11 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + external-editor@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" @@ -1849,7 +2155,7 @@ fast-deep-equal@^2.0.1: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= -fast-glob@^2.0.2: +fast-glob@^2.0.2, fast-glob@^2.2.6: version "2.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== @@ -1861,6 +2167,17 @@ fast-glob@^2.0.2: merge2 "^1.2.3" micromatch "^3.1.10" +fast-glob@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.1.1.tgz#87ee30e9e9f3eb40d6f254a7997655da753d7c82" + integrity sha512-nTCREpBY8w8r+boyFYAx21iL6faSsQynliPHM4Uf56SbkyohCNxpVPEH9xrF5TXKy+IsjkPUHDKiUkzBVRXn9g== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" @@ -1871,6 +2188,13 @@ fast-levenshtein@~2.0.4: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fastq@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.6.0.tgz#4ec8a38f4ac25f21492673adb7eae9cfef47d1c2" + integrity sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA== + dependencies: + reusify "^1.0.0" + faye-websocket@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" @@ -1897,6 +2221,13 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" +file-entry-cache@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-4.0.0.tgz#633567d15364aefe0b299e1e217735e8f3a9f6e8" + integrity sha512-AVSwsnbV8vH/UVbvgEhf3saVQXORNv0ZzSkvkhQIaia5Tia+JhGTaa/ePUSVoPHQyGayQNmYfkzFi3WZV5zcpA== + dependencies: + flat-cache "^2.0.1" + file-entry-cache@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" @@ -1922,6 +2253,13 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + finalhandler@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" @@ -1944,6 +2282,13 @@ find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -1951,6 +2296,14 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + findup-sync@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" @@ -1975,6 +2328,11 @@ flatted@^2.0.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== +flatten@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" + integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== + flush-write-stream@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" @@ -2068,6 +2426,11 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= +gather-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gather-stream/-/gather-stream-1.0.0.tgz#b33994af457a8115700d410f317733cbe7a0904b" + integrity sha1-szmUr0V6gRVwDUEPMXczy+egkEs= + gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -2082,6 +2445,11 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" + integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + get-caller-file@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" @@ -2092,6 +2460,16 @@ get-caller-file@^2.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== + +get-stdin@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" + integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== + get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -2112,6 +2490,13 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-parent@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" + integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== + dependencies: + is-glob "^4.0.1" + glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" @@ -2129,7 +2514,7 @@ glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -global-modules@2.0.0: +global-modules@2.0.0, global-modules@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== @@ -2165,11 +2550,23 @@ global-prefix@^3.0.0: kind-of "^6.0.2" which "^1.3.1" -globals@^11.7.0: +globals@^11.1.0, globals@^11.7.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globby@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.0.tgz#56fd0e9f0d4f8fb0c456f1ab0dee96e1380bc154" + integrity sha512-iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -2206,6 +2603,32 @@ globby@^8.0.1: pify "^3.0.0" slash "^1.0.0" +globby@^9.0.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" + integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^1.0.2" + dir-glob "^2.2.2" + fast-glob "^2.2.6" + glob "^7.1.3" + ignore "^4.0.3" + pify "^4.0.1" + slash "^2.0.0" + +globjoin@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" + integrity sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM= + +gonzales-pe@^4.2.3, gonzales-pe@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.2.4.tgz#356ae36a312c46fe0f1026dd6cb539039f8500d2" + integrity sha512-v0Ts/8IsSbh9n1OJRnSfa7Nlxi4AkXIsWB6vPept8FDbL4bXn3FNuxjYtO/nmBGu7GDkL9MFeGebeSu6l55EPQ== + dependencies: + minimist "1.1.x" + graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: version "4.2.1" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.1.tgz#1c1f0c364882c868f5bff6512146328336a11b1d" @@ -2216,11 +2639,33 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== +hard-rejection@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + has-symbols@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" @@ -2314,6 +2759,11 @@ homedir-polyfill@^1.0.1: dependencies: parse-passwd "^1.0.0" +hosted-git-info@^2.1.4: + version "2.8.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" + integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== + howler@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/howler/-/howler-2.1.2.tgz#8433a09d8fe84132a3e726e05cb2bd352ef8bd49" @@ -2347,6 +2797,16 @@ html-minifier@^3.2.3: relateurl "0.2.x" uglify-js "3.4.x" +html-tags@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" + integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos= + +html-tags@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" + integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== + html-webpack-plugin@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b" @@ -2360,7 +2820,7 @@ html-webpack-plugin@^3.2.0: toposort "^1.0.0" util.promisify "1.0.0" -htmlparser2@^3.3.0: +htmlparser2@^3.10.0, htmlparser2@^3.3.0: version "3.10.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== @@ -2479,26 +2939,11 @@ ignore@^3.3.5: resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== -ignore@^4.0.6: +ignore@^4.0.3, ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - import-fresh@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" @@ -2507,13 +2952,6 @@ import-fresh@^3.0.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.0.0" - import-local@2.0.0, import-local@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" @@ -2527,6 +2965,16 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" @@ -2622,6 +3070,11 @@ ipaddr.js@^1.9.0: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +irregular-plurals@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.4.0.tgz#2ca9b033651111855412f16be5d77c62a458a766" + integrity sha1-LKmwM2UREYVUEvFr5dd8YqRYp2Y= + is-absolute-url@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" @@ -2641,16 +3094,29 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-alphabetical@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.3.tgz#eb04cc47219a8895d8450ace4715abff2258a1f8" + integrity sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA== + +is-alphanumeric@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz#4a9cef71daf4c001c1d81d63d140cf53fd6889f4" + integrity sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ= + +is-alphanumerical@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.3.tgz#57ae21c374277b3defe0274c640a5704b8f6657c" + integrity sha512-A1IGAPO5AW9vSh7omxIlOGwIqEvpW/TA+DksVOPM5ODuxKlZS09+TEM1E3275lJqO2oJ38vDpeAL3DCIiHE6eA== + dependencies: + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-arguments@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -2663,6 +3129,11 @@ is-buffer@^1.1.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== +is-buffer@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" + integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== + is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" @@ -2687,6 +3158,11 @@ is-date-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= +is-decimal@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.3.tgz#381068759b9dc807d8c0dc0bfbae2b68e1da48b7" + integrity sha512-bvLSwoDg2q6Gf+E2LEPiklHZxxiSi3XAh4Mav65mKqTfCO1HM3uBs24TjEH8iJX3bbDdLXKJXBTmGzuTUuAEjQ== + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -2705,11 +3181,6 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -2739,6 +3210,11 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -2753,6 +3229,11 @@ is-glob@^4.0.0, is-glob@^4.0.1: dependencies: is-extglob "^2.1.1" +is-hexadecimal@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.3.tgz#e8a426a69b6d31470d3a33a47bb825cda02506ee" + integrity sha512-zxQ9//Q3D/34poZf8fiy3m3XVpbQc7ren15iKqrTtLPwkPD/t3Scy9Imp63FujULGxuK0ZlCwoo5xNpktFgbOA== + is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -2760,6 +3241,16 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + is-path-cwd@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" @@ -2779,6 +3270,11 @@ is-path-inside@^2.1.0: dependencies: path-is-inside "^1.0.2" +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -2798,11 +3294,26 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-regexp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz#cd734a56864e23b956bf4e7c66c396a4c0b22c2d" + integrity sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA== + is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-supported-regexp-flag@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz#21ee16518d2c1dd3edd3e9a0d57e50207ac364ca" + integrity sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ== + is-symbol@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" @@ -2810,11 +3321,26 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.1" +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-whitespace-character@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz#b3ad9546d916d7d3ffa78204bca0c26b56257fac" + integrity sha512-SNPgMLz9JzPccD3nPctcj8sZlX9DAMJSKH8bP7Z6bohCwuNgX8xbWr1eTAYXX9Vpi/aSn8Y1akL9WgM3t43YNQ== + is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== +is-word-character@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.3.tgz#264d15541cbad0ba833d3992c34e6b40873b08aa" + integrity sha512-0wfcrFgOOOBdgRNT9H33xe6Zi6yhX/uoc4U8NBZGeQQB0ctU1dnlNTyL9JM2646bHDTpsDm1Brb3VPoCIMrd/A== + is-wsl@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" @@ -2847,6 +3373,11 @@ jquery@>=1.9.1, jquery@^3.4.1: resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw== +js-base64@^2.1.9: + version "2.5.1" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121" + integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw== + js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -2860,6 +3391,11 @@ js-yaml@^3.13.0, js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -2892,6 +3428,13 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" +json5@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" + integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== + dependencies: + minimist "^1.2.0" + jstree@^3.3.7: version "3.3.8" resolved "https://registry.yarnpkg.com/jstree/-/jstree-3.3.8.tgz#8d0f506028d65e5207efa7b78e6541cbe35622c1" @@ -2928,6 +3471,16 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== +known-css-properties@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.11.0.tgz#0da784f115ea77c76b81536d7052e90ee6c86a8a" + integrity sha512-bEZlJzXo5V/ApNNa5z375mJC6Nrz4vG43UgcSCrg2OHC+yuB6j0iDSrY7RQ/+PRofFB03wNIIt9iXIVLr4wc7w== + +known-css-properties@^0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.17.0.tgz#1c535f530ee8e9e3e27bb6a718285780e1d07326" + integrity sha512-Vi3nxDGMm/z+lAaCjvAR1u+7fiv+sG6gU/iYDj5QOF8h76ytK9EW/EKfF0NeTyiGBi8Jy6Hklty/vxISrLox3w== + lcid@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" @@ -2935,6 +3488,16 @@ lcid@^2.0.0: dependencies: invert-kv "^2.0.0" +leven@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -2953,6 +3516,21 @@ libjass@^0.11.0: resolved "https://registry.yarnpkg.com/libjass/-/libjass-0.11.0.tgz#bff1f464a2428c3bddfb68e4503b2d52afe3d6e6" integrity sha1-v/H0ZKJCjDvd+2jkUDstUq/j1uY= +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" @@ -2977,6 +3555,14 @@ loader-utils@^0.2.16: json5 "^0.5.0" object-assign "^4.0.1" +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -2985,16 +3571,57 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" -lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3: +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash@^4.1.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.4: version "4.17.15" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg= + dependencies: + chalk "^1.0.0" + +log-symbols@^2.0.0, log-symbols@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + +log-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + loglevel@^1.6.4: version "1.6.4" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.4.tgz#f408f4f006db8354d0577dcf6d33485b3cb90d56" integrity sha512-p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g== +longest-streak@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.3.tgz#3de7a3f47ee18e9074ded8575b5c091f5d0a4105" + integrity sha512-9lz5IVdpwsKLMzQi0MQ+oD9EA0mIGcWYP7jXMTZVXP8D42PwuAk+M/HBFYQoxt1G5OR8m7aSIgb1UymfWGBWEw== + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + lower-case@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" @@ -3032,6 +3659,21 @@ map-cache@^0.2.2: resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +map-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= + +map-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5" + integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g== + map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -3039,6 +3681,21 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" +markdown-escapes@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.3.tgz#6155e10416efaafab665d466ce598216375195f5" + integrity sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw== + +markdown-table@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" + integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== + +mathml-tag-names@^2.0.1, mathml-tag-names@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.1.tgz#6dff66c99d55ecf739ca53c492e626f1d12a33cc" + integrity sha512-pWB896KPGSGkp1XtyzRBftpTzwSOL0Gfk0wLvxt4f2mgzjY19o0LxJ3U25vNWTzsh7da+KTbuXQoQ3lOJZ8WHw== + md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -3048,6 +3705,13 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" +mdast-util-compact@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz#d531bb7667b5123abf20859be086c4d06c894593" + integrity sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg== + dependencies: + unist-util-visit "^1.1.0" + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -3070,12 +3734,44 @@ memory-fs@^0.4.0, memory-fs@^0.4.1: errno "^0.1.3" readable-stream "^2.0.1" +meow@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" + integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + yargs-parser "^10.0.0" + +meow@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-6.0.0.tgz#949196fdf21d979379e3bdccb0411e60f8cffd93" + integrity sha512-x4rYsjigPBDAxY+BGuK83YLhUIqui5wYyZoqb6QJCUOs+0fiYq+i/NV4Jt8OgIfObZFxG9iTyvLDu4UTohGTFw== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.1.1" + decamelize-keys "^1.1.0" + hard-rejection "^2.0.0" + minimist-options "^4.0.1" + normalize-package-data "^2.5.0" + read-pkg-up "^7.0.0" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.8.1" + yargs-parser "^16.1.0" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= -merge2@^1.2.3: +merge2@^1.2.3, merge2@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== @@ -3104,6 +3800,14 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -3149,6 +3853,11 @@ mimic-fn@^2.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +min-indent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.0.tgz#cfc45c37e9ec0d8f0a0ec3dd4ef7f7c3abe39256" + integrity sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY= + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -3166,11 +3875,32 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" +minimist-options@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" + integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + +minimist-options@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.0.2.tgz#29c4021373ded40d546186725e57761e4b1984a7" + integrity sha512-seq4hpWkYSUh1y7NXxzucwAN9yVlBc3Upgdjz8vLCP97jG8kaOmzYrVH/m7tQ1NYD1wdtZbSLfdy4zFmRWuc/w== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= +minimist@1.1.x: + version "1.1.3" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8" + integrity sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag= + minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" @@ -3380,13 +4110,6 @@ node-pre-gyp@^0.12.0: semver "^5.3.0" tar "^4" -node-releases@^1.1.42: - version "1.1.44" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.44.tgz#cd66438a6eb875e3eb012b6a12e48d9f4326ffd7" - integrity sha512-NwbdvJyR7nrcGrXvKAvzc5raj/NkoJudkarh2yIpJ4t0NH4aqjUDz/486P+ynIW5eokKOfzGNRdYoLfBlomruw== - dependencies: - semver "^6.3.0" - nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" @@ -3395,6 +4118,16 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -3407,11 +4140,6 @@ normalize-path@^3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - npm-bundled@^1.0.1: version "1.0.6" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" @@ -3449,11 +4177,6 @@ nth-check@~1.0.1: dependencies: boolbase "~1.0.0" -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -3614,20 +4337,13 @@ p-is-promise@^2.0.0: resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== -p-limit@^2.0.0: +p-limit@^2.0.0, p-limit@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== dependencies: p-try "^2.0.0" -p-limit@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" - integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== - dependencies: - p-try "^2.0.0" - p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -3635,6 +4351,13 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" @@ -3647,6 +4370,11 @@ p-retry@^3.0.1: dependencies: retry "^0.12.0" +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -3692,14 +4420,6 @@ parse-asn1@^5.0.0: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" @@ -3730,6 +4450,11 @@ path-exists@^3.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -3745,6 +4470,11 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" @@ -3757,6 +4487,11 @@ path-type@^3.0.0: dependencies: pify "^3.0.0" +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + pbkdf2@^3.0.3: version "3.0.17" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" @@ -3768,6 +4503,11 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" +picomatch@^2.0.5: + version "2.2.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a" + integrity sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA== + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -3778,7 +4518,7 @@ pify@^3.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= -pify@^4.0.1: +pify@^4.0.0, pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== @@ -3802,6 +4542,13 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" +plur@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a" + integrity sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo= + dependencies: + irregular-plurals "^1.0.0" + portfinder@^1.0.24: version "1.0.24" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.24.tgz#11efbc6865f12f37624b6531ead1d809ed965cfa" @@ -3816,24 +4563,6 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -postcss-load-config@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" - integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - postcss-modules-extract-imports@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" @@ -3866,6 +4595,79 @@ postcss-modules-values@^2.0.0: icss-replace-symbols "^1.1.0" postcss "^7.0.6" +postcss-reporter@^1.3.3: + version "1.4.1" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-1.4.1.tgz#c136f0a5b161915f379dd3765c61075f7e7b9af2" + integrity sha1-wTbwpbFhkV83ndN2XGEHX357mvI= + dependencies: + chalk "^1.0.0" + lodash "^4.1.0" + log-symbols "^1.0.2" + postcss "^5.0.0" + +postcss-reporter@^6.0.0, postcss-reporter@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-6.0.1.tgz#7c055120060a97c8837b4e48215661aafb74245f" + integrity sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw== + dependencies: + chalk "^2.4.1" + lodash "^4.17.11" + log-symbols "^2.2.0" + postcss "^7.0.7" + +postcss-resolve-nested-selector@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" + integrity sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4= + +postcss-safe-parser@^4.0.0, postcss-safe-parser@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz#8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea" + integrity sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ== + dependencies: + postcss "^7.0.0" + +postcss-sass@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.3.5.tgz#6d3e39f101a53d2efa091f953493116d32beb68c" + integrity sha512-B5z2Kob4xBxFjcufFnhQ2HqJQ2y/Zs/ic5EZbCywCkxKd756Q40cIQ/veRDwSrw1BF6+4wUgmpm0sBASqVi65A== + dependencies: + gonzales-pe "^4.2.3" + postcss "^7.0.1" + +postcss-sass@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.4.2.tgz#7d1f8ddf6960d329de28fb3ff43c9c42013646bc" + integrity sha512-hcRgnd91OQ6Ot9R90PE/khUDCJHG8Uxxd3F7Y0+9VHjBiJgNv7sK5FxyHMCBtoLmmkzVbSj3M3OlqUfLJpq0CQ== + dependencies: + gonzales-pe "^4.2.4" + postcss "^7.0.21" + +postcss-scss@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.0.0.tgz#248b0a28af77ea7b32b1011aba0f738bda27dea1" + integrity sha512-um9zdGKaDZirMm+kZFKKVsnKPF7zF7qBAtIfTSnZXD1jZ0JNZIxdB6TxQOjCnlSzLRInVl2v3YdBh/M881C4ug== + dependencies: + postcss "^7.0.0" + +postcss-selector-parser@^2.0.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" + integrity sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A= + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" + integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU= + dependencies: + dot-prop "^4.1.1" + indexes-of "^1.0.1" + uniq "^1.0.1" + postcss-selector-parser@^6.0.0: version "6.0.2" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" @@ -3875,20 +4677,36 @@ postcss-selector-parser@^6.0.0: indexes-of "^1.0.1" uniq "^1.0.1" +postcss-sorting@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-sorting/-/postcss-sorting-4.1.0.tgz#a107f0bf3852977fa64e4442bc340c88d5aacdb3" + integrity sha512-r4T2oQd1giURJdHQ/RMb72dKZCuLOdWx2B/XhXN1Y1ZdnwXsKH896Qz6vD4tFy9xSjpKNYhlZoJmWyhH/7JUQw== + dependencies: + lodash "^4.17.4" + postcss "^7.0.0" + +postcss-sorting@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-sorting/-/postcss-sorting-5.0.1.tgz#10d5d0059eea8334dacc820c0121864035bc3f11" + integrity sha512-Y9fUFkIhfrm6i0Ta3n+89j56EFqaNRdUKqXyRp6kvTcSXnmgEjaVowCXH+JBe9+YKWqd4nc28r2sgwnzJalccA== + dependencies: + lodash "^4.17.14" + postcss "^7.0.17" + +postcss-syntax@^0.36.2: + version "0.36.2" + resolved "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.36.2.tgz#f08578c7d95834574e5593a82dfbfa8afae3b51c" + integrity sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w== + postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== -postcss-value-parser@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" - integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== - -postcss@^7.0.0, postcss@^7.0.23: - version "7.0.25" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.25.tgz#dd2a2a753d50b13bed7a2009b4a18ac14d9db21e" - integrity sha512-NXXVvWq9icrm/TgQC0O6YVFi4StfJz46M1iNd/h6B26Nvh/HKI+q4YZtFN/EjcInZliEscO/WL10BXnc1E5nwg== +postcss@^7.0.14, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.17" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.17.tgz#4da1bdff5322d4a0acaab4d87f3e782436bad31f" + integrity sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -4021,6 +4839,16 @@ querystringify@^2.1.1: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== +quick-lru@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" + integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -4061,6 +4889,49 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" +read-file-stdin@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/read-file-stdin/-/read-file-stdin-0.2.1.tgz#25eccff3a153b6809afacb23ee15387db9e0ee61" + integrity sha1-JezP86FTtoCa+ssj7hU4fbng7mE= + dependencies: + gather-stream "^1.0.0" + +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg-up@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" @@ -4092,6 +4963,27 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" +redent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" + integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= + dependencies: + indent-string "^3.0.0" + strip-indent "^2.0.0" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +regenerator-runtime@^0.13.2: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" + integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== + regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -4117,6 +5009,56 @@ relateurl@0.2.x: resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= +remark-parse@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-6.0.3.tgz#c99131052809da482108413f87b0ee7f52180a3a" + integrity sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg== + dependencies: + collapse-white-space "^1.0.2" + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + is-word-character "^1.0.0" + markdown-escapes "^1.0.0" + parse-entities "^1.1.0" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + trim "0.0.1" + trim-trailing-lines "^1.0.0" + unherit "^1.0.4" + unist-util-remove-position "^1.0.0" + vfile-location "^2.0.0" + xtend "^4.0.1" + +remark-stringify@^6.0.0: + version "6.0.4" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-6.0.4.tgz#16ac229d4d1593249018663c7bddf28aafc4e088" + integrity sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg== + dependencies: + ccount "^1.0.0" + is-alphanumeric "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + longest-streak "^2.0.1" + markdown-escapes "^1.0.0" + markdown-table "^1.1.0" + mdast-util-compact "^1.0.0" + parse-entities "^1.0.2" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + stringify-entities "^1.0.1" + unherit "^1.0.4" + xtend "^4.0.1" + +remark@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/remark/-/remark-10.0.1.tgz#3058076dc41781bf505d8978c291485fe47667df" + integrity sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ== + dependencies: + remark-parse "^6.0.0" + remark-stringify "^6.0.0" + unified "^7.0.0" + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -4138,11 +5080,16 @@ repeat-element@^1.1.2: resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== -repeat-string@^1.6.1: +repeat-string@^1.5.4, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= +replace-ext@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -4198,11 +5145,23 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= +resolve@^1.10.0, resolve@^1.3.2: + version "1.14.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.14.2.tgz#dbf31d0fa98b1f29aa5169783b9c290cb865fea2" + integrity sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ== + dependencies: + path-parse "^1.0.6" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -4221,6 +5180,11 @@ retry@^0.12.0: resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= +reusify@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + rimraf@2.6.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" @@ -4243,6 +5207,11 @@ run-async@^2.2.0: dependencies: is-promise "^2.1.0" +run-parallel@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" @@ -4313,6 +5282,11 @@ selfsigned@^1.10.7: dependencies: node-forge "0.9.0" +"semver@2 || 3 || 4 || 5", semver@^5.4.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + semver@^5.3.0, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" @@ -4347,11 +5321,6 @@ serialize-javascript@^1.7.0: resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65" integrity sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA== -serialize-javascript@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" - integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== - serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -4440,6 +5409,16 @@ slash@^1.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" @@ -4533,7 +5512,7 @@ source-map-url@^0.4.0: resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= -source-map@^0.5.6: +source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= @@ -4543,6 +5522,32 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + spdy-transport@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" @@ -4566,6 +5571,11 @@ spdy@^4.0.1: select-hose "^2.0.0" spdy-transport "^3.0.0" +specificity@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.4.1.tgz#aab5e645012db08ba182e151165738d00887b019" + integrity sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg== + split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -4585,6 +5595,11 @@ ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" +state-toggle@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.2.tgz#75e93a61944116b4959d665c8db2d243631d6ddc" + integrity sha512-8LpelPGR0qQM4PnfLiplOQNJcIN1/r2Gy0xKB2zKnIW2YzPMt2sR4I/+gtPjhN7Svh9kw+zqEg2SFwpBO9iNiw== + static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -4656,6 +5671,15 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + string.prototype.trimleft@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" @@ -4693,6 +5717,16 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +stringify-entities@^1.0.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-1.3.2.tgz#a98417e5471fd227b3e45d3db1861c11caf668f7" + integrity sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A== + dependencies: + character-entities-html4 "^1.0.0" + character-entities-legacy "^1.0.0" + is-alphanumerical "^1.0.0" + is-hexadecimal "^1.0.0" + strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -4714,11 +5748,35 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -4732,6 +5790,176 @@ style-loader@^0.23.1: loader-utils "^1.1.0" schema-utils "^1.0.0" +style-search@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" + integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI= + +stylehacks@^2.3: + version "2.3.2" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-2.3.2.tgz#64c83e0438a68c9edf449e8c552a7d9ab6009b0b" + integrity sha1-ZMg+BDimjJ7fRJ6MVSp9mrYAmws= + dependencies: + browserslist "^1.1.3" + chalk "^1.1.1" + log-symbols "^1.0.2" + minimist "^1.2.0" + plur "^2.1.2" + postcss "^5.0.18" + postcss-reporter "^1.3.3" + postcss-selector-parser "^2.0.0" + read-file-stdin "^0.2.1" + text-table "^0.2.0" + write-file-stdout "0.0.2" + +stylelint-config-rational-order@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/stylelint-config-rational-order/-/stylelint-config-rational-order-0.1.2.tgz#4e98e390783d437f0ec41fb73bc41992e78d02a0" + integrity sha512-Qo7ZQaihCwTqijfZg4sbdQQHtugOX/B1/fYh018EiDZHW+lkqH9uHOnsDwDPGZrYJuB6CoyI7MZh2ecw2dOkew== + dependencies: + stylelint "^9.10.1" + stylelint-order "^2.2.1" + +stylelint-no-browser-hacks@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/stylelint-no-browser-hacks/-/stylelint-no-browser-hacks-1.2.1.tgz#c6ae1a53d04d3a8d32de40b6e9b6dec3ec607dea" + integrity sha512-lPcqHx3e/WnrXdw0wdnKtcjcSCAYEXjwSitXRw0OQ2qPF+iLyDFoarbn4qcw38Uuu7q29fhj+w2mECLM0fUOlw== + dependencies: + stylehacks "^2.3" + stylelint "^9.1" + +stylelint-order@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/stylelint-order/-/stylelint-order-2.2.1.tgz#cd2d4a0d81d91c705f1d275a58487e5ad5aa5828" + integrity sha512-019KBV9j8qp1MfBjJuotse6MgaZqGVtXMc91GU9MsS9Feb+jYUvUU3Z8XiClqPdqJZQ0ryXQJGg3U3PcEjXwfg== + dependencies: + lodash "^4.17.10" + postcss "^7.0.2" + postcss-sorting "^4.1.0" + +stylelint-order@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/stylelint-order/-/stylelint-order-4.0.0.tgz#2a945c2198caac3ff44687d7c8582c81d044b556" + integrity sha512-bXV0v+jfB0+JKsqIn3mLglg1Dj2QCYkFHNfL1c+rVMEmruZmW5LUqT/ARBERfBm8SFtCuXpEdatidw/3IkcoiA== + dependencies: + lodash "^4.17.15" + postcss "^7.0.26" + postcss-sorting "^5.0.1" + +stylelint@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-13.0.0.tgz#532007f7154c1a5ed14245d857a5884316f5111f" + integrity sha512-6sjgOJbM3iLhnUtmRO0J1vvxie9VnhIZX/2fCehjylv9Gl9u0ytehGCTm9Lhw2p1F8yaNZn5UprvhCB8C3g/Tg== + dependencies: + autoprefixer "^9.7.3" + balanced-match "^1.0.0" + chalk "^3.0.0" + cosmiconfig "^6.0.0" + debug "^4.1.1" + execall "^2.0.0" + file-entry-cache "^5.0.1" + get-stdin "^7.0.0" + global-modules "^2.0.0" + globby "^11.0.0" + globjoin "^0.1.4" + html-tags "^3.1.0" + ignore "^5.1.4" + import-lazy "^4.0.0" + imurmurhash "^0.1.4" + known-css-properties "^0.17.0" + leven "^3.1.0" + lodash "^4.17.15" + log-symbols "^3.0.0" + mathml-tag-names "^2.1.1" + meow "^6.0.0" + micromatch "^4.0.2" + normalize-selector "^0.2.0" + postcss "^7.0.26" + postcss-html "^0.36.0" + postcss-jsx "^0.36.3" + postcss-less "^3.1.4" + postcss-markdown "^0.36.0" + postcss-media-query-parser "^0.2.3" + postcss-reporter "^6.0.1" + postcss-resolve-nested-selector "^0.1.1" + postcss-safe-parser "^4.0.1" + postcss-sass "^0.4.2" + postcss-scss "^2.0.0" + postcss-selector-parser "^3.1.0" + postcss-syntax "^0.36.2" + postcss-value-parser "^4.0.2" + resolve-from "^5.0.0" + slash "^3.0.0" + specificity "^0.4.1" + string-width "^4.2.0" + strip-ansi "^6.0.0" + style-search "^0.1.0" + sugarss "^2.0.0" + svg-tags "^1.0.0" + table "^5.4.6" + v8-compile-cache "^2.1.0" + write-file-atomic "^3.0.1" + +stylelint@^9.1, stylelint@^9.10.1: + version "9.10.1" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-9.10.1.tgz#5f0ee3701461dff1d68284e1386efe8f0677a75d" + integrity sha512-9UiHxZhOAHEgeQ7oLGwrwoDR8vclBKlSX7r4fH0iuu0SfPwFaLkb1c7Q2j1cqg9P7IDXeAV2TvQML/fRQzGBBQ== + dependencies: + autoprefixer "^9.0.0" + balanced-match "^1.0.0" + chalk "^2.4.1" + cosmiconfig "^5.0.0" + debug "^4.0.0" + execall "^1.0.0" + file-entry-cache "^4.0.0" + get-stdin "^6.0.0" + global-modules "^2.0.0" + globby "^9.0.0" + globjoin "^0.1.4" + html-tags "^2.0.0" + ignore "^5.0.4" + import-lazy "^3.1.0" + imurmurhash "^0.1.4" + known-css-properties "^0.11.0" + leven "^2.1.0" + lodash "^4.17.4" + log-symbols "^2.0.0" + mathml-tag-names "^2.0.1" + meow "^5.0.0" + micromatch "^3.1.10" + normalize-selector "^0.2.0" + pify "^4.0.0" + postcss "^7.0.13" + postcss-html "^0.36.0" + postcss-jsx "^0.36.0" + postcss-less "^3.1.0" + postcss-markdown "^0.36.0" + postcss-media-query-parser "^0.2.3" + postcss-reporter "^6.0.0" + postcss-resolve-nested-selector "^0.1.1" + postcss-safe-parser "^4.0.0" + postcss-sass "^0.3.5" + postcss-scss "^2.0.0" + postcss-selector-parser "^3.1.0" + postcss-syntax "^0.36.2" + postcss-value-parser "^3.3.0" + resolve-from "^4.0.0" + signal-exit "^3.0.2" + slash "^2.0.0" + specificity "^0.4.1" + string-width "^3.0.0" + style-search "^0.1.0" + sugarss "^2.0.0" + svg-tags "^1.0.0" + table "^5.0.0" + +sugarss@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz#ddd76e0124b297d40bf3cca31c8b22ecb43bc61d" + integrity sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ== + dependencies: + postcss "^7.0.2" + supports-color@6.1.0, supports-color@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" @@ -4739,6 +5967,18 @@ supports-color@6.1.0, supports-color@^6.1.0: dependencies: has-flag "^3.0.0" +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + dependencies: + has-flag "^1.0.0" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -4746,11 +5986,33 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= + swiper@^3.4.2: version "3.4.2" resolved "https://registry.yarnpkg.com/swiper/-/swiper-3.4.2.tgz#39d6b410b1a39833e1f72d3b72999df5f5e38392" integrity sha1-Oda0ELGjmDPh9y07cpmd9fXjg5I= +table@^5.0.0, table@^5.4.6: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + table@^5.2.3: version "5.4.5" resolved "https://registry.yarnpkg.com/table/-/table-5.4.5.tgz#c8f4ea2d8fee08c0027fac27b0ec0a4fe01dfa42" @@ -4845,6 +6107,11 @@ to-arraybuffer@^1.0.0: resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" @@ -4860,6 +6127,13 @@ to-regex-range@^2.1.0: is-number "^3.0.0" repeat-string "^1.6.1" +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" @@ -4880,6 +6154,31 @@ toposort@^1.0.0: resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= +trim-newlines@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" + integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= + +trim-newlines@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" + integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== + +trim-trailing-lines@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.2.tgz#d2f1e153161152e9f02fabc670fb40bec2ea2e3a" + integrity sha512-MUjYItdrqqj2zpcHFTkMa9WAv4JHTI6gnRQGPFLrt5L9a6tRMiDnIqYl8JBvu2d2Tc3lWJKQwlGCp0K8AvCM+Q== + +trim@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= + +trough@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.4.tgz#3b52b1f13924f460c3fbfd0df69b587dbcbc762e" + integrity sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q== + tslib@^1.9.0: version "1.10.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" @@ -4897,6 +6196,16 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -4905,6 +6214,13 @@ type-is@~1.6.17, type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -4926,6 +6242,28 @@ uglify-js@3.4.x: commander "~2.19.0" source-map "~0.6.1" +unherit@^1.0.4: + version "1.1.2" + resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.2.tgz#14f1f397253ee4ec95cec167762e77df83678449" + integrity sha512-W3tMnpaMG7ZY6xe/moK04U9fBhi6wEiCYHUW5Mop/wQHf12+79EQGwxYejNdhEz2mkqkBlGwm7pxmgBKMVUj0w== + dependencies: + inherits "^2.0.1" + xtend "^4.0.1" + +unified@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/unified/-/unified-7.1.0.tgz#5032f1c1ee3364bd09da12e27fdd4a7553c7be13" + integrity sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw== + dependencies: + "@types/unist" "^2.0.0" + "@types/vfile" "^3.0.0" + bail "^1.0.0" + extend "^3.0.0" + is-plain-obj "^1.1.0" + trough "^1.0.0" + vfile "^3.0.0" + x-is-string "^0.1.0" + union-value@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" @@ -4955,6 +6293,51 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" +unist-util-find-all-after@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-1.0.5.tgz#5751a8608834f41d117ad9c577770c5f2f1b2899" + integrity sha512-lWgIc3rrTMTlK1Y0hEuL+k+ApzFk78h+lsaa2gHf63Gp5Ww+mt11huDniuaoq1H+XMK2lIIjjPkncxXcDp3QDw== + dependencies: + unist-util-is "^3.0.0" + +unist-util-is@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" + integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== + +unist-util-remove-position@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz#ec037348b6102c897703eee6d0294ca4755a2020" + integrity sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A== + dependencies: + unist-util-visit "^1.1.0" + +unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" + integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== + +unist-util-stringify-position@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.2.tgz#5a3866e7138d55974b640ec69a94bc19e0f3fa12" + integrity sha512-nK5n8OGhZ7ZgUwoUbL8uiVRwAbZyzBsB/Ddrlbu6jwwubFza4oe15KlyEaLNMXQW1svOQq4xesUeqA85YrIUQA== + dependencies: + "@types/unist" "^2.0.2" + +unist-util-visit-parents@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9" + integrity sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g== + dependencies: + unist-util-is "^3.0.0" + +unist-util-visit@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" + integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw== + dependencies: + unist-util-visit-parents "^2.0.0" + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" @@ -5073,11 +6456,54 @@ v8-compile-cache@2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== +v8-compile-cache@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" + integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= +vfile-location@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.6.tgz#8a274f39411b8719ea5728802e10d9e0dff1519e" + integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA== + +vfile-message@*: + version "2.0.2" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.2.tgz#75ba05090ec758fa8420f2c11ce049bcddd8cf3e" + integrity sha512-gNV2Y2fDvDOOqq8bEe7cF3DXU6QgV4uA9zMR2P8tix11l1r7zju3zry3wZ8sx+BEfuO6WQ7z2QzfWTvqHQiwsA== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^2.0.0" + +vfile-message@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1" + integrity sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA== + dependencies: + unist-util-stringify-position "^1.1.1" + +vfile@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-3.0.1.tgz#47331d2abe3282424f4a4bb6acd20a44c4121803" + integrity sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ== + dependencies: + is-buffer "^2.0.0" + replace-ext "1.0.0" + unist-util-stringify-position "^1.0.0" + vfile-message "^1.0.0" + vm-browserify@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" @@ -5311,6 +6737,21 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +write-file-atomic@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.1.tgz#558328352e673b5bb192cf86500d60b230667d4b" + integrity sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +write-file-stdout@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/write-file-stdout/-/write-file-stdout-0.0.2.tgz#c252d7c7c5b1b402897630e3453c7bfe690d9ca1" + integrity sha1-wlLXx8WxtAKJdjDjRTx7/mkNnKE= + write@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" @@ -5325,7 +6766,12 @@ ws@^6.2.1: dependencies: async-limiter "~1.0.0" -xtend@^4.0.0, xtend@~4.0.1: +x-is-string@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" + integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= + +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -5340,6 +6786,20 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== +yaml@^1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.7.2.tgz#f26aabf738590ab61efaca502358e48dc9f348b2" + integrity sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw== + dependencies: + "@babel/runtime" "^7.6.3" + +yargs-parser@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== + dependencies: + camelcase "^4.1.0" + yargs-parser@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" @@ -5356,6 +6816,14 @@ yargs-parser@^13.1.0: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^16.1.0: + version "16.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" + integrity sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs@12.0.5: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"