@@ -9,9 +9,12 @@ module Yoga.Block.Internal
9 , DivPropsF
9 , DivPropsF
10 , InputProps
10 , InputProps
11 , InputPropsF
11 , InputPropsF
13 , emotionDiv
15 , emotionDiv
14 , emotionInput
16 , emotionInput
15 , module Yoga.Block.Internal.OptionalProp
18 , module Yoga.Block.Internal.OptionalProp
16 , module Yoga.Block.Internal.CSS
19 , module Yoga.Block.Internal.CSS
17 , unsafeUnionDroppingUndefined
20 , unsafeUnionDroppingUndefined
@@ -35,13 +38,14 @@ import Foreign.Object (Object)
35import Prim.Row (class Lacks, class Union)
38import Prim.Row (class Lacks, class Union)
36import Prim.Row as Row
39import Prim.Row as Row
37import Prim.RowList as RL
40import Prim.RowList as RL
38−import React.Basic.DOM (CSS, unsafeCreateDOMComponent)
41+import React.Basic.DOM (CSS, Props_input, Props_button, unsafeCreateDOMComponent)
39import React.Basic.Emotion (Style)
42import React.Basic.Emotion (Style)
40import React.Basic.Emotion as E
43import React.Basic.Emotion as E
41import React.Basic.Events (EventHandler)
44import React.Basic.Events (EventHandler)
42import React.Basic.Hooks (JSX, ReactComponent, Ref, Render, readRefMaybe)
45import React.Basic.Hooks (JSX, ReactComponent, Ref, Render, readRefMaybe)
43import Record.Extra (class Keys, keys)
46import Record.Extra (class Keys, keys)
44import Type.Data.Row (RProxy(..))
47import Type.Data.Row (RProxy(..))
48+import Type.Row (type (+))
45import Unsafe.Coerce (unsafeCoerce)
49import Unsafe.Coerce (unsafeCoerce)
46import Untagged.Union (UndefinedOr, uorToMaybe)
50import Untagged.Union (UndefinedOr, uorToMaybe)
47import Web.DOM (Node)
51import Web.DOM (Node)
@@ -136,30 +140,31 @@ pickDefined ref = runFn3 pickDefinedFn ref ks
137 ks = Array.fromFoldable $ keys (RProxy ∷ RProxy b)
141 ks = Array.fromFoldable $ keys (RProxy ∷ RProxy b)
139−emotionInput_ ∷
143+-- [TODO] Delete?
140 ∀ props props_.
145 ∀ props props_.
141 Lacks "ref" props =>
146 Lacks "ref" props =>
142− Union props props_ ( className ∷ String, css ∷ Style, ref ∷ Ref (Nullable Node) | InputProps ) =>
147+ Union props props_ ( className ∷ String, css ∷ Style, ref ∷ Ref (Nullable Node), key ∷ String | InputProps ) =>
143 { | InputProps } ->
148 { | InputProps } ->
144 { className ∷ String
149 { className ∷ String
145 , css ∷ Style
150 , css ∷ Style
149−emotionInput_ = unsafeEmotion unsafeInput
155+emotionInputKeyed_ = unsafeEmotionKeyed unsafeInput
151−emotionInputKeyed_ ∷
157+emotionInput_ ∷
152 ∀ props props_.
158 ∀ props props_.
153 Lacks "ref" props =>
159 Lacks "ref" props =>
154− Union props props_ ( className ∷ String, css ∷ Style, ref ∷ Ref (Nullable Node), key ∷ String | InputProps ) =>
160+ Union props props_ ( className ∷ String, css ∷ Style, ref ∷ Ref (Nullable Node) | InputProps ) =>
155 { | InputProps } ->
161 { | InputProps } ->
156 { className ∷ String
162 { className ∷ String
157 , css ∷ Style
163 , css ∷ Style
162−emotionInputKeyed_ = unsafeEmotionKeyed unsafeInput
167+emotionInput_ = unsafeEmotion unsafeInput
164emotionInput ∷
169emotionInput ∷
165 ∀ props props_ more.
170 ∀ props props_ more.
@@ -177,6 +182,34 @@ emotionInput ref = emotionInput_ <<< pickDefined ref
177unsafeInput ∷ ∀ r. ReactComponent (Record r)
182unsafeInput ∷ ∀ r. ReactComponent (Record r)
178unsafeInput = dangerous "input"
183unsafeInput = dangerous "input"
187+ Lacks "ref" props =>
188+ Union props props_ ( className ∷ String, css ∷ Style | ButtonProps ) =>
189+ { | ButtonProps } ->
190+ { className ∷ String
195+emotionButton_ = unsafeEmotion unsafeButton
198+ ∀ props props_ more.
199+ Lacks "ref" props =>
200+ Union props props_ ( className ∷ String, css ∷ Style | ButtonProps ) =>
201+ Ref (Nullable Node) ->
202+ { | ButtonPropsF Id more } ->
203+ { className ∷ String
208+emotionButton ref = emotionButton_ <<< pickDefined ref
210+unsafeButton ∷ ∀ r. ReactComponent (Record r)
211+unsafeButton = dangerous "button"
180dangerous ∷ ∀ props. String -> ReactComponent (Record props)
213dangerous ∷ ∀ props. String -> ReactComponent (Record props)
181dangerous = unsafePerformEffect <<< unsafeCreateDOMComponent
214dangerous = unsafePerformEffect <<< unsafeCreateDOMComponent
@@ -479,3 +512,146 @@ type InputPropsF f more
479 , max ∷ f (String)
512 , max ∷ f (String)
517+ = ButtonPropsF Id ()
519+type ButtonPropsF f more
520+ = ( _aria :: f (Object String)
521+ , _data :: f (Object String)
523+ , acceptCharset :: f String
524+ , accessKey :: f String
525+ , allowFullScreen :: f Boolean
526+ , allowTransparency :: f Boolean
527+ , autoFocus :: f Boolean
528+ , autoPlay :: f Boolean
529+ , capture :: f Boolean
530+ , cellPadding :: f String
531+ , cellSpacing :: f String
532+ , charSet :: f String
533+ , children :: f (Array JSX)
534+ , classID :: f String
535+ , className :: f String
537+ , contentEditable :: f Boolean
538+ , contextMenu :: f String
539+ , crossOrigin :: f String
540+ , dangerouslySetInnerHTML :: f { __html :: String }
541+ , datatype :: f String
542+ , dateTime :: f String
544+ , disabled :: f Boolean
545+ , draggable :: f Boolean
546+ , encType :: f String
548+ , formAction :: f String
549+ , formEncType :: f String
550+ , formMethod :: f String
551+ , formNoValidate :: f Boolean
552+ , formTarget :: f String
553+ , frameBorder :: f String
554+ , hidden :: f Boolean
555+ , hrefLang :: f String
556+ , htmlFor :: f String
557+ , httpEquiv :: f String
560+ , inlist :: f String
561+ , inputMode :: f String
563+ , itemID :: f String
564+ , itemProp :: f String
565+ , itemRef :: f String
566+ , itemScope :: f Boolean
567+ , itemType :: f String
569+ , keyParams :: f String
570+ , keyType :: f String
572+ , marginHeight :: f String
573+ , marginWidth :: f String
574+ , maxLength :: f Int
575+ , mediaGroup :: f String
576+ , minLength :: f Int
578+ , noValidate :: f Boolean
579+ , onAnimationEnd :: f EventHandler
580+ , onAnimationIteration :: f EventHandler
581+ , onAnimationStart :: f EventHandler
582+ , onBlur :: f EventHandler
583+ , onClick :: f EventHandler
584+ , onCompositionEnd :: f EventHandler
585+ , onCompositionStart :: f EventHandler
586+ , onCompositionUpdate :: f EventHandler
587+ , onContextMenu :: f EventHandler
588+ , onCopy :: f EventHandler
589+ , onCut :: f EventHandler
590+ , onDoubleClick :: f EventHandler
591+ , onDrag :: f EventHandler
592+ , onDragEnd :: f EventHandler
593+ , onDragEnter :: f EventHandler
594+ , onDragExit :: f EventHandler
595+ , onDragLeave :: f EventHandler
596+ , onDragOver :: f EventHandler
597+ , onDragStart :: f EventHandler
598+ , onDrop :: f EventHandler
599+ , onFocus :: f EventHandler
600+ , onGotPointerCapture :: f EventHandler
601+ , onInvalid :: f EventHandler
602+ , onKeyDown :: f EventHandler
603+ , onKeyPress :: f EventHandler
604+ , onKeyUp :: f EventHandler
605+ , onLostPointerCapture :: f EventHandler
606+ , onMouseDown :: f EventHandler
607+ , onMouseEnter :: f EventHandler
608+ , onMouseLeave :: f EventHandler
609+ , onMouseMove :: f EventHandler
610+ , onMouseOut :: f EventHandler
611+ , onMouseOver :: f EventHandler
612+ , onMouseUp :: f EventHandler
613+ , onPaste :: f EventHandler
614+ , onPointerCancel :: f EventHandler
615+ , onPointerDown :: f EventHandler
616+ , onPointerEnter :: f EventHandler
617+ , onPointerLeave :: f EventHandler
618+ , onPointerMove :: f EventHandler
619+ , onPointerOut :: f EventHandler
620+ , onPointerOver :: f EventHandler
621+ , onPointerUp :: f EventHandler
622+ , onSelect :: f EventHandler
623+ , onSubmit :: f EventHandler
624+ , onTouchCancel :: f EventHandler
625+ , onTouchEnd :: f EventHandler
626+ , onTouchMove :: f EventHandler
627+ , onTouchStart :: f EventHandler
628+ , onTransitionEnd :: f EventHandler
629+ , onWheel :: f EventHandler
630+ , prefix :: f String
631+ , property :: f String
632+ , radioGroup :: f String
633+ , readOnly :: f Boolean
634+ , ref :: f (Ref (Nullable Node))
635+ , resource :: f String
638+ , scoped :: f Boolean
639+ , seamless :: f Boolean
640+ , security :: f String
641+ , spellCheck :: f Boolean
643+ , srcLang :: f String
644+ , srcSet :: f String
646+ , suppressContentEditableWarning :: f Boolean
650+ , typeof :: f String
651+ , unselectable :: f Boolean
652+ , useMap :: f String