@@ -1983,6 +1983,9 @@
19831983 };
19841984 };
19851985 }
1986+ function _lookup(no, yes, k, m2) {
1987+ return k in m2 ? yes(m2[k]) : no;
1988+ }
19861989 function toArrayWithKey(f) {
19871990 return function(m2) {
19881991 var r = [];
@@ -2083,6 +2086,37 @@
20832086 })(s)(m2);
20842087 });
20852088 };
2089+ var unionWith = function(f) {
2090+ return function(m1) {
2091+ return function(m2) {
2092+ return mutate(function(s1) {
2093+ return foldM1(function(s2) {
2094+ return function(k) {
2095+ return function(v1) {
2096+ return poke2(k)(_lookup(v1, function(v2) {
2097+ return f(v1)(v2);
2098+ }, k, m2))(s2);
2099+ };
2100+ };
2101+ })(s1)(m1);
2102+ })(m2);
2103+ };
2104+ };
2105+ };
2106+ var semigroupObject = function(dictSemigroup) {
2107+ return {
2108+ append: unionWith(append(dictSemigroup))
2109+ };
2110+ };
2111+ var monoidObject = function(dictSemigroup) {
2112+ var semigroupObject1 = semigroupObject(dictSemigroup);
2113+ return {
2114+ mempty: empty2,
2115+ Semigroup0: function() {
2116+ return semigroupObject1;
2117+ }
2118+ };
2119+ };
20862120 var fold2 = /* @__PURE__ */ _foldM(applyFlipped);
20872121 var foldMap2 = function(dictMonoid) {
20882122 var append1 = append(dictMonoid.Semigroup0());
@@ -2232,11 +2266,23 @@
22322266 };
22332267 var semigroupRecordCons2 = /* @__PURE__ */ semigroupRecordCons(childrenIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(downIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(hoverIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(meatIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(nervesIsSymbol)()(semigroupRecordNil)(semigroupArray))(semigroupArray))(semigroupArray))(semigroupArray));
22342268 var show2 = /* @__PURE__ */ show(showInt);
2235− var mempty2 = /* @__PURE__ */ mempty(monoidArray);
22362269 var monoidRecord2 = /* @__PURE__ */ monoidRecord();
2237− var monoidRecordCons2 = /* @__PURE__ */ monoidRecordCons(childrenIsSymbol);
2238− var monoidRecordCons1 = /* @__PURE__ */ monoidRecordCons(downIsSymbol)(monoidArray)()(/* @__PURE__ */ monoidRecordCons(hoverIsSymbol)(monoidArray)()(/* @__PURE__ */ monoidRecordCons(meatIsSymbol)(monoidArray)()(/* @__PURE__ */ monoidRecordCons(nervesIsSymbol)(monoidArray)()(monoidRecordNil))));
2239− var mempty1 = /* @__PURE__ */ mempty(/* @__PURE__ */ monoidRecord2(/* @__PURE__ */ monoidRecordCons2(monoidArray)()(monoidRecordCons1)));
2270+ var monoidRecordCons2 = /* @__PURE__ */ monoidRecordCons(downIsSymbol);
2271+ var monoidObject2 = /* @__PURE__ */ monoidObject(/* @__PURE__ */ semigroupRecord3(/* @__PURE__ */ semigroupRecordCons({
2272+ reflectSymbol: function() {
2273+ return "key";
2274+ }
2275+ })()(/* @__PURE__ */ semigroupRecordCons({
2276+ reflectSymbol: function() {
2277+ return "value";
2278+ }
2279+ })()(semigroupRecordNil)(semigroupString))(semigroupString)));
2280+ var monoidRecordCons1 = /* @__PURE__ */ monoidRecordCons(hoverIsSymbol);
2281+ var monoidRecordCons22 = /* @__PURE__ */ monoidRecordCons(meatIsSymbol);
2282+ var mempty2 = /* @__PURE__ */ mempty(monoidArray);
2283+ var monoidRecordCons3 = /* @__PURE__ */ monoidRecordCons(childrenIsSymbol);
2284+ var monoidRecordCons4 = /* @__PURE__ */ monoidRecordCons2(monoidArray)()(/* @__PURE__ */ monoidRecordCons1(monoidArray)()(/* @__PURE__ */ monoidRecordCons22(monoidArray)()(/* @__PURE__ */ monoidRecordCons(nervesIsSymbol)(monoidArray)()(monoidRecordNil))));
2285+ var mempty1 = /* @__PURE__ */ mempty(/* @__PURE__ */ monoidRecord2(/* @__PURE__ */ monoidRecordCons3(monoidArray)()(monoidRecordCons4)));
22402286 var foldMap3 = /* @__PURE__ */ foldMap2(monoidString);
22412287 var show1 = /* @__PURE__ */ show(showNumber);
22422288 var mempty22 = /* @__PURE__ */ mempty(monoidUnit);
@@ -2632,7 +2678,11 @@
26322678 var semigroupSkinGrowth = {
26332679 append: function(v) {
26342680 return function(v1) {
2635− return union(v)(v1);
2681+ return {
2682+ meat: union(v.meat)(v1.meat),
2683+ hover: union(v.hover)(v1.hover),
2684+ down: union(v.down)(v1.down)
2685+ };
26362686 };
26372687 }
26382688 };
@@ -2711,7 +2761,7 @@
27112761 }
27122762 };
27132763 var monoidSkinGrowth = {
2714− mempty: empty2,
2764+ mempty: /* @__PURE__ */ mempty(/* @__PURE__ */ monoidRecord2(/* @__PURE__ */ monoidRecordCons2(monoidObject2)()(/* @__PURE__ */ monoidRecordCons1(monoidObject2)()(/* @__PURE__ */ monoidRecordCons22(monoidObject2)()(monoidRecordNil))))),
27152765 Semigroup0: function() {
27162766 return semigroupSkinGrowth;
27172767 }
@@ -2732,7 +2782,7 @@
27322782 };
27332783 var mempty4 = /* @__PURE__ */ mempty(monoidMutation);
27342784 var monoidGenericUI = function(dictMonoid) {
2735− var mempty52 = mempty(monoidRecord2(monoidRecordCons2(dictMonoid)()(monoidRecordCons1)));
2785+ var mempty52 = mempty(monoidRecord2(monoidRecordCons3(dictMonoid)()(monoidRecordCons4)));
27362786 var semigroupGenericUI1 = semigroupGenericUI(dictMonoid.Semigroup0());
27372787 return function(dictMonoid1) {
27382788 var semigroupGenericUI2 = semigroupGenericUI1(dictMonoid1.Semigroup0());
@@ -2800,15 +2850,27 @@
28002850 return function(v1) {
28012851 return "." + (className + ("{" + (v1.key + (":" + (v1.value + ";}")))));
28022852 };
2803− })(v);
2853+ })(v.meat) + (foldMap3(function(className) {
2854+ return function(v1) {
2855+ return "." + (className + ("{" + (v1.key + (":" + (v1.value + ";}")))));
2856+ };
2857+ })(v.hover) + foldMap3(function(className) {
2858+ return function(v1) {
2859+ return "." + (className + ("{" + (v1.key + (":" + (v1.value + ";}")))));
2860+ };
2861+ })(v.down));
28042862 };
28052863 var sk = function(cName) {
28062864 return function(key) {
28072865 return function(value12) {
2808− return discard2(tell2(singleton2(cName)({
2809− key,
2810− value: value12
2811− })))(function() {
2866+ return discard2(tell2({
2867+ meat: singleton2(cName)({
2868+ key,
2869+ value: value12
2870+ }),
2871+ hover: empty2,
2872+ down: empty2
2873+ }))(function() {
28122874 return pure2([cName]);
28132875 });
28142876 };
@@ -3033,7 +3095,7 @@
30333095 };
30343096 };
30353097 var onMouseDown = function(dictMonoid) {
3036− var mempty52 = mempty(monoidRecord2(monoidRecordCons2(dictMonoid)()(monoidRecordCons1)));
3098+ var mempty52 = mempty(monoidRecord2(monoidRecordCons3(dictMonoid)()(monoidRecordCons4)));
30373099 return function(v) {
30383100 return new UI({
30393101 nerves: mempty52.nerves,
@@ -3045,7 +3107,7 @@
30453107 };
30463108 };
30473109 var onHover = function(dictMonoid) {
3048− var mempty52 = mempty(monoidRecord2(monoidRecordCons2(dictMonoid)()(monoidRecordCons1)));
3110+ var mempty52 = mempty(monoidRecord2(monoidRecordCons3(dictMonoid)()(monoidRecordCons4)));
30493111 return function(v) {
30503112 return new UI({
30513113 nerves: mempty52.nerves,
@@ -3057,7 +3119,7 @@
30573119 };
30583120 };
30593121 var m = function(dictMonoid) {
3060− var mempty52 = mempty(monoidRecord2(monoidRecordCons2(dictMonoid)()(monoidRecordCons1)));
3122+ var mempty52 = mempty(monoidRecord2(monoidRecordCons3(dictMonoid)()(monoidRecordCons4)));
30613123 return function(meat) {
30623124 return new UI({
30633125 nerves: mempty52.nerves,
@@ -3094,10 +3156,10 @@
30943156 var widthFill = [new Width(Fill.value), new Height(Fill.value)];
30953157 var alignCenter = [new Align(X.value, Center.value), new Align(Y.value, Center.value)];
30963158 var skn = function(ctx) {
3097− return bind2(map2(function($482) {
3159+ return bind2(map2(function($513) {
30983160 return function(v2) {
30993161 return append2(v2)(v.extraSkin);
3100− }(concat($482));
3162+ }(concat($513));
31013163 })(traverse2(skin(ctx))(append2(v1.value0.meat)(append2(function() {
31023164 if (ctx instanceof Span) {
31033165 return mempty2;
@@ -3115,7 +3177,7 @@
31153177 return widthFill;
31163178 }
31173179 ;
3118− throw new Error("Failed pattern match at Plum.View (line 435, column 16 - line 439, column 35): " + [ctx.constructor.name]);
3180+ throw new Error("Failed pattern match at Plum.View (line 445, column 16 - line 449, column 35): " + [ctx.constructor.name]);
31193181 }())(function() {
31203182 if (ctx instanceof Grid) {
31213183 return alignCenter;
@@ -3133,20 +3195,28 @@
31333195 return alignCenter;
31343196 }
31353197 ;
3136− throw new Error("Failed pattern match at Plum.View (line 440, column 16 - line 444, column 37): " + [ctx.constructor.name]);
3198+ throw new Error("Failed pattern match at Plum.View (line 450, column 16 - line 454, column 37): " + [ctx.constructor.name]);
31373199 }())))))(function(meatClasses) {
31383200 var v2 = runWriter(traverse2(skin(ctx))(v1.value0.hover));
31393201 return bind2(traverseWithIndex2(function(key) {
31403202 return function(val) {
3141− return tell2(singleton2(key + "-hover:hover")(val));
3203+ return tell2({
3204+ meat: empty2,
3205+ hover: singleton2(key + "-hover:hover")(val),
3206+ down: empty2
3207+ });
31423208 };
3143− })(v2.value1))(function() {
3209+ })(v2.value1.meat))(function() {
31443210 var v3 = runWriter(traverse2(skin(ctx))(v1.value0.down));
31453211 return bind2(traverseWithIndex2(function(key) {
31463212 return function(val) {
3147− return tell2(singleton2(key + "-down:active")(val));
3213+ return tell2({
3214+ meat: empty2,
3215+ hover: empty2,
3216+ down: singleton2(key + "-down:active")(val)
3217+ });
31483218 };
3149− })(v3.value1))(function() {
3219+ })(v3.value1.meat))(function() {
31503220 return pure2(append2(meatClasses)(append2(map1(function(v4) {
31513221 return v4 + "-hover";
31523222 })(concat(v2.value0)))(map1(function(v4) {
@@ -3240,7 +3310,7 @@
32403310 return pure2(h3("div")(mempty2)([]));
32413311 }
32423312 ;
3243− throw new Error("Failed pattern match at Plum.View (line 453, column 3 - line 494, column 37): " + [v1.value1.constructor.name]);
3313+ throw new Error("Failed pattern match at Plum.View (line 477, column 3 - line 518, column 37): " + [v1.value1.constructor.name]);
32443314 };
32453315 };
32463316 };