úÎ!Ĩ†Gą      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  €  ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ  Ž   ‘ ’ “ ” • – — ˜™š›œžŸ ĄĒĢĪĨͧĻĐŠŦŽ­ŪŊ°Safe Gąēģīĩķ·ļNone>SX·bulmex/Block those nothing events and only let trough đ valuesbulmexĸDo something monadic with an event val Because of haskell lazyness the things inside a holdevent don't get evaluated untill the event fires, which makes the first time slow. However it is good for initialization as we don't need to load things unused.bulmexJConvenience holdEvent for the case where we don't care about the value.bulmexÃGet rid of a dynimc around a tupple of events, common sense says we should be able to do this for any traversable, but keeping the values of events hetrogenous is hard (I don't know how to)bulmexÓDo something monadic with an event val, and get the event which is delayed for a moment. Using this may indicate you're doing something weird. Although I've found it handy in getting just something to workbulmex+show something for 5 seconds after an event   None.7kĸbulmex do the postbulmex1trigger spin state without doing default the postbulmexstop the spin state   None&',.7k'—"bulmex=Adds the core html tags. we already know most of the head. ‹ <html> <head> 'HeadSettings' <!-- provided settings --!> </head> <body> 'm a' <!-- provided monad --!> </body> </html>šbulmexĸLTry to keep the head as small as possible. Only things that are required initially should be placed in the head. so the pattern is that we require a bunch of different components initially but we put them in different files. for example we needed the bulma css file for most styling and balloon css for just tooltips.*bulmexĸInsert an encodable in the document body, in case of the server side rendering we encode it as script tag with jsonval, in case of ghcjsdom we read the value from that script tag first arg is the idname to connect the two up (has to be uniq for a doc) !"#$%&'()*" !$%&()'#*None>HNV6z/bulmex7Allows widgets to react according with what's happening5bulmexĸdo a debounced action, create a widget with the dynamic inputstates that indicates the state of doing the action This allows you to automatically request the server once user is finished with typing for example, while not flooding the server with requests trough debouncing6bulmexIMaps input state to bulmex classes: InputStarted = is-warning for example7bulmex2A general debounce widget This looks a lot like  actionFormF, but it's not the same because form allows user code to decide what5bulmex Delay before posting the requestbulmex"Was the final requess successfull?bulmexWidget body reacting to statesbulmexAction function7bulmex,change input timeline, eg pure for no changebulmex"Was the final requess successfull?bulmexWidget body reacting to statesbulmexAction function /01234567 /01234657NoneHNV7(89:;<=>?@ABCDEFGHIJKLMNOF>?@ABCDEG89:;<=IHONMLKJSafe8&RSRSNone;īTbulmex'This type occures to often to not aliasVbulmex>Unifies all keys by concatinating the values with a whitespaceWbulmexIf bool true adds isSelected[bulmex-class attr is what is needed most of the time TUVWXYZ[\] TVWXZ[\UY]NoneNE…^bulmex3An incation that an event came from closing a modal_bulmex€A modal that opens on event and has a cross to close it. m a dictates what's inside the modal. You probably want to use a  .`bulmexXA modal that can be opened and closed with events. It also has a cross to close with.abulmexwThe most generic modal, It receives an open event. And the inner monad can indicate when to close with a closeEvent._bulmex open triggerbulmex modal body`bulmex close triggerbulmex open triggerbulmex modal bodyabulmex open triggerbulmexbody + close trigger result^_`a_`a^ None>HNVHocbulmex-Unlabeled text input with input class appliedgbulmex)A button around an arbitrary dom element: <button> m a </button>It's also styled nicely.bcdefghgfehdbc None>HNVYÐibulmexĖThis function mimics an arbitrary html form in control flow. The first argument is the action function with arbitrary input a and a trigger event. This returns another event in a monadic context. +action="(a -> Event t () -> m (Event t b))"†This perfectly aligns with servant-reflex. The produced event is given to the form, the second argument. which is the form body: O<form>(Event t b -> Dynamic t FormState -> m (a, Event t FormAction, c))</form>and also includes the  Š, indicating if we're executing the action or not. The form has to return 3 values, the information for the action function, The L event that controls the form, and the third is a return value for the form.jbulmex A more general use of the spinstate. The first argument is the widget that can indicate when to execute the second function. It will be made aware of the  .nbulmexVA form captures enter presses of child componetns and sends it to them in an event.ibulmexAction functionbulmex form bodyjbulmex Widget bodybulmexTrigger function ijklmninjlmk None&'SX]ôqbulmexŅallows us to set a default value for tags by defining a join function not a monoid because often it does it wrong, text needs a space for example in case of classes, and the default map monoid is brokenopqrqpro None>NhGsbulmex0Bulma loading screen with help of extension: -https://wikiki.github.io/elements/pageloader/tbulmexBshow input monad while JS is loading, for example a spinning imageubulmexqDon't display something untill event occurs, combine with getready to delay loading of non-critical componentsvbulmex0This doesn't work always, When finished use:  1https://github.com/reflex-frp/reflex-dom/pull/273_ postbuild is imediate for sampling, adding a delay makes it after widget completes see: 8https://github.com/reflex-frp/reflex-dom-semui/issues/18wbulmexCattach the ready event to the widget, which fires once it's usuablestuvwstwuv None&'SXo”xbulmex Container: 0https://bulma.io/documentation/layout/container/{bulmexbulma hero sturcture +https://bulma.io/documentation/layout/hero/ J<section class="hero"> <div class="hero-body"> <div class="container">~bulmex .https://bulma.io/documentation/layout/section/€bulmex 'https://bulma.io/documentation/columns/‡bulmex ,https://bulma.io/documentation/layout/tiles/–bulmex3named labelEl cause didn't want to fix name clashes xyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–— xy{|}~€‚ƒ‡ˆ‰Š‹Œ„…†zŽ•–—‘’“”None&'SXsr˜bulmexHWhen the dynamic is true the first monad is shown, otherwise the second.™bulmexEwhen dynamic is true ishidden will be added, else the attrmap is used˜™š›œ˜™š›œNone&'SX€Œbulmex*kindoff hard to set an image tag in reflexžbulmexfirst class second srcŸbulmexAsometimes you just need 2 pieces of text to seperate with a space bulmex5a html tag that accepts any text into it's href valueĢbulmexFrom  >https://gist.github.com/3noch/134b1ee7fa48c347be9d164c3fac4ef7 Like ŧĘ but configures "prevent default" on the given event. Blocks for example a context menu from poping up on right mouse click. This should be used with caution, as it may be unexpected for end user.ĪbulmexLike ŧ4 but allows you to modify the element configuration.Special thanks to @luigy: Jhttps://gist.github.com/luigy/b49ce04de8462e594c9c2b5b455ae5a5#file-foo-hsĢbulmex'Event on the element to configure with žbulmex Element tagbulmexElement attributesbulmexChild of elementžŸ ĄĒĢĪž ĄĒŸĢĪNone&'SXŒĶbulmexsecond is nameĨͧĻĨͧĻNone&'SX„ŲŪbulmexballoon css, for example:  Hhttps://cdnjs.cloudflare.com/ajax/libs/balloon-css/0.5.0/balloon.min.css uses a span underneathŊbulmex#Allows setting of initial directionĐ­ŠŦŽŪŊ°ŪŊĐ­ŠŦްNone…O=opqrxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĒĢĪĨͧĻĐ­ŠŦŽŪŊ°― !"#$%&'()*+,-../01123456789:;<=>?@ABCDEFGHIJKKLMNOPPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr s t u v w x y z { | } ~  €  ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ  Ž   ‘ ’ “ ” • – — ˜ ™ š › œ  ž Ÿ   Ą Ē Ģ Ī  Ĩ Ķ §ĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÍÐŅŌbulmex-3.0.0-inplaceReflex.Bulmex.EventReflex.Bulmex.Form.FormTypesReflex.Bulmex.HtmlReflex.Bulmex.Input.DebounceReflex.Bulmex.Input.PolymorphicReflex.Bulmex.SpaceReflex.Bulmex.AttrReflex.Bulmex.ModalReflex.Bulmex.Input.BasicReflex.Bulmex.FormReflex.Bulmex.Tag.AbstractReflex.Bulmex.LoadReflex.Bulmex.Tag.BulmaReflex.Bulmex.Tag.HideReflex.Bulmex.Tag.OddReflex.Bulmex.Tag.IconReflex.Bulmex.Tag.Tooltip Paths_bulmexboxReflex.Bulmex.Tag eventJoin noNothing holdEvent holdEvent_ switchTup holdAfterflashflash'evtText gatePrism blockFalse FormState FormStateRestFormStateSpinning FormAction PostDefaultLoadingFormRest _PostDefault_Loading _FormRest$fMonoidFormState$fSemigroupFormState$fGenericFormAction$fShowFormState HeadScript_script_is_async _script_uri HeadSettings_head_js _head_css _head_title htmlWidget defSettingshead_jshead_css head_title defScript script_uriscript_is_async writeReadDom$fGenericHeadScript$fShowHeadScript$fGenericHeadSettings$fShowHeadSettings InputStates InputStarted InputBufferedInputProcessed InputAborted InputInitialwithInputDebounceEvt defStateAttr withInputTextArea_textArea_value_textArea_input_textArea_hasFocus_textArea_keypress TextInput_textInput_value_textInput_input_textInput_keypress_textInput_keydown_textInput_keyup_textInput_hasFocus textInputtextAreatextArea_keypresstextArea_valuetextInput_hasFocustextInput_inputtextInput_keydowntextInput_keypresstextInput_keyuptextInput_value$fHasValueTextInput$fHasValueTextAreaspace spaceJoinAttrMapisHidden attrUnionisSelectedAttrwhenAttr switchAttr inputAttr classAttrdisabledcolspanOnClosemodalmodal' modalClosetxtAreatxtInputbuttonClassAttr abuttonLarge abuttonClassabuttonabuttonDynAttr actionForm spinWidgetloadAttr withSpinDynaSpinButtonClassform partialDivtxtEl defaultEl dynAttrEl pageLoader prerenderLoadpostponegetReady withReadyEvt containercontainerClassbuttonsherocontentsectsection sectionDyncolumnscolumn columnsClass columnClasscontrol controlClass controlDyntile tileChildtileChildClasstileParentClass tileParent tileAncestorfield fieldClass fieldGroupedtitle titleClazzsubtitle subtitleClasslabeled'labelEl labelClass switchDivhideDivhideDiv_ hideEmptyDiv hideEmptyDynimage imageClass textSpaceahrefahref'ahrefDynelDynAttrPrevDefelDynAttrModConficon iconClassiconDynflask ToolDirectionTopLftRghtDown tooltipText tooltipText' tipToAttrversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamebase GHC.MaybeJust headWidget.reflex-dom-core-0.5.2.0-6LyJhboDQhs8P63MXpnMXBReflex.Dom.Widget.Basic elDynAttr'Reflex.Dom.Builder.ClasspreventDefault