{-# LANGUAGE OverloadedStrings #-} module React.Attrs where import qualified Data.Aeson as Aeson import Data.Text (Text) import React.GHCJS import React.Types -- | When importing a foreign class you must specify the props it takes. In the -- common case where it takes no props, only handles layout, it's convenient to -- specify the type of props as 'NoProps'. -- -- Example: -- -- pageLayout_ :: ReactNode () -> ReactNode () -- pageLayout_ = importParentClass pageLayout noProps newtype NoProps = NoProps () -- | Used when importing a foreign class taking no props. See above example. noProps :: NoProps noProps = NoProps () instance ToJSRef NoProps where toJSRef _ = newObj mkStaticAttr :: Aeson.ToJSON a => Text -> a -> AttrOrHandler sig mkStaticAttr name = StaticAttr name . Aeson.toJSON key_ :: Text -> AttrOrHandler sig key_ = mkStaticAttr "key" class_ :: Text -> AttrOrHandler sig class_ = mkStaticAttr "className" href_ :: Text -> AttrOrHandler sig href_ = mkStaticAttr "href" id_ :: Text -> AttrOrHandler sig id_ = mkStaticAttr "id" src_ :: Text -> AttrOrHandler sig src_ = mkStaticAttr "src" value_ :: Text -> AttrOrHandler sig value_ = mkStaticAttr "value" placeholder_ :: Text -> AttrOrHandler sig placeholder_ = mkStaticAttr "placeholder" for_ :: Text -> AttrOrHandler sig for_ = mkStaticAttr "htmlFor" type_ :: Text -> AttrOrHandler sig type_ = mkStaticAttr "type" checked_ :: Bool -> AttrOrHandler sig checked_ = mkStaticAttr "checked" autofocus_ :: Bool -> AttrOrHandler sig autofocus_ = mkStaticAttr "autoFocus" width_ :: Double -> AttrOrHandler sig width_ = mkStaticAttr "width" height_ :: Double -> AttrOrHandler sig height_ = mkStaticAttr "height" -- svg! cx_ :: Double -> AttrOrHandler sig cx_ = mkStaticAttr "cx" cy_ :: Double -> AttrOrHandler sig cy_ = mkStaticAttr "cy" d_ :: Double -> AttrOrHandler sig d_ = mkStaticAttr "d" dx_ :: Double -> AttrOrHandler sig dx_ = mkStaticAttr "dx" dy_ :: Double -> AttrOrHandler sig dy_ = mkStaticAttr "dy" x_ :: Double -> AttrOrHandler sig x_ = mkStaticAttr "x" y_ :: Double -> AttrOrHandler sig y_ = mkStaticAttr "y" r_ :: Double -> AttrOrHandler sig r_ = mkStaticAttr "r" fill_ :: Text -> AttrOrHandler sig fill_ = mkStaticAttr "fill" viewBox_ :: Text -> AttrOrHandler sig viewBox_ = mkStaticAttr "viewBox" points_ :: Text -> AttrOrHandler sig points_ = mkStaticAttr "points" transform_ :: Text -> AttrOrHandler sig transform_ = mkStaticAttr "transform" -- fillOpacity fontFamily fontSize fx fy gradientTransform -- gradientUnits markerEnd markerMid markerStart offset opacity -- patternContentUnits patternUnits preserveAspectRatio r rx ry -- spreadMethod stopColor stopOpacity stroke strokeDasharray strokeLinecap -- strokeOpacity strokeWidth textAnchor version x1 x2 x y1 y2 y