{-# LANGUAGE OverloadedLabels #-}

module WikiMusic.SSR.View.Components.DetailList where

import Principium
import Text.Blaze.Html5 as H

detailListEntry' :: ViewVars -> Bool -> Text -> Html -> Html
detailListEntry' :: ViewVars -> Bool -> Text -> Html -> Html
detailListEntry' ViewVars
vv Bool
isMono Text
key Html
val =
  Html -> Html
H.div
    (Html -> Html) -> Attribute -> Html -> Html
forall h. Attributable h => h -> Attribute -> h
! [Text] -> Attribute
css'
      [ Text
"flex",
        Text
"flex-row",
        Text
"gap-4",
        Text
"w-fit",
        Text
"font-mono"
      ]
    (Html -> Html) -> Html -> Html
forall a b. (a -> b) -> a -> b
$ do
      (Html -> Html
dt (Html -> Html) -> Attribute -> Html -> Html
forall h. Attributable h => h -> Attribute -> h
! [Text] -> Attribute
css' [Text
"text-sm", Text
"font-bold", if ViewVars
vv ViewVars -> Optic' A_Lens NoIx ViewVars Text -> Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ViewVars ViewVars UiMode UiMode
#uiMode Optic A_Lens NoIx ViewVars ViewVars UiMode UiMode
-> Optic An_Iso NoIx UiMode UiMode Text Text
-> Optic' A_Lens NoIx ViewVars Text
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic An_Iso NoIx UiMode UiMode Text Text
#value Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
"dark" then Text
"text-stone-300" else Text
"text-stone-700"]) (Html -> Html) -> (Text -> Html) -> Text -> Html
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> Html
text (Text -> Html) -> Text -> Html
forall a b. (a -> b) -> a -> b
$ Text
key
      Html -> Html
dd (Html -> Html) -> Attribute -> Html -> Html
forall h. Attributable h => h -> Attribute -> h
! [Text] -> Attribute
css' [Text
"text-sm", Text
"break-all", if ViewVars
vv ViewVars -> Optic' A_Lens NoIx ViewVars Text -> Text
forall k s (is :: IxList) a.
Is k A_Getter =>
s -> Optic' k is s a -> a
^. Optic A_Lens NoIx ViewVars ViewVars UiMode UiMode
#uiMode Optic A_Lens NoIx ViewVars ViewVars UiMode UiMode
-> Optic An_Iso NoIx UiMode UiMode Text Text
-> Optic' A_Lens NoIx ViewVars Text
forall k l m (is :: IxList) (js :: IxList) (ks :: IxList) s t u v a
       b.
(JoinKinds k l m, AppendIndices is js ks) =>
Optic k is s t u v -> Optic l js u v a b -> Optic m ks s t a b
% Optic An_Iso NoIx UiMode UiMode Text Text
#value Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
"dark" then Text
"text-gray-300" else Text
"text-gray-700", if Bool
isMono then Text
"font-mono" else Text
"font-mono"] (Html -> Html) -> Html -> Html
forall a b. (a -> b) -> a -> b
$ Html
val

detailListEntry :: ViewVars -> Text -> Html -> Html
detailListEntry :: ViewVars -> Text -> Html -> Html
detailListEntry ViewVars
vv = ViewVars -> Bool -> Text -> Html -> Html
detailListEntry' ViewVars
vv Bool
False

monoDetailListEntry :: ViewVars -> Text -> Html -> Html
monoDetailListEntry :: ViewVars -> Text -> Html -> Html
monoDetailListEntry ViewVars
vv = ViewVars -> Bool -> Text -> Html -> Html
detailListEntry' ViewVars
vv Bool
True

detailList :: Html -> Html
detailList :: Html -> Html
detailList = Html -> Html
dl (Html -> Html) -> Attribute -> Html -> Html
forall h. Attributable h => h -> Attribute -> h
! [Text] -> Attribute
css' [Text
"flex", Text
"flex-col", Text
"gap-2", Text
"justify-start"]