pifi 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +28 -2
- data/lib/pifi/controllers/application_controller.rb +0 -4
- data/lib/pifi/public/asset-manifest.json +12 -12
- data/lib/pifi/public/index.html +1 -1
- data/lib/pifi/public/locales/pl-PL/translation.json +26 -0
- data/lib/pifi/public/{precache-manifest.91762315d3372889e680b8497d590c91.js → precache-manifest.5dbdf662d076c5f2d13288a700dab9d6.js} +9 -9
- data/lib/pifi/public/service-worker.js +1 -1
- data/lib/pifi/public/static/css/main.93c9cd50.chunk.css +2 -0
- data/lib/pifi/public/static/css/main.93c9cd50.chunk.css.map +1 -0
- data/lib/pifi/public/static/js/2.89cb5725.chunk.js +3 -0
- data/lib/pifi/public/static/js/{2.9b0b7c5f.chunk.js.LICENSE → 2.89cb5725.chunk.js.LICENSE} +0 -0
- data/lib/pifi/public/static/js/2.89cb5725.chunk.js.map +1 -0
- data/lib/pifi/public/static/js/main.f1b7c0d0.chunk.js +2 -0
- data/lib/pifi/public/static/js/main.f1b7c0d0.chunk.js.map +1 -0
- data/lib/pifi/version.rb +1 -1
- metadata +11 -10
- data/lib/pifi/public/static/css/main.75888152.chunk.css +0 -2
- data/lib/pifi/public/static/css/main.75888152.chunk.css.map +0 -1
- data/lib/pifi/public/static/js/2.9b0b7c5f.chunk.js +0 -3
- data/lib/pifi/public/static/js/2.9b0b7c5f.chunk.js.map +0 -1
- data/lib/pifi/public/static/js/main.7d7142ee.chunk.js +0 -2
- data/lib/pifi/public/static/js/main.7d7142ee.chunk.js.map +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b4927d3d3e4b6a64a5ef191af0efa68d13d87ff1a4fdf595c7acd43763c836b
|
4
|
+
data.tar.gz: 13e47a9058abf35d191b3e6e2cfe977330a7d17695bfebca4ef87ea52ee37776
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 32eb0e5eeebd9434721ccdffe41cd02e9930878d712e774c64a5097e358606cfe684a969a729d2d32b9c86d4f9a03d2fd3a42a397b510a45e2f4d0e1e4a2cbf6
|
7
|
+
data.tar.gz: 3ee8f3ebfa9067be16744ac9397e239d245a3a7e77ede9f6851d7bea9bf7c5fe409c7db659ab5da622fa30c2bc15b132870db0b7a9996dc7b749b277f6afc63f
|
data/README.md
CHANGED
@@ -11,9 +11,12 @@
|
|
11
11
|
- [Some features](#some-features)
|
12
12
|
- [Demo](#demo)
|
13
13
|
- [Installation](#installation)
|
14
|
+
- [Updating](#updating)
|
14
15
|
- [Configuration](#configuration)
|
15
16
|
- [List of streams](#list-of-streams)
|
16
17
|
- [PiFi configuration](#pifi-configuration)
|
18
|
+
- [Usage](#usage)
|
19
|
+
- [Help me translate](#help-me-translate)
|
17
20
|
- [Credits](#credits)
|
18
21
|
- [License](#license)
|
19
22
|
|
@@ -143,10 +146,30 @@ PiFi can be run:
|
|
143
146
|
|
144
147
|
On your mobile browser, I suggest you add PiFi Radio to your home screen, for easier access.
|
145
148
|
|
149
|
+
## Help me translate
|
150
|
+
|
151
|
+
You can help me adding a new language to PiFi or improving an existing translation. [The translation files are placed here.](https://github.com/rccavalcanti/pifi-radio/tree/master/frontend/public/locales)
|
152
|
+
|
153
|
+
### Improving an existing translation
|
154
|
+
|
155
|
+
The default language for PiFi is English, so you should use it as a reference.
|
156
|
+
|
157
|
+
1. Open [the translation file](https://github.com/rccavalcanti/pifi-radio/tree/master/frontend/public/locales) and [the English file](https://github.com/rccavalcanti/pifi-radio/blob/master/frontend/public/locales/en/translation.json).
|
158
|
+
2. Fill empty strings and fix any bad translations.
|
159
|
+
3. Send a pull request.
|
160
|
+
|
161
|
+
### Adding a new language
|
162
|
+
|
163
|
+
1. Copy the `en` folder, renaming it to the new language code (e.g. `es-ES`).
|
164
|
+
2. On `translation.json`, translate the strings. If you aren't sure of some, please make them empty.
|
165
|
+
3. Send a pull request.
|
166
|
+
|
146
167
|
## Credits
|
147
168
|
|
148
|
-
-
|
149
|
-
-
|
169
|
+
- fr-fr: Francis Chavanon "rimeno"
|
170
|
+
- pl-pl: "Struart88"
|
171
|
+
- nl-nl: Heimen Stoffels "Vistaus"
|
172
|
+
|
150
173
|
- Icon made by [iconixar](https://www.flaticon.com/authors/iconixar) from [www.flaticon.com](https://www.flaticon.com/), licensed by [Flaticon Basic License](docs/icon/license.pdf).
|
151
174
|
|
152
175
|
## License
|
@@ -154,3 +177,6 @@ On your mobile browser, I suggest you add PiFi Radio to your home screen, for ea
|
|
154
177
|
Released under [GNU GPL v3](LICENSE).
|
155
178
|
|
156
179
|
Copyright 2017-2020 Rafael Cavalcanti <hi@rafaelc.org>
|
180
|
+
|
181
|
+
If you find PiFi useful, please consider:
|
182
|
+
<a href="https://www.buymeacoffee.com/rafaelc" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" width="200" ></a>
|
@@ -5,10 +5,6 @@ require "sinatra/base"
|
|
5
5
|
module PiFi
|
6
6
|
class ApplicationController < Sinatra::Base
|
7
7
|
set :static, false
|
8
|
-
configure :development do
|
9
|
-
before { response.headers["Access-Control-Allow-Origin"] = "*" }
|
10
|
-
end
|
11
|
-
|
12
8
|
set ConfigGetter.new.config
|
13
9
|
set :streams, Streams.new(settings.streams_path, settings.streams_path_priv)
|
14
10
|
end
|
@@ -1,26 +1,26 @@
|
|
1
1
|
{
|
2
2
|
"files": {
|
3
|
-
"main.css": "/static/css/main.
|
4
|
-
"main.js": "/static/js/main.
|
5
|
-
"main.js.map": "/static/js/main.
|
3
|
+
"main.css": "/static/css/main.93c9cd50.chunk.css",
|
4
|
+
"main.js": "/static/js/main.f1b7c0d0.chunk.js",
|
5
|
+
"main.js.map": "/static/js/main.f1b7c0d0.chunk.js.map",
|
6
6
|
"runtime-main.js": "/static/js/runtime-main.f04a0f25.js",
|
7
7
|
"runtime-main.js.map": "/static/js/runtime-main.f04a0f25.js.map",
|
8
8
|
"static/css/2.5dbdccff.chunk.css": "/static/css/2.5dbdccff.chunk.css",
|
9
|
-
"static/js/2.
|
10
|
-
"static/js/2.
|
9
|
+
"static/js/2.89cb5725.chunk.js": "/static/js/2.89cb5725.chunk.js",
|
10
|
+
"static/js/2.89cb5725.chunk.js.map": "/static/js/2.89cb5725.chunk.js.map",
|
11
11
|
"index.html": "/index.html",
|
12
|
-
"precache-manifest.
|
12
|
+
"precache-manifest.5dbdf662d076c5f2d13288a700dab9d6.js": "/precache-manifest.5dbdf662d076c5f2d13288a700dab9d6.js",
|
13
13
|
"service-worker.js": "/service-worker.js",
|
14
14
|
"static/css/2.5dbdccff.chunk.css.map": "/static/css/2.5dbdccff.chunk.css.map",
|
15
|
-
"static/css/main.
|
16
|
-
"static/js/2.
|
17
|
-
"static/media/
|
15
|
+
"static/css/main.93c9cd50.chunk.css.map": "/static/css/main.93c9cd50.chunk.css.map",
|
16
|
+
"static/js/2.89cb5725.chunk.js.LICENSE": "/static/js/2.89cb5725.chunk.js.LICENSE",
|
17
|
+
"static/media/logo.svg": "/static/media/logo.91554ce9.svg"
|
18
18
|
},
|
19
19
|
"entrypoints": [
|
20
20
|
"static/js/runtime-main.f04a0f25.js",
|
21
21
|
"static/css/2.5dbdccff.chunk.css",
|
22
|
-
"static/js/2.
|
23
|
-
"static/css/main.
|
24
|
-
"static/js/main.
|
22
|
+
"static/js/2.89cb5725.chunk.js",
|
23
|
+
"static/css/main.93c9cd50.chunk.css",
|
24
|
+
"static/js/main.f1b7c0d0.chunk.js"
|
25
25
|
]
|
26
26
|
}
|
data/lib/pifi/public/index.html
CHANGED
@@ -1 +1 @@
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,user-scalable=no"/><meta name="description" content="MPD web client to listen to radio"/><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="apple-mobile-web-app-title" content="PiFi Radio"><meta name="application-name" content="PiFi Radio"><meta name="msapplication-TileColor" content="#2b5797"><meta name="theme-color" content="#375a7f"><title>PiFi Radio</title><link rel="preload" href="https://stackpath.bootstrapcdn.com/bootswatch/4.4.1/darkly/bootstrap.min.css" as="style"><link href="https://stackpath.bootstrapcdn.com/bootswatch/4.4.1/darkly/bootstrap.min.css" rel="stylesheet" title="theme"><link href="/static/css/2.5dbdccff.chunk.css" rel="stylesheet"><link href="/static/css/main.
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,user-scalable=no"/><meta name="description" content="MPD web client to listen to radio"/><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="apple-mobile-web-app-title" content="PiFi Radio"><meta name="application-name" content="PiFi Radio"><meta name="msapplication-TileColor" content="#2b5797"><meta name="theme-color" content="#375a7f"><title>PiFi Radio</title><link rel="preload" href="https://stackpath.bootstrapcdn.com/bootswatch/4.4.1/darkly/bootstrap.min.css" as="style"><link href="https://stackpath.bootstrapcdn.com/bootswatch/4.4.1/darkly/bootstrap.min.css" rel="stylesheet" title="theme"><link href="/static/css/2.5dbdccff.chunk.css" rel="stylesheet"><link href="/static/css/main.93c9cd50.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>var isIE=window.document.documentMode,unsupportedMsg='<img src="/assets/logo80.png" class="mx-auto d-block my-5">';if(unsupportedMsg+='<h5 class="text-center my-5">This browser is not supported</h5>',isIE){var root=document.getElementById("root");root.innerHTML=unsupportedMsg,root.setAttribute("id","")}</script><script>!function(l){function e(e){for(var r,t,n=e[0],o=e[1],u=e[2],f=0,i=[];f<n.length;f++)t=n[f],Object.prototype.hasOwnProperty.call(a,t)&&a[t]&&i.push(a[t][0]),a[t]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(l[r]=o[r]);for(s&&s(e);i.length;)i.shift()();return c.push.apply(c,u||[]),p()}function p(){for(var e,r=0;r<c.length;r++){for(var t=c[r],n=!0,o=1;o<t.length;o++){var u=t[o];0!==a[u]&&(n=!1)}n&&(c.splice(r--,1),e=f(f.s=t[0]))}return e}var t={},a={1:0},c=[];function f(e){if(t[e])return t[e].exports;var r=t[e]={i:e,l:!1,exports:{}};return l[e].call(r.exports,r,r.exports,f),r.l=!0,r.exports}f.m=l,f.c=t,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(r,e){if(1&e&&(r=f(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var n in r)f.d(t,n,function(e){return r[e]}.bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="/";var r=this.webpackJsonppifi_frontend=this.webpackJsonppifi_frontend||[],n=r.push.bind(r);r.push=e,r=r.slice();for(var o=0;o<r.length;o++)e(r[o]);var s=n;p()}([])</script><script src="/static/js/2.89cb5725.chunk.js"></script><script src="/static/js/main.f1b7c0d0.chunk.js"></script></body></html>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
{
|
2
|
+
"about": "O projekcie",
|
3
|
+
"cancel": "Anuluj",
|
4
|
+
"close": "Zamknij",
|
5
|
+
"disconnectedMPD": "Nie połączono z MPD",
|
6
|
+
"environment": "Środowisko",
|
7
|
+
"errorForbidden": "Niedozwolone żądanie. Sprawdź hasło i uprawnienia MPD.",
|
8
|
+
"errorNetwork": "Nie połączono z serwerem PiFi",
|
9
|
+
"errorNotFound": "Strumień nie znaleziony.",
|
10
|
+
"errorUnexpected": "Nieoczekiwany błąd.",
|
11
|
+
"language": "Język",
|
12
|
+
"mpdHost": "MPD host",
|
13
|
+
"mpdPort": "MPD port",
|
14
|
+
"noStreams": "Brak dostępnych stacji.",
|
15
|
+
"ok": "OK",
|
16
|
+
"playing": "Odtwarzanie",
|
17
|
+
"playURL": "Odtwórz URL",
|
18
|
+
"search": "Szukaj...",
|
19
|
+
"settings": "Ustawienia",
|
20
|
+
"stopped": "Zatrzymano",
|
21
|
+
"theme": "Motyw",
|
22
|
+
"tryingURL": "Próba odtworzenia URL...",
|
23
|
+
"tunning": "Strojenie...",
|
24
|
+
"version": "Wersja",
|
25
|
+
"volume": "Głośność"
|
26
|
+
}
|
@@ -1,27 +1,27 @@
|
|
1
1
|
self.__precacheManifest = (self.__precacheManifest || []).concat([
|
2
2
|
{
|
3
|
-
"revision": "
|
3
|
+
"revision": "b3377f9d3c31f7620f1f03f58238c435",
|
4
4
|
"url": "/index.html"
|
5
5
|
},
|
6
6
|
{
|
7
|
-
"revision": "
|
7
|
+
"revision": "ea331bc68a45987234e3",
|
8
8
|
"url": "/static/css/2.5dbdccff.chunk.css"
|
9
9
|
},
|
10
10
|
{
|
11
|
-
"revision": "
|
12
|
-
"url": "/static/css/main.
|
11
|
+
"revision": "2efeeef7a345c7c307fc",
|
12
|
+
"url": "/static/css/main.93c9cd50.chunk.css"
|
13
13
|
},
|
14
14
|
{
|
15
|
-
"revision": "
|
16
|
-
"url": "/static/js/2.
|
15
|
+
"revision": "ea331bc68a45987234e3",
|
16
|
+
"url": "/static/js/2.89cb5725.chunk.js"
|
17
17
|
},
|
18
18
|
{
|
19
19
|
"revision": "19a6755ca1e5087f391e80db627b30f5",
|
20
|
-
"url": "/static/js/2.
|
20
|
+
"url": "/static/js/2.89cb5725.chunk.js.LICENSE"
|
21
21
|
},
|
22
22
|
{
|
23
|
-
"revision": "
|
24
|
-
"url": "/static/js/main.
|
23
|
+
"revision": "2efeeef7a345c7c307fc",
|
24
|
+
"url": "/static/js/main.f1b7c0d0.chunk.js"
|
25
25
|
},
|
26
26
|
{
|
27
27
|
"revision": "92793784c9eb98d269de",
|
@@ -14,7 +14,7 @@
|
|
14
14
|
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
|
15
15
|
|
16
16
|
importScripts(
|
17
|
-
"/precache-manifest.
|
17
|
+
"/precache-manifest.5dbdf662d076c5f2d13288a700dab9d6.js"
|
18
18
|
);
|
19
19
|
|
20
20
|
self.addEventListener('message', (event) => {
|
@@ -0,0 +1,2 @@
|
|
1
|
+
.navbar{position:-webkit-sticky!important;position:sticky!important;top:0;z-index:5}.player{height:70vh;width:420px;min-width:250px;display:flex;flex-direction:column;justify-content:space-between;align-items:center}.player-logo{width:130px}.loader{z-index:10;display:flex;justify-content:center;align-items:center;height:100%}.streams{min-width:300px;width:450px}.streams__item{cursor:pointer}.streams__item.active{cursor:default}.streams__header{font-size:1.3rem;margin-top:1em;padding:.5rem 1.25rem}.list-group{margin-bottom:1rem!important}@media (max-width:750px){.list-group{margin-bottom:6rem!important}}.mini-player{width:100%;height:100%;max-width:600px;margin:auto;display:flex;align-items:center;justify-content:space-between}.mini-player button{padding:10px 20px}.drawer{z-index:5!important;height:5rem;display:flex;justify-content:flex-start;align-items:center;cursor:pointer;touch-action:none;-webkit-transition:height .25s ease-out;transition:height .25s ease-out}.drawer--open{height:100%;flex-direction:column;justify-content:space-between}@media (max-width:750px){.body--drawer{overflow:hidden}}.drawer .player{height:90vh;width:100%;margin-top:20px}.backdrop{z-index:10;position:fixed;width:100%;height:100%;background-color:#222;opacity:0;visibility:hidden;-webkit-transition:all .2s ease;transition:all .2s ease;cursor:default;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.backdrop--visible{opacity:.94;visibility:visible}.body--backdrop{overflow:hidden}.app-main{display:flex;justify-content:space-around}@supports not (-ms-ime-align:auto){.app-main{justify-content:space-evenly}}.app-main>.player{position:-webkit-sticky;position:sticky;top:4rem}.drawer{visibility:hidden}@media (max-width:750px){.drawer{visibility:visible}}@media (max-width:750px){.app-main>.player{display:none}}*{box-sizing:border-box}body{height:100vh;overflow-y:scroll}#root{height:100%}button[disabled]{cursor:default}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
2
|
+
/*# sourceMappingURL=main.93c9cd50.chunk.css.map */
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["navBar.scss","player.scss","loader.scss","streams.scss","miniPlayer.scss","drawer.scss","../styles/_variables.scss","backdrop.scss","App.scss","index.scss"],"names":[],"mappings":"AAAA,QACE,iCAA2B,CAA3B,yBAA2B,CAC3B,KAAM,CACN,SAAU,CCHZ,QACE,WAAY,CACZ,WAAY,CACZ,eAAgB,CAChB,YAAa,CACb,qBAAsB,CACtB,6BAA8B,CAC9B,kBAAmB,CACpB,aAGC,WAAY,CCXd,QACE,UAAW,CACX,YAAa,CACb,sBAAuB,CACvB,kBAAmB,CACnB,WAAY,CCHd,SACE,eAAgB,CAChB,WAAY,CACb,eAGC,cAAe,CADjB,sBAII,cAAe,CAChB,iBAID,gBAAiB,CACjB,cAAe,CACf,qBAAuB,CACxB,YAGC,4BAA8B,CAE9B,yBAHF,YAII,4BAA+C,CAElD,CC3BD,aACE,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,WAAY,CACZ,YAAa,CACb,kBAAmB,CACnB,6BAA8B,CAPhC,oBAUI,iBAAkB,CCRtB,QACE,mBAAqB,CACrB,WCHkB,CDIlB,YAAa,CACb,0BAA2B,CAC3B,kBAAmB,CACnB,cAAe,CACf,iBAAkB,CAClB,uCAAA,CAAA,+BAAiC,CAEjC,cACE,WAAY,CACZ,qBAAsB,CACtB,6BAA8B,CAC/B,yBAKH,cAEI,eAAgB,CAEnB,CAED,gBACE,WAAY,CACZ,UAAW,CACX,eAAgB,CE9BlB,UACE,UAAW,CACX,cAAe,CACf,UAAW,CACX,WAAY,CACZ,qBAAyB,CACzB,SAAU,CACV,iBAAkB,CAClB,+BAAyB,CAAzB,uBAAyB,CACzB,cAAe,CACf,YAAa,CACb,qBAAsB,CACtB,sBAAuB,CACvB,kBAAmB,CACnB,iBAAkB,CAElB,mBACE,WAAa,CACb,kBAAmB,CACpB,gBAID,eAAgB,CCrBlB,UACE,YAAa,CACb,4BAA6B,CAGM,mCALrC,UAMI,4BAA6B,CAEhC,CAED,kBACE,uBAAgB,CAAhB,eAAgB,CAChB,QAAS,CACV,QAGC,iBAAkB,CAElB,yBAHF,QAII,kBAAmB,CAEtB,CAGC,yBADF,kBAEI,YAAa,CAEhB,CC7BD,EACE,qBAAsB,CACvB,KAGC,YAAa,CACb,iBAAkB,CACnB,MAGC,WAAY,CACb,iBAGC,cAAe,CAChB,UAGC,kBAAmB,CACnB,eAAgB,CAChB,sBAAuB","file":"main.93c9cd50.chunk.css","sourcesContent":[".navbar {\n position: sticky !important;\n top: 0;\n z-index: 5;\n}\n",".player {\n height: 70vh;\n width: 420px;\n min-width: 250px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n}\n\n.player-logo {\n width: 130px;\n}\n",".loader {\n z-index: 10;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n}\n","@import '../styles/variables';\n\n.streams {\n min-width: 300px;\n width: 450px;\n}\n\n.streams__item {\n cursor: pointer;\n\n &.active {\n cursor: default;\n }\n}\n\n.streams__header {\n font-size: 1.3rem;\n margin-top: 1em;\n padding: 0.5rem 1.25rem;\n}\n\n.list-group {\n margin-bottom: 1rem !important;\n\n @media (max-width: $mobile-width) {\n margin-bottom: 1rem + $drawer-height !important; /* drawer */\n }\n}\n",".mini-player {\n width: 100%;\n height: 100%;\n max-width: 600px;\n margin: auto;\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n button {\n padding: 10px 20px;\n }\n}\n","@import '../styles/variables';\n\n.drawer {\n z-index: 5 !important;\n height: $drawer-height;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n cursor: pointer;\n touch-action: none; // don't scroll on touch\n transition: height 0.25s ease-out;\n\n &--open {\n height: 100%;\n flex-direction: column;\n justify-content: space-between;\n }\n}\n\n// The media query is for the edge case of an open drawer and the\n// window resized past the breakpoint. This brings the scrollbar back.\n.body--drawer {\n @media (max-width: $mobile-width) {\n overflow: hidden;\n }\n}\n\n.drawer .player {\n height: 90vh;\n width: 100%;\n margin-top: 20px;\n}\n","$mobile-width: 750px;\n$drawer-height: 5rem;\n",".backdrop {\n z-index: 10;\n position: fixed;\n width: 100%;\n height: 100%;\n background-color: #222222;\n opacity: 0;\n visibility: hidden;\n transition: all 0.2s ease;\n cursor: default;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n\n &--visible {\n opacity: 0.94;\n visibility: visible;\n }\n}\n\n.body--backdrop {\n overflow: hidden;\n}\n","@import './styles/variables';\n\n.app-main {\n display: flex;\n justify-content: space-around;\n\n // Not Edge 18-. It partially supports space-evenly.\n @supports not (-ms-ime-align: auto) {\n justify-content: space-evenly;\n }\n}\n\n.app-main > .player {\n position: sticky;\n top: 4rem; // we set this dynamically\n}\n\n.drawer {\n visibility: hidden;\n\n @media (max-width: $mobile-width) {\n visibility: visible;\n }\n}\n\n.app-main > .player {\n @media (max-width: $mobile-width) {\n display: none;\n }\n}\n","* {\n box-sizing: border-box;\n}\n\nbody {\n height: 100vh;\n overflow-y: scroll; // so elements don't move if page fits view\n}\n\n#root {\n height: 100%;\n}\n\nbutton[disabled] {\n cursor: default;\n}\n\n.ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n"]}
|