miso-css 0.0.2 → 0.0.3
raw patch · 15 files changed
+566/−149 lines, 15 filesdep ~misoPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: miso
API changes (from Hackage documentation)
- Miso.Css.Event: instance GHC.Classes.Eq a => GHC.Classes.Eq (Miso.Css.Event.AtomicEvent a)
- Miso.Css.Event: instance GHC.Classes.Ord a => GHC.Classes.Ord (Miso.Css.Event.AtomicEvent a)
- Miso.Css.Event: instance GHC.Internal.Show.Show a => GHC.Internal.Show.Show (Miso.Css.Event.AtomicEvent a)
- Miso.Css.Event: instance Miso.Css.Event.EventFactory (Miso.Css.Event.AtomicEvent a) a
- Miso.Css.Event: instance Miso.Css.Event.EventFactory (Miso.Css.Event.VarEvent a) a
- Miso.Css.Style.E: instance GHC.Internal.Data.String.IsString (Miso.Css.Style.E.E model action Miso.Css.Style.E.CD 'Miso.Css.Style.E.Atomic 'GHC.Internal.Maybe.Nothing 'GHC.Internal.Maybe.Nothing '[] Miso.Css.Style.E.EmptyKids '[] '[] '[])
+ Miso.Css: [AccessKeyE] :: forall (nc :: Char) ctx props model action (en :: Symbol) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]]) (wantedIds :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (ak :: [Char]). KnownChar nc => Proxy nc -> E ctx props model action en 'Composite re ei atrs knownIds cls l children wantedIds usedTabIndexes ak -> E ctx props model action en 'Composite re ei atrs knownIds cls l children wantedIds usedTabIndexes (nc ': ak)
+ Miso.Css: [AddAriaIdAtrE] :: forall (a :: Symbol) (fi :: Symbol) ctx props model action (en :: Symbol) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]]) (for :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (usedAccessKey :: [Char]). (KnownSymbol a, KnownSymbol fi) => Proxy a -> Proxy fi -> E ctx props model action en 'Composite re ei atrs knownIds cls l children for usedTabIndexes usedAccessKey -> E ctx props model action en 'Composite re ei atrs knownIds cls l children (AddForId fi for knownIds) usedTabIndexes usedAccessKey
+ Miso.Css: [AddForAtrE] :: forall (fi :: Symbol) ctx props model action (en :: Symbol) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]]) (for :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (usedAccessKey :: [Char]). KnownSymbol fi => Proxy fi -> E ctx props model action en 'Composite re ei atrs knownIds cls l children for usedTabIndexes usedAccessKey -> E ctx props model action en 'Composite re ei atrs knownIds cls l children (AddForId fi for knownIds) usedTabIndexes usedAccessKey
+ Miso.Css: [TabIndexE] :: forall (ti :: Nat) ctx props model action (en :: Symbol) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]]) (wantedIds :: [Symbol]) (tabx :: [Maybe Nat]) (usedAccessKey :: [Char]). KnownNat ti => Proxy ti -> E ctx props model action en 'Composite re ei atrs knownIds cls l children wantedIds tabx usedAccessKey -> E ctx props model action en 'Composite re ei atrs knownIds cls l children wantedIds ('Just ti ': tabx) usedAccessKey
+ Miso.Css: [TabIndexMinus1E] :: forall ctx props model action (en :: Symbol) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]]) (wantedIds :: [Symbol]) (tabx :: [Maybe Natural]) (usedAccessKey :: [Char]). E ctx props model action en 'Composite re ei atrs knownIds cls l children wantedIds tabx usedAccessKey -> E ctx props model action en 'Composite re ei atrs knownIds cls l children wantedIds (('Nothing :: Maybe Natural) ': tabx) usedAccessKey
+ Miso.Css.Event: instance Miso.Css.Event.EventFactory (Miso.Css.Event.AtomicEvent m a) m a
+ Miso.Css.Event: instance Miso.Css.Event.EventFactory (Miso.Css.Event.VarEvent m a) m a
+ Miso.Css.Event: instance forall k (m :: k) a. GHC.Classes.Eq a => GHC.Classes.Eq (Miso.Css.Event.AtomicEvent m a)
+ Miso.Css.Event: instance forall k (m :: k) a. GHC.Classes.Ord a => GHC.Classes.Ord (Miso.Css.Event.AtomicEvent m a)
+ Miso.Css.Event: instance forall k (m :: k) a. GHC.Internal.Show.Show a => GHC.Internal.Show.Show (Miso.Css.Event.AtomicEvent m a)
+ Miso.Css.Miso: injAppElemAtr :: ToJSON v => MisoString -> v -> View ctx props model action -> View ctx props model action
+ Miso.Css.Operator: accessKey :: forall ctx props model action (en :: Symbol) (r :: Maybe Root) (ei :: Maybe Symbol) (catrs :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (cfor :: [Symbol]) (tabx :: [Maybe Natural]) (ak :: [Char]). KnownSymbol en => E ctx props model action en 'Composite r ei catrs kids cls eacs children cfor tabx ak -> forall (nc :: Char) -> KnownChar nc => E ctx props model action en 'Composite r ei catrs kids cls eacs children cfor tabx (nc ': ak)
+ Miso.Css.Operator: ariaDescribedBy :: forall ctx props model action (en :: Symbol) (r :: Maybe Root) (ei :: Maybe Symbol) (catrs :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (ee :: Symbol) (cfor :: [Symbol]) (tabx :: [Maybe Natural]) (ak :: [Char]). (KnownSymbol en, KnownSymbol ee) => E ctx props model action en 'Composite r ei catrs kids cls eacs children cfor tabx ak -> forall fi -> fi ~ ElementId ee => E ctx props model action en 'Composite r ei catrs kids cls eacs children (AddForId ee cfor kids) tabx ak
+ Miso.Css.Operator: ariaLabelledBy :: forall ctx props model action (en :: Symbol) (r :: Maybe Root) (ei :: Maybe Symbol) (catrs :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (ee :: Symbol) (cfor :: [Symbol]) (tabx :: [Maybe Natural]) (ak :: [Char]). (KnownSymbol en, KnownSymbol ee) => E ctx props model action en 'Composite r ei catrs kids cls eacs children cfor tabx ak -> forall fi -> fi ~ ElementId ee => E ctx props model action en 'Composite r ei catrs kids cls eacs children (AddForId ee cfor kids) tabx ak
+ Miso.Css.Operator: for :: forall ctx props model action (en :: Symbol) (r :: Maybe Root) (ei :: Maybe Symbol) (catrs :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (ee :: Symbol) (cfor :: [Symbol]) (tabx :: [Maybe Natural]) (ak :: [Char]). (KnownSymbol en, KnownSymbol ee) => E ctx props model action en 'Composite r ei catrs kids cls eacs children cfor tabx ak -> forall fi -> fi ~ ElementId ee => E ctx props model action en 'Composite r ei catrs kids cls eacs children (AddForId ee cfor kids) tabx ak
+ Miso.Css.Operator: tabIndex :: forall ctx props model action (en :: Symbol) (r :: Maybe Root) (ei :: Maybe Symbol) (catrs :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (cfor :: [Symbol]) (tabx :: [Maybe Natural]) (ak :: [Char]). KnownSymbol en => E ctx props model action en 'Composite r ei catrs kids cls eacs children cfor tabx ak -> forall (ti :: Nat) -> KnownNat ti => E ctx props model action en 'Composite r ei catrs kids cls eacs children cfor ('Just ti ': tabx) ak
+ Miso.Css.Operator: tabIndexMinus1 :: forall ctx props model action (en :: Symbol) (r :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (cfor :: [Symbol]) (tabx :: [Maybe Natural]) (ak :: [Char]). E ctx props model action en 'Composite r ei atrs kids cls eacs children cfor tabx ak -> E ctx props model action en 'Composite r ei atrs kids cls eacs children cfor (('Nothing :: Maybe Natural) ': tabx) ak
+ Miso.Css.Style.E: [AccessKeyE] :: forall (nc :: Char) ctx props model action (en :: Symbol) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]]) (wantedIds :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (ak :: [Char]). KnownChar nc => Proxy nc -> E ctx props model action en 'Composite re ei atrs knownIds cls l children wantedIds usedTabIndexes ak -> E ctx props model action en 'Composite re ei atrs knownIds cls l children wantedIds usedTabIndexes (nc ': ak)
+ Miso.Css.Style.E: [AddAriaIdAtrE] :: forall (a :: Symbol) (fi :: Symbol) ctx props model action (en :: Symbol) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]]) (for :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (usedAccessKey :: [Char]). (KnownSymbol a, KnownSymbol fi) => Proxy a -> Proxy fi -> E ctx props model action en 'Composite re ei atrs knownIds cls l children for usedTabIndexes usedAccessKey -> E ctx props model action en 'Composite re ei atrs knownIds cls l children (AddForId fi for knownIds) usedTabIndexes usedAccessKey
+ Miso.Css.Style.E: [AddForAtrE] :: forall (fi :: Symbol) ctx props model action (en :: Symbol) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]]) (for :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (usedAccessKey :: [Char]). KnownSymbol fi => Proxy fi -> E ctx props model action en 'Composite re ei atrs knownIds cls l children for usedTabIndexes usedAccessKey -> E ctx props model action en 'Composite re ei atrs knownIds cls l children (AddForId fi for knownIds) usedTabIndexes usedAccessKey
+ Miso.Css.Style.E: [TabIndexE] :: forall (ti :: Nat) ctx props model action (en :: Symbol) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]]) (wantedIds :: [Symbol]) (tabx :: [Maybe Nat]) (usedAccessKey :: [Char]). KnownNat ti => Proxy ti -> E ctx props model action en 'Composite re ei atrs knownIds cls l children wantedIds tabx usedAccessKey -> E ctx props model action en 'Composite re ei atrs knownIds cls l children wantedIds ('Just ti ': tabx) usedAccessKey
+ Miso.Css.Style.E: [TabIndexMinus1E] :: forall ctx props model action (en :: Symbol) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]]) (wantedIds :: [Symbol]) (tabx :: [Maybe Natural]) (usedAccessKey :: [Char]). E ctx props model action en 'Composite re ei atrs knownIds cls l children wantedIds tabx usedAccessKey -> E ctx props model action en 'Composite re ei atrs knownIds cls l children wantedIds (('Nothing :: Maybe Natural) ': tabx) usedAccessKey
+ Miso.Css.Style.E: data TabIdx (ei :: Natural)
+ Miso.Css.Style.E: instance GHC.Internal.Data.String.IsString (Miso.Css.Style.E.E ctx props model action Miso.Css.Style.E.CD 'Miso.Css.Style.E.Atomic 'GHC.Internal.Maybe.Nothing 'GHC.Internal.Maybe.Nothing '[] Miso.Css.Style.E.EmptyKids '[] '[] '[] '[] '[] '[])
+ Miso.Css.Tags: type family Help ctx props model action (tag :: Symbol)
- Miso.Css: [AddAtrE] :: forall (k :: Symbol) v model action (en :: Symbol) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs1 :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]). (KnownSymbol k, ToJSON v) => ElAtr k v -> E model action en 'Composite re ei atrs1 knownIds cls eacs children -> E model action en 'Composite re ei (k ': atrs1) knownIds cls (ApplyClass ('[] :: [[Seg]]) ('A k) eacs) children
+ Miso.Css: [AddAtrE] :: forall (k :: Symbol) v ctx props model action (en :: Symbol) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs1 :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (wantedIds :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (usedAccessKey :: [Char]). (KnownSymbol k, ToJSON v, RegularAtr k ~ "") => ElAtr k v -> E ctx props model action en 'Composite re ei atrs1 knownIds cls eacs children wantedIds usedTabIndexes usedAccessKey -> E ctx props model action en 'Composite re ei (k ': atrs1) knownIds cls (ApplyClass ('[] :: [[Seg]]) ('A k) eacs) children wantedIds usedTabIndexes usedAccessKey
- Miso.Css: [AppClsE] :: forall (en :: Symbol) (c :: Symbol) (p :: [[Seg]]) model action (re :: Maybe Root) (ei :: Maybe Symbol) (atrs1 :: [Symbol]) (knownIds :: KnownIDS) (cls1 :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]). (KnownSymbol en, KnownSymbol c) => OrClass p c -> E model action en 'Composite re ei atrs1 knownIds cls1 eacs children -> E model action en 'Composite re ei ("class" ': atrs1) knownIds (c ': cls1) (ConstraintsAfterClassApp ei en atrs1 cls1 p c eacs) children
+ Miso.Css: [AppClsE] :: forall (en :: Symbol) (c :: Symbol) (p :: [[Seg]]) ctx props model action (re :: Maybe Root) (ei :: Maybe Symbol) (atrs1 :: [Symbol]) (knownIds :: KnownIDS) (cls1 :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (wantedIds :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (usedAccessKey :: [Char]). (KnownSymbol en, KnownSymbol c) => OrClass p c -> E ctx props model action en 'Composite re ei atrs1 knownIds cls1 eacs children wantedIds usedTabIndexes usedAccessKey -> E ctx props model action en 'Composite re ei ("class" ': atrs1) knownIds (c ': cls1) (ConstraintsAfterClassApp ei en atrs1 cls1 p c eacs) children wantedIds usedTabIndexes usedAccessKey
- Miso.Css: [AppendChildE] :: forall (ce :: Symbol) model action (cs :: ElementStructure) (ci :: Maybe Symbol) (cAtrs :: [Symbol]) (ckIds :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]) (en :: Symbol) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (pkIds :: KnownIDS) (cls :: [Symbol]) (peacs :: [[BRANCH]]) (pchildren :: [[SubSeg]]). KnownSymbol ce => E model action ce cs ('Nothing :: Maybe Root) ci cAtrs ckIds ccls ceacs cchildren -> E model action en 'Composite re ei atrs pkIds cls peacs pchildren -> E model action en 'Composite re ei atrs (MergeKids ckIds pkIds) cls (ConstraintsAfterAppend pchildren ceacs ei en atrs cls peacs) (ChildrenConstrAfterAppend ci ce ccls pchildren)
+ Miso.Css: [AppendChildE] :: forall (ce :: Symbol) ctx props model action (cs :: ElementStructure) (ci :: Maybe Symbol) (cAtrs :: [Symbol]) (ckIds :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]) (cfor :: [Symbol]) (ctabx :: [Maybe Natural]) (cak :: [Char]) (en :: Symbol) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (pkIds :: KnownIDS) (cls :: [Symbol]) (peacs :: [[BRANCH]]) (pchildren :: [[SubSeg]]) (pfor :: [Symbol]) (ptabx :: [Maybe Natural]) (pak :: [Char]). KnownSymbol ce => E ctx props model action ce cs ('Nothing :: Maybe Root) ci cAtrs ckIds ccls ceacs cchildren cfor ctabx cak -> E ctx props model action en 'Composite re ei atrs pkIds cls peacs pchildren pfor ptabx pak -> E ctx props model action en 'Composite re ei atrs (MergeKids ckIds pkIds) cls (ConstraintsAfterAppend pchildren ceacs ei en atrs cls peacs) (ChildrenConstrAfterAppend ci ce ccls pchildren) (MergeFors pkIds ckIds pfor cfor) (Append ptabx ctabx) (Append pak cak)
- Miso.Css: [BindEventE] :: forall ef action model (en :: Symbol) (es :: ElementStructure) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]]). EventFactory ef action => ef -> E model action en es re ei atrs knownIds cls l children -> E model action en es re ei atrs knownIds cls l children
+ Miso.Css: [BindEventE] :: forall ef model action ctx props (en :: Symbol) (es :: ElementStructure) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]]) (wantedIds :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (usedAccessKey :: [Char]). EventFactory ef model action => ef -> E ctx props model action en es re ei atrs knownIds cls l children wantedIds usedTabIndexes usedAccessKey -> E ctx props model action en es re ei atrs knownIds cls l children wantedIds usedTabIndexes usedAccessKey
- Miso.Css: [CDataE] :: forall model action. MisoString -> E model action "CDATA" 'Atomic ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) ('KnownIds ('[] :: [DuplicatedID]) ('[] :: [Symbol])) ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css: [CDataE] :: forall ctx props model action. MisoString -> E ctx props model action "CDATA" 'Atomic ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) ('KnownIds ('[] :: [DuplicatedID]) ('[] :: [Symbol])) ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]]) ('[] :: [Symbol]) ('[] :: [Maybe Natural]) ('[] :: [Char])
- Miso.Css: [IdE] :: forall (ei1 :: Symbol) model action (en :: Symbol) (re :: Maybe Root) (atrs1 :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]). KnownSymbol ei1 => Proxy ei1 -> E model action en 'Composite re ('Nothing :: Maybe Symbol) atrs1 kids cls eacs children -> E model action en 'Composite re ('Just ei1) ("id" ': atrs1) (AddTagId ei1 kids) cls (ConstraintsAfteId ei1 eacs) children
+ Miso.Css: [IdE] :: forall (ei1 :: Symbol) ctx props model action (en :: Symbol) (re :: Maybe Root) (atrs1 :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (for :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (usedAccessKey :: [Char]). KnownSymbol ei1 => Proxy ei1 -> E ctx props model action en 'Composite re ('Nothing :: Maybe Symbol) atrs1 kids cls eacs children for usedTabIndexes usedAccessKey -> E ctx props model action en 'Composite re ('Just ei1) ("id" ': atrs1) (AddTagId ei1 kids) cls (ConstraintsAfteId ei1 eacs) children (FilterOut ei1 for) usedTabIndexes usedAccessKey
- Miso.Css: [NilE] :: forall (en :: Symbol) model action. KnownSymbol en => Proxy en -> E model action en 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) ('KnownIds ('[] :: [DuplicatedID]) ('[] :: [Symbol])) ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css: [NilE] :: forall (en :: Symbol) ctx props model action. KnownSymbol en => Proxy en -> E ctx props model action en 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) ('KnownIds ('[] :: [DuplicatedID]) ('[] :: [Symbol])) ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]]) ('[] :: [Symbol]) ('[] :: [Maybe Natural]) ('[] :: [Char])
- Miso.Css: [RawMisoView] :: forall model action. View model action -> E model action "RawMisoView" 'Atomic ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) ('KnownIds ('[] :: [DuplicatedID]) ('[] :: [Symbol])) ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css: [RawMisoView] :: forall ctx props model action. View ctx props model action -> E ctx props model action "RawMisoView" 'Atomic ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) ('KnownIds ('[] :: [DuplicatedID]) ('[] :: [Symbol])) ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]]) ('[] :: [Symbol]) ('[] :: [Maybe Natural]) ('[] :: [Char])
- Miso.Css: [SealDomE] :: forall model action (ce :: Symbol) (cs :: ElementStructure) (ci :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]). E model action ce cs ('Nothing :: Maybe Root) ci atrs knownIds ccls ceacs cchildren -> E model action "html" 'Composite ('Just 'Root) ('Nothing :: Maybe Symbol) atrs knownIds ('[] :: [Symbol]) (MapMaybeFilterOutFullyMatchedHead ('[] :: [[SubSeg]]) (ApplyClass ('[] :: [[Seg]]) ('T HTML) (ApplyClass ('[] :: [[Seg]]) 'R ceacs))) '[PrependMb (MbSymToMbI ci) ('T ce ': SymsToSubSeg ccls)]
+ Miso.Css: [SealDomE] :: forall ctx props model action (ce :: Symbol) (cs :: ElementStructure) (ci :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]) (wantedIds :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (usedAccessKey :: [Char]). E ctx props model action ce cs ('Nothing :: Maybe Root) ci atrs knownIds ccls ceacs cchildren wantedIds usedTabIndexes usedAccessKey -> E ctx props model action "html" 'Composite ('Just 'Root) ('Nothing :: Maybe Symbol) atrs knownIds ('[] :: [Symbol]) (MapMaybeFilterOutFullyMatchedHead ('[] :: [[SubSeg]]) (ApplyClass ('[] :: [[Seg]]) ('T HTML) (ApplyClass ('[] :: [[Seg]]) 'R ceacs))) '[PrependMb (MbSymToMbI ci) ('T ce ': SymsToSubSeg ccls)] wantedIds usedTabIndexes usedAccessKey
- Miso.Css: [VirtualBodyE] :: forall model action (ce :: Symbol) (cs :: ElementStructure) (ci :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]). E model action ce cs ('Nothing :: Maybe Root) ci atrs knownIds ccls ceacs cchildren -> E model action "body" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) atrs knownIds ('[] :: [Symbol]) (AppendChild ('[] :: [[SubSeg]]) ceacs '[ 'T BODY] ('[] :: [[BRANCH]])) '[PrependMb (MbSymToMbI ci) ('T ce ': SymsToSubSeg ccls)]
+ Miso.Css: [VirtualBodyE] :: forall ctx props model action (ce :: Symbol) (cs :: ElementStructure) (ci :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]) (wantedIds :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (usedAccessKey :: [Char]). E ctx props model action ce cs ('Nothing :: Maybe Root) ci atrs knownIds ccls ceacs cchildren wantedIds usedTabIndexes usedAccessKey -> E ctx props model action "body" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) atrs knownIds ('[] :: [Symbol]) (AppendChild ('[] :: [[SubSeg]]) ceacs '[ 'T BODY] ('[] :: [[BRANCH]])) '[PrependMb (MbSymToMbI ci) ('T ce ': SymsToSubSeg ccls)] wantedIds usedTabIndexes usedAccessKey
- Miso.Css: data E model action (en :: Symbol) (es :: ElementStructure) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]])
+ Miso.Css: data E ctx props model action (en :: Symbol) (es :: ElementStructure) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]]) (wantedIds :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (usedAccessKey :: [Char])
- Miso.Css.Event: AtomicEvent :: MisoString -> a -> AtomicEvent a
+ Miso.Css.Event: AtomicEvent :: MisoString -> a -> AtomicEvent (m :: k) a
- Miso.Css.Event: VarEvent :: MisoString -> Decoder r -> (r -> DOMRef -> a) -> VarEvent a
+ Miso.Css.Event: VarEvent :: MisoString -> Decoder r -> (r -> m -> DOMRef -> a) -> VarEvent m a
- Miso.Css.Event: class EventFactory ef a | ef -> a
+ Miso.Css.Event: class EventFactory ef m a | ef -> m a
- Miso.Css.Event: data AtomicEvent a
+ Miso.Css.Event: data AtomicEvent (m :: k) a
- Miso.Css.Event: data VarEvent a
+ Miso.Css.Event: data VarEvent m a
- Miso.Css.Event: eventName :: EventFactory ef a => ef -> MisoString
+ Miso.Css.Event: eventName :: EventFactory ef m a => ef -> MisoString
- Miso.Css.Event: mkActionAttribute :: EventFactory ef a => ef -> Attribute a
+ Miso.Css.Event: mkActionAttribute :: EventFactory ef m a => ef -> Attribute m a
- Miso.Css.Event: onChange :: (MisoString -> a) -> VarEvent a
+ Miso.Css.Event: onChange :: forall m a. (MisoString -> a) -> VarEvent m a
- Miso.Css.Event: onClick :: a -> AtomicEvent a
+ Miso.Css.Event: onClick :: forall {k} (m :: k) a. a -> AtomicEvent m a
- Miso.Css.Event: onInput :: (MisoString -> a) -> VarEvent a
+ Miso.Css.Event: onInput :: forall m a. (MisoString -> a) -> VarEvent m a
- Miso.Css.Event: onKeyPress :: (KeyCode -> a) -> VarEvent a
+ Miso.Css.Event: onKeyPress :: forall m a. (KeyCode -> a) -> VarEvent m a
- Miso.Css.Event: onKeyUp :: (KeyCode -> a) -> VarEvent a
+ Miso.Css.Event: onKeyUp :: (KeyCode -> a) -> VarEvent m a
- Miso.Css.Event: onVar :: Decoder r -> MisoString -> (r -> a) -> VarEvent a
+ Miso.Css.Event: onVar :: Decoder r -> MisoString -> (r -> a) -> VarEvent m a
- Miso.Css.Miso: appChild :: Tagged Child (View model action) -> View model action -> View model action
+ Miso.Css.Miso: appChild :: Tagged Child (View ctx props model action) -> View ctx props model action -> View ctx props model action
- Miso.Css.Miso: body_ :: forall model action (ce :: Symbol) (cs :: ElementStructure) (ci :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]). E model action ce cs ('Nothing :: Maybe Root) ci atrs knownIds ccls ceacs cchildren -> E model action BODY 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) atrs knownIds ('[] :: [Symbol]) (AppendChild ('[] :: [[SubSeg]]) ceacs '[ 'T BODY] ('[] :: [[BRANCH]])) '[PrependMb (MbSymToMbI ci) ('T ce ': SymsToSubSeg ccls)]
+ Miso.Css.Miso: body_ :: forall ctx props model action (ce :: Symbol) (cs :: ElementStructure) (ci :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]) (cfor :: [Symbol]) (tabx :: [Maybe Natural]) (ak :: [Char]). E ctx props model action ce cs ('Nothing :: Maybe Root) ci atrs knownIds ccls ceacs cchildren cfor tabx ak -> E ctx props model action BODY 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) atrs knownIds ('[] :: [Symbol]) (AppendChild ('[] :: [[SubSeg]]) ceacs '[ 'T BODY] ('[] :: [[BRANCH]])) '[PrependMb (MbSymToMbI ci) ('T ce ': SymsToSubSeg ccls)] cfor tabx ak
- Miso.Css.Miso: eToView :: forall model action (en :: Symbol) (es :: ElementStructure) (r :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]). E model action en es r ei atrs knownIds cls eacs children -> View model action
+ Miso.Css.Miso: eToView :: forall ctx props model action (en :: Symbol) (es :: ElementStructure) (r :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (for :: [Symbol]) (tabx :: [Maybe Natural]) (ak :: [Char]). E ctx props model action en es r ei atrs knownIds cls eacs children for tabx ak -> View ctx props model action
- Miso.Css.Miso: html_ :: forall model action (ce :: Symbol) (cs :: ElementStructure) (ci :: Maybe Symbol) (catrs :: [Symbol]) (ckids :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]). E model action ce cs ('Nothing :: Maybe Root) ci catrs ckids ccls ceacs cchildren -> E model action HTML 'Composite ('Just 'Root) ('Nothing :: Maybe Symbol) catrs ckids ('[] :: [Symbol]) (MapMaybeFilterOutFullyMatchedHead ('[] :: [[SubSeg]]) (ApplyClass ('[] :: [[Seg]]) ('T HTML) (ApplyClass ('[] :: [[Seg]]) 'R ceacs))) '[PrependMb (MbSymToMbI ci) ('T ce ': SymsToSubSeg ccls)]
+ Miso.Css.Miso: html_ :: forall ctx props model action (ce :: Symbol) (cs :: ElementStructure) (ci :: Maybe Symbol) (catrs :: [Symbol]) (ckids :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]) (cfor :: [Symbol]) (tabx :: [Maybe Natural]) (ak :: [Char]). E ctx props model action ce cs ('Nothing :: Maybe Root) ci catrs ckids ccls ceacs cchildren cfor tabx ak -> E ctx props model action HTML 'Composite ('Just 'Root) ('Nothing :: Maybe Symbol) catrs ckids ('[] :: [Symbol]) (MapMaybeFilterOutFullyMatchedHead ('[] :: [[SubSeg]]) (ApplyClass ('[] :: [[Seg]]) ('T HTML) (ApplyClass ('[] :: [[Seg]]) 'R ceacs))) '[PrependMb (MbSymToMbI ci) ('T ce ': SymsToSubSeg ccls)] cfor tabx ak
- Miso.Css.Miso: injectClass :: MisoString -> View model action -> View model action
+ Miso.Css.Miso: injectClass :: MisoString -> View ctx props model action -> View ctx props model action
- Miso.Css.Miso: injectElementAtr :: ToJSON v => MisoString -> v -> View model action -> View model action
+ Miso.Css.Miso: injectElementAtr :: ToJSON v => MisoString -> v -> View ctx props model action -> View ctx props model action
- Miso.Css.Miso: injectElementId :: MisoString -> View model action -> View model action
+ Miso.Css.Miso: injectElementId :: MisoString -> View ctx props model action -> View ctx props model action
- Miso.Css.Miso: injectEventHandler :: EventFactory ef action => ef -> View model action -> View model action
+ Miso.Css.Miso: injectEventHandler :: EventFactory ef model action => ef -> View ctx props model action -> View ctx props model action
- Miso.Css.Miso: page :: forall model action (ce :: Symbol) (cs :: ElementStructure) (ci :: Maybe Symbol) (catrs :: [Symbol]) (ckids :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]). E model action ce cs ('Nothing :: Maybe Root) ci catrs ckids ccls ceacs cchildren -> E model action HTML 'Composite ('Just 'Root) ('Nothing :: Maybe Symbol) catrs ckids ('[] :: [Symbol]) (MapMaybeFilterOutFullyMatchedHead ('[] :: [[SubSeg]]) (ApplyClass ('[] :: [[Seg]]) ('T HTML) (ApplyClass ('[] :: [[Seg]]) 'R (Append (MapMaybeFilterOutFullyMatchedHead ('[] :: [[SubSeg]]) (ApplyClass ('[] :: [[Seg]]) ('T BODY) ceacs)) ('[] :: [[BRANCH]]))))) '[ '[ 'T BODY]]
+ Miso.Css.Miso: page :: forall ctx props model action (ce :: Symbol) (cs :: ElementStructure) (ci :: Maybe Symbol) (catrs :: [Symbol]) (ckids :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]) (cfor :: [Symbol]) (tabx :: [Maybe Natural]) (ak :: [Char]). E ctx props model action ce cs ('Nothing :: Maybe Root) ci catrs ckids ccls ceacs cchildren cfor tabx ak -> E ctx props model action HTML 'Composite ('Just 'Root) ('Nothing :: Maybe Symbol) catrs ckids ('[] :: [Symbol]) (MapMaybeFilterOutFullyMatchedHead ('[] :: [[SubSeg]]) (ApplyClass ('[] :: [[Seg]]) ('T HTML) (ApplyClass ('[] :: [[Seg]]) 'R (Append (MapMaybeFilterOutFullyMatchedHead ('[] :: [[SubSeg]]) (ApplyClass ('[] :: [[Seg]]) ('T BODY) ceacs)) ('[] :: [[BRANCH]]))))) '[ '[ 'T BODY]] cfor tabx ak
- Miso.Css.Miso: toView :: forall m a (en :: Symbol) (es :: ElementStructure) (r :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (ecs :: [[BRANCH]]) (children :: [[SubSeg]]). (RemoveMatchScope (UnwrapBranches (MapMaybeFilterOutFullyMatchedHead ('[] :: [[SubSeg]]) ecs)) ~ ('[] :: [[[([SubSeg], [SubSeg], [[[SubSeg]]])]]]), DuplicatedIds kids ~ ('[] :: [DuplicatedID])) => E m a en es r ei atrs kids cls ecs children -> View m a
+ Miso.Css.Miso: toView :: forall ctx prs m a (en :: Symbol) (es :: ElementStructure) (r :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (ecs :: [[BRANCH]]) (children :: [[SubSeg]]) (for :: [Symbol]) (tabx :: [Maybe Natural]) (ak :: [Char]). (RemoveMatchScope (UnwrapBranches (MapMaybeFilterOutFullyMatchedHead ('[] :: [[SubSeg]]) ecs)) ~ ('[] :: [[[([SubSeg], [SubSeg], [[[SubSeg]]])]]]), DuplicatedIds kids ~ ('[] :: [DuplicatedID]), for ~ ('[] :: [Symbol]), TabIndexesConsistent tabx ~ ('[] :: [Natural]), AccessKeyConsistent ak ~ ('[] :: [Char])) => E ctx prs m a en es r ei atrs kids cls ecs children for tabx ak -> View ctx prs m a
- Miso.Css.Miso: toView' :: forall m a (en :: Symbol) (es :: ElementStructure) (r :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (ecs :: [[BRANCH]]) (children :: [[SubSeg]]). (UnwrapBranches (MapMaybeFilterOutFullyMatchedHead ('[] :: [[SubSeg]]) ecs) ~ ('[] :: [[[Seg]]]), DuplicatedIds kids ~ ('[] :: [DuplicatedID])) => E m a en es r ei atrs kids cls ecs children -> View m a
+ Miso.Css.Miso: toView' :: forall ctx prs m a (en :: Symbol) (es :: ElementStructure) (r :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (ecs :: [[BRANCH]]) (children :: [[SubSeg]]) (for :: [Symbol]) (tabx :: [Maybe Natural]) (ak :: [Char]). (UnwrapBranches (MapMaybeFilterOutFullyMatchedHead ('[] :: [[SubSeg]]) ecs) ~ ('[] :: [[[Seg]]]), DuplicatedIds kids ~ ('[] :: [DuplicatedID]), for ~ ('[] :: [Symbol]), TabIndexesConsistent tabx ~ ('[] :: [Natural]), AccessKeyConsistent ak ~ ('[] :: [Char])) => E ctx prs m a en es r ei atrs kids cls ecs children for tabx ak -> View ctx prs m a
- Miso.Css.Operator: (</) :: forall (cen :: Symbol) model action (pen :: Symbol) (r :: Maybe Root) (pi :: Maybe Symbol) (patrs :: [Symbol]) (pKids :: KnownIDS) (pcls :: [Symbol]) (peacs :: [[BRANCH]]) (pchildren :: [[SubSeg]]) (cs :: ElementStructure) (ci :: Maybe Symbol) (catrs :: [Symbol]) (cKids :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]). KnownSymbol cen => E model action pen 'Composite r pi patrs pKids pcls peacs pchildren -> E model action cen cs ('Nothing :: Maybe Root) ci catrs cKids ccls ceacs cchildren -> E model action pen 'Composite r pi patrs (MergeKids cKids pKids) pcls (ConstraintsAfterAppend pchildren ceacs pi pen patrs pcls peacs) (ChildrenConstrAfterAppend ci cen ccls pchildren)
+ Miso.Css.Operator: (</) :: forall (cen :: Symbol) ctx props model action (pen :: Symbol) (r :: Maybe Root) (pi :: Maybe Symbol) (patrs :: [Symbol]) (pKids :: KnownIDS) (pcls :: [Symbol]) (peacs :: [[BRANCH]]) (pchildren :: [[SubSeg]]) (pfor :: [Symbol]) (ptabx :: [Maybe Natural]) (pak :: [Char]) (cs :: ElementStructure) (ci :: Maybe Symbol) (catrs :: [Symbol]) (cKids :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]) (cfor :: [Symbol]) (ctabx :: [Maybe Natural]) (cak :: [Char]). KnownSymbol cen => E ctx props model action pen 'Composite r pi patrs pKids pcls peacs pchildren pfor ptabx pak -> E ctx props model action cen cs ('Nothing :: Maybe Root) ci catrs cKids ccls ceacs cchildren cfor ctabx cak -> E ctx props model action pen 'Composite r pi patrs (MergeKids cKids pKids) pcls (ConstraintsAfterAppend pchildren ceacs pi pen patrs pcls peacs) (ChildrenConstrAfterAppend ci cen ccls pchildren) (MergeFors pKids cKids pfor cfor) (Append ptabx ctabx) (Append pak cak)
- Miso.Css.Operator: (<@) :: forall model action (pen :: Symbol) (r :: Maybe Root) (pi :: Maybe Symbol) (patrs :: [Symbol]) (kids :: KnownIDS) (pcls :: [Symbol]) (peacs :: [[BRANCH]]) (pchildren :: [[SubSeg]]). E model action pen 'Composite r pi patrs kids pcls peacs pchildren -> E model action CD 'Atomic ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]]) -> E model action pen 'Composite r pi patrs (MergeKids EmptyKids kids) pcls (ConstraintsAfterAppend pchildren ('[] :: [[BRANCH]]) pi pen patrs pcls peacs) (ChildrenConstrAfterAppend ('Nothing :: Maybe Symbol) CD ('[] :: [Symbol]) pchildren)
+ Miso.Css.Operator: (<@) :: forall ctx props model action (pen :: Symbol) (r :: Maybe Root) (pi :: Maybe Symbol) (patrs :: [Symbol]) (kids :: KnownIDS) (pcls :: [Symbol]) (peacs :: [[BRANCH]]) (pchildren :: [[SubSeg]]) (pfor :: [Symbol]) (tabx :: [Maybe Natural]) (ak :: [Char]). E ctx props model action pen 'Composite r pi patrs kids pcls peacs pchildren pfor tabx ak -> E ctx props model action CD 'Atomic ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]]) ('[] :: [Symbol]) ('[] :: [Maybe Natural]) ('[] :: [Char]) -> E ctx props model action pen 'Composite r pi patrs (MergeKids EmptyKids kids) pcls (ConstraintsAfterAppend pchildren ('[] :: [[BRANCH]]) pi pen patrs pcls peacs) (ChildrenConstrAfterAppend ('Nothing :: Maybe Symbol) CD ('[] :: [Symbol]) pchildren) (MergeFors kids EmptyKids pfor ('[] :: [Symbol])) (Append tabx ('[] :: [Maybe Natural])) (Append ak ('[] :: [Char]))
- Miso.Css.Operator: (=!) :: forall ef action model (en :: Symbol) (es :: ElementStructure) (r :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]). EventFactory ef action => E model action en es r ei atrs kids cls eacs children -> ef -> E model action en es r ei atrs kids cls eacs children
+ Miso.Css.Operator: (=!) :: forall ef model action ctx props (en :: Symbol) (es :: ElementStructure) (r :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (cfor :: [Symbol]) (tabx :: [Maybe Natural]) (ak :: [Char]). EventFactory ef model action => E ctx props model action en es r ei atrs kids cls eacs children cfor tabx ak -> ef -> E ctx props model action en es r ei atrs kids cls eacs children cfor tabx ak
- Miso.Css.Operator: (=#) :: forall model action (en :: Symbol) (r :: Maybe Root) (catrs :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (ee :: Symbol). (KnownSymbol en, KnownSymbol ee) => E model action en 'Composite r ('Nothing :: Maybe Symbol) catrs kids cls eacs children -> forall ei -> ei ~ ElementId ee => E model action en 'Composite r ('Just ee) ("id" ': catrs) (AddTagId ee kids) cls (ConstraintsAfteId ee eacs) children
+ Miso.Css.Operator: (=#) :: forall ctx props model action (en :: Symbol) (r :: Maybe Root) (catrs :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (ee :: Symbol) (cfor :: [Symbol]) (tabx :: [Maybe Natural]) (ak :: [Char]). (KnownSymbol en, KnownSymbol ee) => E ctx props model action en 'Composite r ('Nothing :: Maybe Symbol) catrs kids cls eacs children cfor tabx ak -> forall ei -> ei ~ ElementId ee => E ctx props model action en 'Composite r ('Just ee) ("id" ': catrs) (AddTagId ee kids) cls (ConstraintsAfteId ee eacs) children (FilterOut ee cfor) tabx ak
- Miso.Css.Operator: (=.) :: forall (en :: Symbol) (c :: Symbol) model action (r :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (p :: [[Seg]]). (KnownSymbol en, KnownSymbol c) => E model action en 'Composite r ei atrs kids cls eacs children -> OrClass p c -> E model action en 'Composite r ei ("class" ': atrs) kids (c ': cls) (ConstraintsAfterClassApp ei en atrs cls p c eacs) children
+ Miso.Css.Operator: (=.) :: forall (en :: Symbol) (c :: Symbol) ctx props model action (r :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (cfor :: [Symbol]) (tabx :: [Maybe Natural]) (ak :: [Char]) (p :: [[Seg]]). (KnownSymbol en, KnownSymbol c) => E ctx props model action en 'Composite r ei atrs kids cls eacs children cfor tabx ak -> OrClass p c -> E ctx props model action en 'Composite r ei ("class" ': atrs) kids (c ': cls) (ConstraintsAfterClassApp ei en atrs cls p c eacs) children cfor tabx ak
- Miso.Css.Operator: (=<) :: forall model action (pen :: Symbol) (r :: Maybe Root) (pi :: Maybe Symbol) (atrs :: [Symbol]) (kids :: KnownIDS) (pcls :: [Symbol]) (peacs :: [[BRANCH]]) (pchildren :: [[SubSeg]]). E model action pen 'Composite r pi atrs kids pcls peacs pchildren -> View model action -> E model action pen 'Composite r pi atrs (MergeKids EmptyKids kids) pcls (ConstraintsAfterAppend pchildren ('[] :: [[BRANCH]]) pi pen atrs pcls peacs) ('[ 'T RMV] ': pchildren)
+ Miso.Css.Operator: (=<) :: forall ctx props model action (pen :: Symbol) (r :: Maybe Root) (pi :: Maybe Symbol) (atrs :: [Symbol]) (kids :: KnownIDS) (pcls :: [Symbol]) (peacs :: [[BRANCH]]) (pchildren :: [[SubSeg]]) (pfor :: [Symbol]) (tabx :: [Maybe Natural]) (ak :: [Char]). E ctx props model action pen 'Composite r pi atrs kids pcls peacs pchildren pfor tabx ak -> View ctx props model action -> E ctx props model action pen 'Composite r pi atrs (MergeKids EmptyKids kids) pcls (ConstraintsAfterAppend pchildren ('[] :: [[BRANCH]]) pi pen atrs pcls peacs) ('[ 'T RMV] ': pchildren) (MergeFors kids EmptyKids pfor ('[] :: [Symbol])) (Append tabx ('[] :: [Maybe Natural])) (Append ak ('[] :: [Char]))
- Miso.Css.Operator: (=<|) :: forall (k :: Symbol) v model action (en :: Symbol) (r :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]). (KnownSymbol k, ToJSON v) => E model action en 'Composite r ei atrs kids cls eacs children -> ElAtr k v -> E model action en 'Composite r ei (k ': atrs) kids cls (ApplyClass ('[] :: [[Seg]]) ('A k) eacs) children
+ Miso.Css.Operator: (=<|) :: forall (k :: Symbol) v ctx props model action (en :: Symbol) (r :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (cfor :: [Symbol]) (tabx :: [Maybe Natural]) (ak :: [Char]). (KnownSymbol k, ToJSON v, RegularAtr k ~ "") => E ctx props model action en 'Composite r ei atrs kids cls eacs children cfor tabx ak -> ElAtr k v -> E ctx props model action en 'Composite r ei (k ': atrs) kids cls (ApplyClass ('[] :: [[Seg]]) ('A k) eacs) children cfor tabx ak
- Miso.Css.Style.E: [AddAtrE] :: forall (k :: Symbol) v model action (en :: Symbol) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs1 :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]). (KnownSymbol k, ToJSON v) => ElAtr k v -> E model action en 'Composite re ei atrs1 knownIds cls eacs children -> E model action en 'Composite re ei (k ': atrs1) knownIds cls (ApplyClass ('[] :: [[Seg]]) ('A k) eacs) children
+ Miso.Css.Style.E: [AddAtrE] :: forall (k :: Symbol) v ctx props model action (en :: Symbol) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs1 :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (wantedIds :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (usedAccessKey :: [Char]). (KnownSymbol k, ToJSON v, RegularAtr k ~ "") => ElAtr k v -> E ctx props model action en 'Composite re ei atrs1 knownIds cls eacs children wantedIds usedTabIndexes usedAccessKey -> E ctx props model action en 'Composite re ei (k ': atrs1) knownIds cls (ApplyClass ('[] :: [[Seg]]) ('A k) eacs) children wantedIds usedTabIndexes usedAccessKey
- Miso.Css.Style.E: [AppClsE] :: forall (en :: Symbol) (c :: Symbol) (p :: [[Seg]]) model action (re :: Maybe Root) (ei :: Maybe Symbol) (atrs1 :: [Symbol]) (knownIds :: KnownIDS) (cls1 :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]). (KnownSymbol en, KnownSymbol c) => OrClass p c -> E model action en 'Composite re ei atrs1 knownIds cls1 eacs children -> E model action en 'Composite re ei ("class" ': atrs1) knownIds (c ': cls1) (ConstraintsAfterClassApp ei en atrs1 cls1 p c eacs) children
+ Miso.Css.Style.E: [AppClsE] :: forall (en :: Symbol) (c :: Symbol) (p :: [[Seg]]) ctx props model action (re :: Maybe Root) (ei :: Maybe Symbol) (atrs1 :: [Symbol]) (knownIds :: KnownIDS) (cls1 :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (wantedIds :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (usedAccessKey :: [Char]). (KnownSymbol en, KnownSymbol c) => OrClass p c -> E ctx props model action en 'Composite re ei atrs1 knownIds cls1 eacs children wantedIds usedTabIndexes usedAccessKey -> E ctx props model action en 'Composite re ei ("class" ': atrs1) knownIds (c ': cls1) (ConstraintsAfterClassApp ei en atrs1 cls1 p c eacs) children wantedIds usedTabIndexes usedAccessKey
- Miso.Css.Style.E: [AppendChildE] :: forall (ce :: Symbol) model action (cs :: ElementStructure) (ci :: Maybe Symbol) (cAtrs :: [Symbol]) (ckIds :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]) (en :: Symbol) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (pkIds :: KnownIDS) (cls :: [Symbol]) (peacs :: [[BRANCH]]) (pchildren :: [[SubSeg]]). KnownSymbol ce => E model action ce cs ('Nothing :: Maybe Root) ci cAtrs ckIds ccls ceacs cchildren -> E model action en 'Composite re ei atrs pkIds cls peacs pchildren -> E model action en 'Composite re ei atrs (MergeKids ckIds pkIds) cls (ConstraintsAfterAppend pchildren ceacs ei en atrs cls peacs) (ChildrenConstrAfterAppend ci ce ccls pchildren)
+ Miso.Css.Style.E: [AppendChildE] :: forall (ce :: Symbol) ctx props model action (cs :: ElementStructure) (ci :: Maybe Symbol) (cAtrs :: [Symbol]) (ckIds :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]) (cfor :: [Symbol]) (ctabx :: [Maybe Natural]) (cak :: [Char]) (en :: Symbol) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (pkIds :: KnownIDS) (cls :: [Symbol]) (peacs :: [[BRANCH]]) (pchildren :: [[SubSeg]]) (pfor :: [Symbol]) (ptabx :: [Maybe Natural]) (pak :: [Char]). KnownSymbol ce => E ctx props model action ce cs ('Nothing :: Maybe Root) ci cAtrs ckIds ccls ceacs cchildren cfor ctabx cak -> E ctx props model action en 'Composite re ei atrs pkIds cls peacs pchildren pfor ptabx pak -> E ctx props model action en 'Composite re ei atrs (MergeKids ckIds pkIds) cls (ConstraintsAfterAppend pchildren ceacs ei en atrs cls peacs) (ChildrenConstrAfterAppend ci ce ccls pchildren) (MergeFors pkIds ckIds pfor cfor) (Append ptabx ctabx) (Append pak cak)
- Miso.Css.Style.E: [BindEventE] :: forall ef action model (en :: Symbol) (es :: ElementStructure) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]]). EventFactory ef action => ef -> E model action en es re ei atrs knownIds cls l children -> E model action en es re ei atrs knownIds cls l children
+ Miso.Css.Style.E: [BindEventE] :: forall ef model action ctx props (en :: Symbol) (es :: ElementStructure) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]]) (wantedIds :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (usedAccessKey :: [Char]). EventFactory ef model action => ef -> E ctx props model action en es re ei atrs knownIds cls l children wantedIds usedTabIndexes usedAccessKey -> E ctx props model action en es re ei atrs knownIds cls l children wantedIds usedTabIndexes usedAccessKey
- Miso.Css.Style.E: [CDataE] :: forall model action. MisoString -> E model action "CDATA" 'Atomic ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) ('KnownIds ('[] :: [DuplicatedID]) ('[] :: [Symbol])) ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Style.E: [CDataE] :: forall ctx props model action. MisoString -> E ctx props model action "CDATA" 'Atomic ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) ('KnownIds ('[] :: [DuplicatedID]) ('[] :: [Symbol])) ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]]) ('[] :: [Symbol]) ('[] :: [Maybe Natural]) ('[] :: [Char])
- Miso.Css.Style.E: [IdE] :: forall (ei1 :: Symbol) model action (en :: Symbol) (re :: Maybe Root) (atrs1 :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]). KnownSymbol ei1 => Proxy ei1 -> E model action en 'Composite re ('Nothing :: Maybe Symbol) atrs1 kids cls eacs children -> E model action en 'Composite re ('Just ei1) ("id" ': atrs1) (AddTagId ei1 kids) cls (ConstraintsAfteId ei1 eacs) children
+ Miso.Css.Style.E: [IdE] :: forall (ei1 :: Symbol) ctx props model action (en :: Symbol) (re :: Maybe Root) (atrs1 :: [Symbol]) (kids :: KnownIDS) (cls :: [Symbol]) (eacs :: [[BRANCH]]) (children :: [[SubSeg]]) (for :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (usedAccessKey :: [Char]). KnownSymbol ei1 => Proxy ei1 -> E ctx props model action en 'Composite re ('Nothing :: Maybe Symbol) atrs1 kids cls eacs children for usedTabIndexes usedAccessKey -> E ctx props model action en 'Composite re ('Just ei1) ("id" ': atrs1) (AddTagId ei1 kids) cls (ConstraintsAfteId ei1 eacs) children (FilterOut ei1 for) usedTabIndexes usedAccessKey
- Miso.Css.Style.E: [NilE] :: forall (en :: Symbol) model action. KnownSymbol en => Proxy en -> E model action en 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) ('KnownIds ('[] :: [DuplicatedID]) ('[] :: [Symbol])) ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Style.E: [NilE] :: forall (en :: Symbol) ctx props model action. KnownSymbol en => Proxy en -> E ctx props model action en 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) ('KnownIds ('[] :: [DuplicatedID]) ('[] :: [Symbol])) ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]]) ('[] :: [Symbol]) ('[] :: [Maybe Natural]) ('[] :: [Char])
- Miso.Css.Style.E: [RawMisoView] :: forall model action. View model action -> E model action "RawMisoView" 'Atomic ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) ('KnownIds ('[] :: [DuplicatedID]) ('[] :: [Symbol])) ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Style.E: [RawMisoView] :: forall ctx props model action. View ctx props model action -> E ctx props model action "RawMisoView" 'Atomic ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) ('KnownIds ('[] :: [DuplicatedID]) ('[] :: [Symbol])) ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]]) ('[] :: [Symbol]) ('[] :: [Maybe Natural]) ('[] :: [Char])
- Miso.Css.Style.E: [SealDomE] :: forall model action (ce :: Symbol) (cs :: ElementStructure) (ci :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]). E model action ce cs ('Nothing :: Maybe Root) ci atrs knownIds ccls ceacs cchildren -> E model action "html" 'Composite ('Just 'Root) ('Nothing :: Maybe Symbol) atrs knownIds ('[] :: [Symbol]) (MapMaybeFilterOutFullyMatchedHead ('[] :: [[SubSeg]]) (ApplyClass ('[] :: [[Seg]]) ('T HTML) (ApplyClass ('[] :: [[Seg]]) 'R ceacs))) '[PrependMb (MbSymToMbI ci) ('T ce ': SymsToSubSeg ccls)]
+ Miso.Css.Style.E: [SealDomE] :: forall ctx props model action (ce :: Symbol) (cs :: ElementStructure) (ci :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]) (wantedIds :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (usedAccessKey :: [Char]). E ctx props model action ce cs ('Nothing :: Maybe Root) ci atrs knownIds ccls ceacs cchildren wantedIds usedTabIndexes usedAccessKey -> E ctx props model action "html" 'Composite ('Just 'Root) ('Nothing :: Maybe Symbol) atrs knownIds ('[] :: [Symbol]) (MapMaybeFilterOutFullyMatchedHead ('[] :: [[SubSeg]]) (ApplyClass ('[] :: [[Seg]]) ('T HTML) (ApplyClass ('[] :: [[Seg]]) 'R ceacs))) '[PrependMb (MbSymToMbI ci) ('T ce ': SymsToSubSeg ccls)] wantedIds usedTabIndexes usedAccessKey
- Miso.Css.Style.E: [VirtualBodyE] :: forall model action (ce :: Symbol) (cs :: ElementStructure) (ci :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]). E model action ce cs ('Nothing :: Maybe Root) ci atrs knownIds ccls ceacs cchildren -> E model action "body" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) atrs knownIds ('[] :: [Symbol]) (AppendChild ('[] :: [[SubSeg]]) ceacs '[ 'T BODY] ('[] :: [[BRANCH]])) '[PrependMb (MbSymToMbI ci) ('T ce ': SymsToSubSeg ccls)]
+ Miso.Css.Style.E: [VirtualBodyE] :: forall ctx props model action (ce :: Symbol) (cs :: ElementStructure) (ci :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (ccls :: [Symbol]) (ceacs :: [[BRANCH]]) (cchildren :: [[SubSeg]]) (wantedIds :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (usedAccessKey :: [Char]). E ctx props model action ce cs ('Nothing :: Maybe Root) ci atrs knownIds ccls ceacs cchildren wantedIds usedTabIndexes usedAccessKey -> E ctx props model action "body" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) atrs knownIds ('[] :: [Symbol]) (AppendChild ('[] :: [[SubSeg]]) ceacs '[ 'T BODY] ('[] :: [[BRANCH]])) '[PrependMb (MbSymToMbI ci) ('T ce ': SymsToSubSeg ccls)] wantedIds usedTabIndexes usedAccessKey
- Miso.Css.Style.E: data E model action (en :: Symbol) (es :: ElementStructure) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]])
+ Miso.Css.Style.E: data E ctx props model action (en :: Symbol) (es :: ElementStructure) (re :: Maybe Root) (ei :: Maybe Symbol) (atrs :: [Symbol]) (knownIds :: KnownIDS) (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]]) (wantedIds :: [Symbol]) (usedTabIndexes :: [Maybe Natural]) (usedAccessKey :: [Char])
- Miso.Css.Style.E: type family ConstraintsAfteId (ei :: Symbol) (eacs :: [[BRANCH]]) :: [[BRANCH]]
+ Miso.Css.Style.E: type family RegularAtr (a :: Symbol) :: Symbol
- Miso.Css.Tags: a_ :: E model action "a" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: a_ :: Help ctx props model action "a"
- Miso.Css.Tags: article_ :: E model action "article" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: article_ :: Help ctx props model action "article"
- Miso.Css.Tags: b_ :: E model action "b" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: b_ :: Help ctx props model action "b"
- Miso.Css.Tags: br_ :: E model action "br" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: br_ :: Help ctx props model action "br"
- Miso.Css.Tags: button_ :: E model action "button" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: button_ :: Help ctx props model action "button"
- Miso.Css.Tags: div_ :: E model action "div" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: div_ :: Help ctx props model action "div"
- Miso.Css.Tags: form_ :: E model action "form" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: form_ :: Help ctx props model action "form"
- Miso.Css.Tags: h1_ :: E model action "h1" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: h1_ :: Help ctx props model action "h1"
- Miso.Css.Tags: h2_ :: E model action "h2" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: h2_ :: Help ctx props model action "h2"
- Miso.Css.Tags: h3_ :: E model action "h3" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: h3_ :: Help ctx props model action "h3"
- Miso.Css.Tags: h4_ :: E model action "h4" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: h4_ :: Help ctx props model action "h4"
- Miso.Css.Tags: h5_ :: E model action "h5" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: h5_ :: Help ctx props model action "h5"
- Miso.Css.Tags: h6_ :: E model action "h6" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: h6_ :: Help ctx props model action "h6"
- Miso.Css.Tags: hr_ :: E model action "hr" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: hr_ :: Help ctx props model action "hr"
- Miso.Css.Tags: i_ :: E model action "i" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: i_ :: Help ctx props model action "i"
- Miso.Css.Tags: img_ :: E model action "img" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: img_ :: Help ctx props model action "img"
- Miso.Css.Tags: input_ :: E model action "input" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: input_ :: Help ctx props model action "input"
- Miso.Css.Tags: label_ :: E model action "label" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: label_ :: Help ctx props model action "label"
- Miso.Css.Tags: li_ :: E model action "li" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: li_ :: Help ctx props model action "li"
- Miso.Css.Tags: ol_ :: E model action "ol" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: ol_ :: Help ctx props model action "ol"
- Miso.Css.Tags: p_ :: E model action "p" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: p_ :: Help ctx props model action "p"
- Miso.Css.Tags: section_ :: E model action "section" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: section_ :: Help ctx props model action "section"
- Miso.Css.Tags: span_ :: E model action "span" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: span_ :: Help ctx props model action "span"
- Miso.Css.Tags: table_ :: E model action "table" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: table_ :: Help ctx props model action "table"
- Miso.Css.Tags: tbody_ :: E model action "tbody" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: tbody_ :: Help ctx props model action "tbody"
- Miso.Css.Tags: td_ :: E model action "td" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: td_ :: Help ctx props model action "td"
- Miso.Css.Tags: th_ :: E model action "th" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: th_ :: Help ctx props model action "th"
- Miso.Css.Tags: thead_ :: E model action "thead" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: thead_ :: Help ctx props model action "thead"
- Miso.Css.Tags: tr_ :: E model action "tr" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: tr_ :: Help ctx props model action "tr"
- Miso.Css.Tags: ul_ :: E model action "ul" 'Composite ('Nothing :: Maybe Root) ('Nothing :: Maybe Symbol) ('[] :: [Symbol]) EmptyKids ('[] :: [Symbol]) ('[] :: [[BRANCH]]) ('[] :: [[SubSeg]])
+ Miso.Css.Tags: ul_ :: Help ctx props model action "ul"
Files
- changelog.md +8/−0
- miso-css.cabal +46/−4
- src/Miso/Css/Event.hs +14/−14
- src/Miso/Css/List.hs +28/−0
- src/Miso/Css/Miso.hs +89/−29
- src/Miso/Css/Operator.hs +84/−28
- src/Miso/Css/Style/E.hs +98/−28
- src/Miso/Css/Tags.hs +35/−30
- test/Miso/Css/Test/BindEventHandlers.hs +3/−3
- test/Miso/Css/Test/HelloWorld.hs +2/−2
- test/Miso/Css/Test/StyleMock.hs +79/−11
- test/Miso/Css/Test/Th/AccessKey.hs +13/−0
- test/Miso/Css/Test/Th/Aria.hs +27/−0
- test/Miso/Css/Test/Th/For.hs +21/−0
- test/Miso/Css/Test/Th/TabIndex.hs +19/−0
changelog.md view
@@ -1,5 +1,13 @@ # miso-css changelog +## Version 0.0.3 2026-10-17+ * upgrade to miso-1.14+ * aria-labelledby+ * aria-describedby+ * label for+ * accesskey+ * tabindex+ ## Version 0.0.2 2026-06-02 * upgrade to miso-1.11
miso-css.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: miso-css-version: 0.0.2+version: 0.0.3 synopsis: wrapper over miso checking CSS classes applicability through dependent types description:@@ -248,6 +248,8 @@ #e-type# > data E+ > context+ > props > model > action > (en :: Symbol)@@ -259,8 +261,12 @@ > (cls :: [Symbol]) > (l :: [[[Seg]]]) > (children :: [[SubSeg]])+ > (wantedIds :: [Symbol])+ > (usedTabIndexes :: [Maybe Natural])+ > (usedAccessKey :: [Char]) - First two parameters __model__ and __action__ are forwarded to miso+ First 4 parameters __context__, __props__, __model__ and __action__ are+ forwarded to miso <https://hackage-content.haskell.org/package/miso/docs/Miso-Types.html#t:View VNode> type. @@ -346,6 +352,38 @@ > [[I "x", T "ol"], [T "ul", C "b", C "a"]] > ... + ==== wantedIds+ #wantedids#+ + List of tag ids that are referenced somewhere by other tags through+ <https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA ARIA>+ attributes: - @\<label for=\"\"\/>@ - aria-labelledby - aria-describedby+ + > """<div>+ > <span id="aa">hi</span>+ > <span id="bb">bye</span>+ > <input aria-describedby="aa bb"/>+ > </div>"""+ > `go` div_ </ (span_ =# Aa <@ "hi") </ (span_ =# Bb <@ "bye")+ > </ input_ `ariaDescribedBy` Aa `ariaDescribedBy` Bb+ + ==== usedTabIndexes+ #usedtabindexes#+ + Tab indexes are global and should be unique as tag ids. Except values+ __-1__* and __0__.+ + > """<div tabindex="-1">x</div>""" `go` tabIndexMinus1 (div_ <@ "x")+ >+ > """<div tabindex="1">x</div>""" `go` div_ `tabIndex` 1 <@ "x"+ + ==== accessKey+ #accesskey#+ + Access keys are global too.+ + > """<div accesskey="a">x</div>""" `go` div_ `accessKey` 'a' <@ "x"+ === Hello World #hello-world# @@ -395,7 +433,7 @@ > (e.g. html_ satisfies :root pseudo class) > > -}- > viewModel :: Model -> View Model Action+ > viewModel :: Model -> View () () Model Action > viewModel () = toView . html_ . body_ $ > div_ =. c > </ (div_ =. b@@ -477,7 +515,7 @@ , containers < 1 , css-parser < 1 , filepath < 2- , miso >= 1.11 && < 1.12+ , miso >= 1.14 && < 1.15 , mtl < 3 , tagged < 1 , template-haskell < 3@@ -498,14 +536,18 @@ Miso.Css.Test.QqAsserts Miso.Css.Test.Style Miso.Css.Test.StyleMock+ Miso.Css.Test.Th.AccessKey Miso.Css.Test.Th.AmoreBmoreC Miso.Css.Test.Th.AplusBplusC+ Miso.Css.Test.Th.Aria Miso.Css.Test.Th.DivPlusPtildeSpanMoreAplusB Miso.Css.Test.Th.DotAdotB+ Miso.Css.Test.Th.For Miso.Css.Test.Th.ForkBranchOnJnMatchAfterNol Miso.Css.Test.Th.ForkBranchSibling Miso.Css.Test.Th.PmoreXplusYplusZmoreAspaceBmoreC Miso.Css.Test.Th.RootMoreA+ Miso.Css.Test.Th.TabIndex Discovery hs-source-dirs: test
src/Miso/Css/Event.hs view
@@ -5,38 +5,38 @@ import Miso.Event as E import Miso.Css.Prelude -class EventFactory ef a | ef -> a where+class EventFactory ef m a | ef -> m a where eventName :: ef -> MisoString- mkActionAttribute :: ef -> Attribute a+ mkActionAttribute :: ef -> Attribute m a -data AtomicEvent a = AtomicEvent MisoString a deriving (Show, Eq, Ord)+data AtomicEvent m a = AtomicEvent MisoString a deriving (Show, Eq, Ord) -instance EventFactory (AtomicEvent a) a where+instance EventFactory (AtomicEvent m a) m a where eventName (AtomicEvent e _) = e mkActionAttribute (AtomicEvent e a) =- E.on e emptyDecoder $ \() _ -> a+ E.on e emptyDecoder $ \() _ _ -> a -data VarEvent a = forall r. VarEvent MisoString (Decoder r) (r -> DOMRef -> a)+data VarEvent m a = forall r. VarEvent MisoString (Decoder r) (r -> m -> DOMRef -> a) -instance EventFactory (VarEvent a) a where+instance EventFactory (VarEvent m a) m a where eventName (VarEvent en _ _) = en mkActionAttribute (VarEvent en decoder af) = on en decoder af -onClick :: a -> AtomicEvent a+onClick :: forall m a. a -> AtomicEvent m a onClick = AtomicEvent "click" -onVar :: Decoder r -> MisoString -> (r -> a) -> VarEvent a-onVar d n f = VarEvent n d (\a _ -> f a)+onVar :: Decoder r -> MisoString -> (r -> a) -> VarEvent m a+onVar d n f = VarEvent n d (\a _ _ -> f a) -onInput :: (MisoString -> a) -> VarEvent a+onInput :: forall m a. (MisoString -> a) -> VarEvent m a onInput = onVar valueDecoder "input" -onChange :: (MisoString -> a) -> VarEvent a+onChange :: forall m a. (MisoString -> a) -> VarEvent m a onChange = onVar valueDecoder "change" -onKeyPress :: (KeyCode -> a) -> VarEvent a+onKeyPress :: forall m a. (KeyCode -> a) -> VarEvent m a onKeyPress = onVar keycodeDecoder "keypress" -onKeyUp :: (KeyCode -> a) -> VarEvent a+onKeyUp :: (KeyCode -> a) -> VarEvent m a onKeyUp = onVar keycodeDecoder "keyup"
src/Miso/Css/List.hs view
@@ -18,6 +18,20 @@ (Just '( k, Append s t)) (RemoveElem (h : s) k t) +type family FilterOut x l where+ FilterOut x '[] = '[]+ FilterOut x (h:t) = If (x == h) (FilterOut x t) (h : FilterOut x t)++type family CatMaybes l where+ CatMaybes '[] = '[]+ CatMaybes (Just h : t) = h : CatMaybes t+ CatMaybes (Nothing : t) = CatMaybes t++type family Diff l1 l2 where+ Diff l1 '[] = l1+ Diff '[] _ = '[]+ Diff t1 (h2:t2) = Diff (FilterOut h2 t1) t2+ type family PrependMb mb l where PrependMb Nothing l = l PrependMb (Just x) l = x : l@@ -33,6 +47,20 @@ If (Elem ah b) (Left ah) (MergeUniq at b (ah : s))++type family MergeDedup a b s where+ MergeDedup '[] b s = Append b s+ MergeDedup (ah : at) b s =+ If (Elem ah b)+ (MergeDedup at b s)+ (MergeDedup at b (ah : s))++type family FindDuplicates s where+ FindDuplicates '[] = '[]+ FindDuplicates (ah : at) =+ If (Elem ah at)+ (ah : FindDuplicates at)+ (FindDuplicates at) type family IsSubSetCase rer t where IsSubSetCase Nothing _t = False
src/Miso/Css/Miso.hs view
@@ -1,5 +1,6 @@ module Miso.Css.Miso where +import GHC.TypeLits (natVal, charVal) import Miso ( ms, vtext,@@ -7,7 +8,7 @@ MisoString, Attribute(Property, ClassList), View(VNode) )-import Miso.JSON ( ToJSON(..) )+import Miso.JSON ( ToJSON(..), Value(String) ) import Miso.Html ( nodeHtml ) import Miso.Html.Property (id_) import Miso.Css.Event ( EventFactory(mkActionAttribute) )@@ -23,9 +24,12 @@ ( MapMaybeFilterOutFullyMatchedHead ) import Miso.Css.Prelude -injectClass :: MisoString -> View model action -> View model action+injectClass :: MisoString+ -> View ctx props model action+ -> View ctx props model action injectClass cn = \case- VNode ns tg atrs children -> VNode ns tg (injClass atrs) children+ VNode ns tg atrs children dirEvents ->+ VNode ns tg (injClass atrs) children dirEvents o -> o where injClass = \case@@ -33,9 +37,12 @@ ClassList cls : atrs' -> ClassList (cls <> [cn]) : atrs' o : atrs' -> o : injClass atrs' -injectElementId :: MisoString -> View model action -> View model action+injectElementId :: MisoString+ -> View ctx props model action+ -> View ctx props model action injectElementId ik = \case- VNode ns tg atrs children -> VNode ns tg (injId atrs) children+ VNode ns tg atrs children dirEvents ->+ VNode ns tg (injId atrs) children dirEvents o -> o where injId = \case@@ -44,9 +51,14 @@ Property "id" _v : atrs' -> id_ ik : atrs' o : atrs' -> o : injId atrs' -injectElementAtr :: ToJSON v => MisoString -> v -> View model action -> View model action+injectElementAtr :: ToJSON v+ => MisoString+ -> v+ -> View ctx props model action+ -> View ctx props model action injectElementAtr ik v = \case- VNode ns tg atrs children -> VNode ns tg (injId atrs) children+ VNode ns tg atrs children dirEvents ->+ VNode ns tg (injId atrs) children dirEvents o -> o where p = prop ik v@@ -58,11 +70,37 @@ | otherwise -> Property pn pnv : injId atrs' o : atrs' -> o : injId atrs' -injectEventHandler :: EventFactory ef action =>- ef -> View model action -> View model action++injAppElemAtr :: ToJSON v+ => MisoString -> v+ -> View ctx props model action+ -> View ctx props model action+injAppElemAtr ik v = \case+ VNode ns tg atrs children dirEvents ->+ VNode ns tg (injId atrs) children dirEvents+ o -> o+ where+ p = prop ik v+ injId = \case+ [] -> [p]+ Property pn (String pnv) : atrs'+ | pn == ik ->+ case toJSON v of+ String vs -> Property pn (String $ pnv <> " " <> vs) : atrs'+ o -> error $ "expected String but: " <> show o <> "; " <> show ik+ | otherwise -> Property pn (String pnv) : injId atrs'+ Property pn pnv : atrs'+ | pn == ik -> Property pn (toJSON v) : atrs'+ | otherwise -> Property pn pnv : injId atrs'+ o : atrs' -> o : injId atrs'++injectEventHandler :: EventFactory ef model action+ => ef+ -> View ctx props model action+ -> View ctx props model action injectEventHandler ef = \case- VNode ns tg atrs children ->- VNode ns tg (mkActionAttribute ef : atrs) children+ VNode ns tg atrs children dirEvents ->+ VNode ns tg (mkActionAttribute ef : atrs) children dirEvents o -> o className :: forall p c. KnownSymbol c => OrClass p c -> MisoString@@ -71,12 +109,15 @@ data Child -appChild :: Tagged Child (View model action) -> View model action -> View model action+appChild :: Tagged Child (View ctx props model action)+ -> View ctx props model action+ -> View ctx props model action appChild (Tagged c) = \case- VNode ns tg atrs children -> VNode ns tg atrs $ children <> [c]+ VNode ns tg atrs children dirEvents -> VNode ns tg atrs (children <> [c]) dirEvents o -> o -eToView :: E model action en es r ei atrs knownIds cls eacs children -> View model action+eToView :: E ctx props model action en es r ei atrs knownIds cls eacs children for tabx ak+ -> View ctx props model action eToView = \case RawMisoView rmv -> rmv CDataE txt -> vtext txt@@ -84,52 +125,70 @@ IdE eni e -> injectElementId (ms $ symbolVal eni) (eToView e) AppClsE orCls e -> injectClass (className orCls) (eToView e) AppendChildE ce pe -> appChild (Tagged @Child (eToView ce)) (eToView pe)+ TabIndexMinus1E e -> injectElementAtr "tabindex" ("-1" :: MisoString) (eToView e)+ AccessKeyE nc e -> injectElementAtr "accesskey" (ms [charVal nc]) (eToView e)+ TabIndexE ti e -> injectElementAtr "tabindex" (show $ natVal ti) (eToView e) AddAtrE a e -> injectElementAtr (elAtrKey a) (elAtrVal a) (eToView e)+ AddForAtrE f e -> injectElementAtr "for" (ms $ symbolVal f) (eToView e)+ AddAriaIdAtrE aria fi e -> injAppElemAtr (ms $ symbolVal aria) (ms $ symbolVal fi) (eToView e) BindEventE ef e -> injectEventHandler ef (eToView e) SealDomE e -> eToView e VirtualBodyE b -> eToView b -toView :: forall m a en es r ei atrs kids cls ecs children.+toView :: forall ctx prs m a en es r ei atrs kids cls ecs children for tabx ak. ( RemoveMatchScope (UnwrapBranches (MapMaybeFilterOutFullyMatchedHead '[] ecs)) ~ '[] , DuplicatedIds kids ~ '[]- ) =>- E m a en es r ei atrs kids cls ecs children -> View m a+ , for ~ '[]+ , TabIndexesConsistent tabx ~ '[]+ , AccessKeyConsistent ak ~ '[]+ )+ => E ctx prs m a en es r ei atrs kids cls ecs children for tabx ak+ -> View ctx prs m a toView = eToView -- | More detailed types that 'toView'-toView' :: forall m a en es r ei atrs kids cls ecs children.+toView' :: forall ctx prs m a en es r ei atrs kids cls ecs children for tabx ak. ( UnwrapBranches (MapMaybeFilterOutFullyMatchedHead '[] ecs) ~ '[] , DuplicatedIds kids ~ '[]- ) =>- E m a en es r ei atrs kids cls ecs children -> View m a+ , for ~ '[]+ , TabIndexesConsistent tabx ~ '[]+ , AccessKeyConsistent ak ~ '[]+ )+ => E ctx prs m a en es r ei atrs kids cls ecs children for tabx ak+ -> View ctx prs m a toView' = eToView body_ ::- E model action ce cs Nothing ci atrs knownIds ccls ceacs cchildren ->- E model action BODY Composite Nothing Nothing atrs knownIds- '[] -- classes+ E ctx props model action+ ce cs Nothing ci atrs knownIds ccls ceacs cchildren cfor tabx ak ->+ E ctx props model action+ BODY Composite Nothing Nothing atrs knownIds '[] (AppendChild '[] -- pchildren ceacs '[ T BODY ] '[]) '[ PrependMb (MbSymToMbI ci) (T ce : SymsToSubSeg ccls) ]+ cfor tabx ak body_ = VirtualBodyE html_ ::- E model action ce cs Nothing ci catrs ckids ccls ceacs cchildren ->- E model action HTML Composite (Just 'Root) Nothing- catrs ckids- '[]+ E ctx props model action+ ce cs Nothing ci catrs ckids ccls ceacs cchildren cfor tabx ak ->+ E ctx props model action+ HTML Composite (Just 'Root) Nothing catrs ckids '[] (MapMaybeFilterOutFullyMatchedHead '[] (ApplyClass '[] (T HTML) (ApplyClass '[] R ceacs))) '[ PrependMb (MbSymToMbI ci) (T ce : SymsToSubSeg ccls) ]+ cfor tabx ak html_ = SealDomE page ::- E model action ce cs Nothing ci catrs ckids ccls ceacs cchildren ->- E model action HTML Composite (Just 'Root) Nothing catrs ckids '[]+ E ctx props model action+ ce cs Nothing ci catrs ckids ccls ceacs cchildren cfor tabx ak ->+ E ctx props model action+ HTML Composite (Just 'Root) Nothing catrs ckids '[] (MapMaybeFilterOutFullyMatchedHead '[] (ApplyClass@@ -142,4 +201,5 @@ (ApplyClass '[] (T BODY) ceacs)) '[])))) '[ '[T BODY]]+ cfor tabx ak page x = html_ (body_ x)
src/Miso/Css/Operator.hs view
@@ -2,8 +2,11 @@ {-# LANGUAGE UndecidableInstances #-} module Miso.Css.Operator where +import Data.Char (Char)+import GHC.TypeLits (Nat, KnownNat, KnownChar) import Miso ( View ) import Miso.Css.Event ( EventFactory )+import Miso.Css.List ( FilterOut, Append ) import Miso.Css.Prelude ( Proxy(..), Maybe(Just, Nothing), KnownSymbol, type (~) ) import Miso.Css.Segment ( SubSeg(A, T), ApplyClass ) import Miso.Css.Style@@ -11,11 +14,11 @@ (=.) :: (KnownSymbol en, KnownSymbol c) =>- E model action en Composite r ei atrs kids cls eacs children ->+ E ctx props model action en Composite r ei atrs kids cls eacs children cfor tabx ak -> OrClass p c ->- E model action en Composite r ei ("class" : atrs) kids (c:cls)+ E ctx props model action en Composite r ei ("class" : atrs) kids (c:cls) (ConstraintsAfterClassApp ei en atrs cls p c eacs)- children+ children cfor tabx ak e =. c = AppClsE c e infixl 3 =.@@ -23,22 +26,69 @@ atr :: forall k v. (KnownSymbol k, ToJSON v) => v -> ElAtr k v atr = ElAtr -(=<|) :: (KnownSymbol k, ToJSON v) =>- E model action en Composite r ei atrs kids cls eacs children ->+(=<|) :: (KnownSymbol k, ToJSON v, RegularAtr k ~ "") =>+ E ctx props model action en Composite r ei atrs kids cls eacs children cfor tabx ak -> ElAtr k v ->- E model action en Composite r ei (k : atrs) kids cls+ E ctx props model action en Composite r ei (k : atrs) kids cls (ApplyClass '[] (A k) eacs) -- eacs- children+ children cfor tabx ak e =<| a = AddAtrE a e infixl 3 =<| -(=#) :: forall model action en r catrs kids cls eacs children ee.+for :: forall ctx props model action en r ei catrs kids cls eacs children ee cfor tabx ak. (KnownSymbol en, KnownSymbol ee) =>- E model action en Composite r Nothing catrs kids cls eacs children ->+ E ctx props model action en Composite r ei catrs kids cls eacs children cfor tabx ak ->+ forall fi -> (fi ~ ElementId ee) =>+ E ctx props model action en Composite r ei catrs kids cls eacs children+ (AddForId ee cfor kids) tabx ak+e `for` _ = AddForAtrE (Proxy @ee) e+infixl 3 `for`++tabIndex :: forall ctx props model action en r ei catrs kids cls eacs children cfor tabx ak.+ (KnownSymbol en) =>+ E ctx props model action en Composite r ei catrs kids cls eacs children cfor tabx ak ->+ forall (ti :: Nat) -> KnownNat ti =>+ E ctx props model action en Composite r ei catrs kids cls eacs children cfor (Just ti : tabx) ak+e `tabIndex` _ = TabIndexE (Proxy ) e+infixl 3 `tabIndex`++accessKey :: forall ctx props model action en r ei catrs kids cls eacs children cfor tabx ak.+ (KnownSymbol en) =>+ E ctx props model action en Composite r ei catrs kids cls eacs children cfor tabx ak ->+ forall (nc :: Char) -> KnownChar nc =>+ E ctx props model action en Composite r ei catrs kids cls eacs children cfor tabx (nc : ak)+e `accessKey` _ = AccessKeyE Proxy e+infixl 3 `accessKey`++tabIndexMinus1 ::+ E ctx props model action en Composite r ei atrs kids cls eacs children cfor tabx ak ->+ E ctx props model action en Composite r ei atrs kids cls eacs children cfor (Nothing : tabx) ak+tabIndexMinus1 e = TabIndexMinus1E e++ariaLabelledBy :: forall ctx props model action en r ei catrs kids cls eacs children ee cfor tabx ak.+ (KnownSymbol en, KnownSymbol ee) =>+ E ctx props model action en Composite r ei catrs kids cls eacs children cfor tabx ak ->+ forall fi -> (fi ~ ElementId ee) =>+ E ctx props model action en Composite r ei catrs kids cls eacs children+ (AddForId ee cfor kids) tabx ak+e `ariaLabelledBy` _ = AddAriaIdAtrE (Proxy @"aria-labelledby") (Proxy @ee) e+infixl 3 `ariaLabelledBy`++ariaDescribedBy :: forall ctx props model action en r ei catrs kids cls eacs children ee cfor tabx ak.+ (KnownSymbol en, KnownSymbol ee) =>+ E ctx props model action en Composite r ei catrs kids cls eacs children cfor tabx ak ->+ forall fi -> (fi ~ ElementId ee) =>+ E ctx props model action en Composite r ei catrs kids cls eacs children+ (AddForId ee cfor kids) tabx ak+e `ariaDescribedBy` _ = AddAriaIdAtrE (Proxy @"aria-describedby") (Proxy @ee) e+infixl 3 `ariaDescribedBy`++(=#) :: forall ctx props model action en r catrs kids cls eacs children ee cfor tabx ak.+ (KnownSymbol en, KnownSymbol ee) =>+ E ctx props model action en Composite r Nothing catrs kids cls eacs children cfor tabx ak -> forall ei -> (ei ~ ElementId ee) =>- E model- action+ E ctx props model action en Composite r@@ -48,39 +98,41 @@ cls (ConstraintsAfteId ee eacs) children+ (FilterOut ee cfor)+ tabx ak e =# _ = IdE (Proxy @ee) e infixl 3 =# (=!) ::- EventFactory ef action =>- E model action en es r ei atrs kids cls eacs children ->+ EventFactory ef model action =>+ E ctx props model action en es r ei atrs kids cls eacs children cfor tabx ak -> ef ->- E model action en es r ei atrs kids cls eacs children+ E ctx props model action en es r ei atrs kids cls eacs children cfor tabx ak e =! ef = BindEventE ef e infixl 3 =! (</) :: KnownSymbol cen =>- E model action pen Composite r pi patrs pKids pcls peacs pchildren ->- E model action cen cs Nothing ci catrs cKids ccls ceacs cchildren ->- E model action pen Composite r pi patrs+ E ctx props model action pen Composite r pi patrs pKids pcls peacs pchildren pfor ptabx pak ->+ E ctx props model action cen cs Nothing ci catrs cKids ccls ceacs cchildren cfor ctabx cak ->+ E ctx props model action pen Composite r pi patrs (MergeKids cKids pKids) pcls (ConstraintsAfterAppend pchildren ceacs pi pen patrs pcls peacs) (ChildrenConstrAfterAppend ci cen ccls pchildren)-+ (MergeFors pKids cKids pfor cfor)+ (Append ptabx ctabx)+ (Append pak cak) p </ c = AppendChildE c p infixl 2 </ (<@) ::- E model action pen Composite r pi patrs kids pcls peacs pchildren ->- E model action CD Atomic Nothing Nothing '[] EmptyKids '[] '[] '[] ->- E- model- action+ E ctx props model action pen Composite r pi patrs kids pcls peacs pchildren pfor tabx ak ->+ E ctx props model action CD Atomic Nothing Nothing '[] EmptyKids '[] '[] '[] '[] '[] '[] ->+ E ctx props model action pen Composite r@@ -90,16 +142,17 @@ pcls (ConstraintsAfterAppend pchildren '[] pi pen patrs pcls peacs) (ChildrenConstrAfterAppend Nothing CD '[] pchildren)+ (MergeFors kids EmptyKids pfor '[])+ (Append tabx '[])+ (Append ak '[]) (<@) = (</) infixl 2 <@ (=<) ::- E model action pen Composite r pi atrs kids pcls peacs pchildren ->- View model action ->- E- model- action+ E ctx props model action pen Composite r pi atrs kids pcls peacs pchildren pfor tabx ak ->+ View ctx props model action ->+ E ctx props model action pen Composite r@@ -109,6 +162,9 @@ pcls (ConstraintsAfterAppend pchildren '[] pi pen atrs pcls peacs) ('[T RMV] : pchildren)+ (MergeFors kids EmptyKids pfor '[])+ (Append tabx '[])+ (Append ak '[]) p =< rmv = p </ RawMisoView rmv infixl 2 =<
src/Miso/Css/Style/E.hs view
@@ -4,11 +4,14 @@ module Miso.Css.Style.E where + import Data.String ( IsString(..) ) import Data.Type.Bool ( If )+import GHC.TypeLits (Natural, KnownNat, AppendSymbol, KnownChar) import Miso ( MisoString, ms, View ) import Miso.Css.Event (EventFactory)-import Miso.Css.List ( MergeUniq, Elem, PrependMb, Append )+import Miso.Css.List ( MergeUniq, Elem, PrependMb, Append, Diff, FilterOut+ , MergeDedup, FindDuplicates, CatMaybes ) import Miso.Css.Prelude import Miso.Css.Segment ( ApplyClass,@@ -23,6 +26,7 @@ import Miso.JSON ( ToJSON ) data ElementId (ei :: Symbol)+data TabIdx (ei :: Natural) newtype ElAtr k v = ElAtr v deriving newtype (Eq, Ord, Show, ToJSON) deriving (Generic) @@ -61,6 +65,18 @@ (KnownIds (DuplicatedId x : dids) kids) (KnownIds dids (x : kids)) +type family AddForId fi for kids where+ AddForId fi for (KnownIds _dids kids) =+ If (Elem fi kids)+ for+ (If (Elem fi for)+ for+ (fi : for))++type family MergeFors pkids ckids pfors cfors where+ MergeFors (KnownIds _ pkids) (KnownIds _ ckids) pfors cfors =+ (Diff (Diff (MergeDedup pfors cfors '[]) pkids) ckids)+ type family MergeKidsCase r didsA didsB kidsA kidsB where MergeKidsCase (Left e) didsA didsB kidsA kidsB = KnownIds@@ -75,6 +91,11 @@ MergeKids (KnownIds didsA kidsA) (KnownIds didsB kidsB) = MergeKidsCase (MergeUniq kidsA kidsB '[]) didsA didsB kidsA kidsB +type family TabIndexesConsistent tis where+ TabIndexesConsistent tis = FindDuplicates (FilterOut 0 (CatMaybes tis))+type family AccessKeyConsistent aks where+ AccessKeyConsistent aks = FindDuplicates aks+ type EmptyKids = KnownIds '[] '[] type CD = "CDATA"@@ -115,9 +136,24 @@ type family ConstraintsAfteId ei eacs where ConstraintsAfteId ei eacs = ApplyClass '[] (A "id") (ApplyClass '[] (I ei) eacs) +type family AttributeIsReserved a f where+ AttributeIsReserved a f =+ "Tag attribue [" `AppendSymbol` a `AppendSymbol` "] is reserved - use ("+ `AppendSymbol` f `AppendSymbol` ") function for it"++type family RegularAtr a where+ RegularAtr "id" = AttributeIsReserved "id" "=#"+ RegularAtr "for" = AttributeIsReserved "for" "`for`"+ RegularAtr "tabindex" =+ AttributeIsReserved "tabindex" "`tabIndex`"+ RegularAtr "aria-labelledby" =+ AttributeIsReserved "aria-labelledby" "`ariaLabelledBy`"+ RegularAtr "aria-discribedby" =+ AttributeIsReserved "aria-discribedby" "`ariaDiscribedBy`"+ RegularAtr a = ""+ data E- model- action+ ctx props model action (en :: Symbol) (es :: ElementStructure) (re :: Maybe Root)@@ -127,54 +163,85 @@ (cls :: [Symbol]) (l :: [[BRANCH]]) (children :: [[SubSeg]])+ (wantedIds :: [Symbol])+ (usedTabIndexes :: [Maybe Natural])+ (usedAccessKey :: [Char]) where RawMisoView ::- View model action ->- E model action RMV Atomic Nothing Nothing '[] EmptyKids '[] '[] '[]+ View ctx props model action ->+ E ctx props model action RMV Atomic Nothing Nothing '[] EmptyKids '[] '[] '[] '[] '[] '[] CDataE :: MisoString ->- E model action CD Atomic Nothing Nothing '[] EmptyKids '[] '[] '[]+ E ctx props model action CD Atomic Nothing Nothing '[] EmptyKids '[] '[] '[] '[] '[] '[] NilE :: KnownSymbol en => Proxy en ->- E model action en Composite Nothing Nothing '[] EmptyKids '[] '[] '[]- AddAtrE :: (KnownSymbol k, ToJSON v) =>+ E ctx props model action en Composite Nothing Nothing '[] EmptyKids '[] '[] '[] '[] '[] '[]+ AddAtrE :: (KnownSymbol k, ToJSON v, RegularAtr k ~ "") => ElAtr k v ->- E model action en Composite r ei atrs kids cls eacs children ->- E model action en Composite r ei (k : atrs) kids cls+ E ctx props model action en Composite r ei atrs kids cls eacs children for tabx ak ->+ E ctx props model action en Composite r ei (k : atrs) kids cls (ApplyClass '[] (A k) eacs) children+ for tabx ak+ AddAriaIdAtrE :: (KnownSymbol a, KnownSymbol fi) =>+ Proxy a ->+ Proxy fi ->+ E ctx props model action en Composite r ei atrs kids cls eacs children for tabx ak ->+ E ctx props model action en Composite r ei atrs kids cls eacs children+ (AddForId fi for kids) tabx ak+ AddForAtrE :: KnownSymbol fi =>+ Proxy fi ->+ E ctx props model action en Composite r ei atrs kids cls eacs children for tabx ak ->+ E ctx props model action en Composite r ei atrs kids cls eacs children+ (AddForId fi for kids) tabx ak+ AccessKeyE :: KnownChar nc =>+ Proxy nc ->+ E ctx props model action en Composite r ei atrs kids cls eacs children for tabx ak ->+ E ctx props model action en Composite r ei atrs kids cls eacs children for tabx (nc : ak)+ TabIndexE :: KnownNat ti =>+ Proxy ti ->+ E ctx props model action en Composite r ei atrs kids cls eacs children for tabx ak ->+ E ctx props model action en Composite r ei atrs kids cls eacs children for (Just ti : tabx) ak+ TabIndexMinus1E ::+ E ctx props model action en Composite r ei atrs kids cls eacs children for tabx ak ->+ E ctx props model action en Composite r ei atrs kids cls eacs children for (Nothing : tabx) ak IdE :: KnownSymbol ei => Proxy ei ->- E model action en Composite r Nothing atrs kids cls eacs children ->- E model action en Composite r (Just ei) ("id" : atrs)+ E ctx props model action en Composite r Nothing atrs kids cls eacs children for tabx ak ->+ E ctx props model action en Composite r (Just ei) ("id" : atrs) (AddTagId ei kids) cls (ConstraintsAfteId ei eacs) children- BindEventE :: EventFactory ef action =>+ (FilterOut ei for)+ tabx ak+ BindEventE :: EventFactory ef model action => ef ->- E model action en es r ei atrs kids cls eacs children ->- E model action en es r ei atrs kids cls eacs children+ E ctx props model action en es r ei atrs kids cls eacs children for tabx ak ->+ E ctx props model action en es r ei atrs kids cls eacs children for tabx ak AppClsE :: (KnownSymbol en, KnownSymbol c) => OrClass p c ->- E model action en Composite r ei atrs kIds cls eacs children ->- E model action en Composite r ei ("class" : atrs) kIds (c : cls)+ E ctx props model action en Composite r ei atrs kIds cls eacs children for tabx ak ->+ E ctx props model action en Composite r ei ("class" : atrs) kIds (c : cls) (ConstraintsAfterClassApp ei en atrs cls p c eacs)- children+ children for tabx ak AppendChildE :: KnownSymbol ce =>- E model action ce cs Nothing ci cAtrs ckIds ccls ceacs cchildren ->- E model action pe Composite r pi pAtrs pkIds pcls peacs pchildren ->- E model action pe Composite r pi pAtrs+ E ctx props model action ce cs Nothing ci cAtrs ckIds ccls ceacs cchildren cfor ctabx cak ->+ E ctx props model action pe Composite r pi pAtrs pkIds pcls peacs pchildren pfor ptabx pak ->+ E ctx props model action pe Composite r pi pAtrs (MergeKids ckIds pkIds) pcls (ConstraintsAfterAppend pchildren ceacs pi pe pAtrs pcls peacs) (ChildrenConstrAfterAppend ci ce ccls pchildren)+ (MergeFors pkIds ckIds pfor cfor)+ (Append ptabx ctabx)+ (Append pak cak) -- Miso can render view up to body to support :root the library provide -- VirtualBodyE and SealDomE to emulate top DOM elements (body and html) without -- generating them because the already exist VirtualBodyE ::- E model action ce cs Nothing ci catrs ckids ccls ceacs cchildren ->- E model action BODY Composite Nothing Nothing catrs+ E ctx props model action ce cs Nothing ci catrs ckids ccls ceacs cchildren for tabx ak ->+ E ctx props model action BODY Composite Nothing Nothing catrs ckids '[] (AppendChild@@ -183,15 +250,18 @@ '[ T BODY ] '[]) '[ PrependMb (MbSymToMbI ci) (T ce : SymsToSubSeg ccls) ]+ for tabx ak SealDomE ::- E model action ce cs Nothing ci catrs ckids ccls ceacs cchildren ->- E model action HTML Composite (Just 'Root) Nothing catrs- ckids- '[]+ E ctx props model action+ ce cs Nothing ci catrs ckids ccls ceacs cchildren for tabx ak ->+ E ctx props model action+ HTML Composite (Just 'Root) Nothing catrs ckids '[] (Post.MapMaybeFilterOutFullyMatchedHead '[] (ApplyClass '[] (T HTML) (ApplyClass '[] R ceacs))) '[ PrependMb (MbSymToMbI ci) (T ce : SymsToSubSeg ccls) ]+ for tabx ak -instance IsString (E model action CD Atomic Nothing Nothing '[] EmptyKids '[] '[] '[]) where+instance IsString (E ctx props model action CD Atomic Nothing Nothing '[] EmptyKids+ '[] '[] '[] '[] '[] '[]) where fromString = CDataE . ms
src/Miso/Css/Tags.hs view
@@ -1,94 +1,99 @@+{-# LANGUAGE TypeFamilies #-} module Miso.Css.Tags where import Miso.Css.Prelude ( Maybe(Nothing), Proxy(Proxy) ) import Miso.Css.Style ( E(NilE), ElementStructure(Composite), EmptyKids ) -div_ :: E model action "div" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+type family Help ctx props model action tag where+ Help ctx props model action tag =+ E ctx props model action tag Composite Nothing Nothing '[] EmptyKids '[] '[] '[] '[] '[] '[]++div_ :: Help ctx props model action "div" div_ = NilE (Proxy @"div") -span_ :: E model action "span" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+span_ :: Help ctx props model action "span" span_ = NilE (Proxy @"span") -p_ :: E model action "p" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+p_ :: Help ctx props model action "p" p_ = NilE (Proxy @"p") -b_ :: E model action "b" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+b_ :: Help ctx props model action "b" b_ = NilE (Proxy @"b") -i_ :: E model action "i" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+i_ :: Help ctx props model action "i" i_ = NilE (Proxy @"i") -th_ :: E model action "th" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+th_ :: Help ctx props model action "th" th_ = NilE (Proxy @"th") -td_ :: E model action "td" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+td_ :: Help ctx props model action "td" td_ = NilE (Proxy @"td") -table_ :: E model action "table" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+table_ :: Help ctx props model action "table" table_ = NilE (Proxy @"table") -thead_ :: E model action "thead" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+thead_ :: Help ctx props model action "thead" thead_ = NilE (Proxy @"thead") -tbody_ :: E model action "tbody" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+tbody_ :: Help ctx props model action "tbody" tbody_ = NilE (Proxy @"tbody") -tr_ :: E model action "tr" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+tr_ :: Help ctx props model action "tr" tr_ = NilE (Proxy @"tr") -h1_ :: E model action "h1" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+h1_ :: Help ctx props model action "h1" h1_ = NilE (Proxy @"h1") -img_ :: E model action "img" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+img_ :: Help ctx props model action "img" img_ = NilE (Proxy @"img") -br_ :: E model action "br" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+br_ :: Help ctx props model action "br" br_ = NilE (Proxy @"br") -hr_ :: E model action "hr" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+hr_ :: Help ctx props model action "hr" hr_ = NilE (Proxy @"hr") -ul_ :: E model action "ul" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+ul_ :: Help ctx props model action "ul" ul_ = NilE (Proxy @"ul") -ol_ :: E model action "ol" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+ol_ :: Help ctx props model action "ol" ol_ = NilE (Proxy @"ol") -li_ :: E model action "li" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+li_ :: Help ctx props model action "li" li_ = NilE (Proxy @"li") -a_ :: E model action "a" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+a_ :: Help ctx props model action "a" a_ = NilE (Proxy @"a") -article_ :: E model action "article" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+article_ :: Help ctx props model action "article" article_ = NilE (Proxy @"article") -section_ :: E model action "section" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+section_ :: Help ctx props model action "section" section_ = NilE (Proxy @"section") -h2_ :: E model action "h2" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+h2_ :: Help ctx props model action "h2" h2_ = NilE (Proxy @"h2") -h3_ :: E model action "h3" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+h3_ :: Help ctx props model action "h3" h3_ = NilE (Proxy @"h3") -h4_ :: E model action "h4" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+h4_ :: Help ctx props model action "h4" h4_ = NilE (Proxy @"h4") -h5_ :: E model action "h5" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+h5_ :: Help ctx props model action "h5" h5_ = NilE (Proxy @"h5") -h6_ :: E model action "h6" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+h6_ :: Help ctx props model action "h6" h6_ = NilE (Proxy @"h6") -form_ :: E model action "form" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+form_ :: Help ctx props model action "form" form_ = NilE (Proxy @"form") -input_ :: E model action "input" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+input_ :: Help ctx props model action "input" input_ = NilE (Proxy @"input") -button_ :: E model action "button" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+button_ :: Help ctx props model action "button" button_ = NilE (Proxy @"button") -label_ :: E model action "label" Composite Nothing Nothing '[] EmptyKids '[] '[] '[]+label_ :: Help ctx props model action "label" label_ = NilE (Proxy @"label")
test/Miso/Css/Test/BindEventHandlers.hs view
@@ -4,8 +4,8 @@ test_t = testGroup "bind event handlers"- [ """<div ></div>""" `go` div_ =! onClick ()- , """<button ></button>""" `go` button_ =! onKeyPress (const ())+ [ """<div ></div>""" `go` div_ =! onClick @() ()+ , """<button ></button>""" `go` button_ =! onKeyPress @() (const ()) , """<input name="comment"/>""" `go`- input_ =! onChange (const ()) =<| atr @"name" ("comment" :: MisoString)+ input_ =! onChange @() (const ()) =<| atr @"name" ("comment" :: MisoString) ]
test/Miso/Css/Test/HelloWorld.hs view
@@ -35,8 +35,8 @@ </div> </div> -}-viewModel :: Model -> () -> View Model Action-viewModel () () = toView . html_ . body_ $+viewModel :: () -> View () () Model Action+viewModel () = toView . html_ . body_ $ div_ =. a </ (div_ =. b </ (button_ =. c
test/Miso/Css/Test/StyleMock.hs view
@@ -10,38 +10,106 @@ import Data.ByteString.Char8 qualified as C8 import Miso.Css.Style.PostAppend as Post import Miso.Css.Test.Prelude as X+import Miso.Html.Render (toHtmlWith) -domLbs :: forall m a en es r ei atrs kids cls ecs children.+domLbs :: forall ctx prs m a en es r ei atrs kids cls ecs children for tabx ak. ( UnwrapBranches (MapMaybeFilterOutFullyMatchedHead '[] ecs) ~ '[] , DuplicatedIds kids ~ '[]+ , for ~ '[]+ , TabIndexesConsistent tabx ~ '[]+ , AccessKeyConsistent ak ~ '[]+ , ctx ~ ()+ , prs ~ ()+ , m ~ () ) =>- E m a en es r ei atrs kids cls ecs children ->+ E ctx prs m a en es r ei atrs kids cls ecs children for tabx ak -> L.ByteString-domLbs = toHtml . toView+domLbs = toHtmlWith () () () . toView -doNotTcNoBr :: forall m a en es r ei atrs kids cls ecs children.+doNotTcNoBr :: forall ctx prs m a en es r ei atrs kids cls ecs children for tabx ak. forall exDids -> (DuplicatedIds kids ~ exDids) =>- forall exEcs -> (UnwrapBranches (MapMaybeFilterOutFullyMatchedHead '[] ecs) ~ exEcs) =>- E m a en es r ei atrs kids cls ecs children ->+ forall exEcs -> (UnwrapBranches (MapMaybeFilterOutFullyMatchedHead '[] ecs) ~ exEcs+ , TabIndexesConsistent tabx ~ '[]+ , AccessKeyConsistent ak ~ '[]+ , ctx ~ ()+ , prs ~ ()+ , for ~ '[]) =>+ E ctx prs m a en es r ei atrs kids cls ecs children for tabx ak -> TestTree doNotTcNoBr _ _ _ = testCase "see type message from the checker" do () @?= () -doNotTc :: forall m a en es r ei atrs kids cls ecs children.+doNotTc :: forall ctx prs m a en es r ei atrs kids cls ecs children for tabx ak. forall exDids -> (DuplicatedIds kids ~ exDids) =>- forall exEcs -> (MapMaybeFilterOutFullyMatchedHead '[] ecs ~ exEcs) =>- E m a en es r ei atrs kids cls ecs children ->+ forall exEcs -> (MapMaybeFilterOutFullyMatchedHead '[] ecs ~ exEcs+ , TabIndexesConsistent tabx ~ '[]+ , AccessKeyConsistent ak ~ '[]+ , ctx ~ ()+ , prs ~ ()+ , for ~ '[]) =>+ E ctx prs m a en es r ei atrs kids cls ecs children for tabx ak -> TestTree doNotTc _ _ _ = testCase "see type message from the checker" do () @?= () -go :: forall m a en es r ei atrs kids cls ecs children.+ariaDoNotTc :: forall ctx prs m a en es r ei atrs kids cls ecs children for tabx ak.+ forall exFors -> ( UnwrapBranches (MapMaybeFilterOutFullyMatchedHead '[] ecs) ~ '[] , DuplicatedIds kids ~ '[]+ , TabIndexesConsistent tabx ~ '[]+ , AccessKeyConsistent ak ~ '[]+ , ctx ~ ()+ , prs ~ ()+ , for ~ exFors) =>+ E ctx prs m a en es r ei atrs kids cls ecs children for tabx ak ->+ TestTree+ariaDoNotTc _ _ =+ testCase "see type message from the checker" do+ () @?= ()++tabIdxDoNotTc :: forall ctx prs m a en es r ei atrs kids cls ecs children for tabx ak.+ forall ex ->+ ( UnwrapBranches (MapMaybeFilterOutFullyMatchedHead '[] ecs) ~ '[]+ , DuplicatedIds kids ~ '[]+ , TabIndexesConsistent tabx ~ ex+ , AccessKeyConsistent ak ~ '[]+ , ctx ~ ()+ , prs ~ ()+ , for ~ '[]) =>+ E ctx prs m a en es r ei atrs kids cls ecs children for tabx ak ->+ TestTree+tabIdxDoNotTc _ _ =+ testCase "see type message from the checker" do+ () @?= ()++accessKeyDoNotTc :: forall ctx prs m a en es r ei atrs kids cls ecs children for tabx ak.+ forall ex ->+ ( UnwrapBranches (MapMaybeFilterOutFullyMatchedHead '[] ecs) ~ '[]+ , DuplicatedIds kids ~ '[]+ , TabIndexesConsistent tabx ~ '[]+ , AccessKeyConsistent ak ~ ex+ , ctx ~ ()+ , prs ~ ()+ , for ~ '[]) =>+ E ctx prs m a en es r ei atrs kids cls ecs children for tabx ak ->+ TestTree+accessKeyDoNotTc _ _ =+ testCase "see type message from the checker" do+ () @?= ()++go :: forall ctx prs m a en es r ei atrs kids cls ecs children for tabx ak.+ ( UnwrapBranches (MapMaybeFilterOutFullyMatchedHead '[] ecs) ~ '[]+ , DuplicatedIds kids ~ '[]+ , for ~ '[]+ , TabIndexesConsistent tabx ~ '[]+ , AccessKeyConsistent ak ~ '[]+ , ctx ~ ()+ , prs ~ ()+ , m ~ () ) =>- L.ByteString -> E m a en es r ei atrs kids cls ecs children -> TestTree+ L.ByteString -> E ctx prs m a en es r ei atrs kids cls ecs children for tabx ak -> TestTree go ex el = testCase (C8.unpack $ C8.toStrict ex) do domLbs el @?= ex
+ test/Miso/Css/Test/Th/AccessKey.hs view
@@ -0,0 +1,13 @@+module Miso.Css.Test.Th.AccessKey where++import Miso.Css.Test.StyleMock++test_t = testGroup "accesskey"+ [ """<div accesskey="a">x</div>""" `go`+ div_ `accessKey` 'a' <@ "x"+ , """<div accesskey="a"><div accesskey="b">x</div></div>""" `go`+ div_ `accessKey` 'a' </ (div_ `accessKey` 'b' <@ "x")+ , """<div accesskey="a"><div accesskey="A">x</div></div>""" `go`+ div_ `accessKey` 'a' </ (div_ `accessKey` 'A' <@ "x")+ , accessKeyDoNotTc ['a'] $ div_ `accessKey` 'a' </ (div_ `accessKey` 'a' <@ "x")+ ]
+ test/Miso/Css/Test/Th/Aria.hs view
@@ -0,0 +1,27 @@+module Miso.Css.Test.Th.Aria where++import Miso.Css.Test.StyleMock++[css|+#aa {}+#bb {}+|]++test_t = testGroup cssAsLiteralText+ [ """<div><span id="aa">hello</span><input aria-labelledby="aa"/></div>""" `go`+ div_ </ (span_ =# Aa <@ "hello") </ input_ `ariaLabelledBy` Aa+ , ariaDoNotTc ["aa"] $+ div_ </ (span_ <@ "hello") </ input_ `ariaLabelledBy` Aa+ , """<div><span id="aa">hello</span><input aria-describedby="aa"/></div>""" `go`+ div_ </ (span_ =# Aa <@ "hello") </ input_ `ariaDescribedBy` Aa+ , ariaDoNotTc ["aa"] $+ div_ </ (span_ <@ "hello") </ input_ `ariaDescribedBy` Aa+ , """<div><span id="aa">hi</span><span id="bb">bye</span><input aria-describedby="aa bb"/></div>"""+ `go`+ div_ </ (span_ =# Aa <@ "hi") </ (span_ =# Bb <@ "bye")+ </ input_ `ariaDescribedBy` Aa `ariaDescribedBy` Bb+ , ariaDoNotTc ["bb"] $+ div_ </ (span_ =# Aa <@ "hi") </ input_ `ariaDescribedBy` Aa `ariaDescribedBy` Bb+ , ariaDoNotTc ["aa"] $+ div_ </ (span_ =# Bb <@ "bye") </ input_ `ariaDescribedBy` Aa `ariaDescribedBy` Bb+ ]
+ test/Miso/Css/Test/Th/For.hs view
@@ -0,0 +1,21 @@+module Miso.Css.Test.Th.For where++import Miso.Css.Test.StyleMock++[css|+#xx {}+|]++test_t = testGroup cssAsLiteralText+ [ """<div><label for="a">l</label><input id="a"/></div>""" `go`+ div_ </ ((label_ `for` Ai) <@ "l") </ input_ =# Ai+ , """<div><label for="xx">l</label><input id="xx"/></div>""" `go`+ div_ </ (label_ {-=<| atr @"for" 3-} `for` Xx <@ "l") </ input_ =# Xx+ , """<label for="xx">l<input id="xx"/></label>""" `go`+ label_ `for` Xx <@ "l" </ input_ =# Xx+ , ariaDoNotTc ["xx"] $ label_ `for` Xx <@ "l" </ input_ =# Ai+ , """<button id="xx"><label for="xx">l</label></button>""" `go`+ button_ =# Xx </ (label_ `for` Xx <@ "l")+ , ariaDoNotTc ["xx"] $ button_ =# Ai </ (label_ `for` Xx <@ "l")+ , ariaDoNotTc ["xx"] $ div_ </ (label_ `for` Xx <@ "l") </ input_+ ]
+ test/Miso/Css/Test/Th/TabIndex.hs view
@@ -0,0 +1,19 @@+module Miso.Css.Test.Th.TabIndex where++import Miso.Css.Test.StyleMock++test_t = testGroup "tabindex"+ [ """<div tabindex="-1">x</div>""" `go`+ tabIndexMinus1 (div_ <@ "x")+ , """<div tabindex="-1"><div tabindex="-1">x</div></div>""" `go`+ tabIndexMinus1 (div_ </ tabIndexMinus1 (div_ <@ "x"))+ , """<div tabindex="0">x</div>""" `go`+ div_ `tabIndex` 0 <@ "x"+ , """<div tabindex="0"><div tabindex="0">x</div></div>""" `go`+ div_ `tabIndex` 0 </ (div_ `tabIndex` 0 <@ "x")+ , """<div tabindex="1">x</div>""" `go`+ div_ `tabIndex` 1 <@ "x"+ , """<div tabindex="1"><div tabindex="2">x</div></div>""" `go`+ div_ `tabIndex` 1 </ (div_ `tabIndex` 2 <@ "x")+ , tabIdxDoNotTc [1] $ div_ `tabIndex` 1 </ (div_ `tabIndex` 1 <@ "x")+ ]