0 | module Text.CSS.Flexbox
  1 |
  2 | import Data.List
  3 |
  4 | %default total
  5 |
  6 | public export
  7 | data FlexDirection =
  8 |     Row
  9 |   | RowReverse
 10 |   | Column
 11 |   | ColumnReverse
 12 |
 13 | export
 14 | Interpolation FlexDirection where
 15 |   interpolate Row           = "row"
 16 |   interpolate RowReverse    = "row-reverse"
 17 |   interpolate Column        = "column"
 18 |   interpolate ColumnReverse = "column-reverse"
 19 |
 20 | public export
 21 | data FlexAlign =
 22 |     Normal
 23 |   | Stretch
 24 |   | Center
 25 |   | Start
 26 |   | End
 27 |   | FlexStart
 28 |   | FlexEnd
 29 |   | Baseline
 30 |   | FirstBaseline
 31 |   | LastBaseline
 32 |
 33 | export
 34 | Interpolation FlexAlign where
 35 |   interpolate Normal        = "normal"
 36 |   interpolate Stretch       = "stretch"
 37 |   interpolate Center        = "center"
 38 |   interpolate Start         = "start"
 39 |   interpolate End           = "end"
 40 |   interpolate FlexStart     = "flex-start"
 41 |   interpolate FlexEnd       = "flex-end"
 42 |   interpolate Baseline      = "baseline"
 43 |   interpolate FirstBaseline = "first baseline"
 44 |   interpolate LastBaseline  = "last baseline"
 45 |
 46 | namespace FlexJustify
 47 |   public export
 48 |   data FlexJustify =
 49 |       Center
 50 |     | Start
 51 |     | End
 52 |     | FlexStart
 53 |     | FlexEnd
 54 |     | Left
 55 |     | Right
 56 |     | Normal
 57 |     | SpaceBetween
 58 |     | SpaceAround
 59 |     | SpaceEvenly
 60 |     | Stretch
 61 |
 62 |   export
 63 |   Interpolation FlexJustify where
 64 |     interpolate Center       = "center"
 65 |     interpolate Start        = "start"
 66 |     interpolate End          = "end"
 67 |     interpolate FlexStart    = "flex-start"
 68 |     interpolate FlexEnd      = "flex-end"
 69 |     interpolate Left         = "left"
 70 |     interpolate Right        = "right"
 71 |     interpolate Normal       = "normal"
 72 |     interpolate SpaceBetween = "space-between"
 73 |     interpolate SpaceAround  = "space-around"
 74 |     interpolate SpaceEvenly  = "space-evenly"
 75 |     interpolate Stretch      = "stretch"
 76 |
 77 | namespace FlexFlow
 78 |   public export
 79 |   data FlexFlow =
 80 |       Column
 81 |     | ColumnReverse
 82 |     | Inherit
 83 |     | Initial
 84 |     | Nowrap
 85 |     | Revert
 86 |     | RevertLayout
 87 |     | Row
 88 |     | RowReverse
 89 |     | Unset
 90 |     | Wrap
 91 |     | WrapReverse
 92 |
 93 |   export
 94 |   Interpolation FlexFlow where
 95 |     interpolate Column        = "column"
 96 |     interpolate ColumnReverse = "column-reverse"
 97 |     interpolate Inherit       = "inherit"
 98 |     interpolate Initial       = "initial"
 99 |     interpolate Nowrap        = "nowrap"
100 |     interpolate Revert        = "revert"
101 |     interpolate RevertLayout  = "revert-layout"
102 |     interpolate Row           = "row"
103 |     interpolate RowReverse    = "row-reverse"
104 |     interpolate Unset         = "unset"
105 |     interpolate Wrap          = "wrap"
106 |     interpolate WrapReverse   = "wrap-reverse"
107 |
108 | export
109 | Interpolation (List FlexFlow) where
110 |   interpolate = concat . intersperse " " . map interpolate
111 |