dashi-0.1.0.0: Tasty Haskell design system
Safe HaskellNone
LanguageGHC2021

Dashi.Diagram

Documentation

class Shape s num | s -> num where Source #

Methods

boundingBox :: s -> Rect num Source #

transform :: (Point num -> Point num) -> s -> s Source #

Instances

Instances details
Num num => Shape (Circle num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

boundingBox :: Circle num -> Rect num Source #

transform :: (Point num -> Point num) -> Circle num -> Circle num Source #

(Num num, Ord num) => Shape (Line num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

boundingBox :: Line num -> Rect num Source #

transform :: (Point num -> Point num) -> Line num -> Line num Source #

Shape (Point num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

boundingBox :: Point num -> Rect num Source #

transform :: (Point num -> Point num) -> Point num -> Point num Source #

(Num num, Ord num) => Shape (Polygon num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

boundingBox :: Polygon num -> Rect num Source #

transform :: (Point num -> Point num) -> Polygon num -> Polygon num Source #

(Num num, Ord num) => Shape (Polyline num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

boundingBox :: Polyline num -> Rect num Source #

transform :: (Point num -> Point num) -> Polyline num -> Polyline num Source #

Ord num => Shape (Rect num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

boundingBox :: Rect num -> Rect num Source #

transform :: (Point num -> Point num) -> Rect num -> Rect num Source #

Shape (SomeShape num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

boundingBox :: SomeShape num -> Rect num Source #

transform :: (Point num -> Point num) -> SomeShape num -> SomeShape num Source #

Shape (Text num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

boundingBox :: Text num -> Rect num Source #

transform :: (Point num -> Point num) -> Text num -> Text num Source #

(Num num, Ord num, Shape s num, Foldable f, Functor f) => Shape (f s) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

boundingBox :: f s -> Rect num Source #

transform :: (Point num -> Point num) -> f s -> f s Source #

class Shape s num => ToSVG s num | s -> num where Source #

Methods

toSVG :: [Attribute action] -> s -> [View model action] Source #

Instances

Instances details
(Num num, ToMisoString num) => ToSVG (Circle num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

toSVG :: [Attribute action] -> Circle num -> [View model action] Source #

(Num num, Ord num, ToMisoString num) => ToSVG (Line num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

toSVG :: [Attribute action] -> Line num -> [View model action] Source #

(Num num, Ord num, ToMisoString num) => ToSVG (Polygon num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

toSVG :: [Attribute action] -> Polygon num -> [View model action] Source #

(Num num, Ord num, ToMisoString num) => ToSVG (Polyline num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

toSVG :: [Attribute action] -> Polyline num -> [View model action] Source #

(Num num, Ord num, ToMisoString num) => ToSVG (Rect num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

toSVG :: [Attribute action] -> Rect num -> [View model action] Source #

ToSVG (SomeShape num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

toSVG :: [Attribute action] -> SomeShape num -> [View model action] Source #

ToMisoString num => ToSVG (Text num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

toSVG :: [Attribute action] -> Text num -> [View model action] Source #

(Num num, Ord num, ToSVG s num, Foldable f, Functor f) => ToSVG (f s) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

toSVG :: [Attribute action] -> f s -> [View model action] Source #

data Point num Source #

Constructors

Point 

Fields

  • x :: num
     
  • y :: num
     

Instances

Instances details
Generic (Point num) Source # 
Instance details

Defined in Dashi.Diagram

Associated Types

type Rep (Point num) 
Instance details

Defined in Dashi.Diagram

type Rep (Point num) = D1 ('MetaData "Point" "Dashi.Diagram" "dashi-0.1.0.0-kJEGm1i4KgESjuKBJz88I" 'False) (C1 ('MetaCons "Point" 'PrefixI 'True) (S1 ('MetaSel ('Just "x") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 num) :*: S1 ('MetaSel ('Just "y") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 num)))

Methods

from :: Point num -> Rep (Point num) x #

to :: Rep (Point num) x -> Point num #

Show num => Show (Point num) Source # 
Instance details

Defined in Dashi.Diagram

Methods

showsPrec :: Int -> Point num -> ShowS #

show :: Point num -> String #

showList :: [Point num] -> ShowS #

Eq num => Eq (Point num) Source # 
Instance details

Defined in Dashi.Diagram

Methods

(==) :: Point num -> Point num -> Bool #

(/=) :: Point num -> Point num -> Bool #

Shape (Point num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

boundingBox :: Point num -> Rect num Source #

transform :: (Point num -> Point num) -> Point num -> Point num Source #

type Rep (Point num) Source # 
Instance details

Defined in Dashi.Diagram

type Rep (Point num) = D1 ('MetaData "Point" "Dashi.Diagram" "dashi-0.1.0.0-kJEGm1i4KgESjuKBJz88I" 'False) (C1 ('MetaCons "Point" 'PrefixI 'True) (S1 ('MetaSel ('Just "x") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 num) :*: S1 ('MetaSel ('Just "y") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 num)))

offsetPoint :: (num -> num) -> (num -> num) -> Point num -> Point num Source #

boundingBoxOfPoints1 :: (Foldable f, Functor f, Ord num) => f (Point num) -> Rect num Source #

boundingBoxOfPoints :: (Foldable f, Functor f, Num num, Ord num) => f (Point num) -> Rect num Source #

data Rect num Source #

Constructors

Rect 

Fields

Instances

Instances details
Generic (Rect num) Source # 
Instance details

Defined in Dashi.Diagram

Associated Types

type Rep (Rect num) 
Instance details

Defined in Dashi.Diagram

type Rep (Rect num) = D1 ('MetaData "Rect" "Dashi.Diagram" "dashi-0.1.0.0-kJEGm1i4KgESjuKBJz88I" 'False) (C1 ('MetaCons "Rect" 'PrefixI 'True) (S1 ('MetaSel ('Just "topLeft") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Point num)) :*: S1 ('MetaSel ('Just "bottomRight") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Point num))))

Methods

from :: Rect num -> Rep (Rect num) x #

to :: Rep (Rect num) x -> Rect num #

Ord num => Shape (Rect num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

boundingBox :: Rect num -> Rect num Source #

transform :: (Point num -> Point num) -> Rect num -> Rect num Source #

(Num num, Ord num, ToMisoString num) => ToSVG (Rect num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

toSVG :: [Attribute action] -> Rect num -> [View model action] Source #

type Rep (Rect num) Source # 
Instance details

Defined in Dashi.Diagram

type Rep (Rect num) = D1 ('MetaData "Rect" "Dashi.Diagram" "dashi-0.1.0.0-kJEGm1i4KgESjuKBJz88I" 'False) (C1 ('MetaCons "Rect" 'PrefixI 'True) (S1 ('MetaSel ('Just "topLeft") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Point num)) :*: S1 ('MetaSel ('Just "bottomRight") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Point num))))

rectSize :: Num num => Rect num -> (num, num) Source #

top :: forall num f. Functor f => (num -> f num) -> Rect num -> f (Rect num) Source #

left :: forall num f. Functor f => (num -> f num) -> Rect num -> f (Rect num) Source #

topRight :: forall num f. Functor f => (Point num -> f (Point num)) -> Rect num -> f (Rect num) Source #

bottom :: forall num f. Functor f => (num -> f num) -> Rect num -> f (Rect num) Source #

right :: forall num f. Functor f => (num -> f num) -> Rect num -> f (Rect num) Source #

bottomLeft :: forall num f. Functor f => (Point num -> f (Point num)) -> Rect num -> f (Rect num) Source #

boundingBoxOfRects1 :: (Foldable f, Ord num) => f (Rect num) -> Rect num Source #

boundingBoxOfRects :: (Foldable f, Num num, Ord num) => f (Rect num) -> Rect num Source #

data Circle num Source #

Constructors

Circle 

Fields

Instances

Instances details
Generic (Circle num) Source # 
Instance details

Defined in Dashi.Diagram

Associated Types

type Rep (Circle num) 
Instance details

Defined in Dashi.Diagram

type Rep (Circle num) = D1 ('MetaData "Circle" "Dashi.Diagram" "dashi-0.1.0.0-kJEGm1i4KgESjuKBJz88I" 'False) (C1 ('MetaCons "Circle" 'PrefixI 'True) (S1 ('MetaSel ('Just "centre") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Point num)) :*: S1 ('MetaSel ('Just "radius") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 num)))

Methods

from :: Circle num -> Rep (Circle num) x #

to :: Rep (Circle num) x -> Circle num #

Num num => Shape (Circle num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

boundingBox :: Circle num -> Rect num Source #

transform :: (Point num -> Point num) -> Circle num -> Circle num Source #

(Num num, ToMisoString num) => ToSVG (Circle num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

toSVG :: [Attribute action] -> Circle num -> [View model action] Source #

type Rep (Circle num) Source # 
Instance details

Defined in Dashi.Diagram

type Rep (Circle num) = D1 ('MetaData "Circle" "Dashi.Diagram" "dashi-0.1.0.0-kJEGm1i4KgESjuKBJz88I" 'False) (C1 ('MetaCons "Circle" 'PrefixI 'True) (S1 ('MetaSel ('Just "centre") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Point num)) :*: S1 ('MetaSel ('Just "radius") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 num)))

data Line num Source #

Constructors

Line (Point num) (Point num) 

Instances

Instances details
Generic (Line num) Source # 
Instance details

Defined in Dashi.Diagram

Associated Types

type Rep (Line num) 
Instance details

Defined in Dashi.Diagram

type Rep (Line num) = D1 ('MetaData "Line" "Dashi.Diagram" "dashi-0.1.0.0-kJEGm1i4KgESjuKBJz88I" 'False) (C1 ('MetaCons "Line" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Point num)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Point num))))

Methods

from :: Line num -> Rep (Line num) x #

to :: Rep (Line num) x -> Line num #

(Num num, Ord num) => Shape (Line num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

boundingBox :: Line num -> Rect num Source #

transform :: (Point num -> Point num) -> Line num -> Line num Source #

(Num num, Ord num, ToMisoString num) => ToSVG (Line num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

toSVG :: [Attribute action] -> Line num -> [View model action] Source #

type Rep (Line num) Source # 
Instance details

Defined in Dashi.Diagram

type Rep (Line num) = D1 ('MetaData "Line" "Dashi.Diagram" "dashi-0.1.0.0-kJEGm1i4KgESjuKBJz88I" 'False) (C1 ('MetaCons "Line" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Point num)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Point num))))

newtype Polyline num Source #

Constructors

Polyline 

Fields

Instances

Instances details
Generic (Polyline num) Source # 
Instance details

Defined in Dashi.Diagram

Associated Types

type Rep (Polyline num) 
Instance details

Defined in Dashi.Diagram

type Rep (Polyline num) = D1 ('MetaData "Polyline" "Dashi.Diagram" "dashi-0.1.0.0-kJEGm1i4KgESjuKBJz88I" 'True) (C1 ('MetaCons "Polyline" 'PrefixI 'True) (S1 ('MetaSel ('Just "points") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Point num])))

Methods

from :: Polyline num -> Rep (Polyline num) x #

to :: Rep (Polyline num) x -> Polyline num #

(Num num, Ord num) => Shape (Polyline num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

boundingBox :: Polyline num -> Rect num Source #

transform :: (Point num -> Point num) -> Polyline num -> Polyline num Source #

(Num num, Ord num, ToMisoString num) => ToSVG (Polyline num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

toSVG :: [Attribute action] -> Polyline num -> [View model action] Source #

type Rep (Polyline num) Source # 
Instance details

Defined in Dashi.Diagram

type Rep (Polyline num) = D1 ('MetaData "Polyline" "Dashi.Diagram" "dashi-0.1.0.0-kJEGm1i4KgESjuKBJz88I" 'True) (C1 ('MetaCons "Polyline" 'PrefixI 'True) (S1 ('MetaSel ('Just "points") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Point num])))

newtype Polygon num Source #

Constructors

Polygon 

Fields

Instances

Instances details
Generic (Polygon num) Source # 
Instance details

Defined in Dashi.Diagram

Associated Types

type Rep (Polygon num) 
Instance details

Defined in Dashi.Diagram

type Rep (Polygon num) = D1 ('MetaData "Polygon" "Dashi.Diagram" "dashi-0.1.0.0-kJEGm1i4KgESjuKBJz88I" 'True) (C1 ('MetaCons "Polygon" 'PrefixI 'True) (S1 ('MetaSel ('Just "points") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Point num])))

Methods

from :: Polygon num -> Rep (Polygon num) x #

to :: Rep (Polygon num) x -> Polygon num #

(Num num, Ord num) => Shape (Polygon num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

boundingBox :: Polygon num -> Rect num Source #

transform :: (Point num -> Point num) -> Polygon num -> Polygon num Source #

(Num num, Ord num, ToMisoString num) => ToSVG (Polygon num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

toSVG :: [Attribute action] -> Polygon num -> [View model action] Source #

type Rep (Polygon num) Source # 
Instance details

Defined in Dashi.Diagram

type Rep (Polygon num) = D1 ('MetaData "Polygon" "Dashi.Diagram" "dashi-0.1.0.0-kJEGm1i4KgESjuKBJz88I" 'True) (C1 ('MetaCons "Polygon" 'PrefixI 'True) (S1 ('MetaSel ('Just "points") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Point num])))

data TextAnchor Source #

Constructors

Start 
Middle 
End 

Instances

Instances details
Eq TextAnchor Source # 
Instance details

Defined in Dashi.Diagram

ToMisoString TextAnchor Source # 
Instance details

Defined in Dashi.Diagram

data Text num Source #

Constructors

Text 

Instances

Instances details
Generic (Text num) Source # 
Instance details

Defined in Dashi.Diagram

Associated Types

type Rep (Text num) 
Instance details

Defined in Dashi.Diagram

type Rep (Text num) = D1 ('MetaData "Text" "Dashi.Diagram" "dashi-0.1.0.0-kJEGm1i4KgESjuKBJz88I" 'False) (C1 ('MetaCons "Text" 'PrefixI 'True) (S1 ('MetaSel ('Just "position") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Point num)) :*: (S1 ('MetaSel ('Just "anchor") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 TextAnchor) :*: S1 ('MetaSel ('Just "content") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 MisoString))))

Methods

from :: Text num -> Rep (Text num) x #

to :: Rep (Text num) x -> Text num #

Shape (Text num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

boundingBox :: Text num -> Rect num Source #

transform :: (Point num -> Point num) -> Text num -> Text num Source #

ToMisoString num => ToSVG (Text num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

toSVG :: [Attribute action] -> Text num -> [View model action] Source #

type Rep (Text num) Source # 
Instance details

Defined in Dashi.Diagram

type Rep (Text num) = D1 ('MetaData "Text" "Dashi.Diagram" "dashi-0.1.0.0-kJEGm1i4KgESjuKBJz88I" 'False) (C1 ('MetaCons "Text" 'PrefixI 'True) (S1 ('MetaSel ('Just "position") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Point num)) :*: (S1 ('MetaSel ('Just "anchor") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 TextAnchor) :*: S1 ('MetaSel ('Just "content") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 MisoString))))

data SomeShape num Source #

Constructors

(Shape s num, ToSVG s num) => Shape s 

Instances

Instances details
Shape (SomeShape num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

boundingBox :: SomeShape num -> Rect num Source #

transform :: (Point num -> Point num) -> SomeShape num -> SomeShape num Source #

ToSVG (SomeShape num) num Source # 
Instance details

Defined in Dashi.Diagram

Methods

toSVG :: [Attribute action] -> SomeShape num -> [View model action] Source #

boundingBoxOfShapes :: (Foldable f, Functor f, Num num, Ord num) => f (SomeShape num) -> Rect num Source #

svg :: (Foldable t, Functor t, Fractional num, Ord num, ToMisoString num) => Rect num -> [Attribute action] -> t (SomeShape num) -> View model action Source #

translateDomain :: (Shape s num, Eq num, Fractional num) => Rect num -> Rect num -> s -> s Source #

inDomain :: (Shape s num, Ord num, Fractional num) => Rect num -> s -> s Source #