module FF.CSS.Spec.Loose where

open import Agda.Builtin.String using (String)
open import Agda.Primitive using (lzero) renaming (Set to Type)

open import FF.CSS.Core using (Spec; Declaration; declare)
open import FF.CSS.Render using (Renderer; renderDeclaration)

spec : Spec lzero lzero
spec =
  record
    { Property = String
    ; Value = \ _ -> String
    }

DeclarationT : Type lzero
DeclarationT = Declaration spec

renderer : Renderer spec
renderer =
  record
    { renderProperty = \ propertyName -> propertyName
    ; renderValue = \ _ value -> value
    }

declaration : (propertyName : String) -> String -> DeclarationT
declaration = declare

example : DeclarationT
example = declare "color" "red"

renderedExample : String
renderedExample = renderDeclaration renderer example