A music player that connects to your cloud/distributed storage.
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

Closes #231

+243 -379
+8
Justfile
··· 33 33 --output {{BUILD_DIR}}/about.css \ 34 34 \ 35 35 --post-plugin-before postcss-import \ 36 + --post-plugin-after postcss-custom-properties \ 36 37 --post-plugin-after postcss-nesting 37 38 38 39 {{NPM_DIR}}/.bin/etc {{SRC_DIR}}/Css/Application.css \ ··· 42 43 --output {{BUILD_DIR}}/application.css \ 43 44 \ 44 45 --post-plugin-before postcss-import \ 46 + --post-plugin-after postcss-custom-properties \ 45 47 --post-plugin-after postcss-nesting 46 48 47 49 ··· 53 55 --output {{BUILD_DIR}}/about.css \ 54 56 \ 55 57 --post-plugin-before postcss-import \ 58 + --post-plugin-after postcss-custom-properties \ 56 59 --post-plugin-after postcss-nesting \ 57 60 \ 58 61 --purge-content {{BUILD_DIR}}/about/**/*.html ··· 62 65 --output {{BUILD_DIR}}/application.css \ 63 66 \ 64 67 --post-plugin-before postcss-import \ 68 + --post-plugin-after postcss-custom-properties \ 65 69 --post-plugin-after postcss-nesting \ 66 70 \ 67 71 --purge-content {{BUILD_DIR}}/ui.elm.js \ ··· 198 202 {{NPM_DIR}}/.bin/elm-review {{SRC_DIR}} --config system/Review --fix-all 199 203 echo "> Running elm-format" 200 204 elm-format {{SRC_DIR}} --yes 205 + 206 + 207 + @install-deps: 208 + yarn install --ignore-engines 201 209 202 210 203 211 @quality: reset-elm-css
+2 -2
README.md
··· 66 66 # 1. Setup Nix environment 67 67 # https://nixos.org/download.html 68 68 69 - # 2. Install dependencies 70 - yarn install 69 + # 2. Install js dependencies 70 + just install-deps 71 71 72 72 # 3. Build, start server & watch for changes 73 73 just
+1 -2
elm.json
··· 34 34 "elm-community/maybe-extra": "5.2.0", 35 35 "elm-explorations/markdown": "1.0.0", 36 36 "icidasset/elm-binary": "2.1.0", 37 - "icidasset/elm-material-icons": "3.1.0", 37 + "icidasset/elm-material-icons": "4.0.0", 38 38 "icidasset/elm-sha": "2.0.2", 39 39 "mpizenberg/elm-pointer-events": "4.0.2", 40 40 "newlandsvalley/elm-binary-base64": "1.0.3", 41 41 "noahzgordon/elm-color-extra": "1.0.2", 42 42 "ohanhi/keyboard": "2.0.1", 43 - "rtfeldman/elm-css": "16.0.1", 44 43 "rtfeldman/elm-hex": "1.0.0", 45 44 "ryannhg/date-format": "2.3.0", 46 45 "truqu/elm-base64": "2.0.4",
+2 -1
package.json
··· 3 3 "devDependencies": { 4 4 "elm-impfix": "^1.0.8", 5 5 "elm-review": "^2.2.6", 6 - "elm-tailwind-css": "^0.4.2", 6 + "elm-tailwind-css": "^0.4.4", 7 7 "eslint": "^7.5.0", 8 + "postcss-custom-properties": "^9.1.1", 8 9 "postcss-import": "^12.0.1", 9 10 "postcss-nesting": "^7.0.1", 10 11 "tailwindcss": "^1.5.2",
-1
src/Applications/UI.elm
··· 7 7 import Chunky exposing (..) 8 8 import Common exposing (Switch(..)) 9 9 import Conditional exposing (..) 10 - import Css exposing (url) 11 10 import Debouncer.Basic as Debouncer 12 11 import Dict 13 12 import Equalizer
-1
src/Applications/UI/Authentication/View.elm
··· 2 2 3 3 import Chunky exposing (..) 4 4 import Color 5 - import Color.Ext as Color 6 5 import Common exposing (Switch(..)) 7 6 import Conditional exposing (..) 8 7 import Css.Classes as C
+82 -197
src/Applications/UI/Equalizer/View.elm
··· 1 1 module UI.Equalizer.View exposing (view) 2 2 3 - import Chunky exposing (..) 4 - import Chunky.Styled 5 3 import Color exposing (Color) 6 - import Color.Ext as Color 7 4 import Common 8 - import Css 9 5 import Css.Classes as C 10 - import Css.Ext as Css 11 6 import Equalizer exposing (..) 12 7 import Html exposing (Html) 8 + import Html.Attributes as A 9 + import Html.Events 13 10 import Html.Events.Extra.Pointer as Pointer 14 - import Html.Styled 15 - import Html.Styled.Attributes exposing (css) 16 - import Html.Styled.Events 17 11 import Json.Decode as Decode 18 12 import Material.Icons as Icons 19 - import Svg.Styled 20 - import Svg.Styled.Attributes 13 + import Svg 14 + import Svg.Attributes 21 15 import UI.Kit 22 16 import UI.Navigation exposing (..) 23 17 import UI.Page ··· 45 39 ----------------------------------------- 46 40 -- Content 47 41 ----------------------------------------- 48 - , chunk 42 + , Html.div 49 43 [ C.relative, C.select_none ] 50 - [ chunk 44 + [ Html.div 51 45 [ C.absolute, C.left_0, C.top_0 ] 52 46 [ UI.Kit.canister [ UI.Kit.h1 "Equalizer" ] 53 47 ] ··· 61 55 62 56 eqView : Settings -> Html Msg 63 57 eqView settings = 64 - chunk 65 - [ C.text_center ] 66 - [ chunk 58 + Html.div 59 + [ A.class "equalizer" 60 + , C.text_center 61 + ] 62 + [ Html.div 67 63 [ C.border 68 64 , C.border_black_05 69 65 , C.rounded ··· 77 73 ] 78 74 79 75 -- 80 - , chunk 76 + , Html.div 81 77 [ C.border 82 78 , C.border_black_05 83 79 , C.rounded ··· 101 97 102 98 knob : Knob -> Float -> Html Msg 103 99 knob knobType value = 104 - [ knob_ knobType value 105 - , knobLines 106 - , knobLabel knobType 107 - ] 108 - |> Chunky.Styled.chunk 109 - [ C.border_black_05 110 - , C.border_r 111 - , C.flex_grow 112 - , C.flex_shrink_0 113 - , C.px_10 114 - , C.py_4 100 + Html.div 101 + [ C.border_black_05 102 + , C.border_r 103 + , C.flex_grow 104 + , C.flex_shrink_0 105 + , C.px_10 106 + , C.py_4 115 107 116 - -- 117 - , C.last__border_r_0 108 + -- 109 + , C.last__border_r_0 118 110 119 - -- 120 - , C.sm__px_12 121 - , C.md__px_16 122 - ] 123 - |> Html.Styled.toUnstyled 111 + -- 112 + , C.sm__px_12 113 + , C.md__px_16 114 + ] 115 + [ knob_ knobType value 116 + , knobLines 117 + , knobLabel knobType 118 + ] 124 119 125 120 126 - knob_ : Knob -> Float -> Html.Styled.Html Msg 121 + knob_ : Knob -> Float -> Html Msg 127 122 knob_ knobType value = 128 123 let 129 124 angle = ··· 141 136 , preventDefault = True 142 137 } 143 138 in 144 - Chunky.Styled.brick 145 - [ css knobStyles 146 - 147 - -- 148 - , [ "rotate(", String.fromFloat angle, "deg)" ] 149 - |> String.concat 150 - |> Html.Styled.Attributes.style "transform" 139 + Html.div 140 + [ A.class "knob" 141 + , A.style "transform" ("rotate(" ++ String.fromFloat angle ++ "deg)") 151 142 152 143 -- 153 - , Html.Styled.Events.custom "dblclick" resetDecoder 154 - , Html.Styled.Events.custom "dbltap" resetDecoder 144 + , Html.Events.custom "dblclick" resetDecoder 145 + , Html.Events.custom "dbltap" resetDecoder 155 146 156 147 -- 157 148 , knobType 158 149 |> ActivateKnob 159 150 |> Pointer.onDown 160 - |> Html.Styled.Attributes.fromUnstyled 161 - ] 162 - [ C.cursor_pointer 151 + 152 + -- 153 + , C.cursor_pointer 163 154 , C.mx_auto 164 155 , C.overflow_hidden 165 156 , C.relative 166 157 , C.rounded_full 167 158 ] 168 - [ Html.Styled.map never knob__ ] 159 + [ Html.map never knob__ ] 169 160 170 161 171 - knob__ : Html.Styled.Html Never 162 + knob__ : Html Never 172 163 knob__ = 173 - Chunky.Styled.raw 164 + Html.div 165 + [] 174 166 [ decagonSvg 175 - , Chunky.Styled.brick 176 - [ css layerAStyles ] 177 - [ C.absolute, C.inset_0, C.rounded_full, C.z_10 ] 178 - [ Chunky.Styled.brick 179 - [ css layerBStyles ] 180 - [ C.mx_auto ] 167 + , Html.div 168 + [ A.class "layer-a" 169 + , C.absolute 170 + , C.inset_0 171 + , C.rounded_full 172 + , C.z_10 173 + ] 174 + [ Html.div 175 + [ A.class "layer-b" 176 + , C.mx_auto 177 + ] 181 178 [] 182 179 ] 183 180 ] 184 181 185 182 186 - knobLabel : Knob -> Html.Styled.Html Msg 183 + knobLabel : Knob -> Html Msg 187 184 knobLabel knobType = 188 - Chunky.Styled.brick 189 - [ css knobLabelStyles ] 190 - [ C.font_semibold 185 + Html.div 186 + [ A.class "knob-label" 187 + 188 + -- 189 + , C.font_semibold 191 190 , C.mt_3 192 191 , C.opacity_70 193 192 , C.tracking_wide 194 193 ] 195 194 [ case knobType of 196 195 Low -> 197 - Html.Styled.text "LOW" 196 + Html.text "LOW" 198 197 199 198 Mid -> 200 - Html.Styled.text "MID" 199 + Html.text "MID" 201 200 202 201 High -> 203 - Html.Styled.text "HIGH" 202 + Html.text "HIGH" 204 203 205 204 Volume -> 206 - Html.Styled.text "VOLUME" 205 + Html.text "VOLUME" 207 206 ] 208 207 209 208 210 - knobLines : Html.Styled.Html Msg 209 + knobLines : Html Msg 211 210 knobLines = 212 - Chunky.Styled.brick 213 - [ css knobLineContainerStyles ] 214 - [ C.mx_auto, C.relative ] 215 - [ Chunky.Styled.brick 216 - [ css (knobLineStyles 45) ] 217 - [ C.absolute, C.left_0, C.top_0 ] 218 - [] 219 - , Chunky.Styled.brick 220 - [ css (knobLineStyles -45) ] 221 - [ C.absolute, C.right_0, C.top_0 ] 222 - [] 211 + Html.div 212 + [ A.class "knob-lines" 213 + , C.mx_auto 214 + , C.relative 215 + ] 216 + [ Html.div [ C.absolute, C.left_0, C.top_0 ] [] 217 + , Html.div [ C.absolute, C.right_0, C.top_0 ] [] 223 218 ] 224 219 225 220 226 221 227 - -- VARIABLES 228 - 229 - 230 - knobColor : Color 231 - knobColor = 232 - UI.Kit.colorKit.base03 233 - 234 - 235 - knobOpacity : Float 236 - knobOpacity = 237 - 0.7 238 - 239 - 240 - knobSize : Float 241 - knobSize = 242 - 36 243 - 244 - 245 - 246 - -- 🖼 247 - 248 - 249 - knobStyles : List Css.Style 250 - knobStyles = 251 - [ Css.height (Css.px knobSize) 252 - , Css.width (Css.px knobSize) 253 - 254 - -- 255 - , Css.boxShadow6 256 - Css.inset 257 - Css.zero 258 - Css.zero 259 - (Css.px 5) 260 - (Css.px 1) 261 - (knobColor 262 - |> Color.setOpacity (knobOpacity - 0.35) 263 - |> Color.toElmCssColor 264 - ) 265 - ] 266 - 267 - 268 - knobLabelStyles : List Css.Style 269 - knobLabelStyles = 270 - [ Css.fontSize (Css.px 9.5) 271 - ] 272 - 273 - 274 - knobLineContainerStyles : List Css.Style 275 - knobLineContainerStyles = 276 - [ Css.top (Css.px <| knobSize / -4.5) 277 - , Css.width (Css.px knobSize) 278 - ] 279 - 280 - 281 - knobLineStyles : Float -> List Css.Style 282 - knobLineStyles rotation = 283 - [ Css.height (Css.px 9) 284 - , Css.transform (Css.rotate <| Css.deg rotation) 285 - , Css.width (Css.px 1) 286 - 287 - -- 288 - , knobColor 289 - |> Color.setOpacity (knobOpacity + 0.1) 290 - |> Color.toElmCssColor 291 - |> Css.backgroundColor 292 - ] 293 - 294 - 295 - layerAStyles : List Css.Style 296 - layerAStyles = 297 - [ Css.margin (Css.px 8) 298 - 299 - -- 300 - , Css.boxShadow5 Css.zero 301 - Css.zero 302 - (Css.px 6) 303 - (Css.px 1) 304 - (knobColor 305 - |> Color.setOpacity (knobOpacity + 0.3) 306 - |> Color.toElmCssColor 307 - ) 308 - ] 309 - 310 - 311 - layerBStyles : List Css.Style 312 - layerBStyles = 313 - [ Css.height (Css.px 9) 314 - , Css.width (Css.px 2) 315 - 316 - -- 317 - , knobColor 318 - |> Color.setOpacity (knobOpacity + 0.1) 319 - |> Color.toElmCssColor 320 - |> Css.backgroundColor 321 - ] 322 - 323 - 324 - 325 222 -- DECAGON 326 223 327 224 328 - decagonSvg : Svg.Styled.Svg msg 225 + decagonSvg : Svg.Svg msg 329 226 decagonSvg = 330 - Svg.Styled.svg 331 - [ Svg.Styled.Attributes.class "mx-auto" 332 - , Svg.Styled.Attributes.css decagonStyles 333 - , Svg.Styled.Attributes.fill "transparent" 334 - , Svg.Styled.Attributes.height "200" 335 - , Svg.Styled.Attributes.stroke (knobColor |> Color.setOpacity knobOpacity |> Color.toCssString) 336 - , Svg.Styled.Attributes.strokeLinejoin "miter" 337 - , Svg.Styled.Attributes.strokeWidth "7px" 338 - , Svg.Styled.Attributes.viewBox "0 0 200 200" 339 - , Svg.Styled.Attributes.width "200" 227 + Svg.svg 228 + [ Svg.Attributes.class "mx-auto" 229 + , Svg.Attributes.fill "transparent" 230 + , Svg.Attributes.height "200" 231 + , Svg.Attributes.strokeLinejoin "miter" 232 + , Svg.Attributes.strokeWidth "7px" 233 + , Svg.Attributes.viewBox "0 0 200 200" 234 + , Svg.Attributes.width "200" 340 235 ] 341 - [ Svg.Styled.polygon 342 - [ Svg.Styled.Attributes.points "129.665631459995,191.301425564335 70.3343685400051,191.301425564335 22.3343685400051,156.427384220077 4,100 22.334368540005,43.5726157799226 70.334368540005,8.69857443566526 129.665631459995,8.69857443566525 177.665631459995,43.5726157799226 196,100 177.665631459995,156.427384220077" ] 236 + [ Svg.polygon 237 + [ Svg.Attributes.points "129.665631459995,191.301425564335 70.3343685400051,191.301425564335 22.3343685400051,156.427384220077 4,100 22.334368540005,43.5726157799226 70.334368540005,8.69857443566526 129.665631459995,8.69857443566525 177.665631459995,43.5726157799226 196,100 177.665631459995,156.427384220077" ] 343 238 [] 344 239 ] 345 - 346 - 347 - decagonStyles : List Css.Style 348 - decagonStyles = 349 - [ Css.height <| Css.calc (Css.pct 100) Css.minus (Css.px 8) 350 - , Css.width <| Css.calc (Css.pct 100) Css.minus (Css.px 8) 351 - 352 - -- 353 - , Css.marginTop (Css.px 4) 354 - ]
-3
src/Applications/UI/Kit.elm
··· 1 1 module UI.Kit exposing (..) 2 2 3 3 import Chunky exposing (..) 4 - import Chunky.Styled 5 4 import Color 6 - import Color.Ext as Color 7 5 import Color.Manipulate as Color 8 6 import Conditional exposing (ifThenElse) 9 - import Css 10 7 import Css.Classes as C 11 8 import Html exposing (Html) 12 9 import Html.Attributes as A exposing (href, style)
-2
src/Applications/UI/Notifications.elm
··· 2 2 3 3 import Chunky exposing (..) 4 4 import Conditional exposing (ifThenElse) 5 - import Css 6 5 import Css.Classes as C 7 - import Css.Global 8 6 import Html exposing (Html, text) 9 7 import Html.Attributes exposing (class, rel) 10 8 import Html.Ext exposing (onDoubleTap, onTap)
+1 -1
src/Applications/UI/Playlists/View.elm
··· 2 2 3 3 import Chunky exposing (..) 4 4 import Color exposing (Color) 5 - import Color.Ext as Color 5 + 6 6 import Common 7 7 import Css.Classes as C 8 8 import Html exposing (Html, text)
+1 -1
src/Applications/UI/Tracks/Scene/List.elm
··· 3 3 import Browser.Dom as Dom 4 4 import Chunky exposing (..) 5 5 import Color exposing (Color) 6 - import Color.Ext as Color 6 + 7 7 import Color.Manipulate as Color 8 8 import Conditional exposing (ifThenElse) 9 9 import Coordinates
+1 -1
src/Applications/UI/Tracks/View.elm
··· 2 2 3 3 import Chunky exposing (..) 4 4 import Color exposing (Color) 5 - import Color.Ext as Color 5 + 6 6 import Common exposing (Switch(..)) 7 7 import Conditional exposing (ifThenElse) 8 8 import Css.Classes as C
-1
src/Applications/UI/Types.elm
··· 9 9 import Conditional exposing (..) 10 10 import ContextMenu exposing (ContextMenu) 11 11 import Coordinates exposing (Viewport) 12 - import Css exposing (url) 13 12 import Debouncer.Basic as Debouncer exposing (Debouncer) 14 13 import Dict exposing (Dict) 15 14 import Equalizer exposing (Knob)
+1
src/Css/Application.css
··· 8 8 @import "tailwindcss/components"; 9 9 @import "tailwindcss/utilities"; 10 10 11 + @import "Equalizer.css"; 11 12 @import "Fonts.css"; 12 13 @import "Logo.css"; 13 14 @import "Notifications.css";
+52
src/Css/Equalizer.css
··· 1 + :root { 2 + --knob-size: 36px; 3 + } 4 + 5 + 6 + .equalizer { 7 + 8 + & .knob { 9 + box-shadow: inset 0 0 5px 1px rgba(119, 119, 119, 0.35); 10 + height: var(--knob-size); 11 + width: var(--knob-size); 12 + 13 + & svg { 14 + height: calc(100% - 8px); 15 + margin-top: 4px; 16 + stroke: rgba(119, 119, 119, 0.7); 17 + width: calc(100% - 8px); 18 + } 19 + 20 + & .layer-a { 21 + box-shadow: 0 0 6px 1px rgba(119, 119, 119, 1); 22 + margin: 8px; 23 + } 24 + 25 + & .layer-b { 26 + background-color: rgba(119, 119, 119, 0.8); 27 + height: 9px; 28 + width: 2px; 29 + } 30 + } 31 + 32 + 33 + & .knob-label { 34 + font-size: 9.5px; 35 + } 36 + 37 + 38 + & .knob-lines { 39 + top: calc(var(--knob-size) / -4.5); 40 + width: var(--knob-size); 41 + 42 + & > div { 43 + background-color: rgba(119, 119, 119, 0.8); 44 + height: 9px; 45 + width: 1px; 46 + } 47 + 48 + & > div:first-child { transform: rotate(45deg) } 49 + & > div:last-child { transform: rotate(-45deg) } 50 + } 51 + 52 + }
-101
src/Library/Chunky/Styled.elm
··· 1 - module Chunky.Styled exposing (brick, bricky, chunk, chunky, inline, lineBreak, nothing, raw, rawy, slab, slaby) 2 - 3 - {-| Chunks, blocks and slabs. 4 - 5 - Convenience functions to build UIs with composable CSS classes. 6 - 7 - -} 8 - 9 - import Html as RegularHtml 10 - import Html.Styled as Html exposing (Html) 11 - import Html.Styled.Attributes 12 - 13 - 14 - 15 - -- 1 16 - 17 - 18 - slab : 19 - (List (Html.Attribute msg) -> List (Html msg) -> Html msg) 20 - -> List (Html.Attribute msg) 21 - -> List (RegularHtml.Attribute msg) 22 - -> List (Html msg) 23 - -> Html msg 24 - slab typ attributes stylingAttributes children = 25 - typ 26 - (List.append 27 - (List.map Html.Styled.Attributes.fromUnstyled stylingAttributes) 28 - attributes 29 - ) 30 - children 31 - 32 - 33 - slaby : 34 - (List (Html.Attribute msg) -> List (Html msg) -> Html msg) 35 - -> List (Html.Attribute msg) 36 - -> List (RegularHtml.Attribute msg) 37 - -> Html msg 38 - -> Html msg 39 - slaby a b c = 40 - List.singleton >> slab a b c 41 - 42 - 43 - 44 - -- 2 45 - 46 - 47 - brick : List (Html.Attribute msg) -> List (RegularHtml.Attribute msg) -> List (Html msg) -> Html msg 48 - brick = 49 - slab Html.div 50 - 51 - 52 - bricky : List (Html.Attribute msg) -> List (RegularHtml.Attribute msg) -> Html msg -> Html msg 53 - bricky a b = 54 - List.singleton >> brick a b 55 - 56 - 57 - 58 - -- 3 59 - 60 - 61 - chunk : List (RegularHtml.Attribute msg) -> List (Html msg) -> Html msg 62 - chunk = 63 - brick [] 64 - 65 - 66 - chunky : List (RegularHtml.Attribute msg) -> Html msg -> Html msg 67 - chunky a = 68 - List.singleton >> chunk a 69 - 70 - 71 - inline : List (RegularHtml.Attribute msg) -> List (Html msg) -> Html msg 72 - inline = 73 - slab Html.span [] 74 - 75 - 76 - 77 - -- 4 78 - 79 - 80 - raw : List (Html msg) -> Html msg 81 - raw = 82 - chunk [] 83 - 84 - 85 - rawy : Html msg -> Html msg 86 - rawy = 87 - List.singleton >> raw 88 - 89 - 90 - 91 - -- 5 92 - 93 - 94 - nothing : Html msg 95 - nothing = 96 - Html.text "" 97 - 98 - 99 - lineBreak : Html msg 100 - lineBreak = 101 - Html.br [] []
-29
src/Library/Color/Ext.elm
··· 1 - module Color.Ext exposing (setOpacity, toElmCssColor) 2 - 3 - import Color exposing (Color) 4 - import Css 5 - 6 - 7 - 8 - -- 🔱 9 - 10 - 11 - setOpacity : Float -> Color -> Color 12 - setOpacity opacity color = 13 - color 14 - |> Color.toRgba 15 - |> (\c -> { c | alpha = opacity }) 16 - |> Color.fromRgba 17 - 18 - 19 - toElmCssColor : Color -> Css.Color 20 - toElmCssColor color = 21 - color 22 - |> Color.toRgba 23 - |> (\{ red, green, blue, alpha } -> 24 - Css.rgba 25 - (round <| red * 255) 26 - (round <| green * 255) 27 - (round <| blue * 255) 28 - alpha 29 - )
-17
src/Library/Css/Ext.elm
··· 1 - module Css.Ext exposing (disableUserSelection) 2 - 3 - import Css 4 - 5 - 6 - 7 - -- 🔱 8 - 9 - 10 - disableUserSelection : Css.Style 11 - disableUserSelection = 12 - Css.batch 13 - [ Css.property "-webkit-user-select" "none" 14 - , Css.property "-moz-user-select" "none" 15 - , Css.property "-ms-user-select" "none" 16 - , Css.property "user-select" "none" 17 - ]
+92 -19
yarn.lock
··· 534 534 postcss "^7.0.23" 535 535 postcss-value-parser "^4.0.2" 536 536 537 - autoprefixer@^9.8.5: 538 - version "9.8.5" 539 - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.5.tgz#2c225de229ddafe1d1424c02791d0c3e10ccccaa" 540 - integrity sha512-C2p5KkumJlsTHoNv9w31NrBRgXhf6eCMteJuHZi2xhkgC+5Vm40MEtCKPhc0qdgAOhox0YPy1SQHTAky05UoKg== 537 + autoprefixer@^9.8.6: 538 + version "9.8.6" 539 + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" 540 + integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== 541 541 dependencies: 542 542 browserslist "^4.12.0" 543 - caniuse-lite "^1.0.30001097" 544 - colorette "^1.2.0" 543 + caniuse-lite "^1.0.30001109" 544 + colorette "^1.2.1" 545 545 normalize-range "^0.1.2" 546 546 num2fraction "^1.2.2" 547 547 postcss "^7.0.32" ··· 878 878 resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001012.tgz#653ec635e815b9e0fb801890923b0c2079eb34ec" 879 879 integrity sha512-7RR4Uh04t9K1uYRWzOJmzplgEOAXbfK72oVNokCdMzA67trrhPzy93ahKk1AWHiA0c58tD2P+NHqxrA8FZ+Trg== 880 880 881 - caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001097: 881 + caniuse-lite@^1.0.30001093: 882 882 version "1.0.30001105" 883 883 resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001105.tgz#d2cb0b31e5cf2f3ce845033b61c5c01566549abf" 884 884 integrity sha512-JupOe6+dGMr7E20siZHIZQwYqrllxotAhiaej96y6x00b/48rPt42o+SzOSCPbrpsDWvRja40Hwrj0g0q6LZJg== 885 885 886 + caniuse-lite@^1.0.30001109: 887 + version "1.0.30001109" 888 + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001109.tgz#a9f3f26a0c3753b063d7acbb48dfb9c0e46f2b19" 889 + integrity sha512-4JIXRodHzdS3HdK8nSgIqXYLExOvG+D2/EenSvcub2Kp3QEADjo2v2oUn5g0n0D+UNwG9BtwKOyGcSq2qvQXvQ== 890 + 886 891 caseless@~0.12.0: 887 892 version "0.12.0" 888 893 resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" ··· 1039 1044 resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 1040 1045 integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 1041 1046 1042 - color-name@^1.0.0, color-name@~1.1.4: 1047 + color-name@^1.0.0, color-name@^1.1.4, color-name@~1.1.4: 1043 1048 version "1.1.4" 1044 1049 resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 1045 1050 integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== ··· 1060 1065 color-convert "^1.9.1" 1061 1066 color-string "^1.5.2" 1062 1067 1063 - colorette@^1.2.0: 1068 + colorette@^1.2.1: 1064 1069 version "1.2.1" 1065 1070 resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" 1066 1071 integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== ··· 1513 1518 which "^2.0.2" 1514 1519 wrap-ansi "^6.2.0" 1515 1520 1516 - elm-tailwind-css@^0.4.2: 1517 - version "0.4.2" 1518 - resolved "https://registry.yarnpkg.com/elm-tailwind-css/-/elm-tailwind-css-0.4.2.tgz#9aa940e85ff70fe32026cd39247dbf7b5519d9a7" 1519 - integrity sha512-b0mxPMbyyBQqxeuBJA8xTsGfaijT+LsEQzmCJ6y9KVHPrSxqX9Qvf1DlKf3D4KrzyiFVIndXIXKiCXdOQwO0wg== 1521 + elm-tailwind-css@^0.4.4: 1522 + version "0.4.4" 1523 + resolved "https://registry.yarnpkg.com/elm-tailwind-css/-/elm-tailwind-css-0.4.4.tgz#07d9ab24e52e59d8a36f566ced8b43419a4ac112" 1524 + integrity sha512-Fyx5EsSvBbGbFIsr31jBpEL5WaRolf1kEq8xros7v+ebIFNauS/S2h8eboXgR6DpVfiz7ueQggZgZKaA9ug2wQ== 1520 1525 dependencies: 1521 1526 "@fullhuman/postcss-purgecss" "^2.3.0" 1522 - autoprefixer "^9.8.5" 1527 + autoprefixer "^9.8.6" 1523 1528 meow "^7.0.1" 1524 1529 postcss "^7.0.32" 1525 1530 postcss-csso "^4.0.0" 1526 - postcss-elm-tailwind icidasset/postcss-elm-tailwind#b7d7a24aa63d5e1aa634942a45e735442174dec0 1527 - tailwindcss "^1.5.2" 1531 + postcss-elm-tailwind icidasset/postcss-elm-tailwind#b88835786d9b0aa48a88d83fd8c13df89bbd60a0 1532 + tailwindcss "^1.6.0" 1528 1533 1529 1534 emoji-regex@^7.0.1: 1530 1535 version "7.0.3" ··· 2432 2437 version "1.4.0" 2433 2438 resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" 2434 2439 integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== 2440 + 2441 + ip-regex@^4.1.0: 2442 + version "4.1.0" 2443 + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.1.0.tgz#5ad62f685a14edb421abebc2fff8db94df67b455" 2444 + integrity sha512-pKnZpbgCTfH/1NLIlOduP/V+WRXzC2MOz3Qo8xmxk8C5GudJLgK5QyLVXOSWy3ParAH7Eemurl3xjv/WXYFvMA== 2435 2445 2436 2446 is-absolute@^1.0.0: 2437 2447 version "1.0.0" ··· 2648 2658 dependencies: 2649 2659 unc-path-regex "^0.1.2" 2650 2660 2661 + is-url-superb@^3.0.0: 2662 + version "3.0.0" 2663 + resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-3.0.0.tgz#b9a1da878a1ac73659047d1e6f4ef22c209d3e25" 2664 + integrity sha512-3faQP+wHCGDQT1qReM5zCPx2mxoal6DzbzquFlCYJLWyy4WPTved33ea2xFbX37z4NoriEwZGIYhFtx8RUB5wQ== 2665 + dependencies: 2666 + url-regex "^5.0.0" 2667 + 2651 2668 is-windows@^1.0.1, is-windows@^1.0.2: 2652 2669 version "1.0.2" 2653 2670 resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" ··· 3721 3738 dependencies: 3722 3739 csso "^4.0.2" 3723 3740 3724 - postcss-elm-tailwind@icidasset/postcss-elm-tailwind#b7d7a24aa63d5e1aa634942a45e735442174dec0: 3741 + postcss-custom-properties@^9.1.1: 3742 + version "9.1.1" 3743 + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-9.1.1.tgz#55822d70ff48004f6d307a338ba64a7fb0a4bfff" 3744 + integrity sha512-GVu+j7vwMTKUGhGXckYAFAAG5tTJUkSt8LuSyimtZdVVmdAEZYYqserkAgX8vwMhgGDPA4vJtWt7VgFxgiooDA== 3745 + dependencies: 3746 + postcss "^7.0.17" 3747 + postcss-values-parser "^3.0.5" 3748 + 3749 + postcss-elm-tailwind@icidasset/postcss-elm-tailwind#b88835786d9b0aa48a88d83fd8c13df89bbd60a0: 3725 3750 version "0.10.1" 3726 - resolved "https://codeload.github.com/icidasset/postcss-elm-tailwind/tar.gz/b7d7a24aa63d5e1aa634942a45e735442174dec0" 3751 + resolved "https://codeload.github.com/icidasset/postcss-elm-tailwind/tar.gz/b88835786d9b0aa48a88d83fd8c13df89bbd60a0" 3727 3752 dependencies: 3728 3753 postcss "^7.0.18" 3729 3754 ··· 3794 3819 resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" 3795 3820 integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== 3796 3821 3797 - postcss@7.0.32, postcss@^7.0.32: 3822 + postcss-values-parser@^3.0.5: 3823 + version "3.2.1" 3824 + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-3.2.1.tgz#55114607de6631338ba8728d3e9c15785adcc027" 3825 + integrity sha512-SQ7/88VE9LhJh9gc27/hqnSU/aZaREVJcRVccXBmajgP2RkjdJzNyH/a9GCVMI5nsRhT0jC5HpUMwfkz81DVVg== 3826 + dependencies: 3827 + color-name "^1.1.4" 3828 + is-url-superb "^3.0.0" 3829 + postcss "^7.0.5" 3830 + url-regex "^5.0.0" 3831 + 3832 + postcss@7.0.32, postcss@^7.0.17, postcss@^7.0.32, postcss@^7.0.5: 3798 3833 version "7.0.32" 3799 3834 resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" 3800 3835 integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== ··· 4799 4834 reduce-css-calc "^2.1.6" 4800 4835 resolve "^1.14.2" 4801 4836 4837 + tailwindcss@^1.6.0: 4838 + version "1.6.0" 4839 + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-1.6.0.tgz#cdad8cdd225129ad41bff6aa607aa39ad6524593" 4840 + integrity sha512-UZEex5ebsQlCTIBjI0oZITL67HBjOrzMgA4ceLOf8mrBGquLSn7LsO92do1nBSBZBV2Qqpivz9QUwT3zMSQkMA== 4841 + dependencies: 4842 + "@fullhuman/postcss-purgecss" "^2.1.2" 4843 + autoprefixer "^9.4.5" 4844 + browserslist "^4.12.0" 4845 + bytes "^3.0.0" 4846 + chalk "^3.0.0 || ^4.0.0" 4847 + color "^3.1.2" 4848 + detective "^5.2.0" 4849 + fs-extra "^8.0.0" 4850 + lodash "^4.17.15" 4851 + node-emoji "^1.8.1" 4852 + normalize.css "^8.0.1" 4853 + postcss "^7.0.11" 4854 + postcss-functions "^3.0.0" 4855 + postcss-js "^2.0.0" 4856 + postcss-nested "^4.1.1" 4857 + postcss-selector-parser "^6.0.0" 4858 + pretty-hrtime "^1.0.3" 4859 + reduce-css-calc "^2.1.6" 4860 + resolve "^1.14.2" 4861 + 4802 4862 tapable@^1.0.0, tapable@^1.1.3: 4803 4863 version "1.1.3" 4804 4864 resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" ··· 4889 4949 integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== 4890 4950 dependencies: 4891 4951 setimmediate "^1.0.4" 4952 + 4953 + tlds@^1.203.0: 4954 + version "1.207.0" 4955 + resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.207.0.tgz#459264e644cf63ddc0965fece3898913286b1afd" 4956 + integrity sha512-k7d7Q1LqjtAvhtEOs3yN14EabsNO8ZCoY6RESSJDB9lst3bTx3as/m1UuAeCKzYxiyhR1qq72ZPhpSf+qlqiwg== 4892 4957 4893 4958 to-arraybuffer@^1.0.0: 4894 4959 version "1.0.1" ··· 5123 5188 version "0.1.0" 5124 5189 resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" 5125 5190 integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= 5191 + 5192 + url-regex@^5.0.0: 5193 + version "5.0.0" 5194 + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-5.0.0.tgz#8f5456ab83d898d18b2f91753a702649b873273a" 5195 + integrity sha512-O08GjTiAFNsSlrUWfqF1jH0H1W3m35ZyadHrGv5krdnmPPoxP27oDTqux/579PtaroiSGm5yma6KT1mHFH6Y/g== 5196 + dependencies: 5197 + ip-regex "^4.1.0" 5198 + tlds "^1.203.0" 5126 5199 5127 5200 url@^0.11.0: 5128 5201 version "0.11.0"