@@ -12,7 +12,8 @@ Elm.Native.Graphics.Input = function(elm) {
1212 var Signal = Elm.Signal(elm);
1313 var newElement = Elm.Graphics.Element(elm).newElement;
1414 var JS = Elm.Native.JavaScript(elm);
15− var Tuple2 = Elm.Native.Utils(elm).Tuple2;
15+ var Utils = Elm.Native.Utils(elm);
16+ var Tuple2 = Utils.Tuple2;
1617
1718 function dropDown(values) {
1819 var entries = JS.fromList(values);
@@ -145,6 +146,19 @@ Elm.Native.Graphics.Input = function(elm) {
145146 }
146147
147148
149+ function hoverables(defaultValue) {
150+ var events = Signal.constant(defaultValue);
151+ function hoverable(handler, elem) {
152+ function onHover(bool) {
153+ elm.notify(events.id, handler(bool));
154+ }
155+ var props = Utils.replace([['hover',onHover]], elem.props);
156+ return { props:props, element:elem.element };
157+ }
158+ return { _:{}, hoverable:F2(hoverable), events:events };
159+ }
160+
161+
148162 function checkboxes(defaultValue) {
149163 var events = Signal.constant(defaultValue);
150164
@@ -271,6 +285,7 @@ Elm.Native.Graphics.Input = function(elm) {
271285 return elm.Native.Graphics.Input = {
272286 buttons:buttons,
273287 customButtons:customButtons,
288+ hoverables:hoverables,
274289 checkboxes:checkboxes,
275290 fields:mkTextPool('text'),
276291 emails:mkTextPool('email'),