Adds defaultCaret, bypassing DisclosureIndicator

This commit is contained in:
Tessa Kelly 2023-01-20 15:59:16 -07:00
parent d6c716f9ce
commit 9a7fa05d4e
2 changed files with 27 additions and 25 deletions

View File

@ -2,6 +2,7 @@ module Nri.Ui.Accordion.V3 exposing
( view, HeaderLevel(..)
, AccordionEntry(..), Entry
, StyleOptions, styleAccordion
, defaultCaret
)
{-|
@ -21,15 +22,13 @@ module Nri.Ui.Accordion.V3 exposing
## Example
import Nri.Ui.DisclosureIndicator.V2 as DisclosureIndicator
view : Model -> Html Msg
view model =
div []
[ Accordion.view
{ entries =
[ AccordionEntry
{ caret = \isOpen -> DisclosureIndicator.large [ marginRight (px 8) ] isOpen
{ caret = Accordion.defaultCaret
, content = \() -> text "Accordion Content"
, entryClass = "a-class-distinguishing-this-accordion-from-others-on-the-page"
, headerContent = text "Accordion Header"
@ -56,6 +55,7 @@ module Nri.Ui.Accordion.V3 exposing
@docs view, HeaderLevel
@docs AccordionEntry, Entry
@docs StyleOptions, styleAccordion
@docs defaultCaret
-}
@ -67,9 +67,23 @@ import Css.Global
import Html.Styled.Attributes as Attributes
import Html.Styled.Events exposing (onClick)
import Html.Styled.Keyed
import Nri.Ui.AnimatedIcon.V1 as AnimatedIcon
import Nri.Ui.Colors.V1 as Colors
import Nri.Ui.FocusRing.V1 as FocusRing
import Nri.Ui.Fonts.V1 as Fonts
import Nri.Ui.Html.Attributes.V2 as AttributesExtra
import Nri.Ui.Svg.V1 as Svg
{-| -}
defaultCaret : Bool -> Html msg
defaultCaret isOpen =
AnimatedIcon.arrowRightDown isOpen
|> Svg.withColor Colors.azure
|> Svg.withWidth (Css.px 17)
|> Svg.withHeight (Css.px 17)
|> Svg.withCss [ Css.marginRight (Css.px 8) ]
|> Svg.toHtml
{-| -}

View File

@ -26,7 +26,6 @@ import KeyboardSupport exposing (Key(..))
import Nri.Ui.Accordion.V3 as Accordion exposing (AccordionEntry(..))
import Nri.Ui.Colors.Extra as ColorsExtra
import Nri.Ui.Colors.V1 as Colors
import Nri.Ui.DisclosureIndicator.V2 as DisclosureIndicator
import Nri.Ui.FocusRing.V1 as FocusRing
import Nri.Ui.Svg.V1 as Svg
import Nri.Ui.Text.V6 as Text
@ -58,11 +57,11 @@ example =
-- component might look like
Html.div []
[ Html.div [ css [ Css.displayFlex, Css.alignItems Css.center ] ]
[ defaultCaret False
[ Accordion.defaultCaret False
, Text.smallBody [ Text.plaintext "Closed" ]
]
, Html.div [ css [ Css.displayFlex, Css.alignItems Css.center ] ]
[ defaultCaret True
[ Accordion.defaultCaret True
, Text.smallBody [ Text.plaintext "Open" ]
]
, Text.caption [ Text.plaintext "Accordion content." ]
@ -87,11 +86,6 @@ example =
}
defaultCaret : Bool -> Html msg
defaultCaret =
DisclosureIndicator.large [ Css.marginRight (Css.px 8) ] >> Svg.toHtml
{-| -}
view : EllieLink.Config -> State -> List (Html Msg)
view ellieLinkConfig model =
@ -106,10 +100,7 @@ view ellieLinkConfig model =
, update = UpdateControls
, settings = model.settings
, mainType = Just "RootHtml.Html String"
, extraCode =
[ "import Nri.Ui.DisclosureIndicator.V2 as DisclosureIndicator"
, "import Nri.Ui.Svg.V1 as Svg"
]
, extraCode = [ "import Nri.Ui.Svg.V1 as Svg" ]
, renderExample = Code.unstyledView
, toExampleCode =
\settings ->
@ -162,7 +153,7 @@ view ellieLinkConfig model =
}
[]
, AccordionEntry
{ caret = defaultCaret
{ caret = Accordion.defaultCaret
, content = \_ -> Html.text "🍎 There are many kinds of apples! Apples are more genetically diverse than humans. The genetic diversity of apples means that to preserve delicious apple varieties, growers must use grafting rather than seeds. In the apple market, clones have already taken over! 🍏"
, entryClass = "accordion-example"
, headerContent = Html.text "Apples (has children)"
@ -172,7 +163,7 @@ view ellieLinkConfig model =
, toggle = Just (Toggle 1)
}
[ AccordionEntry
{ caret = defaultCaret
{ caret = Accordion.defaultCaret
, content =
\_ ->
Html.div []
@ -192,7 +183,7 @@ view ellieLinkConfig model =
}
[]
, AccordionEntry
{ caret = defaultCaret
{ caret = Accordion.defaultCaret
, content =
\_ ->
Html.div []
@ -212,7 +203,7 @@ view ellieLinkConfig model =
}
[]
, AccordionEntry
{ caret = defaultCaret
{ caret = Accordion.defaultCaret
, content =
\_ ->
Html.div []
@ -233,7 +224,7 @@ view ellieLinkConfig model =
[]
]
, AccordionEntry
{ caret = defaultCaret
{ caret = Accordion.defaultCaret
, content = \_ -> Html.text "🍊 I don't know anything about oranges! Except: YUM! 🍊"
, entryClass = "accordion-example"
, headerContent = Html.text "Oranges"
@ -355,11 +346,8 @@ initSettings =
controlIcon : Control ( String, Bool -> Html Msg )
controlIcon =
Control.choice
[ ( "DisclosureIndicator"
, Control.value
( "DisclosureIndicator.large [ Css.marginRight (Css.px 8) ] >> Svg.toHtml"
, DisclosureIndicator.large [ Css.marginRight (Css.px 8) ] >> Svg.toHtml
)
[ ( "defaultCaret"
, Control.value ( "Accordion.defaultCaret", Accordion.defaultCaret )
)
, ( "none", Control.value ( "\\_ -> text \"\"", \_ -> Html.text "" ) )
, ( "UiIcon"