@@ -128,10 +128,10 @@ type SupportsImmediateDomBuilder t m = (Reflex t, MonadIO m, MonadHold t m, Mona
128128newtype EventFilterTriggerRef t er (en :: EventTag) = EventFilterTriggerRef (IORef (Maybe (EventTrigger t (er en))))
129129
130130{-# INLINABLE makeElement #-}
131−makeElement :: forall er t m a. SupportsImmediateDomBuilder t m => Text -> ElementConfig er t (ImmediateDomBuilderT t m) -> ImmediateDomBuilderT t m a -> ImmediateDomBuilderT t m ((Element er GhcjsDomSpace t, a), DOM.Element)
131+makeElement :: forall er t m a. SupportsImmediateDomBuilder t m => Text -> ElementConfig er t (ImmediateDomBuilderT t m) -> ImmediateDomBuilderT t m a -> ImmediateDomBuilderT t m ((Element er GhcjsDomSpace t, a), DOM.HTMLElement)
132132makeElement elementTag cfg child = do
133133 doc <- askDocument
134− Just e <- ImmediateDomBuilderT $ case cfg ^. namespace of
134+ Just e <- ImmediateDomBuilderT $ fmap DOM.castToHTMLElement <$> case cfg ^. namespace of
135135 Nothing -> createElement doc (Just elementTag)
136136 Just ens -> createElementNS doc (Just ens) (Just elementTag)
137137 ImmediateDomBuilderT $ iforM_ (cfg ^. initialAttributes) $ \(mAttrNamespace, n) v -> case mAttrNamespace of
@@ -191,7 +191,9 @@ instance DomSpace GhcjsDomSpace where
191191 type DomHandler1 GhcjsDomSpace = GhcjsDomHandler1
192192 type RawEvent GhcjsDomSpace = GhcjsDomEvent
193193 type RawTextNode GhcjsDomSpace = DOM.Text
194− type RawElement GhcjsDomSpace = DOM.Element
194+ type RawElement GhcjsDomSpace = DOM.HTMLElement
195+ type RawInputElement GhcjsDomSpace = DOM.HTMLInputElement
196+ type RawTextAreaElement GhcjsDomSpace = DOM.HTMLTextAreaElement
195197 {-# INLINABLE defaultEventHandler #-}
196198 defaultEventHandler _ = GhcjsDomHandler1 $ \(Pair1 en (GhcjsDomEvent evt)) -> do
197199 Just t <- withIsEvent en $ Event.getTarget evt
@@ -258,6 +260,7 @@ instance SupportsImmediateDomBuilder t m => DomBuilder t (ImmediateDomBuilderT t
258260 , _inputElement_input = valueChangedByUI
259261 , _inputElement_hasFocus = hasFocus
260262 , _inputElement_element = e
263+ , _inputElement_raw = domInputElement
261264 }
262265 {-# INLINABLE textAreaElement #-}
263266 textAreaElement cfg = do --TODO
@@ -278,7 +281,13 @@ instance SupportsImmediateDomBuilder t m => DomBuilder t (ImmediateDomBuilderT t
278281 [ False <$ Reflex.select (_element_events e) (WrapArg Blur)
279282 , True <$ Reflex.select (_element_events e) (WrapArg Focus)
280283 ]
281− return $ TextAreaElement v valueChangedByUI hasFocus e
284+ return $ TextAreaElement
285+ { _textAreaElement_value = v
286+ , _textAreaElement_input = valueChangedByUI
287+ , _textAreaElement_hasFocus = hasFocus
288+ , _textAreaElement_element = e
289+ , _textAreaElement_raw = domTextAreaElement
290+ }
282291
283292{-# INLINABLE insertImmediateAbove #-}
284293insertImmediateAbove :: (Reflex t, IsNode placeholder, PerformEvent t m, MonadIO (Performable m)) => placeholder -> Event t (ImmediateDomBuilderT t (Performable m) a) -> ImmediateDomBuilderT t m (Event t a)