@@ -5,6 +5,7 @@ module Yoga.Block.Internal
55 , unsafeEmotion
66 , unsafeDiv
77 , dangerous
8+ , deleteUndefineds
89 , DivProps
910 , DivPropsF
1011 , DivPropsNoChildren
@@ -27,6 +28,7 @@ module Yoga.Block.Internal
2728 , module Yoga.Block.Internal.CSS
2829 , unsafeUnionDroppingUndefined
2930 , unsafeMergeSecond
31+ , unsafeAddProps
3032 , createRef
3133 , getBoundingBoxFromRef
3234 , getElementFromRef
@@ -62,37 +64,40 @@ import React.Basic.Emotion as E
6264import React.Basic.Events (EventHandler)
6365import React.Basic.Hooks (JSX, ReactComponent, Ref, Render, readRefMaybe)
6466import Record.Extra (class Keys, keys)
65−import Type.Data.Row (RProxy(..))
67+import Type.Proxy (Proxy(..))
6668import Unsafe.Coerce (unsafeCoerce)
6769import Untagged.Union (UndefinedOr, uorToMaybe)
6870import Web.DOM (Element, Node)
69−import Web.DOM.Element (scrollHeight, scrollWidth)
71+import Web.DOM.Element (scrollHeight, scrollWidth, DOMRect, getBoundingClientRect)
7072import Web.DOM.Element as Element
7173import Web.DOM.NonElementParentNode (getElementById)
7274import Web.HTML (window)
7375import Web.HTML.HTMLDocument as HTMLDocument
74−import Web.HTML.HTMLElement (DOMRect, HTMLElement, focus, getBoundingClientRect, offsetHeight, offsetWidth)
76+import Web.HTML.HTMLElement (HTMLElement, focus, offsetHeight, offsetWidth)
7577import Web.HTML.HTMLElement as HTMLElement
7678import Web.HTML.Window (document)
7779import Yoga.Block.Internal.CSS (_0)
7880import Yoga.Block.Internal.OptionalProp (OptionalProp(..), Id, appendIfDefined, asOptional, composeHandler, getOr, getOrFlipped, ifTrue, isTruthy, maybeToOp, opToMaybe, setOrDelete, unsafeUnMaybe, unsafeUnOptional, (<>?), (?||))
81+import Record.Unsafe.Union (unsafeUnion)
7982
80−foreign import mkForwardRefComponent ∷
81− ∀ inputProps props a hooks.
82− String ->
83− ({ | inputProps } -> Ref a -> Render Unit hooks JSX) ->
84− ReactComponent { | props }
83+unsafeAddProps ∷ ∀ r s. { | r } → { | s } → { | r }
84+unsafeAddProps = unsafeUnion
8585
86−foreign import mkForwardRefComponentEffect ∷
87− ∀ inputProps props a hooks.
88− String ->
89− ({ | inputProps } -> Ref a -> Render Unit hooks JSX) ->
90− Effect (ReactComponent { | props })
86+foreign import mkForwardRefComponent
87+ ∷ ∀ inputProps props a hooks
88+ . String
89+ -> ({ | inputProps } -> Ref a -> Render Unit hooks JSX)
90+ -> ReactComponent { | props }
91+
92+foreign import mkForwardRefComponentEffect
93+ ∷ ∀ inputProps props a hooks
94+ . String
95+ -> ({ | inputProps } -> Ref a -> Render Unit hooks JSX)
96+ -> Effect (ReactComponent { | props })
9197
9298foreign import createRef ∷ ∀ a. Effect (Ref a)
9399
94−type NodeRef
95− = Ref (Nullable Node)
100+type NodeRef = Ref (Nullable Node)
96101
97102focusNodeRef ∷ NodeRef -> Effect Unit
98103focusNodeRef ref = do
@@ -108,8 +113,8 @@ findElementByIdInDocument id = do
108113
109114getBoundingBoxFromRef ∷ NodeRef -> Effect (Maybe DOMRect)
110115getBoundingBoxFromRef itemRef = do
111− htmlElem <- getHTMLElementFromRef itemRef
112− for htmlElem getBoundingClientRect
116+ elem <- getElementFromRef itemRef
117+ for elem getBoundingClientRect
113118
114119getOffsetWidthFromRef ∷ NodeRef -> Effect (Maybe Number)
115120getOffsetWidthFromRef itemRef = do
@@ -169,34 +174,36 @@ forwardedRefAsMaybe r = safelyWrapped # uorToMaybe >>= Nullable.toMaybe
169174
170175foreign import unsafeUnionDroppingUndefined ∷ ∀ r1 r2 r3. Record r1 -> Record r2 -> Record r3
171176
177+foreign import deleteUndefineds ∷ ∀ r. Record r -> Record r
178+
172179foreign import unsafeMergeSecond ∷ ∀ r1 r2 r3. Record r1 -> Record r2 -> Record r3
173180
174181unsafeEmotion ∷ ∀ props propsA propsB. ReactComponent { className ∷ String, css ∷ E.Style | props } -> Record propsA -> { className ∷ String, css ∷ E.Style | propsB } -> JSX
175182unsafeEmotion component propsA propsB = E.element component (unsafeUnionDroppingUndefined propsB propsA)
176183
177−emotionDiv_ ∷
178− ∀ props props_.
179− Lacks "ref" props =>
180− Union props props_ ( className ∷ String, css ∷ Style, ref ∷ Ref (Nullable Node) | DivProps ) =>
181− (Record (DivProps)) ->
182− { className ∷ String
183− , css ∷ Style
184− | props
185− } ->
186− JSX
184+emotionDiv_
185+ ∷ ∀ props props_
186+ . Lacks "ref" props
187+ => Union props props_ (className ∷ String, css ∷ Style, ref ∷ Ref (Nullable Node) | DivProps)
188+ => (Record (DivProps))
189+ -> { className ∷ String
190+ , css ∷ Style
191+ | props
192+ }
193+ -> JSX
187194emotionDiv_ = unsafeEmotion unsafeDiv
188195
189−emotionDiv ∷
190− ∀ props props_ more.
191− Lacks "ref" props =>
192− Union props props_ ( className ∷ String, css ∷ Style, ref ∷ Ref (Nullable Node) | DivProps ) =>
193− Ref (Nullable Node) ->
194− { | DivPropsF Id more } ->
195− { className ∷ String
196− , css ∷ Style
197− | props
198− } ->
199− JSX
196+emotionDiv
197+ ∷ ∀ props props_ more
198+ . Lacks "ref" props
199+ => Union props props_ (className ∷ String, css ∷ Style, ref ∷ Ref (Nullable Node) | DivProps)
200+ => Ref (Nullable Node)
201+ -> { | DivPropsF Id more }
202+ -> { className ∷ String
203+ , css ∷ Style
204+ | props
205+ }
206+ -> JSX
200207emotionDiv ref = emotionDiv_ <<< pickDefined ref
201208
202209unsafeDiv ∷ ∀ r. ReactComponent (Record r)
@@ -204,39 +211,39 @@ unsafeDiv = dangerous "div"
204211
205212foreign import pickDefinedFn ∷ ∀ r1 r2. Fn3 (Ref (Nullable Node)) (Array String) (Record r1) (Record r2)
206213
207−pickDefined ∷
208− ∀ a r b l.
209− Row.Union b r a =>
210− RL.RowToList b l =>
211− Ref (Nullable Node) ->
212− Keys l =>
213− Record a ->
214− { ref ∷ Ref (Nullable Node) | b }
214+pickDefined
215+ ∷ ∀ a r b l
216+ . Row.Union b r a
217+ => RL.RowToList b l
218+ => Ref (Nullable Node)
219+ -> Keys l
220+ => Record a
221+ -> { ref ∷ Ref (Nullable Node) | b }
215222pickDefined ref = runFn3 pickDefinedFn ref ks
216223 where
217− ks = Array.fromFoldable $ keys (RProxy ∷ RProxy b)
218−
219−emotionInput_ ∷
220− ∀ props props_.
221− Union props props_ ( className ∷ String, css ∷ Style | InputWritablePropsF Id () ) =>
222− { | InputWritableProps } ->
223− { className ∷ String
224− , css ∷ Style
225− | props
226− } ->
227− JSX
224+ ks = Array.fromFoldable $ keys (Proxy ∷ Proxy b)
225+
226+emotionInput_
227+ ∷ ∀ props props_
228+ . Union props props_ (className ∷ String, css ∷ Style | InputWritablePropsF Id ())
229+ => { | InputWritableProps }
230+ -> { className ∷ String
231+ , css ∷ Style
232+ | props
233+ }
234+ -> JSX
228235emotionInput_ = unsafeEmotion unsafeInput
229236
230−emotionInput ∷
231− ∀ props props_ more.
232− Union props props_ ( className ∷ String, css ∷ Style | InputWritableProps ) =>
233− Ref (Nullable Node) ->
234− { | InputReadablePropsF OptionalProp more } ->
235− { className ∷ String
236− , css ∷ Style
237− | props
238− } ->
239− JSX
237+emotionInput
238+ ∷ ∀ props props_ more
239+ . Union props props_ (className ∷ String, css ∷ Style | InputWritableProps)
240+ => Ref (Nullable Node)
241+ -> { | InputReadablePropsF OptionalProp more }
242+ -> { className ∷ String
243+ , css ∷ Style
244+ | props
245+ }
246+ -> JSX
240247emotionInput ref = emotionInput_ <<< pickDefined ref <<< coerceUnOptional
241248 where
242249 coerceUnOptional ∷ { | InputReadablePropsF OptionalProp more } -> { | InputReadablePropsF Id more }
@@ -245,28 +252,28 @@ emotionInput ref = emotionInput_ <<< pickDefined ref <<< coerceUnOptional
245252unsafeInput ∷ ∀ r. ReactComponent (Record r)
246253unsafeInput = dangerous "input"
247254
248−emotionButton_ ∷
249− ∀ props props_.
250− Union props props_ ( className ∷ String, css ∷ Style | ButtonWritableProps ) =>
251− { | ButtonWritableProps } ->
252− { className ∷ String
253− , css ∷ Style
254− | props
255− } ->
256− JSX
255+emotionButton_
256+ ∷ ∀ props props_
257+ . Union props props_ (className ∷ String, css ∷ Style | ButtonWritableProps)
258+ => { | ButtonWritableProps }
259+ -> { className ∷ String
260+ , css ∷ Style
261+ | props
262+ }
263+ -> JSX
257264emotionButton_ = unsafeEmotion unsafeButton
258265
259−emotionButton ∷
260− ∀ props props_ more.
261− Lacks "ref" props =>
262− Union props props_ ( className ∷ String, css ∷ Style | ButtonWritableProps ) =>
263− Ref (Nullable Node) ->
264− { | ButtonReadablePropsF OptionalProp more } ->
265− { className ∷ String
266− , css ∷ Style
267− | props
268− } ->
269− JSX
266+emotionButton
267+ ∷ ∀ props props_ more
268+ . Lacks "ref" props
269+ => Union props props_ (className ∷ String, css ∷ Style | ButtonWritableProps)
270+ => Ref (Nullable Node)
271+ -> { | ButtonReadablePropsF OptionalProp more }
272+ -> { className ∷ String
273+ , css ∷ Style
274+ | props
275+ }
276+ -> JSX
270277emotionButton ref = emotionButton_ <<< pickDefined ref <<< coerceUnOptional
271278 where
272279 coerceUnOptional ∷ { | ButtonReadablePropsF OptionalProp more } -> { | ButtonReadablePropsF Id more }
@@ -280,475 +287,465 @@ dangerous = unsafePerformEffect <<< unsafeCreateDOMComponent
280287
281288-- type DivProps =
282289-- Props_div
283−type DivProps
284− = DivPropsF Id ()
285−
286−type DivPropsNoChildren
287− = DivPropsNoChildrenF Id ()
288−
289−type DivPropsF f more
290− = DivPropsNoChildrenF f ( children ∷ f (Array JSX) | more)
291−
292−type DivPropsNoChildrenF f more
293− = ( _aria ∷ f (Object String)
294− , _data ∷ f (Object String)
295− , about ∷ f String
296− , acceptCharset ∷ f String
297− , accessKey ∷ f String
298− , allowFullScreen ∷ f Boolean
299− , autoFocus ∷ f Boolean
300− , autoPlay ∷ f Boolean
301− , capture ∷ f Boolean
302− , cellPadding ∷ f String
303− , cellSpacing ∷ f String
304− , charSet ∷ f String
305− , classID ∷ f String
306− , colSpan ∷ f Int
307− , contentEditable ∷ f Boolean
308− , contextMenu ∷ f String
309− , crossOrigin ∷ f String
310− , dangerouslySetInnerHTML ∷ f { __html ∷ f String }
311− , datatype ∷ f String
312− , dateTime ∷ f String
313− , dir ∷ f String
314− , draggable ∷ f Boolean
315− , encType ∷ f String
316− , formAction ∷ f String
317− , formEncType ∷ f String
318− , formMethod ∷ f String
319− , formNoValidate ∷ f Boolean
320− , formTarget ∷ f String
321− , frameBorder ∷ f String
322− , hidden ∷ f Boolean
323− , hrefLang ∷ f String
324− , htmlFor ∷ f String
325− , httpEquiv ∷ f String
326− , icon ∷ f String
327− , id ∷ f String
328− , inlist ∷ f String
329− , inputMode ∷ f String
330− , is ∷ f String
331− , itemID ∷ f String
332− , itemProp ∷ f String
333− , itemRef ∷ f String
334− , itemScope ∷ f Boolean
335− , itemType ∷ f String
336− , keyParams ∷ f String
337− , keyType ∷ f String
338− , lang ∷ f String
339− , marginHeight ∷ f String
340− , marginWidth ∷ f String
341− , maxLength ∷ f Int
342− , mediaGroup ∷ f String
343− , minLength ∷ f Int
344− , noValidate ∷ f Boolean
345− , onAnimationEnd ∷ f EventHandler
346− , onAnimationIteration ∷ f EventHandler
347− , onAnimationStart ∷ f EventHandler
348− , onBlur ∷ f EventHandler
349− , onClick ∷ f EventHandler
350− , onCompositionEnd ∷ f EventHandler
351− , onCompositionStart ∷ f EventHandler
352− , onCompositionUpdate ∷ f EventHandler
353− , onContextMenu ∷ f EventHandler
354− , onCopy ∷ f EventHandler
355− , onCut ∷ f EventHandler
356− , onDoubleClick ∷ f EventHandler
357− , onDrag ∷ f EventHandler
358− , onDragEnd ∷ f EventHandler
359− , onDragEnter ∷ f EventHandler
360− , onDragExit ∷ f EventHandler
361− , onDragLeave ∷ f EventHandler
362− , onDragOver ∷ f EventHandler
363− , onDragStart ∷ f EventHandler
364− , onDrop ∷ f EventHandler
365− , onFocus ∷ f EventHandler
366− , onGotPointerCapture ∷ f EventHandler
367− , onInvalid ∷ f EventHandler
368− , onKeyDown ∷ f EventHandler
369− , onKeyPress ∷ f EventHandler
370− , onKeyUp ∷ f EventHandler
371− , onLostPointerCapture ∷ f EventHandler
372− , onMouseDown ∷ f EventHandler
373− , onMouseEnter ∷ f EventHandler
374− , onMouseLeave ∷ f EventHandler
375− , onMouseMove ∷ f EventHandler
376− , onMouseOut ∷ f EventHandler
377− , onMouseOver ∷ f EventHandler
378− , onMouseUp ∷ f EventHandler
379− , onPaste ∷ f EventHandler
380− , onPointerCancel ∷ f EventHandler
381− , onPointerDown ∷ f EventHandler
382− , onPointerEnter ∷ f EventHandler
383− , onPointerLeave ∷ f EventHandler
384− , onPointerMove ∷ f EventHandler
385− , onPointerOut ∷ f EventHandler
386− , onPointerOver ∷ f EventHandler
387− , onPointerUp ∷ f EventHandler
388− , onSelect ∷ f EventHandler
389− , onSubmit ∷ f EventHandler
390− , onTouchCancel ∷ f EventHandler
391− , onTouchEnd ∷ f EventHandler
392− , onTouchMove ∷ f EventHandler
393− , onTouchStart ∷ f EventHandler
394− , onTransitionEnd ∷ f EventHandler
395− , onWheel ∷ f EventHandler
396− , prefix ∷ f String
397− , property ∷ f String
398− , radioGroup ∷ f String
399− , readOnly ∷ f Boolean
400− , ref ∷ f (Ref (Nullable Node))
401− , resource ∷ f String
402− , role ∷ f String
403− , rowSpan ∷ f Int
404− , scoped ∷ f Boolean
405− , seamless ∷ f Boolean
406− , security ∷ f String
407− , spellCheck ∷ f Boolean
408− , srcDoc ∷ f JSX
409− , srcLang ∷ f String
410− , srcSet ∷ f String
411− , style ∷ f CSS
412− , suppressContentEditableWarning ∷ f Boolean
413− , tabIndex ∷ f Int
414− , title ∷ f String
415− , typeof ∷ f String
416− , unselectable ∷ f Boolean
417− , useMap ∷ f String
418− , vocab ∷ f String
419− , wmode ∷ f String
420− | more
421− )
422−type InputReadableProps
423− = InputReadablePropsF OptionalProp ()
424−
425−type InputWritableProps
426− = InputWritablePropsF Id ()
427−
428−type InputWritablePropsF f more
429− = InputReadablePropsF f
430− ( ref ∷ f (Ref (Nullable Node))
431− | more
432− )
433−
434−type InputReadablePropsF f more
435− = ( _aria ∷ f (Object String)
436− , _data ∷ f (Object String)
437− , about ∷ f String
438− , accept ∷ f String
439− , acceptCharset ∷ f String
440− , accessKey ∷ f String
441− , allowFullScreen ∷ f Boolean
442− , alt ∷ f String
443− , autoCapitalize ∷ f String
444− , autoComplete ∷ f String
445− , autoCorrect ∷ f String
446− , autoFocus ∷ f Boolean
447− , autoPlay ∷ f Boolean
448− , autoSave ∷ f String
449− , capture ∷ f Boolean
450− , cellPadding ∷ f String
451− , cellSpacing ∷ f String
452− , charSet ∷ f String
453− , checked ∷ f Boolean
454− , classID ∷ f String
455− , colSpan ∷ f Int
456− , contentEditable ∷ f Boolean
457− , contextMenu ∷ f String
458− , crossOrigin ∷ f String
459− , dangerouslySetInnerHTML ∷ f { __html ∷ f String }
460− , datatype ∷ f String
461− , dateTime ∷ f String
462− , defaultChecked ∷ f String
463− , defaultValue ∷ f String
464− , dir ∷ f String
465− , disabled ∷ f Boolean
466− , draggable ∷ f Boolean
467− , encType ∷ f String
468− , form ∷ f String
469− , formAction ∷ f String
470− , formEncType ∷ f String
471− , formMethod ∷ f String
472− , formNoValidate ∷ f Boolean
473− , formTarget ∷ f String
474− , frameBorder ∷ f String
475− , height ∷ f String
476− , hidden ∷ f Boolean
477− , hrefLang ∷ f String
478− , htmlFor ∷ f String
479− , httpEquiv ∷ f String
480− , icon ∷ f String
481− , id ∷ f String
482− , inlist ∷ f String
483− , inputMode ∷ f String
484− , is ∷ f String
485− , itemID ∷ f String
486− , itemProp ∷ f String
487− , itemRef ∷ f String
488− , itemScope ∷ f Boolean
489− , itemType ∷ f String
490− , keyParams ∷ f String
491− , keyType ∷ f String
492− , lang ∷ f String
493− , list ∷ f String
494− , marginHeight ∷ f String
495− , marginWidth ∷ f String
496− , maxLength ∷ f Int
497− , mediaGroup ∷ f String
498− , minLength ∷ f Int
499− , multiple ∷ f Boolean
500− , name ∷ f String
501− , noValidate ∷ f Boolean
502− , onAnimationEnd ∷ f EventHandler
503− , onAnimationIteration ∷ f EventHandler
504− , onAnimationStart ∷ f EventHandler
505− , onBlur ∷ f EventHandler
506− , onChange ∷ f EventHandler
507− , onClick ∷ f EventHandler
508− , onCompositionEnd ∷ f EventHandler
509− , onCompositionStart ∷ f EventHandler
510− , onCompositionUpdate ∷ f EventHandler
511− , onContextMenu ∷ f EventHandler
512− , onCopy ∷ f EventHandler
513− , onCut ∷ f EventHandler
514− , onDoubleClick ∷ f EventHandler
515− , onDrag ∷ f EventHandler
516− , onDragEnd ∷ f EventHandler
517− , onDragEnter ∷ f EventHandler
518− , onDragExit ∷ f EventHandler
519− , onDragLeave ∷ f EventHandler
520− , onDragOver ∷ f EventHandler
521− , onDragStart ∷ f EventHandler
522− , onDrop ∷ f EventHandler
523− , onFocus ∷ f EventHandler
524− , onGotPointerCapture ∷ f EventHandler
525− , onInvalid ∷ f EventHandler
526− , onKeyDown ∷ f EventHandler
527− , onKeyPress ∷ f EventHandler
528− , onKeyUp ∷ f EventHandler
529− , onLostPointerCapture ∷ f EventHandler
530− , onMouseDown ∷ f EventHandler
531− , onMouseEnter ∷ f EventHandler
532− , onMouseLeave ∷ f EventHandler
533− , onMouseMove ∷ f EventHandler
534− , onMouseOut ∷ f EventHandler
535− , onMouseOver ∷ f EventHandler
536− , onMouseUp ∷ f EventHandler
537− , onPaste ∷ f EventHandler
538− , onPointerCancel ∷ f EventHandler
539− , onPointerDown ∷ f EventHandler
540− , onPointerEnter ∷ f EventHandler
541− , onPointerLeave ∷ f EventHandler
542− , onPointerMove ∷ f EventHandler
543− , onPointerOut ∷ f EventHandler
544− , onPointerOver ∷ f EventHandler
545− , onPointerUp ∷ f EventHandler
546− , onSelect ∷ f EventHandler
547− , onSubmit ∷ f EventHandler
548− , onTouchCancel ∷ f EventHandler
549− , onTouchEnd ∷ f EventHandler
550− , onTouchMove ∷ f EventHandler
551− , onTouchStart ∷ f EventHandler
552− , onTransitionEnd ∷ f EventHandler
553− , onWheel ∷ f EventHandler
554− , pattern ∷ f String
555− , placeholder ∷ f String
556− , prefix ∷ f String
557− , property ∷ f String
558− , radioGroup ∷ f String
559− -- , ref ∷ f (Ref (Nullable Node))
560− , readOnly ∷ f Boolean
561− , required ∷ f Boolean
562− , resource ∷ f String
563− , results ∷ f String
564− , role ∷ f String
565− , rowSpan ∷ f Int
566− , scoped ∷ f Boolean
567− , seamless ∷ f Boolean
568− , security ∷ f String
569− , size ∷ f Int
570− , spellCheck ∷ f Boolean
571− , src ∷ f String
572− , srcDoc ∷ f JSX
573− , srcLang ∷ f String
574− , srcSet ∷ f String
575− , step ∷ f String
576− , style ∷ f CSS
577− , suppressContentEditableWarning ∷ f Boolean
578− , tabIndex ∷ f Int
579− , title ∷ f String
580− , type ∷ f String
581− , typeof ∷ f String
582− , unselectable ∷ f Boolean
583− , useMap ∷ f String
584− , value ∷ f String
585− , vocab ∷ f String
586− , width ∷ f String
587− , wmode ∷ f String
588− , min ∷ f (String)
589− , max ∷ f (String)
590− | more
591− )
592−
593−type ButtonReadableProps
594− = ButtonReadablePropsF OptionalProp ()
595−
596−type ButtonWritableProps
597− = ButtonWritablePropsF Id ()
290+type DivProps = DivPropsF Id ()
291+
292+type DivPropsNoChildren = DivPropsNoChildrenF Id ()
293+
294+type DivPropsF f more = DivPropsNoChildrenF f (children ∷ f (Array JSX) | more)
295+
296+type DivPropsNoChildrenF f more =
297+ ( _aria ∷ f (Object String)
298+ , _data ∷ f (Object String)
299+ , about ∷ f String
300+ , acceptCharset ∷ f String
301+ , accessKey ∷ f String
302+ , allowFullScreen ∷ f Boolean
303+ , autoFocus ∷ f Boolean
304+ , autoPlay ∷ f Boolean
305+ , capture ∷ f Boolean
306+ , cellPadding ∷ f String
307+ , cellSpacing ∷ f String
308+ , charSet ∷ f String
309+ , classID ∷ f String
310+ , colSpan ∷ f Int
311+ , contentEditable ∷ f Boolean
312+ , contextMenu ∷ f String
313+ , crossOrigin ∷ f String
314+ , dangerouslySetInnerHTML ∷ f { __html ∷ f String }
315+ , datatype ∷ f String
316+ , dateTime ∷ f String
317+ , dir ∷ f String
318+ , draggable ∷ f Boolean
319+ , encType ∷ f String
320+ , formAction ∷ f String
321+ , formEncType ∷ f String
322+ , formMethod ∷ f String
323+ , formNoValidate ∷ f Boolean
324+ , formTarget ∷ f String
325+ , frameBorder ∷ f String
326+ , hidden ∷ f Boolean
327+ , hrefLang ∷ f String
328+ , htmlFor ∷ f String
329+ , httpEquiv ∷ f String
330+ , icon ∷ f String
331+ , id ∷ f String
332+ , inlist ∷ f String
333+ , inputMode ∷ f String
334+ , is ∷ f String
335+ , itemID ∷ f String
336+ , itemProp ∷ f String
337+ , itemRef ∷ f String
338+ , itemScope ∷ f Boolean
339+ , itemType ∷ f String
340+ , keyParams ∷ f String
341+ , keyType ∷ f String
342+ , lang ∷ f String
343+ , marginHeight ∷ f String
344+ , marginWidth ∷ f String
345+ , maxLength ∷ f Int
346+ , mediaGroup ∷ f String
347+ , minLength ∷ f Int
348+ , noValidate ∷ f Boolean
349+ , onAnimationEnd ∷ f EventHandler
350+ , onAnimationIteration ∷ f EventHandler
351+ , onAnimationStart ∷ f EventHandler
352+ , onBlur ∷ f EventHandler
353+ , onClick ∷ f EventHandler
354+ , onCompositionEnd ∷ f EventHandler
355+ , onCompositionStart ∷ f EventHandler
356+ , onCompositionUpdate ∷ f EventHandler
357+ , onContextMenu ∷ f EventHandler
358+ , onCopy ∷ f EventHandler
359+ , onCut ∷ f EventHandler
360+ , onDoubleClick ∷ f EventHandler
361+ , onDrag ∷ f EventHandler
362+ , onDragEnd ∷ f EventHandler
363+ , onDragEnter ∷ f EventHandler
364+ , onDragExit ∷ f EventHandler
365+ , onDragLeave ∷ f EventHandler
366+ , onDragOver ∷ f EventHandler
367+ , onDragStart ∷ f EventHandler
368+ , onDrop ∷ f EventHandler
369+ , onFocus ∷ f EventHandler
370+ , onGotPointerCapture ∷ f EventHandler
371+ , onInvalid ∷ f EventHandler
372+ , onKeyDown ∷ f EventHandler
373+ , onKeyPress ∷ f EventHandler
374+ , onKeyUp ∷ f EventHandler
375+ , onLostPointerCapture ∷ f EventHandler
376+ , onMouseDown ∷ f EventHandler
377+ , onMouseEnter ∷ f EventHandler
378+ , onMouseLeave ∷ f EventHandler
379+ , onMouseMove ∷ f EventHandler
380+ , onMouseOut ∷ f EventHandler
381+ , onMouseOver ∷ f EventHandler
382+ , onMouseUp ∷ f EventHandler
383+ , onPaste ∷ f EventHandler
384+ , onPointerCancel ∷ f EventHandler
385+ , onPointerDown ∷ f EventHandler
386+ , onPointerEnter ∷ f EventHandler
387+ , onPointerLeave ∷ f EventHandler
388+ , onPointerMove ∷ f EventHandler
389+ , onPointerOut ∷ f EventHandler
390+ , onPointerOver ∷ f EventHandler
391+ , onPointerUp ∷ f EventHandler
392+ , onSelect ∷ f EventHandler
393+ , onSubmit ∷ f EventHandler
394+ , onTouchCancel ∷ f EventHandler
395+ , onTouchEnd ∷ f EventHandler
396+ , onTouchMove ∷ f EventHandler
397+ , onTouchStart ∷ f EventHandler
398+ , onTransitionEnd ∷ f EventHandler
399+ , onWheel ∷ f EventHandler
400+ , prefix ∷ f String
401+ , property ∷ f String
402+ , radioGroup ∷ f String
403+ , readOnly ∷ f Boolean
404+ , ref ∷ f (Ref (Nullable Node))
405+ , resource ∷ f String
406+ , role ∷ f String
407+ , rowSpan ∷ f Int
408+ , scoped ∷ f Boolean
409+ , seamless ∷ f Boolean
410+ , security ∷ f String
411+ , spellCheck ∷ f Boolean
412+ , srcDoc ∷ f JSX
413+ , srcLang ∷ f String
414+ , srcSet ∷ f String
415+ , style ∷ f CSS
416+ , suppressContentEditableWarning ∷ f Boolean
417+ , tabIndex ∷ f Int
418+ , title ∷ f String
419+ , typeof ∷ f String
420+ , unselectable ∷ f Boolean
421+ , useMap ∷ f String
422+ , vocab ∷ f String
423+ , wmode ∷ f String
424+ | more
425+ )
426+
427+type InputReadableProps = InputReadablePropsF OptionalProp ()
428+
429+type InputWritableProps = InputWritablePropsF Id ()
430+
431+type InputWritablePropsF f more = InputReadablePropsF f
432+ ( ref ∷ f (Ref (Nullable Node))
433+ | more
434+ )
435+
436+type InputReadablePropsF f more =
437+ ( _aria ∷ f (Object String)
438+ , _data ∷ f (Object String)
439+ , about ∷ f String
440+ , accept ∷ f String
441+ , acceptCharset ∷ f String
442+ , accessKey ∷ f String
443+ , allowFullScreen ∷ f Boolean
444+ , alt ∷ f String
445+ , autoCapitalize ∷ f String
446+ , autoComplete ∷ f String
447+ , autoCorrect ∷ f String
448+ , autoFocus ∷ f Boolean
449+ , autoPlay ∷ f Boolean
450+ , autoSave ∷ f String
451+ , capture ∷ f Boolean
452+ , cellPadding ∷ f String
453+ , cellSpacing ∷ f String
454+ , charSet ∷ f String
455+ , checked ∷ f Boolean
456+ , classID ∷ f String
457+ , colSpan ∷ f Int
458+ , contentEditable ∷ f Boolean
459+ , contextMenu ∷ f String
460+ , crossOrigin ∷ f String
461+ , dangerouslySetInnerHTML ∷ f { __html ∷ f String }
462+ , datatype ∷ f String
463+ , dateTime ∷ f String
464+ , defaultChecked ∷ f String
465+ , defaultValue ∷ f String
466+ , dir ∷ f String
467+ , disabled ∷ f Boolean
468+ , draggable ∷ f Boolean
469+ , encType ∷ f String
470+ , form ∷ f String
471+ , formAction ∷ f String
472+ , formEncType ∷ f String
473+ , formMethod ∷ f String
474+ , formNoValidate ∷ f Boolean
475+ , formTarget ∷ f String
476+ , frameBorder ∷ f String
477+ , height ∷ f String
478+ , hidden ∷ f Boolean
479+ , hrefLang ∷ f String
480+ , htmlFor ∷ f String
481+ , httpEquiv ∷ f String
482+ , icon ∷ f String
483+ , id ∷ f String
484+ , inlist ∷ f String
485+ , inputMode ∷ f String
486+ , is ∷ f String
487+ , itemID ∷ f String
488+ , itemProp ∷ f String
489+ , itemRef ∷ f String
490+ , itemScope ∷ f Boolean
491+ , itemType ∷ f String
492+ , keyParams ∷ f String
493+ , keyType ∷ f String
494+ , lang ∷ f String
495+ , list ∷ f String
496+ , marginHeight ∷ f String
497+ , marginWidth ∷ f String
498+ , maxLength ∷ f Int
499+ , mediaGroup ∷ f String
500+ , minLength ∷ f Int
501+ , multiple ∷ f Boolean
502+ , name ∷ f String
503+ , noValidate ∷ f Boolean
504+ , onAnimationEnd ∷ f EventHandler
505+ , onAnimationIteration ∷ f EventHandler
506+ , onAnimationStart ∷ f EventHandler
507+ , onBlur ∷ f EventHandler
508+ , onChange ∷ f EventHandler
509+ , onClick ∷ f EventHandler
510+ , onCompositionEnd ∷ f EventHandler
511+ , onCompositionStart ∷ f EventHandler
512+ , onCompositionUpdate ∷ f EventHandler
513+ , onContextMenu ∷ f EventHandler
514+ , onCopy ∷ f EventHandler
515+ , onCut ∷ f EventHandler
516+ , onDoubleClick ∷ f EventHandler
517+ , onDrag ∷ f EventHandler
518+ , onDragEnd ∷ f EventHandler
519+ , onDragEnter ∷ f EventHandler
520+ , onDragExit ∷ f EventHandler
521+ , onDragLeave ∷ f EventHandler
522+ , onDragOver ∷ f EventHandler
523+ , onDragStart ∷ f EventHandler
524+ , onDrop ∷ f EventHandler
525+ , onFocus ∷ f EventHandler
526+ , onGotPointerCapture ∷ f EventHandler
527+ , onInvalid ∷ f EventHandler
528+ , onKeyDown ∷ f EventHandler
529+ , onKeyPress ∷ f EventHandler
530+ , onKeyUp ∷ f EventHandler
531+ , onLostPointerCapture ∷ f EventHandler
532+ , onMouseDown ∷ f EventHandler
533+ , onMouseEnter ∷ f EventHandler
534+ , onMouseLeave ∷ f EventHandler
535+ , onMouseMove ∷ f EventHandler
536+ , onMouseOut ∷ f EventHandler
537+ , onMouseOver ∷ f EventHandler
538+ , onMouseUp ∷ f EventHandler
539+ , onPaste ∷ f EventHandler
540+ , onPointerCancel ∷ f EventHandler
541+ , onPointerDown ∷ f EventHandler
542+ , onPointerEnter ∷ f EventHandler
543+ , onPointerLeave ∷ f EventHandler
544+ , onPointerMove ∷ f EventHandler
545+ , onPointerOut ∷ f EventHandler
546+ , onPointerOver ∷ f EventHandler
547+ , onPointerUp ∷ f EventHandler
548+ , onSelect ∷ f EventHandler
549+ , onSubmit ∷ f EventHandler
550+ , onTouchCancel ∷ f EventHandler
551+ , onTouchEnd ∷ f EventHandler
552+ , onTouchMove ∷ f EventHandler
553+ , onTouchStart ∷ f EventHandler
554+ , onTransitionEnd ∷ f EventHandler
555+ , onWheel ∷ f EventHandler
556+ , pattern ∷ f String
557+ , placeholder ∷ f String
558+ , prefix ∷ f String
559+ , property ∷ f String
560+ , radioGroup ∷ f String
561+ -- , ref ∷ f (Ref (Nullable Node))
562+ , readOnly ∷ f Boolean
563+ , required ∷ f Boolean
564+ , resource ∷ f String
565+ , results ∷ f String
566+ , role ∷ f String
567+ , rowSpan ∷ f Int
568+ , scoped ∷ f Boolean
569+ , seamless ∷ f Boolean
570+ , security ∷ f String
571+ , size ∷ f Int
572+ , spellCheck ∷ f Boolean
573+ , src ∷ f String
574+ , srcDoc ∷ f JSX
575+ , srcLang ∷ f String
576+ , srcSet ∷ f String
577+ , step ∷ f String
578+ , style ∷ f CSS
579+ , suppressContentEditableWarning ∷ f Boolean
580+ , tabIndex ∷ f Int
581+ , title ∷ f String
582+ , type ∷ f String
583+ , typeof ∷ f String
584+ , unselectable ∷ f Boolean
585+ , useMap ∷ f String
586+ , value ∷ f String
587+ , vocab ∷ f String
588+ , width ∷ f String
589+ , wmode ∷ f String
590+ , min ∷ f (String)
591+ , max ∷ f (String)
592+ | more
593+ )
594+
595+type ButtonReadableProps = ButtonReadablePropsF OptionalProp ()
596+
597+type ButtonWritableProps = ButtonWritablePropsF Id ()
598598
599599type ButtonWritablePropsF :: forall k. (Type -> k) -> Row k -> Row k
600−type ButtonWritablePropsF f more
601− = ButtonReadablePropsF f
602− ( ref ∷ f (Ref (Nullable Node))
603− | more
604− )
600+type ButtonWritablePropsF f more = ButtonReadablePropsF f
601+ ( ref ∷ f (Ref (Nullable Node))
602+ | more
603+ )
605604
606605type ButtonWritablePropsNoChildrenF :: forall k. (Type -> k) -> Row k -> Row k
607−type ButtonWritablePropsNoChildrenF f more
608− = ButtonReadablePropsNoChildrenF f
609− ( ref ∷ f (Ref (Nullable Node))
610− | more
611− )
606+type ButtonWritablePropsNoChildrenF f more = ButtonReadablePropsNoChildrenF f
607+ ( ref ∷ f (Ref (Nullable Node))
608+ | more
609+ )
612610
613611type ButtonReadablePropsF :: forall k. (Type -> k) -> Row k -> Row k
614−type ButtonReadablePropsF f more
615− = ButtonReadablePropsNoChildrenF f ( children ∷ f (Array JSX) | more)
616−
612+type ButtonReadablePropsF f more = ButtonReadablePropsNoChildrenF f (children ∷ f (Array JSX) | more)
613+
617614type ButtonReadablePropsNoChildrenF :: forall k. (Type -> k) -> Row k -> Row k
618−type ButtonReadablePropsNoChildrenF f more
619− = ( _aria ∷ f (Object String)
620− , _data ∷ f (Object String)
621− , about ∷ f String
622− , acceptCharset ∷ f String
623− , accessKey ∷ f String
624− , allowFullScreen ∷ f Boolean
625− , allowTransparency ∷ f Boolean
626− , autoFocus ∷ f Boolean
627− , autoPlay ∷ f Boolean
628− , capture ∷ f Boolean
629− , cellPadding ∷ f String
630− , cellSpacing ∷ f String
631− , charSet ∷ f String
632− , classID ∷ f String
633− , className ∷ f String
634− , colSpan ∷ f Int
635− , contentEditable ∷ f Boolean
636− , contextMenu ∷ f String
637− , crossOrigin ∷ f String
638− , dangerouslySetInnerHTML ∷ f { __html ∷ String }
639− , datatype ∷ f String
640− , dateTime ∷ f String
641− , dir ∷ f String
642− , disabled ∷ f Boolean
643− , draggable ∷ f Boolean
644− , encType ∷ f String
645− , form ∷ f String
646− , formAction ∷ f String
647− , formEncType ∷ f String
648− , formMethod ∷ f String
649− , formNoValidate ∷ f Boolean
650− , formTarget ∷ f String
651− , frameBorder ∷ f String
652− , hidden ∷ f Boolean
653− , hrefLang ∷ f String
654− , htmlFor ∷ f String
655− , httpEquiv ∷ f String
656− , icon ∷ f String
657− , id ∷ f String
658− , inlist ∷ f String
659− , inputMode ∷ f String
660− , is ∷ f String
661− , itemID ∷ f String
662− , itemProp ∷ f String
663− , itemRef ∷ f String
664− , itemScope ∷ f Boolean
665− , itemType ∷ f String
666− , key ∷ f String
667− , keyParams ∷ f String
668− , keyType ∷ f String
669− , lang ∷ f String
670− , marginHeight ∷ f String
671− , marginWidth ∷ f String
672− , maxLength ∷ f Int
673− , mediaGroup ∷ f String
674− , minLength ∷ f Int
675− , name ∷ f String
676− , noValidate ∷ f Boolean
677− , onAnimationEnd ∷ f EventHandler
678− , onAnimationIteration ∷ f EventHandler
679− , onAnimationStart ∷ f EventHandler
680− , onBlur ∷ f EventHandler
681− , onClick ∷ f EventHandler
682− , onCompositionEnd ∷ f EventHandler
683− , onCompositionStart ∷ f EventHandler
684− , onCompositionUpdate ∷ f EventHandler
685− , onContextMenu ∷ f EventHandler
686− , onCopy ∷ f EventHandler
687− , onCut ∷ f EventHandler
688− , onDoubleClick ∷ f EventHandler
689− , onDrag ∷ f EventHandler
690− , onDragEnd ∷ f EventHandler
691− , onDragEnter ∷ f EventHandler
692− , onDragExit ∷ f EventHandler
693− , onDragLeave ∷ f EventHandler
694− , onDragOver ∷ f EventHandler
695− , onDragStart ∷ f EventHandler
696− , onDrop ∷ f EventHandler
697− , onFocus ∷ f EventHandler
698− , onGotPointerCapture ∷ f EventHandler
699− , onInvalid ∷ f EventHandler
700− , onKeyDown ∷ f EventHandler
701− , onKeyPress ∷ f EventHandler
702− , onKeyUp ∷ f EventHandler
703− , onLostPointerCapture ∷ f EventHandler
704− , onMouseDown ∷ f EventHandler
705− , onMouseEnter ∷ f EventHandler
706− , onMouseLeave ∷ f EventHandler
707− , onMouseMove ∷ f EventHandler
708− , onMouseOut ∷ f EventHandler
709− , onMouseOver ∷ f EventHandler
710− , onMouseUp ∷ f EventHandler
711− , onPaste ∷ f EventHandler
712− , onPointerCancel ∷ f EventHandler
713− , onPointerDown ∷ f EventHandler
714− , onPointerEnter ∷ f EventHandler
715− , onPointerLeave ∷ f EventHandler
716− , onPointerMove ∷ f EventHandler
717− , onPointerOut ∷ f EventHandler
718− , onPointerOver ∷ f EventHandler
719− , onPointerUp ∷ f EventHandler
720− , onSelect ∷ f EventHandler
721− , onSubmit ∷ f EventHandler
722− , onTouchCancel ∷ f EventHandler
723− , onTouchEnd ∷ f EventHandler
724− , onTouchMove ∷ f EventHandler
725− , onTouchStart ∷ f EventHandler
726− , onTransitionEnd ∷ f EventHandler
727− , onWheel ∷ f EventHandler
728− , prefix ∷ f String
729− , property ∷ f String
730− , radioGroup ∷ f String
731− , readOnly ∷ f Boolean
732− , resource ∷ f String
733− , role ∷ f String
734− , rowSpan ∷ f Int
735− , scoped ∷ f Boolean
736− , seamless ∷ f Boolean
737− , security ∷ f String
738− , spellCheck ∷ f Boolean
739− , srcDoc ∷ f JSX
740− , srcLang ∷ f String
741− , srcSet ∷ f String
742− , style ∷ f CSS
743− , suppressContentEditableWarning ∷ f Boolean
744− , tabIndex ∷ f Int
745− , title ∷ f String
746− , type ∷ f String
747− , typeof ∷ f String
748− , unselectable ∷ f Boolean
749− , useMap ∷ f String
750− , value ∷ f String
751− , vocab ∷ f String
752− , wmode ∷ f String
753− | more
754− )
615+type ButtonReadablePropsNoChildrenF f more =
616+ ( _aria ∷ f (Object String)
617+ , _data ∷ f (Object String)
618+ , about ∷ f String
619+ , acceptCharset ∷ f String
620+ , accessKey ∷ f String
621+ , allowFullScreen ∷ f Boolean
622+ , allowTransparency ∷ f Boolean
623+ , autoFocus ∷ f Boolean
624+ , autoPlay ∷ f Boolean
625+ , capture ∷ f Boolean
626+ , cellPadding ∷ f String
627+ , cellSpacing ∷ f String
628+ , charSet ∷ f String
629+ , classID ∷ f String
630+ , className ∷ f String
631+ , colSpan ∷ f Int
632+ , contentEditable ∷ f Boolean
633+ , contextMenu ∷ f String
634+ , crossOrigin ∷ f String
635+ , dangerouslySetInnerHTML ∷ f { __html ∷ String }
636+ , datatype ∷ f String
637+ , dateTime ∷ f String
638+ , dir ∷ f String
639+ , disabled ∷ f Boolean
640+ , draggable ∷ f Boolean
641+ , encType ∷ f String
642+ , form ∷ f String
643+ , formAction ∷ f String
644+ , formEncType ∷ f String
645+ , formMethod ∷ f String
646+ , formNoValidate ∷ f Boolean
647+ , formTarget ∷ f String
648+ , frameBorder ∷ f String
649+ , hidden ∷ f Boolean
650+ , hrefLang ∷ f String
651+ , htmlFor ∷ f String
652+ , httpEquiv ∷ f String
653+ , icon ∷ f String
654+ , id ∷ f String
655+ , inlist ∷ f String
656+ , inputMode ∷ f String
657+ , is ∷ f String
658+ , itemID ∷ f String
659+ , itemProp ∷ f String
660+ , itemRef ∷ f String
661+ , itemScope ∷ f Boolean
662+ , itemType ∷ f String
663+ , key ∷ f String
664+ , keyParams ∷ f String
665+ , keyType ∷ f String
666+ , lang ∷ f String
667+ , marginHeight ∷ f String
668+ , marginWidth ∷ f String
669+ , maxLength ∷ f Int
670+ , mediaGroup ∷ f String
671+ , minLength ∷ f Int
672+ , name ∷ f String
673+ , noValidate ∷ f Boolean
674+ , onAnimationEnd ∷ f EventHandler
675+ , onAnimationIteration ∷ f EventHandler
676+ , onAnimationStart ∷ f EventHandler
677+ , onBlur ∷ f EventHandler
678+ , onClick ∷ f EventHandler
679+ , onCompositionEnd ∷ f EventHandler
680+ , onCompositionStart ∷ f EventHandler
681+ , onCompositionUpdate ∷ f EventHandler
682+ , onContextMenu ∷ f EventHandler
683+ , onCopy ∷ f EventHandler
684+ , onCut ∷ f EventHandler
685+ , onDoubleClick ∷ f EventHandler
686+ , onDrag ∷ f EventHandler
687+ , onDragEnd ∷ f EventHandler
688+ , onDragEnter ∷ f EventHandler
689+ , onDragExit ∷ f EventHandler
690+ , onDragLeave ∷ f EventHandler
691+ , onDragOver ∷ f EventHandler
692+ , onDragStart ∷ f EventHandler
693+ , onDrop ∷ f EventHandler
694+ , onFocus ∷ f EventHandler
695+ , onGotPointerCapture ∷ f EventHandler
696+ , onInvalid ∷ f EventHandler
697+ , onKeyDown ∷ f EventHandler
698+ , onKeyPress ∷ f EventHandler
699+ , onKeyUp ∷ f EventHandler
700+ , onLostPointerCapture ∷ f EventHandler
701+ , onMouseDown ∷ f EventHandler
702+ , onMouseEnter ∷ f EventHandler
703+ , onMouseLeave ∷ f EventHandler
704+ , onMouseMove ∷ f EventHandler
705+ , onMouseOut ∷ f EventHandler
706+ , onMouseOver ∷ f EventHandler
707+ , onMouseUp ∷ f EventHandler
708+ , onPaste ∷ f EventHandler
709+ , onPointerCancel ∷ f EventHandler
710+ , onPointerDown ∷ f EventHandler
711+ , onPointerEnter ∷ f EventHandler
712+ , onPointerLeave ∷ f EventHandler
713+ , onPointerMove ∷ f EventHandler
714+ , onPointerOut ∷ f EventHandler
715+ , onPointerOver ∷ f EventHandler
716+ , onPointerUp ∷ f EventHandler
717+ , onSelect ∷ f EventHandler
718+ , onSubmit ∷ f EventHandler
719+ , onTouchCancel ∷ f EventHandler
720+ , onTouchEnd ∷ f EventHandler
721+ , onTouchMove ∷ f EventHandler
722+ , onTouchStart ∷ f EventHandler
723+ , onTransitionEnd ∷ f EventHandler
724+ , onWheel ∷ f EventHandler
725+ , prefix ∷ f String
726+ , property ∷ f String
727+ , radioGroup ∷ f String
728+ , readOnly ∷ f Boolean
729+ , resource ∷ f String
730+ , role ∷ f String
731+ , rowSpan ∷ f Int
732+ , scoped ∷ f Boolean
733+ , seamless ∷ f Boolean
734+ , security ∷ f String
735+ , spellCheck ∷ f Boolean
736+ , srcDoc ∷ f JSX
737+ , srcLang ∷ f String
738+ , srcSet ∷ f String
739+ , style ∷ f CSS
740+ , suppressContentEditableWarning ∷ f Boolean
741+ , tabIndex ∷ f Int
742+ , title ∷ f String
743+ , type ∷ f String
744+ , typeof ∷ f String
745+ , unselectable ∷ f Boolean
746+ , useMap ∷ f String
747+ , value ∷ f String
748+ , vocab ∷ f String
749+ , wmode ∷ f String
750+ | more
751+ )