@@ -0,0 +1,37 @@
1+module HeroUI.Card.Stories (basic) where
3+import Prelude hiding (div)
5+import Data.Generic.Rep (class Generic)
6+import React.Basic (JSX)
7+import HeroUI.Card as Card
8+import Yoga.React (component)
9+import Yoga.React.DOM.HTML (div)
10+import Yoga.React.DOM.Internal (text)
11+import YogaStories.Controls (enum)
12+import YogaStories.Story (story)
14+data Variant = Default | Secondary | Tertiary | Transparent
16+derive instance Generic Variant _
18+toVariant :: Variant -> Card.Variant
20+ Default -> Card.Default
21+ Secondary -> Card.Secondary
22+ Tertiary -> Card.Tertiary
23+ Transparent -> Card.Transparent
25+mkCard :: { title :: String, body :: String, variant :: Variant } -> JSX
26+mkCard = component "CardStory" \props -> React.do
27+ pure $ div { className: "dark bg-background text-foreground p-6 rounded-lg" }
28+ [ Card.card { variant: toVariant props.variant, className: "max-w-sm" }
29+ [ Card.cardHeader {} [ Card.cardTitle {} (text props.title) ]
30+ , Card.cardContent {} (text props.body)
31+ , Card.cardFooter {} (text "Footer")
36+basic = story "basic" mkCard
37+ { title: "Card title", body: "Some descriptive body text.", variant: enum Default }