3 | import Text.CSS.Declaration
4 | import Text.CSS.Selector
10 | data Rule : (n : Nat) -> Type where
12 | (selectors : List Selector)
13 | -> (decls : List Declaration)
18 | -> (rules : List $
Rule 0)
22 | sel : Selector -> List Declaration -> Rule n
26 | class : String -> List Declaration -> Rule n
27 | class s = sel (class s)
30 | classes : List String -> List Declaration -> Rule n
31 | classes = sel . classes
34 | elem : {str : _} -> (0 tpe : ElementType str t) -> List Declaration -> Rule n
35 | elem v = sel $
elem v
38 | id : String -> List Declaration -> Rule n
42 | star : List Declaration -> Rule n
46 | Interpolation (Rule n) where
47 | interpolate (Sel s ds) =
48 | let dss := fastConcat $
map interpolate ds
49 | ss := fastConcat . intersperse ", " $
map interpolate s
51 | interpolate (Media q rs) = "@media (\{q}){\{unlines $ map interpolate rs}}"