packages feed

shakespeare 2.0.25.1 → 2.0.26

raw patch · 5 files changed

+45/−2 lines, 5 files

Files

ChangeLog.md view
@@ -1,5 +1,9 @@ # ChangeLog for shakespeare +### 2.0.26++* Support `@supports` [#263](https://github.com/yesodweb/shakespeare/pull/263)+ ### 2.0.25.1  * Support for GHC 9.2 and aeson 2 [#260](https://github.com/yesodweb/shakespeare/pull/260)
Text/Lucius.hs view
@@ -238,7 +238,7 @@             ignore = many (whiteSpace1 <|> string' "<!--" <|> string' "-->")                         >> return ()         ignore-        tl <- ((charset <|> media <|> impor <|> topAtBlock <|> var <|> fmap TopBlock parseBlock) >>= \x -> go (front . (:) x))+        tl <- ((charset <|> media <|> impor <|> supports <|> topAtBlock <|> var <|> fmap TopBlock parseBlock) >>= \x -> go (front . (:) x))             <|> (return $ map compressTopLevel $ front [])         ignore         return tl@@ -258,6 +258,12 @@         val <- parseContents ";"         _ <- char ';'         return $ TopAtDecl "import" val+    supports = do+        try $ stringCI "@supports "+        selector <- parseContents "{"+        _ <- char '{'+        b <- parseBlocks id+        return $ TopAtBlock "supports" selector b     var = try $ do         _ <- char '@'         isPage <- (try $ string "page " >> return True) <|>
shakespeare.cabal view
@@ -1,5 +1,5 @@ name:            shakespeare-version:         2.0.25.1+version:         2.0.26 license:         MIT license-file:    LICENSE author:          Michael Snoyman <michael@snoyman.com>
test/Text/CssSpec.hs view
@@ -288,6 +288,17 @@         }
         |]
 
+    it "lucius supports" $ do
+      celper "@supports only screen{hana dul{set:net}}" $(luciusFile "test/cassiuses/external-supports.lucius")
+      celper "@supports only screen {\n    hana dul {\n        set: net;\n    }\n}\n" $(luciusFileDebug "test/cassiuses/external-supports.lucius")
+      celper "@supports only screen    {hana,dul{set:net;dasut:yeosut}}" [lucius|
+        @supports only screen    {
+            hana, dul {
+                set: net;
+                dasut: yeosut;
+            }
+        }
+        |]
 
     {-
     it "cassius removes whitespace" $ do
@@ -366,6 +377,21 @@         celper "@media (max-width: 400px){foo{color:red}}" [lucius|
 @mobileWidth: 400px;
 @media (max-width: #{mobileWidth}){ foo { color: red; } }
+|]
+    -- note: this file format is window (CR;NL)
+    it "variables in supports selector" $
+        celper "@supports ((perspective: 1px)\r\n           and (not (-webkit-overflow-scrolling: touch))) {html,body{overflow:hidden;height:100%}body{transform:translateZ(0px)}}" [lucius|
+@perspectiveTestValue: 1px;
+@supports ((perspective: #{perspectiveTestValue})
+           and (not (-webkit-overflow-scrolling: touch))) {
+    html, body {
+        overflow: hidden;
+        height:100%;
+    }
+    body {
+        transform: translateZ(0px);
+    }
+}
 |]
     it "URLs in import" $ celper
         "@import url(\"suburl\");" [lucius|
+ test/cassiuses/external-supports.lucius view
@@ -0,0 +1,7 @@+@supports only screen{+    hana {+        dul {+            set: net;+        }+    }+}