noredink-ui/styleguide-app/Examples/Heading.elm

87 lines
2.2 KiB
Elm
Raw Normal View History

2020-04-01 02:00:29 +03:00
module Examples.Heading exposing (example, State, Msg)
{-|
2020-04-01 02:00:29 +03:00
@docs example, State, Msg
-}
import Category exposing (Category(..))
import Css
2022-03-23 20:55:53 +03:00
import Debug.Control as Control exposing (Control)
import Debug.Control.Extra as ControlExtra
import Debug.Control.View as ControlView
2020-03-31 23:33:05 +03:00
import Example exposing (Example)
import Html.Styled as Html
import Nri.Ui.Colors.V1 as Colors
import Nri.Ui.Heading.V2 as Heading
2022-01-29 00:12:17 +03:00
import ViewHelpers exposing (viewExamples)
2020-04-01 02:00:29 +03:00
{-| -}
example : Example State Msg
example =
2020-09-09 21:43:10 +03:00
{ name = "Heading"
, version = 2
2020-06-19 23:41:28 +03:00
, categories = [ Text, Layout ]
, keyboardSupport = []
2022-03-23 20:55:53 +03:00
, state = init
, update = update
2020-03-31 23:33:05 +03:00
, subscriptions = \_ -> Sub.none
2021-11-05 22:45:22 +03:00
, preview =
[ Heading.h1 [] [ Html.text "h1" ]
, Heading.h2 [] [ Html.text "h2" ]
, Heading.h3 [] [ Html.text "h3" ]
, Heading.h4 [] [ Html.text "h4" ]
]
2020-03-31 23:33:05 +03:00
, view =
2022-03-23 20:55:53 +03:00
\state ->
[ ControlView.view
{ update = UpdateControl
, settings = state.control
, toExampleCode =
\settings ->
[]
}
, viewExamples
2022-01-29 00:12:17 +03:00
[ ( "h1", Heading.h1 [] [ Html.text "This is the main page heading." ] )
, ( "h2", Heading.h2 [] [ Html.text "This is a tagline" ] )
, ( "h3", Heading.h3 [] [ Html.text "This is a subHeading" ] )
, ( "h4", Heading.h4 [] [ Html.text "This is a smallHeading" ] )
]
2020-03-31 23:33:05 +03:00
, Heading.h2 [ Heading.style Heading.Top ]
[ Html.text "Heading.h2 [ Heading.style Heading.Top ]" ]
, Heading.h2 [ Heading.css [ Css.color Colors.highlightPurpleDark ] ]
[ Html.text "Heading.h2 [ Heading.css [ Css.color Colors.highlightPurpleDark ] ]" ]
]
}
2022-03-23 20:55:53 +03:00
{-| -}
type alias State =
{ control : Control Settings
}
init : State
init =
{ control =
ControlExtra.list
}
type alias Settings =
List ( String, Heading.Attribute Msg )
{-| -}
type Msg
= UpdateControl (Control Settings)
update : Msg -> State -> ( State, Cmd Msg )
update msg state =
case msg of
UpdateControl settings ->
( { state | control = settings }, Cmd.none )