@@ -2,9 +2,9 @@
2 // output/Control.Semigroupoid/index.js
2 // output/Control.Semigroupoid/index.js
3 var semigroupoidFn = {
3 var semigroupoidFn = {
4 compose: function(f) {
4 compose: function(f) {
5− return function(g) {
5+ return function(g2) {
6− return function(x) {
6+ return function(x2) {
7− return f(g(x));
7+ return f(g2(x2));
@@ -15,8 +15,8 @@
15 return dict.identity;
15 return dict.identity;
17 var categoryFn = {
17 var categoryFn = {
18− identity: function(x) {
18+ identity: function(x2) {
19− return x;
19+ return x2;
21 Semigroupoid0: function() {
21 Semigroupoid0: function() {
22 return semigroupoidFn;
22 return semigroupoidFn;
@@ -28,30 +28,30 @@
29 // output/Data.Function/index.js
29 // output/Data.Function/index.js
30 var flip = function(f) {
30 var flip = function(f) {
31− return function(b) {
31+ return function(b2) {
32− return function(a) {
32+ return function(a2) {
33− return f(a)(b);
33+ return f(a2)(b2);
37− var $$const = function(a) {
37+ var $$const = function(a2) {
38− return function(v) {
38+ return function(v2) {
39− return a;
39+ return a2;
42− var applyFlipped = function(x) {
42+ var applyFlipped = function(x2) {
43 return function(f) {
43 return function(f) {
44− return f(x);
44+ return f(x2);
48 // output/Data.Functor/foreign.js
48 // output/Data.Functor/foreign.js
49 var arrayMap = function(f) {
49 var arrayMap = function(f) {
50 return function(arr) {
50 return function(arr) {
51− var l = arr.length;
51+ var l2 = arr.length;
52− var result = new Array(l);
52+ var result = new Array(l2);
53− for (var i = 0; i < l; i++) {
53+ for (var i2 = 0; i2 < l2; i2++) {
54− result[i] = f(arr[i]);
54+ result[i2] = f(arr[i2]);
56 return result;
56 return result;
@@ -73,6 +73,14 @@
73 var map = function(dict) {
73 var map = function(dict) {
74 return dict.map;
74 return dict.map;
76+ var mapFlipped = function(dictFunctor) {
77+ var map12 = map(dictFunctor);
78+ return function(fa) {
76 var functorArray = {
84 var functorArray = {
77 map: arrayMap
85 map: arrayMap
@@ -85,9 +93,9 @@
85 var apply1 = apply(dictApply);
93 var apply1 = apply(dictApply);
86 var map4 = map(dictApply.Functor0());
94 var map4 = map(dictApply.Functor0());
87 return function(f) {
95 return function(f) {
88− return function(a) {
96+ return function(a2) {
89− return function(b) {
97+ return function(b2) {
90− return apply1(map4(f)(a))(b);
98+ return apply1(map4(f)(a2))(b2);
@@ -98,11 +106,11 @@
98 return dict.pure;
106 return dict.pure;
100 var liftA1 = function(dictApplicative) {
108 var liftA1 = function(dictApplicative) {
101− var apply2 = apply(dictApplicative.Apply0());
109+ var apply3 = apply(dictApplicative.Apply0());
102− var pure1 = pure(dictApplicative);
110+ var pure12 = pure(dictApplicative);
103 return function(f) {
111 return function(f) {
104− return function(a) {
112+ return function(a2) {
105− return apply2(pure1(f))(a);
113+ return apply3(pure12(f))(a2);
@@ -115,9 +123,9 @@
115 } : function(arr) {
123 } : function(arr) {
116 return function(f) {
124 return function(f) {
117 var result = [];
125 var result = [];
118− var l = arr.length;
126+ var l2 = arr.length;
119− for (var i = 0; i < l; i++) {
127+ for (var i2 = 0; i2 < l2; i2++) {
120− var xs = f(arr[i]);
128+ var xs = f(arr[i2]);
121 var k = xs.length;
129 var k = xs.length;
122 for (var j = 0; j < k; j++) {
130 for (var j = 0; j < k; j++) {
123 result.push(xs[j]);
131 result.push(xs[j]);
@@ -221,7 +229,7 @@
222 // output/Data.Semigroup/index.js
230 // output/Data.Semigroup/index.js
223 var semigroupUnit = {
231 var semigroupUnit = {
224− append: function(v) {
232+ append: function(v2) {
225 return function(v1) {
233 return function(v1) {
226 return unit;
234 return unit;
@@ -231,9 +239,9 @@
231 append: concatString
239 append: concatString
233 var semigroupRecordNil = {
241 var semigroupRecordNil = {
234− appendRecord: function(v) {
242+ appendRecord: function(v2) {
235 return function(v1) {
243 return function(v1) {
236− return function(v2) {
244+ return function(v22) {
237 return {};
245 return {};
@@ -263,7 +271,7 @@
263 return function(dictSemigroup) {
271 return function(dictSemigroup) {
264 var append1 = append(dictSemigroup);
272 var append1 = append(dictSemigroup);
266− appendRecord: function(v) {
274+ appendRecord: function(v2) {
267 return function(ra) {
275 return function(ra) {
268 return function(rb) {
276 return function(rb) {
269 var tail = appendRecord1($$Proxy.value)(ra)(rb);
277 var tail = appendRecord1($$Proxy.value)(ra)(rb);
@@ -295,7 +303,7 @@
297 var monoidRecordNil = {
305 var monoidRecordNil = {
298− memptyRecord: function(v) {
306+ memptyRecord: function(v2) {
299 return {};
307 return {};
301 SemigroupRecord0: function() {
309 SemigroupRecord0: function() {
@@ -336,7 +344,7 @@
336 var memptyRecord1 = memptyRecord(dictMonoidRecord);
344 var memptyRecord1 = memptyRecord(dictMonoidRecord);
337 var semigroupRecordCons1 = semigroupRecordCons3(dictMonoidRecord.SemigroupRecord0())(Semigroup0);
345 var semigroupRecordCons1 = semigroupRecordCons3(dictMonoidRecord.SemigroupRecord0())(Semigroup0);
339− memptyRecord: function(v) {
347+ memptyRecord: function(v2) {
340 var tail = memptyRecord1($$Proxy.value);
348 var tail = memptyRecord1($$Proxy.value);
341 var key = reflectSymbol2($$Proxy.value);
349 var key = reflectSymbol2($$Proxy.value);
342 var insert2 = unsafeSet(key);
350 var insert2 = unsafeSet(key);
@@ -352,15 +360,15 @@
354 // output/Effect/foreign.js
362 // output/Effect/foreign.js
355− var pureE = function(a) {
363+ var pureE = function(a2) {
356 return function() {
364 return function() {
357− return a;
365+ return a2;
360− var bindE = function(a) {
368+ var bindE = function(a2) {
361 return function(f) {
369 return function(f) {
362 return function() {
370 return function() {
363− return f(a())();
371+ return f(a2())();
@@ -368,12 +376,12 @@
368 // output/Control.Monad/index.js
376 // output/Control.Monad/index.js
369 var ap = function(dictMonad) {
377 var ap = function(dictMonad) {
370 var bind4 = bind(dictMonad.Bind1());
378 var bind4 = bind(dictMonad.Bind1());
371− var pure4 = pure(dictMonad.Applicative0());
379+ var pure5 = pure(dictMonad.Applicative0());
372 return function(f) {
380 return function(f) {
373− return function(a) {
381+ return function(a2) {
374 return bind4(f)(function(f$prime) {
382 return bind4(f)(function(f$prime) {
375− return bind4(a)(function(a$prime) {
383+ return bind4(a2)(function(a$prime) {
376− return pure4(f$prime(a$prime));
384+ return pure5(f$prime(a$prime));
@@ -381,14 +389,14 @@
383 // output/Effect/index.js
391 // output/Effect/index.js
384− var $runtime_lazy = function(name15, moduleName, init) {
392+ var $runtime_lazy = function(name15, moduleName, init3) {
385 var state3 = 0;
393 var state3 = 0;
387 return function(lineNumber) {
395 return function(lineNumber) {
388 if (state3 === 2) return val;
396 if (state3 === 2) return val;
389 if (state3 === 1) throw new ReferenceError(name15 + " was needed before it finished initializing (module " + moduleName + ", line " + lineNumber + ")", moduleName, lineNumber);
397 if (state3 === 1) throw new ReferenceError(name15 + " was needed before it finished initializing (module " + moduleName + ", line " + lineNumber + ")", moduleName, lineNumber);
390 state3 = 1;
398 state3 = 1;
391− val = init();
399+ val = init3();
392 state3 = 2;
400 state3 = 2;
393 return val;
401 return val;
@@ -438,24 +446,24 @@
439 var replicatePolyfill = function(count, value12) {
447 var replicatePolyfill = function(count, value12) {
440 var result = [];
448 var result = [];
441− var n = 0;
449+ var n2 = 0;
442− for (var i = 0; i < count; i++) {
450+ for (var i2 = 0; i2 < count; i2++) {
443− result[n++] = value12;
451+ result[n2++] = value12;
445 return result;
453 return result;
447 var replicateImpl = typeof Array.prototype.fill === "function" ? replicateFill : replicatePolyfill;
455 var replicateImpl = typeof Array.prototype.fill === "function" ? replicateFill : replicatePolyfill;
448− var indexImpl = function(just, nothing, xs, i) {
456+ var unconsImpl = function(empty3, next, xs) {
449− return i < 0 || i >= xs.length ? nothing : just(xs[i]);
457+ return xs.length === 0 ? empty3({}) : next(xs[0])(xs.slice(1));
451 var concat = function(xss) {
459 var concat = function(xss) {
452 if (xss.length <= 1e4) {
460 if (xss.length <= 1e4) {
453 return Array.prototype.concat.apply([], xss);
461 return Array.prototype.concat.apply([], xss);
455 var result = [];
463 var result = [];
456− for (var i = 0, l = xss.length; i < l; i++) {
464+ for (var i2 = 0, l2 = xss.length; i2 < l2; i2++) {
457− var xs = xss[i];
465+ var xs = xss[i2];
458− for (var j = 0, m2 = xs.length; j < m2; j++) {
466+ for (var j = 0, m3 = xs.length; j < m3; j++) {
459 result.push(xs[j]);
467 result.push(xs[j]);
@@ -474,9 +482,9 @@
474 var unsafeCompareImpl = function(lt) {
482 var unsafeCompareImpl = function(lt) {
475 return function(eq2) {
483 return function(eq2) {
476 return function(gt) {
484 return function(gt) {
477− return function(x) {
485+ return function(x2) {
478 return function(y) {
486 return function(y) {
479− return x < y ? lt : x === y ? eq2 : gt;
487+ return x2 < y ? lt : x2 === y ? eq2 : gt;
@@ -510,11 +518,11 @@
512 // output/Data.Show/foreign.js
520 // output/Data.Show/foreign.js
513− var showIntImpl = function(n) {
521+ var showIntImpl = function(n2) {
514− return n.toString();
522+ return n2.toString();
516− var showNumberImpl = function(n) {
524+ var showNumberImpl = function(n2) {
517− var str = n.toString();
525+ var str = n2.toString();
518 return isNaN(str + ".0") ? str : str + ".0";
526 return isNaN(str + ".0") ? str : str + ".0";
@@ -548,40 +556,40 @@
549 return Just2;
557 return Just2;
551− var maybe = function(v) {
559+ var maybe = function(v2) {
552 return function(v1) {
560 return function(v1) {
553− return function(v2) {
561+ return function(v22) {
554− if (v2 instanceof Nothing) {
562+ if (v22 instanceof Nothing) {
555− return v;
563+ return v2;
558− if (v2 instanceof Just) {
566+ if (v22 instanceof Just) {
559− return v1(v2.value0);
567+ return v1(v22.value0);
562− throw new Error("Failed pattern match at Data.Maybe (line 237, column 1 - line 237, column 51): " + [v.constructor.name, v1.constructor.name, v2.constructor.name]);
570+ throw new Error("Failed pattern match at Data.Maybe (line 237, column 1 - line 237, column 51): " + [v2.constructor.name, v1.constructor.name, v22.constructor.name]);
566− var fromMaybe = function(a) {
574+ var fromMaybe = function(a2) {
567− return maybe(a)(identity2);
575+ return maybe(a2)(identity2);
570 // output/Data.Identity/index.js
578 // output/Data.Identity/index.js
571− var Identity = function(x) {
579+ var Identity = function(x2) {
572− return x;
580+ return x2;
574 var functorIdentity = {
582 var functorIdentity = {
575 map: function(f) {
583 map: function(f) {
576− return function(m2) {
584+ return function(m3) {
577− return f(m2);
585+ return f(m3);
581 var applyIdentity = {
589 var applyIdentity = {
582− apply: function(v) {
590+ apply: function(v2) {
583 return function(v1) {
591 return function(v1) {
584− return v(v1);
592+ return v2(v1);
587 Functor0: function() {
595 Functor0: function() {
@@ -589,9 +597,9 @@
591 var bindIdentity = {
599 var bindIdentity = {
592− bind: function(v) {
600+ bind: function(v2) {
593 return function(f) {
601 return function(f) {
594− return f(v);
602+ return f(v2);
597 Apply0: function() {
605 Apply0: function() {
@@ -637,34 +645,34 @@
638 // output/Control.Monad.ST.Internal/foreign.js
646 // output/Control.Monad.ST.Internal/foreign.js
639 var map_ = function(f) {
647 var map_ = function(f) {
640− return function(a) {
648+ return function(a2) {
641 return function() {
649 return function() {
642− return f(a());
650+ return f(a2());
646− var pure_ = function(a) {
654+ var pure_ = function(a2) {
647 return function() {
655 return function() {
648− return a;
656+ return a2;
651− var bind_ = function(a) {
659+ var bind_ = function(a2) {
652 return function(f) {
660 return function(f) {
653 return function() {
661 return function() {
654− return f(a())();
662+ return f(a2())();
659 // output/Control.Monad.ST.Internal/index.js
667 // output/Control.Monad.ST.Internal/index.js
660− var $runtime_lazy2 = function(name15, moduleName, init) {
668+ var $runtime_lazy2 = function(name15, moduleName, init3) {
661 var state3 = 0;
669 var state3 = 0;
663 return function(lineNumber) {
671 return function(lineNumber) {
664 if (state3 === 2) return val;
672 if (state3 === 2) return val;
665 if (state3 === 1) throw new ReferenceError(name15 + " was needed before it finished initializing (module " + moduleName + ", line " + lineNumber + ")", moduleName, lineNumber);
673 if (state3 === 1) throw new ReferenceError(name15 + " was needed before it finished initializing (module " + moduleName + ", line " + lineNumber + ")", moduleName, lineNumber);
666 state3 = 1;
674 state3 = 1;
667− val = init();
675+ val = init3();
668 state3 = 2;
676 state3 = 2;
669 return val;
677 return val;
@@ -703,24 +711,24 @@
704 // output/Data.Foldable/foreign.js
712 // output/Data.Foldable/foreign.js
705 var foldrArray = function(f) {
713 var foldrArray = function(f) {
706− return function(init) {
714+ return function(init3) {
707 return function(xs) {
715 return function(xs) {
708− var acc = init;
716+ var acc = init3;
709 var len = xs.length;
717 var len = xs.length;
710− for (var i = len - 1; i >= 0; i--) {
718+ for (var i2 = len - 1; i2 >= 0; i2--) {
711− acc = f(xs[i])(acc);
719+ acc = f(xs[i2])(acc);
713 return acc;
721 return acc;
717 var foldlArray = function(f) {
725 var foldlArray = function(f) {
718− return function(init) {
726+ return function(init3) {
719 return function(xs) {
727 return function(xs) {
720− var acc = init;
728+ var acc = init3;
721 var len = xs.length;
729 var len = xs.length;
722− for (var i = 0; i < len; i++) {
730+ for (var i2 = 0; i2 < len; i2++) {
723− acc = f(acc)(xs[i]);
731+ acc = f(acc)(xs[i2]);
725 return acc;
733 return acc;
@@ -742,14 +750,14 @@
742 return Tuple2;
750 return Tuple2;
744 var uncurry = function(f) {
752 var uncurry = function(f) {
745− return function(v) {
753+ return function(v2) {
746− return f(v.value0)(v.value1);
754+ return f(v2.value0)(v2.value1);
750 // output/Unsafe.Coerce/foreign.js
758 // output/Unsafe.Coerce/foreign.js
751− var unsafeCoerce2 = function(x) {
759+ var unsafeCoerce2 = function(x2) {
752− return x;
760+ return x2;
755 // output/Safe.Coerce/index.js
763 // output/Safe.Coerce/index.js
@@ -777,9 +785,9 @@
777 var mempty6 = mempty(dictMonoid);
785 var mempty6 = mempty(dictMonoid);
778 return function(sep) {
786 return function(sep) {
779 return function(xs) {
787 return function(xs) {
780− var go2 = function(v) {
788+ var go2 = function(v2) {
781 return function(v1) {
789 return function(v1) {
782− if (v.init) {
790+ if (v2.init) {
784 init: false,
792 init: false,
@@ -788,7 +796,7 @@
790 init: false,
798 init: false,
791− acc: append3(v.acc)(append3(sep)(v1))
799+ acc: append3(v2.acc)(append3(sep)(v1))
@@ -806,9 +814,9 @@
806 var append3 = append(dictMonoid.Semigroup0());
814 var append3 = append(dictMonoid.Semigroup0());
807 var mempty6 = mempty(dictMonoid);
815 var mempty6 = mempty(dictMonoid);
808 return function(f) {
816 return function(f) {
809− return foldr22(function(x) {
817+ return foldr22(function(x2) {
810 return function(acc) {
818 return function(acc) {
811− return append3(f(x))(acc);
819+ return append3(f(x2))(acc);
813 })(mempty6);
821 })(mempty6);
@@ -823,19 +831,21 @@
825 // output/Data.Function.Uncurried/foreign.js
833 // output/Data.Function.Uncurried/foreign.js
826− var runFn2 = function(fn) {
834+ var runFn3 = function(fn) {
827− return function(a) {
835+ return function(a2) {
828− return function(b) {
836+ return function(b2) {
829− return fn(a, b);
837+ return function(c) {
838+ return fn(a2, b2, c);
833 var runFn4 = function(fn) {
843 var runFn4 = function(fn) {
834− return function(a) {
844+ return function(a2) {
835− return function(b) {
845+ return function(b2) {
836 return function(c) {
846 return function(c) {
837 return function(d) {
847 return function(d) {
838− return fn(a, b, c, d);
848+ return fn(a2, b2, c, d);
@@ -844,18 +854,18 @@
845 // output/Data.Traversable/foreign.js
855 // output/Data.Traversable/foreign.js
846 var traverseArrayImpl = /* @__PURE__ */ function() {
856 var traverseArrayImpl = /* @__PURE__ */ function() {
847− function array1(a) {
857+ function array1(a2) {
848− return [a];
858+ return [a2];
850− function array2(a) {
860+ function array2(a2) {
851− return function(b) {
861+ return function(b2) {
852− return [a, b];
862+ return [a2, b2];
855− function array3(a) {
865+ function array3(a2) {
856− return function(b) {
866+ return function(b2) {
857 return function(c) {
867 return function(c) {
858− return [a, b, c];
868+ return [a2, b2, c];
@@ -864,24 +874,24 @@
864 return xs.concat(ys);
874 return xs.concat(ys);
867− return function(apply2) {
877+ return function(apply3) {
868 return function(map4) {
878 return function(map4) {
869− return function(pure4) {
879+ return function(pure5) {
870 return function(f) {
880 return function(f) {
871 return function(array) {
881 return function(array) {
872 function go2(bot, top3) {
882 function go2(bot, top3) {
873 switch (top3 - bot) {
883 switch (top3 - bot) {
875− return pure4([]);
885+ return pure5([]);
877 return map4(array1)(f(array[bot]));
887 return map4(array1)(f(array[bot]));
879− return apply2(map4(array2)(f(array[bot])))(f(array[bot + 1]));
889+ return apply3(map4(array2)(f(array[bot])))(f(array[bot + 1]));
881− return apply2(apply2(map4(array3)(f(array[bot])))(f(array[bot + 1])))(f(array[bot + 2]));
891+ return apply3(apply3(map4(array3)(f(array[bot])))(f(array[bot + 1])))(f(array[bot + 2]));
883 var pivot = bot + Math.floor((top3 - bot) / 4) * 2;
893 var pivot = bot + Math.floor((top3 - bot) / 4) * 2;
884− return apply2(map4(concat2)(go2(bot, pivot)))(go2(pivot, top3));
894+ return apply3(map4(concat2)(go2(bot, pivot)))(go2(pivot, top3));
887 return go2(0, array.length);
897 return go2(0, array.length);
@@ -921,853 +931,374 @@
922 // output/Data.Array/index.js
932 // output/Data.Array/index.js
923 var intercalate1 = /* @__PURE__ */ intercalate(foldableArray);
933 var intercalate1 = /* @__PURE__ */ intercalate(foldableArray);
934+ var uncons = /* @__PURE__ */ function() {
935+ return runFn3(unconsImpl)($$const(Nothing.value))(function(x2) {
936+ return function(xs) {
924 var intercalate2 = function(dictMonoid) {
944 var intercalate2 = function(dictMonoid) {
925 return intercalate1(dictMonoid);
945 return intercalate1(dictMonoid);
927− var index = /* @__PURE__ */ function() {
928− return runFn4(indexImpl)(Just.create)(Nothing.value);
930− var head = function(xs) {
931− return index(xs)(0);
934− // output/Maquette/foreign.js
948+ // output/Foreign.Object/foreign.js
935− var NAMESPACE_W3 = "http://www.w3.org/";
949+ function _copyST(m3) {
936− var NAMESPACE_SVG = NAMESPACE_W3 + "2000/svg";
950+ return function() {
937− var NAMESPACE_XLINK = NAMESPACE_W3 + "1999/xlink";
951+ var r2 = {};
938− var emptyArray = [];
952+ for (var k in m3) {
939− var extend2 = function(base, overrides) {
953+ if (hasOwnProperty.call(m3, k)) {
940− var result = {};
954+ r2[k] = m3[k];
941− Object.keys(base).forEach(function(key) {
942− result[key] = base[key];
945− Object.keys(overrides).forEach(function(key) {
946− result[key] = overrides[key];
951− var same = function(vnode1, vnode2) {
952− if (vnode1.vnodeSelector !== vnode2.vnodeSelector) {
955− if (vnode1.properties && vnode2.properties) {
956− if (vnode1.properties.key !== vnode2.properties.key) {
959− return vnode1.properties.bind === vnode2.properties.bind;
961− return !vnode1.properties && !vnode2.properties;
963− var checkStyleValue = function(styleValue) {
964− if (typeof styleValue !== "string") {
965− throw new Error("Style values must be strings");
968− var findIndexOfChild = function(children, sameAs, start2) {
969− if (sameAs.vnodeSelector !== "") {
970− for (var i = start2; i < children.length; i++) {
971− if (same(children[i], sameAs)) {
978− var checkDistinguishable = function(childNodes, indexToCheck, parentVNode, operation) {
979− var childNode = childNodes[indexToCheck];
980− if (childNode.vnodeSelector === "") {
983− var properties = childNode.properties;
984− var key = properties ? properties.key === void 0 ? properties.bind : properties.key : void 0;
986− for (var i = 0; i < childNodes.length; i++) {
987− if (i !== indexToCheck) {
988− var node = childNodes[i];
989− if (same(node, childNode)) {
991− error: new Error(parentVNode.vnodeSelector + " had a " + childNode.vnodeSelector + " child " + (operation === "added" ? operation : "removed") + ", but there is now more than one. You must add unique key properties to make them distinguishable."),
992− parentNode: parentVNode,
1000− var nodeAdded = function(vNode) {
1001− if (vNode.properties) {
1002− var enterAnimation = vNode.properties.enterAnimation;
1003− if (enterAnimation) {
1004− enterAnimation(vNode.domNode, vNode.properties);
1008− var removedNodes = [];
1009− var requestedIdleCallback = false;
1010− var visitRemovedNode = function(node) {
1011− (node.children || []).forEach(visitRemovedNode);
1012− if (node.properties && node.properties.afterRemoved) {
1013− node.properties.afterRemoved.apply(node.properties.bind || node.properties, [
1018− var processPendingNodeRemovals = function() {
1019− requestedIdleCallback = false;
1020− removedNodes.forEach(visitRemovedNode);
1021− removedNodes.length = 0;
1023− var scheduleNodeRemoval = function(vNode) {
1024− removedNodes.push(vNode);
1025− if (!requestedIdleCallback) {
1026− requestedIdleCallback = true;
1027− if (typeof window !== "undefined" && "requestIdleCallback" in window) {
1028− window.requestIdleCallback(processPendingNodeRemovals, { timeout: 16 });
1030− setTimeout(processPendingNodeRemovals, 16);
1034− var nodeToRemove = function(vNode) {
1035− var domNode = vNode.domNode;
1036− if (vNode.properties) {
1037− var exitAnimation = vNode.properties.exitAnimation;
1038− if (exitAnimation) {
1039− domNode.style.pointerEvents = "none";
1040− var removeDomNode = function() {
1041− if (domNode.parentNode) {
1042− domNode.parentNode.removeChild(domNode);
1043− scheduleNodeRemoval(vNode);
1046− exitAnimation(domNode, removeDomNode, vNode.properties);
1047− return;
957+ return r2;
1050− if (domNode.parentNode) {
1051− domNode.parentNode.removeChild(domNode);
1052− scheduleNodeRemoval(vNode);
1055− var vnodeOnlyProps = [
1063− function filterVNodeOnlyProps(name15) {
1064− return !vnodeOnlyProps.includes(name15);
1066− var setProperties = function(domNode, properties, projectionOptions) {
960+ var empty2 = {};
1067− if (!properties) {
961+ function runST(f) {
1068− return;
962+ return f();
1070− var eventHandlerInterceptor = projectionOptions.eventHandlerInterceptor;
964+ function _fmapObject(m0, f) {
1071− var propNames = Object.keys(properties).filter(filterVNodeOnlyProps);
965+ var m3 = {};
1072− var propCount = propNames.length;
1073− for (var i = 0; i < propCount; i++) {
966+ for (var k in m0) {
1074− var propName = propNames[i];
967+ if (hasOwnProperty.call(m0, k)) {
1075− var propValue = properties[propName];
968+ m3[k] = f(m0[k]);
1076− if (propName === "className") {
1077− throw new Error('Property "className" is not supported, use "class".');
1078− } else if (propName === "class") {
1079− toggleClasses(domNode, propValue, true);
1080− } else if (propName === "classes") {
1081− var classNames = Object.keys(propValue);
1082− var classNameCount = classNames.length;
1083− for (var j = 0; j < classNameCount; j++) {
1084− var className = classNames[j];
1085− if (propValue[className]) {
1086− domNode.classList.add(className);
1089− } else if (propName === "styles") {
1090− var styleNames = Object.keys(propValue);
1091− var styleCount = styleNames.length;
1092− for (var j = 0; j < styleCount; j++) {
1093− var styleName = styleNames[j];
1094− var styleValue = propValue[styleName];
1096− checkStyleValue(styleValue);
1097− projectionOptions.styleApplyer(domNode, styleName, styleValue);
1100− } else if (propName === "on" && propValue) {
1101− for (var _i = 0, _a = Object.entries(properties.on); _i < _a.length; _i++) {
1102− var _b = _a[_i], key = _b[0], handler = _b[1];
1103− var listener = typeof handler === "function" ? handler : handler.listener;
1104− if (eventHandlerInterceptor) {
1105− listener = eventHandlerInterceptor(key, listener, domNode, properties);
1108− domNode.addEventListener(key, listener, typeof handler === "function" ? void 0 : handler.options);
1111− } else if (propName !== "key" && propValue !== null && propValue !== void 0) {
1112− var type = typeof propValue;
1113− if (type === "function") {
1114− if (propName.lastIndexOf("on", 0) === 0) {
1115− if (eventHandlerInterceptor) {
1116− propValue = eventHandlerInterceptor(propName, propValue, domNode, properties);
1119− domNode[propName] = propValue;
1120− } else if (projectionOptions.namespace === NAMESPACE_SVG) {
1121− if (propName === "href") {
1122− domNode.setAttributeNS(NAMESPACE_XLINK, propName, propValue);
1124− domNode.setAttribute(propName, propValue);
1126− } else if (type === "string" && propName !== "value" && propName !== "innerHTML") {
1127− domNode.setAttribute(propName, propValue);
1129− domNode[propName] = propValue;
1134− var addChildren = function(domNode, children, projectionOptions) {
1138− for (var _i = 0, children_1 = children; _i < children_1.length; _i++) {
1139− var child = children_1[_i];
1140− createDom(child, domNode, void 0, projectionOptions);
1143− var initPropertiesAndChildren = function(domNode, vnode, projectionOptions) {
1144− addChildren(domNode, vnode.children, projectionOptions);
1146− domNode.textContent = vnode.text;
1148− setProperties(domNode, vnode.properties, projectionOptions);
1149− if (vnode.properties && vnode.properties.afterCreate) {
1150− vnode.properties.afterCreate.apply(vnode.properties.bind || vnode.properties, [
1153− vnode.vnodeSelector,
1159− var createDom = function(vnode, parentNode, insertBefore, projectionOptions) {
1163− var vnodeSelector = vnode.vnodeSelector;
1164− var doc = parentNode.ownerDocument;
1165− if (vnodeSelector === "") {
1166− if (vnode.domNode) {
1167− vnode.domNode.nodeValue = vnode.text;
1169− domNode = vnode.domNode = doc.createTextNode(vnode.text);
1170− if (insertBefore !== void 0) {
1171− parentNode.insertBefore(domNode, insertBefore);
1173− parentNode.appendChild(domNode);
1177− for (var i = 0; i <= vnodeSelector.length; ++i) {
1178− var c = vnodeSelector.charAt(i);
1179− if (i === vnodeSelector.length || c === "." || c === "#") {
1180− var type = vnodeSelector.charAt(start2 - 1);
1181− var found = vnodeSelector.slice(start2, i);
1182− if (type === ".") {
1183− domNode.classList.add(found);
1184− } else if (type === "#") {
1185− domNode.id = found;
1187− if (found === "svg") {
1188− projectionOptions = extend2(projectionOptions, {
1189− namespace: NAMESPACE_SVG
1192− if (projectionOptions.namespace !== void 0) {
1193− domNode = vnode.domNode = doc.createElementNS(projectionOptions.namespace, found);
1195− domNode = vnode.domNode = vnode.domNode || (((_a = vnode.properties) === null || _a === void 0 ? void 0 : _a.is) ? doc.createElement(found, { is: vnode.properties.is }) : doc.createElement(found));
1196− if (found === "input" && vnode.properties && vnode.properties.type !== void 0) {
1197− domNode.setAttribute("type", vnode.properties.type);
1200− if (insertBefore !== void 0) {
1201− parentNode.insertBefore(domNode, insertBefore);
1202− } else if (domNode.parentNode !== parentNode) {
1203− parentNode.appendChild(domNode);
1209− initPropertiesAndChildren(domNode, vnode, projectionOptions);
1213− var toggleClasses = function(domNode, classes, on2) {
1217− classes.split(" ").forEach(function(classToToggle) {
971+ return m3;
1218− if (classToToggle) {
972+ }
1219− domNode.classList.toggle(classToToggle, on2);
973+ function _mapWithKey(m0, f) {
976+ if (hasOwnProperty.call(m0, k)) {
977+ m3[k] = f(k)(m0[k]);
1223− var updateProperties = function(domNode, previousProperties, properties, projectionOptions) {
1227− var propertiesUpdated = false;
980+ return m3;
1228− var propNames = Object.keys(properties).filter(filterVNodeOnlyProps);
981+ }
1229− var propCount = propNames.length;
982+ function _foldM(bind4) {
1230− for (var i = 0; i < propCount; i++) {
983+ return function(f) {
1231− var propName = propNames[i];
984+ return function(mz) {
1232− var propValue = properties[propName];
985+ return function(m3) {
1233− var previousValue = previousProperties[propName];
986+ var acc = mz;
1234− if (propName === "class") {
987+ function g2(k2) {
1235− if (previousValue !== propValue) {
988+ return function(z) {
1236− toggleClasses(domNode, previousValue, false);
989+ return f(z)(k2)(m3[k2]);
1237− toggleClasses(domNode, propValue, true);
990+ };
1239− } else if (propName === "classes") {
1240− var classList = domNode.classList;
1241− var classNames = Object.keys(propValue);
1242− var classNameCount = classNames.length;
1243− for (var j = 0; j < classNameCount; j++) {
1244− var className = classNames[j];
1245− var on2 = !!propValue[className];
1246− var previousOn = !!previousValue[className];
1247− if (on2 === previousOn) {
1250− propertiesUpdated = true;
1252− classList.add(className);
1254− classList.remove(className);
1257− } else if (propName === "styles") {
1258− var styleNames = Object.keys(propValue);
1259− var styleCount = styleNames.length;
1260− for (var j = 0; j < styleCount; j++) {
1261− var styleName = styleNames[j];
1262− var newStyleValue = propValue[styleName];
1263− var oldStyleValue = previousValue[styleName];
1264− if (newStyleValue === oldStyleValue) {
1267− propertiesUpdated = true;
1268− if (newStyleValue) {
1269− checkStyleValue(newStyleValue);
1270− projectionOptions.styleApplyer(domNode, styleName, newStyleValue);
1272− projectionOptions.styleApplyer(domNode, styleName, "");
1276− if (!propValue && typeof previousValue === "string") {
1279− if (propName === "value") {
1280− var domValue = domNode[propName];
1281− if (domValue !== propValue && // The 'value' in the DOM tree !== newValue
1282− propValue !== previousValue) {
1283− domNode[propName] = propValue;
1285− if (propValue !== previousValue) {
1286− propertiesUpdated = true;
1288− } else if (propValue !== previousValue) {
992+ for (var k in m3) {
1289− var type = typeof propValue;
993+ if (hasOwnProperty.call(m3, k)) {
1290− if (type !== "function" || !projectionOptions.eventHandlerInterceptor) {
994+ acc = bind4(acc)(g2(k));
1291− if (projectionOptions.namespace === NAMESPACE_SVG) {
1292− if (propName === "href") {
1293− domNode.setAttributeNS(NAMESPACE_XLINK, propName, propValue);
1295− domNode.setAttribute(propName, propValue);
1297− } else if (type === "string" && propName !== "innerHTML") {
1298− if (propName === "role" && propValue === "") {
1299− domNode.removeAttribute(propName);
1301− domNode.setAttribute(propName, propValue);
1303− } else if (domNode[propName] !== propValue) {
1304− domNode[propName] = propValue;
1306− propertiesUpdated = true;
1311− return propertiesUpdated;
1313− var updateChildren = function(vnode, domNode, oldChildren, newChildren, projectionOptions) {
1314− if (oldChildren === newChildren) {
1317− oldChildren = oldChildren || emptyArray;
1318− newChildren = newChildren || emptyArray;
1319− var oldChildrenLength = oldChildren.length;
1320− var newChildrenLength = newChildren.length;
1324− var textUpdated = false;
1325− while (newIndex < newChildrenLength) {
1326− var oldChild = oldIndex < oldChildrenLength ? oldChildren[oldIndex] : void 0;
1327− var newChild = newChildren[newIndex];
1328− if (oldChild !== void 0 && same(oldChild, newChild)) {
1329− textUpdated = updateDom(oldChild, newChild, projectionOptions, domNode, oldChildren) || textUpdated;
1332− var findOldIndex = findIndexOfChild(oldChildren, newChild, oldIndex + 1);
1333− if (findOldIndex >= 0) {
1334− for (i = oldIndex; i < findOldIndex; i++) {
1335− nodeToRemove(oldChildren[i]);
1336− checkDistinguishable(oldChildren, i, vnode, "removed");
1338− textUpdated = updateDom(oldChildren[findOldIndex], newChild, projectionOptions, domNode, oldChildren) || textUpdated;
1339− oldIndex = findOldIndex + 1;
1341− createDom(newChild, domNode, oldIndex < oldChildrenLength ? oldChildren[oldIndex].domNode : void 0, projectionOptions);
1342− nodeAdded(newChild);
1343− checkDistinguishable(newChildren, newIndex, vnode, "added");
1348− if (oldChildrenLength > oldIndex) {
1349− for (i = oldIndex; i < oldChildrenLength; i++) {
1350− nodeToRemove(oldChildren[i]);
1351− checkDistinguishable(oldChildren, i, vnode, "removed");
1354− return textUpdated;
1356− updateDom = function(previous, vnode, projectionOptions, parentNode, oldChildren) {
1357− var domNode = previous.domNode;
1358− var textUpdated = false;
1359− if (previous === vnode) {
1362− var updated = false;
1363− if (vnode.vnodeSelector === "") {
1364− if (vnode.text !== previous.text) {
1365− var newTextNode = domNode.ownerDocument.createTextNode(vnode.text);
1367− parentNode.replaceChild(newTextNode, domNode);
1369− parentNode.replaceChild(newTextNode, parentNode.childNodes[oldChildren.indexOf(previous)]);
1371− vnode.domNode = newTextNode;
1372− textUpdated = true;
1373− return textUpdated;
1375− vnode.domNode = domNode;
1377− if (vnode.vnodeSelector.lastIndexOf("svg", 0) === 0) {
1378− projectionOptions = extend2(projectionOptions, {
1379− namespace: NAMESPACE_SVG
1382− if (previous.text !== vnode.text) {
1384− if (vnode.text === void 0) {
1385− domNode.removeChild(domNode.firstChild);
1387− domNode.textContent = vnode.text;
1390− vnode.domNode = domNode;
1391− updated = updateChildren(vnode, domNode, previous.children, vnode.children, projectionOptions) || updated;
1392− updated = updateProperties(domNode, previous.properties, vnode.properties, projectionOptions) || updated;
1393− if (vnode.properties && vnode.properties.afterUpdate) {
1394− vnode.properties.afterUpdate.apply(vnode.properties.bind || vnode.properties, [
1397− vnode.vnodeSelector,
1403− if (updated && vnode.properties && vnode.properties.updateAnimation) {
1404− vnode.properties.updateAnimation(domNode, vnode.properties, previous.properties);
1406− return textUpdated;
1408− var createProjection = function(vnode, projectionOptions) {
1410− getLastRender: function() {
1413− update: function(updatedVnode) {
1414− if (vnode.vnodeSelector !== updatedVnode.vnodeSelector) {
1415− throw new Error("The selector for the root VNode may not be changed. (consider using dom.merge and add one extra level to the virtual DOM)");
1417− var previousVNode = vnode;
1418− vnode = updatedVnode;
1419− updateDom(previousVNode, updatedVnode, projectionOptions, previousVNode.domNode.parentNode, [previousVNode]);
1421− domNode: vnode.domNode
1424− var DEFAULT_PROJECTION_OPTIONS = {
1426− performanceLogger: function() {
1429− eventHandlerInterceptor: void 0,
1430− styleApplyer: function(domNode, styleName, value12) {
1431− if (styleName.charAt(0) === "-") {
1432− domNode.style.setProperty(styleName, value12);
1434− domNode.style[styleName] = value12;
1438− var applyDefaultProjectionOptions = function(projectorOptions) {
1439− return extend2(DEFAULT_PROJECTION_OPTIONS, projectorOptions);
1443− * Creates a real DOM tree from `vnode`. The [[Projection]] object returned will contain the resulting DOM Node in
1444− * its [[Projection.domNode|domNode]] property.
1445− * This is a low-level method. Users will typically use a [[Projector]] instead.
1446− * @param vnode - The root of the virtual DOM tree that was created using the [[h]] function. NOTE: [[VNode]]
1447− * objects may only be rendered once.
1448− * @param projectionOptions - Options to be used to create and update the projection.
1449− * @returns The [[Projection]] which also contains the DOM Node that was created.
1451− create: function(vnode, projectionOptions) {
1452− projectionOptions = applyDefaultProjectionOptions(projectionOptions);
1453− createDom(vnode, document.createElement("div"), void 0, projectionOptions);
1454− return createProjection(vnode, projectionOptions);
1457− * Appends a new child node to the DOM which is generated from a [[VNode]].
1458− * This is a low-level method. Users will typically use a [[Projector]] instead.
1459− * @param parentNode - The parent node for the new child node.
1460− * @param vnode - The root of the virtual DOM tree that was created using the [[h]] function. NOTE: [[VNode]]
1461− * objects may only be rendered once.
1462− * @param projectionOptions - Options to be used to create and update the [[Projection]].
1463− * @returns The [[Projection]] that was created.
1465− append: function(parentNode, vnode, projectionOptions) {
1466− projectionOptions = applyDefaultProjectionOptions(projectionOptions);
1467− createDom(vnode, parentNode, void 0, projectionOptions);
1468− return createProjection(vnode, projectionOptions);
1471− * Inserts a new DOM node which is generated from a [[VNode]].
1472− * This is a low-level method. Users wil typically use a [[Projector]] instead.
1473− * @param beforeNode - The node that the DOM Node is inserted before.
1474− * @param vnode - The root of the virtual DOM tree that was created using the [[h]] function.
1475− * NOTE: [[VNode]] objects may only be rendered once.
1476− * @param projectionOptions - Options to be used to create and update the projection, see [[createProjector]].
1477− * @returns The [[Projection]] that was created.
1479− insertBefore: function(beforeNode, vnode, projectionOptions) {
1480− projectionOptions = applyDefaultProjectionOptions(projectionOptions);
1481− createDom(vnode, beforeNode.parentNode, beforeNode, projectionOptions);
1482− return createProjection(vnode, projectionOptions);
1485− * Merges a new DOM node which is generated from a [[VNode]] with an existing DOM Node.
1486− * This means that the virtual DOM and the real DOM will have one overlapping element.
1487− * Therefore the selector for the root [[VNode]] will be ignored, but its properties and children will be applied to the Element provided.
1488− * This is a low-level method. Users wil typically use a [[Projector]] instead.
1489− * @param element - The existing element to adopt as the root of the new virtual DOM. Existing attributes and child nodes are preserved.
1490− * @param vnode - The root of the virtual DOM tree that was created using the [[h]] function. NOTE: [[VNode]] objects
1491− * may only be rendered once.
1492− * @param projectionOptions - Options to be used to create and update the projection, see [[createProjector]].
1493− * @returns The [[Projection]] that was created.
1495− merge: function(element, vnode, projectionOptions) {
1496− projectionOptions = applyDefaultProjectionOptions(projectionOptions);
1497− vnode.domNode = element;
1498− initPropertiesAndChildren(element, vnode, projectionOptions);
1499− return createProjection(vnode, projectionOptions);
1502− * Replaces an existing DOM node with a node generated from a [[VNode]].
1503− * This is a low-level method. Users will typically use a [[Projector]] instead.
1504− * @param element - The node for the [[VNode]] to replace.
1505− * @param vnode - The root of the virtual DOM tree that was created using the [[h]] function. NOTE: [[VNode]]
1506− * objects may only be rendered once.
1507− * @param projectionOptions - Options to be used to create and update the [[Projection]].
1508− * @returns The [[Projection]] that was created.
1510− replace: function(element, vnode, projectionOptions) {
1511− projectionOptions = applyDefaultProjectionOptions(projectionOptions);
1512− createDom(vnode, element.parentNode, element, projectionOptions);
1513− element.parentNode.removeChild(element);
1514− return createProjection(vnode, projectionOptions);
1517− var toTextVNode = function(data) {
1520− properties: void 0,
1522− text: data.toString(),
1526− var appendChildren = function(parentSelector, insertions, main2) {
1527− for (var i = 0, length_1 = insertions.length; i < length_1; i++) {
1528− var item = insertions[i];
1529− if (Array.isArray(item)) {
1530− appendChildren(parentSelector, item, main2);
1532− if (item !== null && item !== void 0 && item !== false) {
1533− if (typeof item === "string") {
1534− item = toTextVNode(item);
1541− function h(selector, properties, children) {
1542− if (Array.isArray(properties)) {
1543− children = properties;
1544− properties = void 0;
1545− } else if (properties && (typeof properties === "string" || properties.vnodeSelector) || children && (typeof children === "string" || children.vnodeSelector)) {
1546− throw new Error("h called with invalid arguments");
1549− var flattenedChildren;
1550− if (children && children.length === 1 && typeof children[0] === "string") {
1551− text6 = children[0];
1552− } else if (children) {
1553− flattenedChildren = [];
1554− appendChildren(selector, children, flattenedChildren);
1555− if (flattenedChildren.length === 0) {
1556− flattenedChildren = void 0;
1559− return {
997+ return acc;
1560− vnodeSelector: selector,
998+ };
1562− children: flattenedChildren,
1563− text: text6 === "" ? void 0 : text6,
1567− var createParentNodePath = function(node, rootNode) {
1002+ function _lookup(no, yes, k, m3) {
1568− var parentNodePath = [];
1003+ return k in m3 ? yes(m3[k]) : no;
1569− while (node && node !== rootNode) {
1570− parentNodePath.push(node);
1571− node = node.parentNode;
1573− return parentNodePath;
1576− if (Array.prototype.find) {
1577− find2 = function(items, predicate) {
1578− return items.find(predicate);
1581− find2 = function(items, predicate) {
1582− return items.filter(predicate)[0];
1585− var findVNodeByParentNodePath = function(vnode, parentNodePath) {
1005+ function toArrayWithKey(f) {
1586− var result = vnode;
1587− parentNodePath.forEach(function(node) {
1588− result = result && result.children ? find2(result.children, function(child) {
1589− return child.domNode === node;
1594− var createEventHandlerInterceptor = function(projector, getProjection, performanceLogger) {
1595− return function(propertyName, eventHandler, domNode, properties) {
1596− return modifiedEventHandler;
1598− function modifiedEventHandler(evt) {
1600− performanceLogger("domEvent", evt);
1601− var projection = getProjection();
1602− var parentNodePath = createParentNodePath(evt.currentTarget, projection.domNode);
1603− parentNodePath.reverse();
1604− var matchingVNode = findVNodeByParentNodePath(projection.getLastRender(), parentNodePath);
1605− projector.scheduleRender();
1607− if (matchingVNode) {
1608− var listener = (_b = (_a = matchingVNode.properties["on" + evt.type]) !== null && _a !== void 0 ? _a : matchingVNode.properties.on[evt.type].listener) !== null && _b !== void 0 ? _b : matchingVNode.properties.on[evt.type];
1609− result = listener.apply(matchingVNode.properties.bind || this, arguments);
1611− performanceLogger("domEventProcessed", evt);
1615− var createProjector = function(projectorOptions) {
1617− var projectionOptions = applyDefaultProjectionOptions(projectorOptions);
1618− var performanceLogger = projectionOptions.performanceLogger;
1619− var renderCompleted = true;
1621− var stopped = false;
1622− var projections = [];
1623− var renderFunctions = [];
1624− var addProjection = function(domFunction, node, renderFunction) {
1626− var getProjection = function() {
1629− projectionOptions.eventHandlerInterceptor = createEventHandlerInterceptor(projector, getProjection, performanceLogger);
1630− projection = domFunction(node, renderFunction(), projectionOptions);
1631− projections.push(projection);
1632− renderFunctions.push(renderFunction);
1634− var doRender = function() {
1635− scheduled = void 0;
1636− if (!renderCompleted) {
1639− renderCompleted = false;
1640− performanceLogger("renderStart", void 0);
1641− for (var i = 0; i < projections.length; i++) {
1642− var updatedVnode = renderFunctions[i]();
1643− performanceLogger("rendered", void 0);
1644− projections[i].update(updatedVnode);
1645− performanceLogger("patched", void 0);
1647− performanceLogger("renderDone", void 0);
1648− renderCompleted = true;
1651− renderNow: doRender,
1652− scheduleRender: function() {
1653− if (!scheduled && !stopped) {
1654− scheduled = requestAnimationFrame(doRender);
1659− cancelAnimationFrame(scheduled);
1660− scheduled = void 0;
1664− resume: function() {
1006+ return function(m3) {
1665− stopped = false;
1007+ var r2 = [];
1666− renderCompleted = true;
1008+ for (var k in m3) {
1667− projector.scheduleRender();
1009+ if (hasOwnProperty.call(m3, k)) {
1668− },
1010+ r2.push(f(k)(m3[k]));
1669− append: function(parentNode, renderFunction) {
1670− addProjection(dom.append, parentNode, renderFunction);
1672− insertBefore: function(beforeNode, renderFunction) {
1673− addProjection(dom.insertBefore, beforeNode, renderFunction);
1675− merge: function(domNode, renderFunction) {
1676− addProjection(dom.merge, domNode, renderFunction);
1678− replace: function(domNode, renderFunction) {
1679− addProjection(dom.replace, domNode, renderFunction);
1681− detach: function(renderFunction) {
1682− for (var i = 0; i < renderFunctions.length; i++) {
1683− if (renderFunctions[i] === renderFunction) {
1684− renderFunctions.splice(i, 1);
1685− return projections.splice(i, 1)[0];
1688− throw new Error("renderFunction was not found");
1693− function _h(selector) {
1694− return function(properties) {
1695− return function(children) {
1013+ return r2;
1696− return h(selector, properties, children);
1700− function scheduleRender(projector) {
1016+ var keys = Object.keys || toArrayWithKey(function(k) {
1701 return function() {
1017 return function() {
1702− projector.scheduleRender();
1018+ return k;
1022+ // output/Data.TraversableWithIndex/index.js
1023+ var traverseWithIndex = function(dict) {
1024+ return dict.traverseWithIndex;
1027+ // output/Foreign.Object.ST/foreign.js
1028+ var newImpl = function() {
1705− function replace(projector) {
1031+ function poke2(k) {
1706− return function(el) {
1032+ return function(v2) {
1707− return function(render4) {
1033+ return function(m3) {
1708 return function() {
1034 return function() {
1709− projector.replace(el, render4);
1035+ m3[k] = v2;
1715− // output/Maquette/index.js
1042+ // output/Foreign.Object/index.js
1716− var string = unsafeCoerce2;
1043+ var bindFlipped2 = /* @__PURE__ */ bindFlipped(bindST);
1717− var h2 = _h;
1044+ var foldr2 = /* @__PURE__ */ foldr(foldableArray);
1718−
1045+ var identity4 = /* @__PURE__ */ identity(categoryFn);
1719− // output/Control.Monad.Writer.Class/index.js
1046+ var values = /* @__PURE__ */ toArrayWithKey(function(v2) {
1720− var tell = function(dict) {
1721− return dict.tell;
1047+ return function(v1) {
1723−
1051+ var thawST = _copyST;
1724− // output/Control.Monad.Writer.Trans/index.js
1725− var WriterT = function(x) {
1052+ var singleton2 = function(k) {
1726− return x;
1053+ return function(v2) {
1054+ return runST(bindFlipped2(poke2(k)(v2))(newImpl));
1728− var runWriterT = function(v) {
1057+ var mutate = function(f) {
1729− return v;
1058+ return function(m3) {
1059+ return runST(function __do() {
1060+ var s2 = thawST(m3)();
1731− var mapWriterT = function(f) {
1066+ var mapWithKey = function(f) {
1732− return function(v) {
1067+ return function(m3) {
1733− return f(v);
1068+ return _mapWithKey(m3, f);
1736− var functorWriterT = function(dictFunctor) {
1071+ var insert = function(k) {
1737− var map4 = map(dictFunctor);
1739− map: function(f) {
1072+ return function(v2) {
1740− return mapWriterT(map4(function(v) {
1073+ return mutate(poke2(k)(v2));
1741− return new Tuple(f(v.value0), v.value1);
1746− var applyWriterT = function(dictSemigroup) {
1076+ var functorObject = {
1747− var append3 = append(dictSemigroup);
1748− return function(dictApply) {
1749− var apply2 = apply(dictApply);
1750− var Functor0 = dictApply.Functor0();
1751− var map4 = map(Functor0);
1752− var functorWriterT1 = functorWriterT(Functor0);
1754− apply: function(v) {
1077+ map: function(f) {
1755− return function(v1) {
1078+ return function(m3) {
1756− var k = function(v3) {
1079+ return _fmapObject(m3, f);
1757− return function(v4) {
1758− return new Tuple(v3.value0(v4.value0), append3(v3.value1)(v4.value1));
1761− return apply2(map4(k)(v))(v1);
1764− Functor0: function() {
1765− return functorWriterT1;
1083+ var functorWithIndexObject = {
1084+ mapWithIndex: mapWithKey,
1085+ Functor0: function() {
1086+ return functorObject;
1089+ var fromHomogeneous = function() {
1090+ return unsafeCoerce2;
1092+ var foldM = function(dictMonad) {
1093+ var bind1 = bind(dictMonad.Bind1());
1094+ var pure12 = pure(dictMonad.Applicative0());
1095+ return function(f) {
1096+ return function(z) {
1097+ return _foldM(bind1)(f)(pure12(z));
1101+ var foldM1 = /* @__PURE__ */ foldM(monadST);
1102+ var union = function(m3) {
1103+ return mutate(function(s2) {
1104+ return foldM1(function(s$prime) {
1105+ return function(k) {
1106+ return function(v2) {
1107+ return poke2(k)(v2)(s$prime);
1113+ var unionWith = function(f) {
1114+ return function(m1) {
1115+ return function(m22) {
1116+ return mutate(function(s1) {
1117+ return foldM1(function(s2) {
1118+ return function(k) {
1119+ return function(v1) {
1120+ return poke2(k)(_lookup(v1, function(v2) {
1130+ var semigroupObject = function(dictSemigroup) {
1132+ append: unionWith(append(dictSemigroup))
1135+ var monoidObject = function(dictSemigroup) {
1136+ var semigroupObject1 = semigroupObject(dictSemigroup);
1139+ Semigroup0: function() {
1140+ return semigroupObject1;
1144+ var fold2 = /* @__PURE__ */ _foldM(applyFlipped);
1145+ var foldMap2 = function(dictMonoid) {
1146+ var append1 = append(dictMonoid.Semigroup0());
1147+ var mempty6 = mempty(dictMonoid);
1148+ return function(f) {
1149+ return fold2(function(acc) {
1150+ return function(k) {
1151+ return function(v2) {
1152+ return append1(acc)(f(k)(v2));
1158+ var foldableObject = {
1159+ foldl: function(f) {
1160+ return fold2(function(z) {
1161+ return function(v2) {
1166+ foldr: function(f) {
1167+ return function(z) {
1168+ return function(m3) {
1169+ return foldr2(f)(z)(values(m3));
1173+ foldMap: function(dictMonoid) {
1174+ var foldMap12 = foldMap2(dictMonoid);
1175+ return function(f) {
1176+ return foldMap12($$const(f));
1180+ var foldableWithIndexObject = {
1181+ foldlWithIndex: function(f) {
1182+ return fold2(flip(f));
1184+ foldrWithIndex: function(f) {
1185+ return function(z) {
1186+ return function(m3) {
1187+ return foldr2(uncurry(f))(z)(toArrayWithKey(Tuple.create)(m3));
1191+ foldMapWithIndex: function(dictMonoid) {
1192+ return foldMap2(dictMonoid);
1194+ Foldable0: function() {
1195+ return foldableObject;
1198+ var traversableWithIndexObject = {
1199+ traverseWithIndex: function(dictApplicative) {
1200+ var Apply0 = dictApplicative.Apply0();
1201+ var apply3 = apply(Apply0);
1202+ var map4 = map(Apply0.Functor0());
1203+ var pure12 = pure(dictApplicative);
1204+ return function(f) {
1205+ return function(ms) {
1206+ return fold2(function(acc) {
1207+ return function(k) {
1208+ return function(v2) {
1209+ return apply3(map4(flip(insert(k)))(acc))(f(k)(v2));
1212+ })(pure12(empty2))(ms);
1216+ FunctorWithIndex0: function() {
1217+ return functorWithIndexObject;
1219+ FoldableWithIndex1: function() {
1220+ return foldableWithIndexObject;
1222+ Traversable2: function() {
1223+ return traversableObject;
1226+ var traversableObject = {
1227+ traverse: function(dictApplicative) {
1228+ var $96 = traverseWithIndex(traversableWithIndexObject)(dictApplicative);
1229+ return function($97) {
1230+ return $96($$const($97));
1233+ sequence: function(dictApplicative) {
1234+ return traverse(traversableObject)(dictApplicative)(identity4);
1236+ Functor0: function() {
1237+ return functorObject;
1239+ Foldable1: function() {
1240+ return foldableObject;
1244+ // output/Literals.Undefined/foreign.js
1245+ var _undefined = void 0;
1247+ // output/Literals.Undefined/index.js
1248+ var $$undefined = _undefined;
1250+ // output/Control.Monad.Writer.Class/index.js
1251+ var tell = function(dict) {
1255+ // output/Control.Monad.Writer.Trans/index.js
1256+ var WriterT = function(x2) {
1259+ var runWriterT = function(v2) {
1262+ var mapWriterT = function(f) {
1263+ return function(v2) {
1267+ var functorWriterT = function(dictFunctor) {
1268+ var map4 = map(dictFunctor);
1271+ return mapWriterT(map4(function(v2) {
1272+ return new Tuple(f(v2.value0), v2.value1);
1277+ var applyWriterT = function(dictSemigroup) {
1278+ var append3 = append(dictSemigroup);
1279+ return function(dictApply) {
1280+ var apply3 = apply(dictApply);
1281+ var Functor0 = dictApply.Functor0();
1282+ var map4 = map(Functor0);
1283+ var functorWriterT1 = functorWriterT(Functor0);
1285+ apply: function(v2) {
1286+ return function(v1) {
1287+ var k = function(v3) {
1288+ return function(v4) {
1289+ return new Tuple(v3.value0(v4.value0), append3(v3.value1)(v4.value1));
1292+ return apply3(map4(k)(v2))(v1);
1295+ Functor0: function() {
1296+ return functorWriterT1;
1770− var bindWriterT = function(dictSemigroup) {
1301+ var bindWriterT = function(dictSemigroup) {
1771 var append3 = append(dictSemigroup);
1302 var append3 = append(dictSemigroup);
1772 var applyWriterT1 = applyWriterT(dictSemigroup);
1303 var applyWriterT1 = applyWriterT(dictSemigroup);
1773 return function(dictBind) {
1304 return function(dictBind) {
@@ -1776,13 +1307,13 @@
1776 var map4 = map(Apply0.Functor0());
1307 var map4 = map(Apply0.Functor0());
1777 var applyWriterT2 = applyWriterT1(Apply0);
1308 var applyWriterT2 = applyWriterT1(Apply0);
1778 return {
1309 return {
1779− bind: function(v) {
1310+ bind: function(v2) {
1780 return function(k) {
1311 return function(k) {
1781− return bind4(v)(function(v1) {
1312+ return bind4(v2)(function(v1) {
1782− var v2 = k(v1.value0);
1313+ var v22 = k(v1.value0);
1783 return map4(function(v3) {
1314 return map4(function(v3) {
1784 return new Tuple(v3.value0, append3(v1.value1)(v3.value1));
1315 return new Tuple(v3.value0, append3(v1.value1)(v3.value1));
1785− })(v2);
1316+ })(v22);
@@ -1806,11 +1337,11 @@
1806 var mempty6 = mempty(dictMonoid);
1337 var mempty6 = mempty(dictMonoid);
1807 var applyWriterT1 = applyWriterT(dictMonoid.Semigroup0());
1338 var applyWriterT1 = applyWriterT(dictMonoid.Semigroup0());
1808 return function(dictApplicative) {
1339 return function(dictApplicative) {
1809− var pure4 = pure(dictApplicative);
1340+ var pure5 = pure(dictApplicative);
1810 var applyWriterT2 = applyWriterT1(dictApplicative.Apply0());
1341 var applyWriterT2 = applyWriterT1(dictApplicative.Apply0());
1811 return {
1342 return {
1812− pure: function(a) {
1343+ pure: function(a2) {
1813− return pure4(new Tuple(a, mempty6));
1344+ return pure5(new Tuple(a2, mempty6));
1815 Apply0: function() {
1346 Apply0: function() {
1816 return applyWriterT2;
1347 return applyWriterT2;
@@ -1859,12 +1390,12 @@
1859 var monoidWriterT = function(dictApplicative) {
1390 var monoidWriterT = function(dictApplicative) {
1860 var semigroupWriterT1 = semigroupWriterT(dictApplicative.Apply0());
1391 var semigroupWriterT1 = semigroupWriterT(dictApplicative.Apply0());
1861 return function(dictMonoid) {
1392 return function(dictMonoid) {
1862− var pure4 = pure(applicativeWriterT(dictMonoid)(dictApplicative));
1393+ var pure5 = pure(applicativeWriterT(dictMonoid)(dictApplicative));
1863 var semigroupWriterT2 = semigroupWriterT1(dictMonoid.Semigroup0());
1394 var semigroupWriterT2 = semigroupWriterT1(dictMonoid.Semigroup0());
1864 return function(dictMonoid1) {
1395 return function(dictMonoid1) {
1865 var semigroupWriterT3 = semigroupWriterT2(dictMonoid1.Semigroup0());
1396 var semigroupWriterT3 = semigroupWriterT2(dictMonoid1.Semigroup0());
1866 return {
1397 return {
1867− mempty: pure4(mempty(dictMonoid1)),
1398+ mempty: pure5(mempty(dictMonoid1)),
1868 Semigroup0: function() {
1399 Semigroup0: function() {
1869 return semigroupWriterT3;
1400 return semigroupWriterT3;
@@ -1882,13 +1413,13 @@
1882 // output/Data.Int/foreign.js
1413 // output/Data.Int/foreign.js
1883 var fromNumberImpl = function(just) {
1414 var fromNumberImpl = function(just) {
1884 return function(nothing) {
1415 return function(nothing) {
1885− return function(n) {
1416+ return function(n2) {
1886− return (n | 0) === n ? just(n) : nothing;
1417+ return (n2 | 0) === n2 ? just(n2) : nothing;
1890− var toNumber = function(n) {
1421+ var toNumber = function(n2) {
1891− return n;
1422+ return n2;
1894 // output/Data.Number/foreign.js
1425 // output/Data.Number/foreign.js
@@ -1901,340 +1432,423 @@
1901 var fromNumber = /* @__PURE__ */ function() {
1432 var fromNumber = /* @__PURE__ */ function() {
1902 return fromNumberImpl(Just.create)(Nothing.value);
1433 return fromNumberImpl(Just.create)(Nothing.value);
1904− var unsafeClamp = function(x) {
1435+ var unsafeClamp = function(x2) {
1905− if (!isFiniteImpl(x)) {
1436+ if (!isFiniteImpl(x2)) {
1906 return 0;
1437 return 0;
1909− if (x >= toNumber(top2)) {
1440+ if (x2 >= toNumber(top2)) {
1910 return top2;
1441 return top2;
1913− if (x <= toNumber(bottom2)) {
1444+ if (x2 <= toNumber(bottom2)) {
1914 return bottom2;
1445 return bottom2;
1917 if (otherwise) {
1448 if (otherwise) {
1918− return fromMaybe(0)(fromNumber(x));
1449+ return fromMaybe(0)(fromNumber(x2));
1921− throw new Error("Failed pattern match at Data.Int (line 72, column 1 - line 72, column 29): " + [x.constructor.name]);
1452+ throw new Error("Failed pattern match at Data.Int (line 72, column 1 - line 72, column 29): " + [x2.constructor.name]);
1923 var round2 = function($37) {
1454 var round2 = function($37) {
1924 return unsafeClamp(round($37));
1455 return unsafeClamp(round($37));
1927− // output/Data.TraversableWithIndex/index.js
1458+ // output/Data.String.Common/foreign.js
1928− var traverseWithIndex = function(dict) {
1459+ var replaceAll = function(s1) {
1929− return dict.traverseWithIndex;
1460+ return function(s2) {
1461+ return function(s3) {
1462+ return s3.replace(new RegExp(s1.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"), "g"), s2);
1932− // output/Foreign.Object/foreign.js
1467+ // output/Snabbdom/foreign.js
1933− function _copyST(m2) {
1468+ function h(z, J) {
1469+ let P, G = J.elm, X2 = z.data.attrs, $ = J.data.attrs;
1934− return function() {
1470+ if (!X2 && !$) return;
1935− var r = {};
1471+ if (X2 === $) return;
1472+ X2 = X2 || {}, $ = $ || {};
1936− for (var k in m2) {
1473+ for (P in $) {
1937− if (hasOwnProperty.call(m2, k)) {
1474+ let U = $[P];
1938− r[k] = m2[k];
1475+ if (X2[P] !== U) if (U === true) G.setAttribute(P, "");
1939− }
1476+ else if (U === false) G.removeAttribute(P);
1940− }
1477+ else if (P.charCodeAt(0) !== 120) G.setAttribute(P, U);
1941− return r;
1478+ else if (P.charCodeAt(3) === 58) G.setAttributeNS("http://www.w3.org/XML/1998/namespace", P, U);
1479+ else if (P.charCodeAt(5) === 58) P.charCodeAt(1) === 109 ? G.setAttributeNS("http://www.w3.org/2000/xmlns/", P, U) : G.setAttributeNS("http://www.w3.org/1999/xlink", P, U);
1480+ else G.setAttribute(P, U);
1482+ for (P in X2) if (!(P in $)) G.removeAttribute(P);
1944− var empty2 = {};
1484+ var v = { create: h, update: h };
1945− function runST(f) {
1485+ function i(z, J, P) {
1946− return f();
1486+ if (typeof z === "function") z.call(J, P, J);
1487+ else if (typeof z === "object") for (let G = 0; G < z.length; G++) i(z[G], J, P);
1948− function _fmapObject(m0, f) {
1489+ function e(z, J) {
1949− var m2 = {};
1490+ let P = z.type, G = J.data.on;
1950− for (var k in m0) {
1491+ if (G && G[P]) i(G[P], J, z);
1951− if (hasOwnProperty.call(m0, k)) {
1957− function _mapWithKey(m0, f) {
1493+ function zz() {
1958− var m2 = {};
1494+ return function z(J) {
1959− for (var k in m0) {
1495+ e(J, z.vnode);
1960− if (hasOwnProperty.call(m0, k)) {
1496+ };
1961− m2[k] = f(k)(m0[k]);
1497+ }
1962− }
1498+ function E(z, J) {
1499+ let P = z.data.on, G = z.listener, X2 = z.elm, $ = J && J.data.on, U = J && J.elm, L;
1500+ if (P === $) return;
1502+ if (!$) for (L in P) X2.removeEventListener(L, G, false);
1503+ else for (L in P) if (!$[L]) X2.removeEventListener(L, G, false);
1506+ let F = J.listener = z.listener || zz();
1507+ if (F.vnode = J, !P) for (L in $) U.addEventListener(L, F, false);
1508+ else for (L in $) if (!P[L]) U.addEventListener(L, F, false);
1966− function _foldM(bind4) {
1511+ var m = { create: E, update: E, destroy: E };
1967− return function(f) {
1968− return function(mz) {
1969− return function(m2) {
1971− function g(k2) {
1512+ function C(z, J, P, G, X2) {
1972− return function(z) {
1513+ let $ = J === void 0 ? void 0 : J.key;
1973− return f(z)(k2)(m2[k2]);
1514+ return { sel: z, data: J, children: P, text: G, elm: X2, key: $ };
1976− for (var k in m2) {
1977− if (hasOwnProperty.call(m2, k)) {
1978− acc = bind4(acc)(g(k));
1516+ var w = Array.isArray;
1986− function _lookup(no, yes, k, m2) {
1517+ function s(z) {
1987− return k in m2 ? yes(m2[k]) : no;
1518+ return typeof z === "string" || typeof z === "number" || z instanceof String || z instanceof Number;
1989− function toArrayWithKey(f) {
1520+ function Jz(z, J) {
1990− return function(m2) {
1521+ return document.createElement(z, J);
1992− for (var k in m2) {
1993− if (hasOwnProperty.call(m2, k)) {
1994− r.push(f(k)(m2[k]));
2000− var keys = Object.keys || toArrayWithKey(function(k) {
2001− return function() {
1523+ function Pz(z, J, P) {
2002− return k;
1524+ return document.createElementNS(z, J, P);
2006− // output/Foreign.Object.ST/foreign.js
2007− var newImpl = function() {
2010− function poke2(k) {
2011− return function(v) {
2012− return function(m2) {
2013− return function() {
2020−
1526+ function Wz() {
2021− // output/Foreign.Object/index.js
1527+ return g(document.createDocumentFragment());
2022− var bindFlipped2 = /* @__PURE__ */ bindFlipped(bindST);
1528+ }
2023− var foldr2 = /* @__PURE__ */ foldr(foldableArray);
1529+ function Xz(z) {
2024− var identity4 = /* @__PURE__ */ identity(categoryFn);
1530+ return document.createTextNode(z);
2025− var values = /* @__PURE__ */ toArrayWithKey(function(v) {
2026− return function(v1) {
2030− var thawST = _copyST;
1532+ function Yz(z) {
2031− var singleton2 = function(k) {
1533+ return document.createComment(z);
2032− return function(v) {
1534+ }
2033− return runST(bindFlipped2(poke2(k)(v))(newImpl));
1535+ function Zz(z, J, P) {
2034− };
1536+ if (b(z)) {
1538+ while (G && b(G)) G = g(G).parent;
1539+ z = G !== null && G !== void 0 ? G : z;
2036− var mutate = function(f) {
1541+ if (b(J)) J = g(J, z);
2037− return function(m2) {
1542+ if (P && b(P)) P = g(P).firstChildNode;
2038− return runST(function __do() {
1543+ z.insertBefore(J, P);
2039− var s = thawST(m2)();
2043− };
1545+ function $z(z, J) {
2045− var mapWithKey = function(f) {
1548+ function Bz(z, J) {
2046− return function(m2) {
1549+ if (b(J)) J = g(J, z);
2047− return _mapWithKey(m2, f);
1550+ z.appendChild(J);
2050− var insert = function(k) {
1552+ function r(z) {
2051− return function(v) {
1553+ if (b(z)) {
2052− return mutate(poke2(k)(v));
1554+ while (z && b(z)) z = g(z).parent;
2053− };
1555+ return z !== null && z !== void 0 ? z : null;
2055− var functorObject = {
2057− return function(m2) {
2058− return _fmapObject(m2, f);
2062− var functorWithIndexObject = {
2063− mapWithIndex: mapWithKey,
2064− Functor0: function() {
2065− return functorObject;
1557+ return z.parentNode;
2068− var foldM = function(dictMonad) {
1559+ function qz(z) {
2069− var bind1 = bind(dictMonad.Bind1());
1560+ var J;
2070− var pure1 = pure(dictMonad.Applicative0());
1561+ if (b(z)) {
2071− return function(f) {
1562+ let P = g(z), G = r(P);
2072− return function(z) {
1563+ if (G && P.lastChildNode) {
2073− return _foldM(bind1)(f)(pure1(z));
1564+ let X2 = Array.from(G.childNodes), $ = X2.indexOf(P.lastChildNode);
2074− };
1565+ return (J = X2[$ + 1]) !== null && J !== void 0 ? J : null;
2077− var foldM1 = /* @__PURE__ */ foldM(monadST);
2078− var union = function(m2) {
2079− return mutate(function(s) {
2080− return foldM1(function(s$prime) {
2081− return function(k) {
2082− return function(v) {
2083− return poke2(k)(v)(s$prime);
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) {
2106− var semigroupObject = function(dictSemigroup) {
2108− append: unionWith(append(dictSemigroup))
2111− var monoidObject = function(dictSemigroup) {
2112− var semigroupObject1 = semigroupObject(dictSemigroup);
2115− Semigroup0: function() {
2116− return semigroupObject1;
2118− };
1567+ return null;
2120− var fold2 = /* @__PURE__ */ _foldM(applyFlipped);
2121− var foldMap2 = function(dictMonoid) {
2122− var append1 = append(dictMonoid.Semigroup0());
2123− var mempty6 = mempty(dictMonoid);
2124− return function(f) {
2125− return fold2(function(acc) {
2126− return function(k) {
2127− return function(v) {
2128− return append1(acc)(f(k)(v));
2134− var foldableObject = {
2135− foldl: function(f) {
2136− return fold2(function(z) {
2137− return function(v) {
2142− foldr: function(f) {
2143− return function(z) {
2144− return function(m2) {
2145− return foldr2(f)(z)(values(m2));
2149− foldMap: function(dictMonoid) {
2150− var foldMap1 = foldMap2(dictMonoid);
2151− return function(f) {
2152− return foldMap1($$const(f));
1569+ return z.nextSibling;
2156− var foldableWithIndexObject = {
1571+ function Kz(z) {
2157− foldlWithIndex: function(f) {
1574+ function Uz(z, J) {
2158− return fold2(flip(f));
1575+ z.textContent = J;
2160− foldrWithIndex: function(f) {
1577+ function Hz(z) {
1578+ return z.textContent;
2161− return function(z) {
1580+ function Oz(z) {
1581+ return z.nodeType === 1;
2162− return function(m2) {
1583+ function Rz(z) {
2163− return foldr2(uncurry(f))(z)(toArrayWithKey(Tuple.create)(m2));
1584+ return z.nodeType === 3;
2165− };
1586+ function Az(z) {
2166− },
1587+ return z.nodeType === 8;
2167− foldMapWithIndex: function(dictMonoid) {
2168− return foldMap2(dictMonoid);
2170− Foldable0: function() {
1589+ function b(z) {
2171− return foldableObject;
1590+ return z.nodeType === 11;
2174− var traversableWithIndexObject = {
1592+ function g(z, J) {
2175− traverseWithIndex: function(dictApplicative) {
1593+ var P, G, X2;
2176− var Apply0 = dictApplicative.Apply0();
1594+ let $ = z;
2177− var apply2 = apply(Apply0);
1595+ return (P = $.parent) !== null && P !== void 0 || ($.parent = J !== null && J !== void 0 ? J : null), (G = $.firstChildNode) !== null && G !== void 0 || ($.firstChildNode = z.firstChild), (X2 = $.lastChildNode) !== null && X2 !== void 0 || ($.lastChildNode = z.lastChild), $;
2178− var map4 = map(Apply0.Functor0());
1596+ }
2179− var pure1 = pure(dictApplicative);
1597+ var l = { createElement: Jz, createElementNS: Pz, createTextNode: Xz, createDocumentFragment: Wz, createComment: Yz, insertBefore: Zz, removeChild: $z, appendChild: Bz, parentNode: r, nextSibling: qz, tagName: Kz, setTextContent: Uz, getTextContent: Hz, isElement: Oz, isText: Rz, isComment: Az, isDocumentFragment: b };
1598+ var x = C("", {}, [], void 0, void 0);
2180− return function(f) {
1599+ function I(z, J) {
2181− return function(ms) {
1600+ var P, G;
2182− return fold2(function(acc) {
1601+ let X2 = z.key === J.key, $ = ((P = z.data) === null || P === void 0 ? void 0 : P.is) === ((G = J.data) === null || G === void 0 ? void 0 : G.is), U = z.sel === J.sel, L = !z.sel && z.sel === J.sel ? typeof z.text === typeof J.text : true;
2183− return function(k) {
1602+ return U && X2 && $ && L;
2184− return function(v) {
1603+ }
2185− return apply2(map4(flip(insert(k)))(acc))(f(k)(v));
1604+ function Mz() {
1605+ throw new Error("The document fragment is not supported on this platform.");
1607+ function Tz(z, J) {
1608+ return z.isElement(J);
1610+ function Lz(z, J) {
1611+ return z.isDocumentFragment(J);
2187− };
1613+ function Dz(z, J, P) {
2188− })(pure1(empty2))(ms);
1614+ var G;
2189− };
1615+ let X2 = {};
2190− };
1616+ for (let $ = J; $ <= P; ++$) {
2191− },
1617+ let U = (G = z[$]) === null || G === void 0 ? void 0 : G.key;
2192− FunctorWithIndex0: function() {
1618+ if (U !== void 0) X2[U] = $;
2193− return functorWithIndexObject;
2195− FoldableWithIndex1: function() {
2196− return foldableWithIndexObject;
2198− Traversable2: function() {
2199− return traversableObject;
2202− var traversableObject = {
1622+ var jz = ["create", "update", "remove", "destroy", "pre", "post"];
2203− traverse: function(dictApplicative) {
1623+ function a(z, J, P) {
2204− var $96 = traverseWithIndex(traversableWithIndexObject)(dictApplicative);
1624+ let G = { create: [], update: [], remove: [], destroy: [], pre: [], post: [] }, X2 = J !== void 0 ? J : l;
1625+ for (let W of jz) for (let Y2 of z) {
1627+ if (q !== void 0) G[W].push(q);
1630+ let Y2 = W.id ? "#" + W.id : "", q = W.getAttribute("class"), B = q ? "." + q.split(" ").join(".") : "";
1631+ return C(X2.tagName(W).toLowerCase() + Y2 + B, {}, [], void 0, W);
1634+ return C(void 0, {}, [], void 0, W);
1636+ function L(W, Y2) {
2205− return function($97) {
1637+ return function q() {
2206− return $96($$const($97));
1638+ if (--Y2 === 0) {
1639+ let B = X2.parentNode(W);
1640+ if (B !== null) X2.removeChild(B, W);
2209− sequence: function(dictApplicative) {
2210− return traverse(traversableObject)(dictApplicative)(identity4);
2212− Functor0: function() {
2213− return functorObject;
2215− Foldable1: function() {
2216− return foldableObject;
2218− };
1644+ function F(W, Y2) {
2219−
1645+ var q, B, K, O, M;
2220− // output/Record.Unsafe.Union/foreign.js
1646+ let Z, R = W.data, T = R === null || R === void 0 ? void 0 : R.hook;
2221− function unsafeUnionFn(r1, r2) {
1647+ (q = T === null || T === void 0 ? void 0 : T.init) === null || q === void 0 || q.call(T, W);
2222− var copy = {};
1648+ let { children: A, sel: H } = W;
2223− for (var k1 in r2) {
1649+ if (H === "!") (B = W.text) !== null && B !== void 0 || (W.text = ""), W.elm = X2.createComment(W.text);
2224− if ({}.hasOwnProperty.call(r2, k1)) {
1650+ else if (H === "") W.elm = X2.createTextNode(W.text);
2225− copy[k1] = r2[k1];
1651+ else if (H !== void 0) {
1652+ let D = H.indexOf("#"), j = H.indexOf(".", D), Q = D > 0 ? D : H.length, f = j > 0 ? j : H.length, c = D !== -1 || j !== -1 ? H.slice(0, Math.min(Q, f)) : H, V = R === null || R === void 0 ? void 0 : R.ns, S = V === void 0 ? X2.createElement(c, R) : X2.createElementNS(V, c, R);
1653+ if (W.elm = S, Q < f) S.setAttribute("id", H.slice(Q + 1, f));
1654+ if (j > 0) S.setAttribute("class", H.slice(f + 1).replace(/\./g, " "));
1655+ for (Z = 0; Z < G.create.length; ++Z) G.create[Z](x, W);
1656+ if (s(W.text) && (!w(A) || A.length === 0)) X2.appendChild(S, X2.createTextNode(W.text));
1657+ if (w(A)) for (Z = 0; Z < A.length; ++Z) {
1659+ if (p != null) X2.appendChild(S, F(p, Y2));
1661+ if (T !== void 0) {
1662+ if ((K = T.create) === null || K === void 0 || K.call(T, x, W), T.insert !== void 0) Y2.push(W);
1664+ } else if (((O = P === null || P === void 0 ? void 0 : P.experimental) === null || O === void 0 ? void 0 : O.fragments) && W.children) {
1665+ W.elm = ((M = X2.createDocumentFragment) !== null && M !== void 0 ? M : Mz)();
1666+ for (Z = 0; Z < G.create.length; ++Z) G.create[Z](x, W);
1667+ for (Z = 0; Z < W.children.length; ++Z) {
1668+ let D = W.children[Z];
1669+ if (D != null) X2.appendChild(W.elm, F(D, Y2));
1671+ } else W.elm = X2.createTextNode(W.text);
1674+ function _(W, Y2, q, B, K, O) {
1675+ for (; B <= K; ++B) {
1677+ if (M != null) X2.insertBefore(W, F(M, O), Y2);
1683+ if (B !== void 0) {
1684+ (q = (Y2 = B === null || B === void 0 ? void 0 : B.hook) === null || Y2 === void 0 ? void 0 : Y2.destroy) === null || q === void 0 || q.call(Y2, W);
1685+ for (let K = 0; K < G.destroy.length; ++K) G.destroy[K](W);
1686+ if (W.children !== void 0) for (let K = 0; K < W.children.length; ++K) {
1687+ let O = W.children[K];
1688+ if (O != null && typeof O !== "string") N(O);
2228− for (var k2 in r1) {
1692+ function k(W, Y2, q, B) {
2229− if ({}.hasOwnProperty.call(r1, k2)) {
1693+ var K, O;
2230− copy[k2] = r1[k2];
1694+ for (; q <= B; ++q) {
1696+ if (Z != null) if (Z.sel !== void 0) {
1697+ N(Z), M = G.remove.length + 1;
1698+ let R = L(Z.elm, M);
1699+ for (let A = 0; A < G.remove.length; ++A) G.remove[A](Z, R);
1700+ let T = (O = (K = Z === null || Z === void 0 ? void 0 : Z.data) === null || K === void 0 ? void 0 : K.hook) === null || O === void 0 ? void 0 : O.remove;
1701+ if (T !== void 0) T(Z, R);
1703+ } else if (Z.children) N(Z), k(W, Z.children, 0, Z.children.length - 1);
1704+ else X2.removeChild(W, Z.elm);
1707+ function d(W, Y2, q, B) {
1708+ let K = 0, O = 0, M = Y2.length - 1, Z = Y2[0], R = Y2[M], T = q.length - 1, A = q[0], H = q[T], D, j, Q, f;
1709+ while (K <= M && O <= T) if (Z == null) Z = Y2[++K];
1710+ else if (R == null) R = Y2[--M];
1711+ else if (A == null) A = q[++O];
1712+ else if (H == null) H = q[--T];
1713+ else if (I(Z, A)) y(Z, A, B), Z = Y2[++K], A = q[++O];
1714+ else if (I(R, H)) y(R, H, B), R = Y2[--M], H = q[--T];
1715+ else if (I(Z, H)) y(Z, H, B), X2.insertBefore(W, Z.elm, X2.nextSibling(R.elm)), Z = Y2[++K], H = q[--T];
1716+ else if (I(R, A)) y(R, A, B), X2.insertBefore(W, R.elm, Z.elm), R = Y2[--M], A = q[++O];
1718+ if (D === void 0) D = Dz(Y2, K, M);
1719+ if (j = D[A.key], j === void 0) X2.insertBefore(W, F(A, B), Z.elm), A = q[++O];
1720+ else if (D[H.key] === void 0) X2.insertBefore(W, F(H, B), X2.nextSibling(R.elm)), H = q[--T];
1722+ if (Q = Y2[j], Q.sel !== A.sel) X2.insertBefore(W, F(A, B), Z.elm);
1723+ else y(Q, A, B), Y2[j] = void 0, X2.insertBefore(W, Q.elm, Z.elm);
1727+ if (O <= T) f = q[T + 1] == null ? null : q[T + 1].elm, _(W, f, q, O, T, B);
1728+ if (K <= M) k(W, Y2, K, M);
1730+ function y(W, Y2, q) {
1731+ var B, K, O, M, Z, R, T, A;
1732+ let H = (B = Y2.data) === null || B === void 0 ? void 0 : B.hook;
1733+ (K = H === null || H === void 0 ? void 0 : H.prepatch) === null || K === void 0 || K.call(H, W, Y2);
1734+ let D = Y2.elm = W.elm;
1735+ if (W === Y2) return;
1736+ if (Y2.data !== void 0 || Y2.text !== void 0 && Y2.text !== W.text) {
1737+ (O = Y2.data) !== null && O !== void 0 || (Y2.data = {}), (M = W.data) !== null && M !== void 0 || (W.data = {});
1738+ for (let f = 0; f < G.update.length; ++f) G.update[f](W, Y2);
1739+ (T = (R = (Z = Y2.data) === null || Z === void 0 ? void 0 : Z.hook) === null || R === void 0 ? void 0 : R.update) === null || T === void 0 || T.call(R, W, Y2);
1741+ let j = W.children, Q = Y2.children;
1742+ if (Y2.text === void 0) {
1743+ if (j !== void 0 && Q !== void 0) {
1744+ if (j !== Q) d(D, j, Q, q);
1745+ } else if (Q !== void 0) {
1746+ if (W.text !== void 0) X2.setTextContent(D, "");
1747+ _(D, null, Q, 0, Q.length - 1, q);
1748+ } else if (j !== void 0) k(D, j, 0, j.length - 1);
1749+ else if (W.text !== void 0) X2.setTextContent(D, "");
1750+ } else if (W.text !== Y2.text) {
1751+ if (j !== void 0) k(D, j, 0, j.length - 1);
1752+ X2.setTextContent(D, Y2.text);
1754+ (A = H === null || H === void 0 ? void 0 : H.postpatch) === null || A === void 0 || A.call(H, W, Y2);
1756+ return function W(Y2, q) {
1757+ let B, K, O, M = [];
1758+ for (B = 0; B < G.pre.length; ++B) G.pre[B]();
1759+ if (Tz(X2, Y2)) Y2 = $(Y2);
1760+ else if (Lz(X2, Y2)) Y2 = U(Y2);
1761+ if (I(Y2, q)) y(Y2, q, M);
1762+ else if (K = Y2.elm, O = X2.parentNode(K), F(q, M), O !== null) X2.insertBefore(O, q.elm, X2.nextSibling(K)), k(O, [Y2], 0, 0);
1763+ for (B = 0; B < M.length; ++B) M[B].data.hook.insert(M[B]);
1764+ for (B = 0; B < G.post.length; ++B) G.post[B]();
1768+ var t = typeof (window === null || window === void 0 ? void 0 : window.requestAnimationFrame) === "function" ? window.requestAnimationFrame.bind(window) : setTimeout;
1775+ function Qz(z, J, P) {
1781+ let P, G, X2 = J.elm, $ = z.data.style, U = J.data.style;
1782+ if (!$ && !U) return;
1783+ if ($ === U) return;
1784+ $ = $ || {}, U = U || {};
1785+ let L = "delayed" in $;
1786+ for (G in $) if (!(G in U)) if (G[0] === "-" && G[1] === "-") X2.style.removeProperty(G);
1787+ else X2.style[G] = "";
1788+ for (G in U) if (P = U[G], G === "delayed" && U.delayed) {
1789+ for (let F in U.delayed) if (P = U.delayed[F], !L || P !== $.delayed[F]) Qz(X2.style, F, P);
1790+ } else if (G !== "remove" && P !== $[G]) if (G[0] === "-" && G[1] === "-") X2.style.setProperty(G, P);
1791+ else X2.style[G] = P;
1794+ let J, P, G = z.elm, X2 = z.data.style;
1795+ if (!X2 || !(J = X2.destroy)) return;
1796+ for (P in J) G.style[P] = J[P];
1798+ function bz(z, J) {
1799+ let P = z.data.style;
1800+ if (!P || !P.remove) {
2233− return copy;
1804+ if (!u) z.elm.offsetLeft, u = true;
1805+ let G, X2 = z.elm, $ = 0, U = P.remove, L = 0, F = [];
1806+ for (G in U) F.push(G), X2.style[G] = U[G];
1807+ let N = getComputedStyle(X2)["transition-property"].split(", ");
1808+ for (; $ < N.length; ++$) if (F.indexOf(N[$]) !== -1) L++;
1809+ X2.addEventListener("transitionend", (k) => {
1810+ if (k.target === X2) --L;
1817+ var n = { pre: kz, create: o, update: o, destroy: fz, remove: bz };
1819+ return a([v, m, n]);
1822+ // output/Effect.Uncurried/foreign.js
1823+ var runEffectFn2 = function runEffectFn22(fn) {
1824+ return function(a2) {
1825+ return function(b2) {
1826+ return function() {
1833+ // output/Snabbdom/index.js
1834+ var init = /* @__PURE__ */ mapFlipped(functorEffect)(Vz)(runEffectFn2);
1835+ var h2 = /* @__PURE__ */ runFn4(C);
1837+ // output/Foreign/foreign.js
1838+ var isArray = Array.isArray || function(value12) {
1839+ return Object.prototype.toString.call(value12) === "[object Array]";
1842+ // output/Untagged.Castable/index.js
1843+ var cast = function() {
1844+ return unsafeCoerce2;
2236− // output/Record.Unsafe.Union/index.js
1847+ // output/Untagged.Union/index.js
2237− var unsafeUnion = /* @__PURE__ */ runFn2(unsafeUnionFn);
1848+ var cast2 = /* @__PURE__ */ cast();
1849+ var asOneOf = function() {
2239 // output/Plum.View/index.js
1853 // output/Plum.View/index.js
2240 var append2 = /* @__PURE__ */ append(semigroupArray);
1854 var append2 = /* @__PURE__ */ append(semigroupArray);
@@ -2283,10 +1897,12 @@
2283 var monoidRecordCons3 = /* @__PURE__ */ monoidRecordCons(childrenIsSymbol);
1897 var monoidRecordCons3 = /* @__PURE__ */ monoidRecordCons(childrenIsSymbol);
2284 var monoidRecordCons4 = /* @__PURE__ */ monoidRecordCons2(monoidArray)()(/* @__PURE__ */ monoidRecordCons1(monoidArray)()(/* @__PURE__ */ monoidRecordCons22(monoidArray)()(/* @__PURE__ */ monoidRecordCons(nervesIsSymbol)(monoidArray)()(monoidRecordNil))));
1898 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)));
1899 var mempty1 = /* @__PURE__ */ mempty(/* @__PURE__ */ monoidRecord2(/* @__PURE__ */ monoidRecordCons3(monoidArray)()(monoidRecordCons4)));
2286− var foldMap3 = /* @__PURE__ */ foldMap2(monoidString);
1900+ var foldMap4 = /* @__PURE__ */ foldMap2(monoidString);
1901+ var intercalate3 = /* @__PURE__ */ intercalate2(monoidString);
1902+ var asOneOf2 = /* @__PURE__ */ asOneOf();
2287 var show1 = /* @__PURE__ */ show(showNumber);
1903 var show1 = /* @__PURE__ */ show(showNumber);
2288 var mempty22 = /* @__PURE__ */ mempty(monoidUnit);
1904 var mempty22 = /* @__PURE__ */ mempty(monoidUnit);
2289− var intercalate3 = /* @__PURE__ */ intercalate2(monoidString);
1905+ var fromHomogeneous2 = /* @__PURE__ */ fromHomogeneous();
2290 var map2 = /* @__PURE__ */ map(/* @__PURE__ */ functorWriterT(functorIdentity));
1906 var map2 = /* @__PURE__ */ map(/* @__PURE__ */ functorWriterT(functorIdentity));
2291 var map1 = /* @__PURE__ */ map(functorArray);
1907 var map1 = /* @__PURE__ */ map(functorArray);
2292 var Top = /* @__PURE__ */ function() {
1908 var Top = /* @__PURE__ */ function() {
@@ -2381,6 +1997,34 @@
2381 Y2.value = new Y2();
1997 Y2.value = new Y2();
2382 return Y2;
1998 return Y2;
2000+ var TopLeft = /* @__PURE__ */ function() {
2001+ function TopLeft2() {
2004+ TopLeft2.value = new TopLeft2();
2007+ var TopRight = /* @__PURE__ */ function() {
2008+ function TopRight2() {
2011+ TopRight2.value = new TopRight2();
2014+ var BottomRight = /* @__PURE__ */ function() {
2015+ function BottomRight2() {
2018+ BottomRight2.value = new BottomRight2();
2019+ return BottomRight2;
2021+ var BottomLeft = /* @__PURE__ */ function() {
2022+ function BottomLeft2() {
2025+ BottomLeft2.value = new BottomLeft2();
2026+ return BottomLeft2;
2384 var Grid = /* @__PURE__ */ function() {
2028 var Grid = /* @__PURE__ */ function() {
2385 function Grid2() {
2029 function Grid2() {
@@ -2412,6 +2056,27 @@
2412 Span2.value = new Span2();
2056 Span2.value = new Span2();
2413 return Span2;
2057 return Span2;
2059+ var Solid = /* @__PURE__ */ function() {
2060+ function Solid2() {
2063+ Solid2.value = new Solid2();
2066+ var Dashed = /* @__PURE__ */ function() {
2067+ function Dashed2() {
2070+ Dashed2.value = new Dashed2();
2073+ var Dotted = /* @__PURE__ */ function() {
2074+ function Dotted2() {
2077+ Dotted2.value = new Dotted2();
2415 var Start = /* @__PURE__ */ function() {
2080 var Start = /* @__PURE__ */ function() {
2416 function Start2() {
2081 function Start2() {
@@ -2560,6 +2225,102 @@
2561 return Clip2;
2226 return Clip2;
2228+ var BorderWidth = /* @__PURE__ */ function() {
2229+ function BorderWidth2(value0, value1) {
2230+ this.value0 = value0;
2231+ this.value1 = value1;
2234+ BorderWidth2.create = function(value0) {
2235+ return function(value1) {
2236+ return new BorderWidth2(value0, value1);
2239+ return BorderWidth2;
2241+ var BorderStyle = /* @__PURE__ */ function() {
2242+ function BorderStyle2(value0) {
2243+ this.value0 = value0;
2246+ BorderStyle2.create = function(value0) {
2247+ return new BorderStyle2(value0);
2249+ return BorderStyle2;
2251+ var Round = /* @__PURE__ */ function() {
2252+ function Round2(value0, value1) {
2253+ this.value0 = value0;
2254+ this.value1 = value1;
2257+ Round2.create = function(value0) {
2258+ return function(value1) {
2259+ return new Round2(value0, value1);
2264+ var Shadow = /* @__PURE__ */ function() {
2265+ function Shadow2(value0) {
2266+ this.value0 = value0;
2269+ Shadow2.create = function(value0) {
2270+ return new Shadow2(value0);
2274+ var InnerShadow = /* @__PURE__ */ function() {
2275+ function InnerShadow2(value0) {
2276+ this.value0 = value0;
2279+ InnerShadow2.create = function(value0) {
2280+ return new InnerShadow2(value0);
2282+ return InnerShadow2;
2284+ var FontColor = /* @__PURE__ */ function() {
2285+ function FontColor2(value0) {
2286+ this.value0 = value0;
2289+ FontColor2.create = function(value0) {
2290+ return new FontColor2(value0);
2294+ var FontWeight = /* @__PURE__ */ function() {
2295+ function FontWeight2(value0) {
2296+ this.value0 = value0;
2299+ FontWeight2.create = function(value0) {
2300+ return new FontWeight2(value0);
2302+ return FontWeight2;
2304+ var FontSize = /* @__PURE__ */ function() {
2305+ function FontSize2(value0) {
2306+ this.value0 = value0;
2309+ FontSize2.create = function(value0) {
2310+ return new FontSize2(value0);
2314+ var Font = /* @__PURE__ */ function() {
2315+ function Font2(value0) {
2316+ this.value0 = value0;
2319+ Font2.create = function(value0) {
2320+ return new Font2(value0);
2563 var UI = /* @__PURE__ */ function() {
2324 var UI = /* @__PURE__ */ function() {
2564 function UI2(value0, value1) {
2325 function UI2(value0, value1) {
2565 this.value0 = value0;
2326 this.value0 = value0;
@@ -2676,12 +2437,12 @@
2676 return None3;
2437 return None3;
2678 var semigroupSkinGrowth = {
2439 var semigroupSkinGrowth = {
2679− append: function(v) {
2440+ append: function(v2) {
2680 return function(v1) {
2441 return function(v1) {
2681 return {
2442 return {
2682− meat: union(v.meat)(v1.meat),
2443+ meat: union(v2.meat)(v1.meat),
2683− hover: union(v.hover)(v1.hover),
2444+ hover: union(v2.hover)(v1.hover),
2684− down: union(v.down)(v1.down)
2445+ down: union(v2.down)(v1.down)
@@ -2691,10 +2452,10 @@
2691 var bind2 = /* @__PURE__ */ bind(bindWriterT2);
2452 var bind2 = /* @__PURE__ */ bind(bindWriterT2);
2692 var append22 = /* @__PURE__ */ append(/* @__PURE__ */ semigroupWriterT(applyIdentity)(semigroupSkinGrowth)(semigroupArray));
2453 var append22 = /* @__PURE__ */ append(/* @__PURE__ */ semigroupWriterT(applyIdentity)(semigroupSkinGrowth)(semigroupArray));
2693 var semigroupMutation = {
2454 var semigroupMutation = {
2694− append: function(v) {
2455+ append: function(v2) {
2695 return function(v1) {
2456 return function(v1) {
2696 return {
2457 return {
2697− extraSkin: append2(v.extraSkin)(v1.extraSkin)
2458+ extraSkin: append2(v2.extraSkin)(v1.extraSkin)
@@ -2704,60 +2465,132 @@
2704 return function(dictSemigroup1) {
2465 return function(dictSemigroup1) {
2705 var append4 = append(dictSemigroup1);
2466 var append4 = append(dictSemigroup1);
2706 return {
2467 return {
2707− append: function(v) {
2468+ append: function(v2) {
2708 return function(v1) {
2469 return function(v1) {
2709− return new UI(append3(v.value0)(v1.value0), append4(v.value1)(v1.value1));
2470+ return new UI(append3(v2.value0)(v1.value0), append4(v2.value1)(v1.value1));
2715 var renderableSide = {
2476 var renderableSide = {
2716− render: function(v) {
2477+ render: function(v2) {
2717− if (v instanceof Top) {
2478+ if (v2 instanceof Top) {
2718 return "top";
2479 return "top";
2721− if (v instanceof Right2) {
2482+ if (v2 instanceof Right2) {
2722 return "right";
2483 return "right";
2725− if (v instanceof Bottom) {
2486+ if (v2 instanceof Bottom) {
2726 return "bottom";
2487 return "bottom";
2729− if (v instanceof Left2) {
2490+ if (v2 instanceof Left2) {
2730 return "left";
2491 return "left";
2733− throw new Error("Failed pattern match at Plum.View (line 263, column 12 - line 267, column 19): " + [v.constructor.name]);
2494+ throw new Error("Failed pattern match at Plum.View (line 383, column 12 - line 387, column 19): " + [v2.constructor.name]);
2735− renderKey: function(v) {
2496+ renderKey: function(v2) {
2736− if (v instanceof Top) {
2497+ if (v2 instanceof Top) {
2737 return "top";
2498 return "top";
2740− if (v instanceof Right2) {
2501+ if (v2 instanceof Right2) {
2741 return "right";
2502 return "right";
2744− if (v instanceof Bottom) {
2505+ if (v2 instanceof Bottom) {
2745 return "bottom";
2506 return "bottom";
2748− if (v instanceof Left2) {
2509+ if (v2 instanceof Left2) {
2749 return "left";
2510 return "left";
2752− throw new Error("Failed pattern match at Plum.View (line 268, column 15 - line 272, column 19): " + [v.constructor.name]);
2513+ throw new Error("Failed pattern match at Plum.View (line 388, column 15 - line 392, column 19): " + [v2.constructor.name]);
2516+ var renderableCorner = {
2517+ render: function(v2) {
2518+ if (v2 instanceof TopLeft) {
2522+ if (v2 instanceof TopRight) {
2523+ return "top-right";
2526+ if (v2 instanceof BottomRight) {
2527+ return "bottom-right";
2530+ if (v2 instanceof BottomLeft) {
2531+ return "bottom-left";
2534+ throw new Error("Failed pattern match at Plum.View (line 357, column 12 - line 361, column 32): " + [v2.constructor.name]);
2536+ renderKey: function(v2) {
2537+ if (v2 instanceof TopLeft) {
2541+ if (v2 instanceof TopRight) {
2542+ return "top-right";
2545+ if (v2 instanceof BottomRight) {
2546+ return "bottom-right";
2549+ if (v2 instanceof BottomLeft) {
2550+ return "bottom-left";
2553+ throw new Error("Failed pattern match at Plum.View (line 362, column 15 - line 366, column 32): " + [v2.constructor.name]);
2755 var renderableColor = {
2556 var renderableColor = {
2756− render: function(v) {
2557+ render: function(v2) {
2757− return "rgb(" + (show2(v.r) + ("," + (show2(v.g) + ("," + (show2(v.b) + ("," + (show2(v.a) + "%)")))))));
2558+ return "rgb(" + (show2(v2.r) + ("," + (show2(v2.g) + ("," + (show2(v2.b) + ("," + (show2(v2.a) + "%)")))))));
2759− renderKey: function(v) {
2560+ renderKey: function(v2) {
2760− return show2(v.r) + ("-" + (show2(v.g) + ("-" + (show2(v.b) + ("-" + show2(v.a))))));
2561+ return show2(v2.r) + ("-" + (show2(v2.g) + ("-" + (show2(v2.b) + ("-" + show2(v2.a))))));
2564+ var renderableBorderStyle = {
2565+ render: function(v2) {
2566+ if (v2 instanceof Solid) {
2570+ if (v2 instanceof Dashed) {
2574+ if (v2 instanceof Dotted) {
2578+ throw new Error("Failed pattern match at Plum.View (line 371, column 12 - line 374, column 23): " + [v2.constructor.name]);
2580+ renderKey: function(v2) {
2581+ if (v2 instanceof Solid) {
2585+ if (v2 instanceof Dashed) {
2589+ if (v2 instanceof Dotted) {
2593+ throw new Error("Failed pattern match at Plum.View (line 375, column 15 - line 378, column 23): " + [v2.constructor.name]);
2763 var monoidSkinGrowth = {
2596 var monoidSkinGrowth = {
@@ -2796,17 +2629,17 @@
2797 var functorGenericUI = {
2630 var functorGenericUI = {
2798 map: function(f) {
2631 map: function(f) {
2799− return function(v) {
2632+ return function(v2) {
2800− return new UI(v.value0, f(v.value1));
2633+ return new UI(v2.value0, f(v2.value1));
2804 var applyGenericUI = function(dictMonoid) {
2637 var applyGenericUI = function(dictMonoid) {
2805 var append3 = append(semigroupRecord3(semigroupRecordCons2(dictMonoid.Semigroup0())));
2638 var append3 = append(semigroupRecord3(semigroupRecordCons2(dictMonoid.Semigroup0())));
2806 return {
2639 return {
2807− apply: function(v) {
2640+ apply: function(v2) {
2808 return function(v1) {
2641 return function(v1) {
2809− return new UI(append3(v.value0)(v1.value0), v.value1(v1.value1));
2642+ return new UI(append3(v2.value0)(v1.value0), v2.value1(v1.value1));
2812 Functor0: function() {
2645 Functor0: function() {
@@ -2818,10 +2651,10 @@
2818 var append3 = append(semigroupRecord3(semigroupRecordCons2(dictMonoid.Semigroup0())));
2651 var append3 = append(semigroupRecord3(semigroupRecordCons2(dictMonoid.Semigroup0())));
2819 var applyGenericUI1 = applyGenericUI(dictMonoid);
2652 var applyGenericUI1 = applyGenericUI(dictMonoid);
2820 return {
2653 return {
2821− bind: function(v) {
2654+ bind: function(v2) {
2822 return function(f) {
2655 return function(f) {
2823− var v1 = f(v.value1);
2656+ var v1 = f(v2.value1);
2824− return new UI(append3(v.value0)(v1.value0), v1.value1);
2657+ return new UI(append3(v2.value0)(v1.value0), v1.value1);
2827 Apply0: function() {
2660 Apply0: function() {
@@ -2829,36 +2662,70 @@
2665+ var applicativeGenericUI = function(dictMonoid) {
2666+ var applyGenericUI1 = applyGenericUI(dictMonoid);
2668+ pure: UI.create(mempty(monoidRecord2(monoidRecordCons3(dictMonoid)()(monoidRecordCons4)))),
2669+ Apply0: function() {
2670+ return applyGenericUI1;
2832− var text = function(s) {
2674+ var text = function(s2) {
2833− return function(v) {
2675+ return function(v2) {
2834 return new UI({
2676 return new UI({
2835 nerves: mempty1.nerves,
2677 nerves: mempty1.nerves,
2836 meat: mempty1.meat,
2678 meat: mempty1.meat,
2837 hover: mempty1.hover,
2679 hover: mempty1.hover,
2838 down: mempty1.down,
2680 down: mempty1.down,
2839 children: [new Tuple({
2681 children: [new Tuple({
2840− meat: v.value0.meat,
2682+ meat: v2.value0.meat,
2841− nerves: v.value0.nerves,
2683+ nerves: v2.value0.nerves,
2842− hover: v.value0.hover,
2684+ hover: v2.value0.hover,
2843− down: v.value0.down
2685+ down: v2.value0.down
2844− }, new Text(s))]
2686+ }, new Text(s2))]
2845− }, v.value1);
2687+ }, v2.value1);
2848− var styleSkinGrowth = function(v) {
2690+ var styleSkinGrowth = function(v2) {
2849− return foldMap3(function(className) {
2691+ return foldMap4(function(className) {
2850 return function(v1) {
2692 return function(v1) {
2851 return "." + (className + ("{" + (v1.key + (":" + (v1.value + ";}")))));
2693 return "." + (className + ("{" + (v1.key + (":" + (v1.value + ";}")))));
2853− })(v.meat) + (foldMap3(function(className) {
2695+ })(v2.meat) + (foldMap4(function(className) {
2854 return function(v1) {
2696 return function(v1) {
2855 return "." + (className + ("{" + (v1.key + (":" + (v1.value + ";}")))));
2697 return "." + (className + ("{" + (v1.key + (":" + (v1.value + ";}")))));
2857− })(v.hover) + foldMap3(function(className) {
2699+ })(v2.hover) + foldMap4(function(className) {
2858 return function(v1) {
2700 return function(v1) {
2859 return "." + (className + ("{" + (v1.key + (":" + (v1.value + ";}")))));
2701 return "." + (className + ("{" + (v1.key + (":" + (v1.value + ";}")))));
2861− })(v.down));
2703+ })(v2.down));
2705+ var string = function(elem2) {
2706+ return function(classes) {
2707+ return function(string1) {
2709+ attrs: singleton2("class")(intercalate3(" ")(classes)),
2712+ })([])(asOneOf2(string1));
2716+ var stack = function(v2) {
2718+ nerves: mempty1.nerves,
2719+ meat: mempty1.meat,
2720+ hover: mempty1.hover,
2721+ down: mempty1.down,
2722+ children: [new Tuple({
2723+ meat: v2.value0.meat,
2724+ nerves: v2.value0.nerves,
2725+ hover: v2.value0.hover,
2726+ down: v2.value0.down
2727+ }, new Stack(v2.value0.children))]
2863 var sk = function(cName) {
2730 var sk = function(cName) {
2864 return function(key) {
2731 return function(key) {
@@ -2876,13 +2743,27 @@
2746+ var row = function(v2) {
2748+ nerves: mempty1.nerves,
2749+ meat: mempty1.meat,
2750+ hover: mempty1.hover,
2751+ down: mempty1.down,
2752+ children: [new Tuple({
2753+ meat: v2.value0.meat,
2754+ nerves: v2.value0.nerves,
2755+ hover: v2.value0.hover,
2756+ down: v2.value0.down
2757+ }, new Row(v2.value0.children))]
2879− var rgb = function(r) {
2760+ var rgb = function(r2) {
2880− return function(g) {
2761+ return function(g2) {
2881− return function(b) {
2762+ return function(b2) {
2882 return {
2763 return {
2883− r: round2(r * 255),
2764+ r: round2(r2 * 255),
2884− g: round2(g * 255),
2765+ g: round2(g2 * 255),
2885− b: round2(b * 255),
2766+ b: round2(b2 * 255),
@@ -2893,72 +2774,87 @@
2894 var renderKey1 = /* @__PURE__ */ renderKey(renderableColor);
2775 var renderKey1 = /* @__PURE__ */ renderKey(renderableColor);
2895 var renderKey2 = /* @__PURE__ */ renderKey(renderableSide);
2776 var renderKey2 = /* @__PURE__ */ renderKey(renderableSide);
2777+ var renderKey3 = /* @__PURE__ */ renderKey(renderableBorderStyle);
2778+ var renderKey4 = /* @__PURE__ */ renderKey(renderableCorner);
2896 var render = function(dict) {
2779 var render = function(dict) {
2897 return dict.render;
2780 return dict.render;
2899 var render1 = /* @__PURE__ */ render(renderableColor);
2782 var render1 = /* @__PURE__ */ render(renderableColor);
2900 var render2 = /* @__PURE__ */ render(renderableSide);
2783 var render2 = /* @__PURE__ */ render(renderableSide);
2784+ var render3 = /* @__PURE__ */ render(renderableBorderStyle);
2785+ var render4 = /* @__PURE__ */ render(renderableCorner);
2901 var renderableLength = {
2786 var renderableLength = {
2902− render: function(v) {
2787+ render: function(v2) {
2903− if (v instanceof Px) {
2788+ if (v2 instanceof Px) {
2904− return show2(v.value0) + "px";
2789+ return show2(v2.value0) + "px";
2907− if (v instanceof Fit) {
2792+ if (v2 instanceof Fit) {
2908 return "fit-content";
2793 return "fit-content";
2911− if (v instanceof Fill) {
2796+ if (v2 instanceof Fill) {
2912 return "100%";
2797 return "100%";
2915− if (v instanceof Max2) {
2800+ if (v2 instanceof Max2) {
2916− return "max(" + (show2(v.value0) + ("px," + (render(renderableLength)(v.value1) + ")")));
2801+ return "max(" + (show2(v2.value0) + ("px," + (render(renderableLength)(v2.value1) + ")")));
2919− if (v instanceof Min2) {
2804+ if (v2 instanceof Min2) {
2920− return "min(" + (show2(v.value0) + ("px," + (render(renderableLength)(v.value1) + ")")));
2805+ return "min(" + (show2(v2.value0) + ("px," + (render(renderableLength)(v2.value1) + ")")));
2923− throw new Error("Failed pattern match at Plum.View (line 362, column 12 - line 367, column 62): " + [v.constructor.name]);
2808+ throw new Error("Failed pattern match at Plum.View (line 494, column 12 - line 499, column 62): " + [v2.constructor.name]);
2925− renderKey: function(v) {
2810+ renderKey: function(v2) {
2926− if (v instanceof Px) {
2811+ if (v2 instanceof Px) {
2927− return show2(v.value0);
2812+ return show2(v2.value0);
2930− if (v instanceof Fit) {
2815+ if (v2 instanceof Fit) {
2931 return "fit-content";
2816 return "fit-content";
2934− if (v instanceof Fill) {
2819+ if (v2 instanceof Fill) {
2935 return "fill";
2820 return "fill";
2938− if (v instanceof Max2) {
2823+ if (v2 instanceof Max2) {
2939− return "max-" + (show2(v.value0) + ("-" + renderKey(renderableLength)(v.value1)));
2824+ return "max-" + (show2(v2.value0) + ("-" + renderKey(renderableLength)(v2.value1)));
2942− if (v instanceof Min2) {
2827+ if (v2 instanceof Min2) {
2943− return "min-" + (show2(v.value0) + ("-" + renderKey(renderableLength)(v.value1)));
2828+ return "min-" + (show2(v2.value0) + ("-" + renderKey(renderableLength)(v2.value1)));
2946− throw new Error("Failed pattern match at Plum.View (line 368, column 15 - line 373, column 56): " + [v.constructor.name]);
2831+ throw new Error("Failed pattern match at Plum.View (line 500, column 15 - line 505, column 56): " + [v2.constructor.name]);
2834+ var renderKey5 = /* @__PURE__ */ renderKey(renderableLength);
2835+ var render5 = /* @__PURE__ */ render(renderableLength);
2836+ var renderableShadow = {
2837+ render: function(v2) {
2838+ return show2(v2.offset.x) + ("px " + (show2(v2.offset.y) + ("px " + (show1(v2.blur) + ("px " + (show1(v2.size) + ("px " + render1(v2.color))))))));
2840+ renderKey: function(v2) {
2841+ return show2(v2.offset.x) + ("-" + (show2(v2.offset.y) + ("-" + (show1(v2.blur) + ("-" + (show1(v2.size) + ("-" + renderKey1(v2.color))))))));
2949− var renderKey3 = /* @__PURE__ */ renderKey(renderableLength);
2844+ var renderKey6 = /* @__PURE__ */ renderKey(renderableShadow);
2950− var render3 = /* @__PURE__ */ render(renderableLength);
2845+ var render6 = /* @__PURE__ */ render(renderableShadow);
2846+ var removeSpaces = /* @__PURE__ */ replaceAll(" ")("-");
2951 var skin = function(ctx) {
2847 var skin = function(ctx) {
2952− return function(v) {
2848+ return function(v2) {
2953− if (v instanceof Spacing) {
2849+ if (v2 instanceof Spacing) {
2954− return sk("spacing-" + (show2(v.value0) + ("-" + show2(v.value1))))("gap")(show2(v.value0) + ("px " + (show2(v.value1) + "px")));
2850+ return sk("spacing-" + (show2(v2.value0) + ("-" + show2(v2.value1))))("gap")(show2(v2.value0) + ("px " + (show2(v2.value1) + "px")));
2957− if (v instanceof Explain) {
2853+ if (v2 instanceof Explain) {
2958 return sk("explain")("border")("dashed magenta");
2854 return sk("explain")("border")("dashed magenta");
2961− if (v instanceof Align) {
2857+ if (v2 instanceof Align) {
2962 if (ctx instanceof Generic) {
2858 if (ctx instanceof Generic) {
2963 return mempty3;
2859 return mempty3;
@@ -2969,85 +2865,85 @@
2970 if (ctx instanceof Grid) {
2866 if (ctx instanceof Grid) {
2971 var v1 = function() {
2867 var v1 = function() {
2972− if (v.value1 instanceof Start) {
2868+ if (v2.value1 instanceof Start) {
2973 return "start";
2869 return "start";
2976− if (v.value1 instanceof Center) {
2872+ if (v2.value1 instanceof Center) {
2977 return "center";
2873 return "center";
2980− if (v.value1 instanceof End) {
2876+ if (v2.value1 instanceof End) {
2981 return "end";
2877 return "end";
2984− throw new Error("Failed pattern match at Plum.View (line 311, column 13 - line 314, column 27): " + [v.value1.constructor.name]);
2880+ throw new Error("Failed pattern match at Plum.View (line 431, column 13 - line 434, column 27): " + [v2.value1.constructor.name]);
2986 var k = function() {
2882 var k = function() {
2987− if (v.value0 instanceof X) {
2883+ if (v2.value0 instanceof X) {
2988 return "justify-items";
2884 return "justify-items";
2991− if (v.value0 instanceof Y) {
2887+ if (v2.value0 instanceof Y) {
2992 return "align-items";
2888 return "align-items";
2995− throw new Error("Failed pattern match at Plum.View (line 306, column 13 - line 308, column 33): " + [v.value0.constructor.name]);
2891+ throw new Error("Failed pattern match at Plum.View (line 426, column 13 - line 428, column 33): " + [v2.value0.constructor.name]);
2997 return sk("align-grid-" + (k + ("-" + v1)))(k)(v1);
2893 return sk("align-grid-" + (k + ("-" + v1)))(k)(v1);
3000 if (ctx instanceof Flexbox) {
2896 if (ctx instanceof Flexbox) {
3001 var v1 = function() {
2897 var v1 = function() {
3002− if (v.value1 instanceof Start) {
2898+ if (v2.value1 instanceof Start) {
3003 return "flex-start";
2899 return "flex-start";
3006− if (v.value1 instanceof Center) {
2902+ if (v2.value1 instanceof Center) {
3007 return "center";
2903 return "center";
3010− if (v.value1 instanceof End) {
2906+ if (v2.value1 instanceof End) {
3011 return "flex-end";
2907 return "flex-end";
3014− throw new Error("Failed pattern match at Plum.View (line 330, column 13 - line 333, column 32): " + [v.value1.constructor.name]);
2910+ throw new Error("Failed pattern match at Plum.View (line 450, column 13 - line 453, column 32): " + [v2.value1.constructor.name]);
3016 var k = function() {
2912 var k = function() {
3017− var v2 = new Tuple(ctx.value0, v.value0);
2913+ var v22 = new Tuple(ctx.value0, v2.value0);
3018− if (v2.value0 instanceof X && v2.value1 instanceof X) {
2914+ if (v22.value0 instanceof X && v22.value1 instanceof X) {
3019 return "justify-content";
2915 return "justify-content";
3022− if (v2.value0 instanceof X && v2.value1 instanceof Y) {
2918+ if (v22.value0 instanceof X && v22.value1 instanceof Y) {
3023 return "align-items";
2919 return "align-items";
3026− if (v2.value0 instanceof Y && v2.value1 instanceof X) {
2922+ if (v22.value0 instanceof Y && v22.value1 instanceof X) {
3027 return "align-items";
2923 return "align-items";
3030− if (v2.value0 instanceof Y && v2.value1 instanceof Y) {
2926+ if (v22.value0 instanceof Y && v22.value1 instanceof Y) {
3031 return "justify-content";
2927 return "justify-content";
3034− throw new Error("Failed pattern match at Plum.View (line 322, column 13 - line 326, column 42): " + [v2.constructor.name]);
2930+ throw new Error("Failed pattern match at Plum.View (line 442, column 13 - line 446, column 42): " + [v22.constructor.name]);
3036 return sk("align-flexbox-" + (k + ("-" + v1)))(k)(v1);
2932 return sk("align-flexbox-" + (k + ("-" + v1)))(k)(v1);
3039− throw new Error("Failed pattern match at Plum.View (line 300, column 26 - line 336, column 51): " + [ctx.constructor.name]);
2935+ throw new Error("Failed pattern match at Plum.View (line 420, column 26 - line 456, column 51): " + [ctx.constructor.name]);
3042− if (v instanceof Width) {
2938+ if (v2 instanceof Width) {
3043− return sk("width-" + renderKey3(v.value0))("width")(render3(v.value0));
2939+ return sk("width-" + renderKey5(v2.value0))("width")(render5(v2.value0));
3046− if (v instanceof Height) {
2942+ if (v2 instanceof Height) {
3047− return sk("height-" + renderKey3(v.value0))("height")(render3(v.value0));
2943+ return sk("height-" + renderKey5(v2.value0))("height")(render5(v2.value0));
3050− if (v instanceof Wrapped) {
2946+ if (v2 instanceof Wrapped) {
3051 if (ctx instanceof Flexbox) {
2947 if (ctx instanceof Flexbox) {
3052 return sk("wrapped")("flex-wrap")("wrap");
2948 return sk("wrapped")("flex-wrap")("wrap");
@@ -3055,15 +2951,15 @@
3055 return pure2([]);
2951 return pure2([]);
3058− if (v instanceof BackgroundColor) {
2954+ if (v2 instanceof BackgroundColor) {
3059− return sk("bg-color-" + renderKey1(v.value0))("background-color")(render1(v.value0));
2955+ return sk("bg-color-" + renderKey1(v2.value0))("background-color")(render1(v2.value0));
3062− if (v instanceof Padding) {
2958+ if (v2 instanceof Padding) {
3063− return sk("padding-" + (renderKey2(v.value0) + ("-" + show2(v.value1))))("padding-" + render2(v.value0))(show2(v.value1) + "px");
2959+ return sk("padding-" + (renderKey2(v2.value0) + ("-" + show2(v2.value1))))("padding-" + render2(v2.value0))(show2(v2.value1) + "px");
3066− if (v instanceof Spread) {
2962+ if (v2 instanceof Spread) {
3067 if (ctx instanceof Flexbox) {
2963 if (ctx instanceof Flexbox) {
3068 return sk("spread")("justify-content")("space-between");
2964 return sk("spread")("justify-content")("space-between");
@@ -3071,54 +2967,66 @@
3071 return pure2([]);
2967 return pure2([]);
3074− if (v instanceof Opacity) {
2970+ if (v2 instanceof Opacity) {
3075− return sk("opacity-" + show1(v.value0))("opacity")(show1(v.value0));
2971+ return sk("opacity-" + show1(v2.value0))("opacity")(show1(v2.value0));
3078− if (v instanceof Pointer) {
2974+ if (v2 instanceof Pointer) {
3079 return sk("pointer")("cursor")("pointer");
2975 return sk("pointer")("cursor")("pointer");
3082− if (v instanceof Move) {
2978+ if (v2 instanceof Move) {
3083− return sk("move-" + (show2(v.value0.x) + ("-" + show2(v.value0.y))))("transform")("translate(" + (show2(v.value0.x) + ("px, " + (show2(v.value0.y) + "px)"))));
2979+ return sk("move-" + (show2(v2.value0.x) + ("-" + show2(v2.value0.y))))("transform")("translate(" + (show2(v2.value0.x) + ("px, " + (show2(v2.value0.y) + "px)"))));
3086− if (v instanceof Clip && v.value0 instanceof X) {
2982+ if (v2 instanceof Clip && v2.value0 instanceof X) {
3087 return sk("clip-x")("overflow-x")("hidden");
2983 return sk("clip-x")("overflow-x")("hidden");
3090− if (v instanceof Clip && v.value0 instanceof Y) {
2986+ if (v2 instanceof Clip && v2.value0 instanceof Y) {
3091 return sk("clip-y")("overflow-y")("hidden");
2987 return sk("clip-y")("overflow-y")("hidden");
2990+ if (v2 instanceof BorderWidth) {
2991+ return sk("border-width-" + (renderKey2(v2.value0) + ("-" + show2(v2.value1))))("border-" + (render2(v2.value0) + "-width"))(show2(v2.value1) + "px");
2994+ if (v2 instanceof BorderStyle) {
2995+ return sk("border-style-" + renderKey3(v2.value0))("border-style")(render3(v2.value0));
2998+ if (v2 instanceof Round) {
2999+ return sk("round-" + (renderKey4(v2.value0) + ("-" + show2(v2.value1))))("border-" + (render4(v2.value0) + "-radius"))(show2(v2.value1) + "px");
3002+ if (v2 instanceof Shadow) {
3003+ return sk("shadow-" + renderKey6(v2.value0))("box-shadow")(render6(v2.value0));
3006+ if (v2 instanceof InnerShadow) {
3007+ return sk("inner-shadow-" + renderKey6(v2.value0))("box-shadow")(render6(v2.value0) + " inset");
3010+ if (v2 instanceof FontColor) {
3011+ return sk("font-color-" + renderKey1(v2.value0))("color")(render1(v2.value0));
3014+ if (v2 instanceof FontSize) {
3015+ return sk("font-size-" + show2(v2.value0))("font-size")(show2(v2.value0) + "px");
3018+ if (v2 instanceof Font) {
3019+ return sk("font-" + removeSpaces(v2.value0))("font-family")(v2.value0);
3022+ if (v2 instanceof FontWeight) {
3023+ return sk("font-weight-" + show2(v2.value0))("font-weight")(show2(v2.value0));
3094− throw new Error("Failed pattern match at Plum.View (line 297, column 12 - line 355, column 46): " + [v.constructor.name]);
3026+ throw new Error("Failed pattern match at Plum.View (line 417, column 12 - line 484, column 71): " + [v2.constructor.name]);
3097− var onMouseDown = function(dictMonoid) {
3098− var mempty52 = mempty(monoidRecord2(monoidRecordCons3(dictMonoid)()(monoidRecordCons4)));
3099− return function(v) {
3101− nerves: mempty52.nerves,
3102− meat: mempty52.meat,
3103− hover: mempty52.hover,
3104− children: mempty52.children,
3105− down: v.value0.meat
3109− var onHover = function(dictMonoid) {
3110− var mempty52 = mempty(monoidRecord2(monoidRecordCons3(dictMonoid)()(monoidRecordCons4)));
3111− return function(v) {
3113− nerves: mempty52.nerves,
3114− meat: mempty52.meat,
3115− down: mempty52.down,
3116− children: mempty52.children,
3117− hover: v.value0.meat
3121− var m = function(dictMonoid) {
3029+ var m2 = function(dictMonoid) {
3122 var mempty52 = mempty(monoidRecord2(monoidRecordCons3(dictMonoid)()(monoidRecordCons4)));
3030 var mempty52 = mempty(monoidRecord2(monoidRecordCons3(dictMonoid)()(monoidRecordCons4)));
3123 return function(meat) {
3031 return function(meat) {
3124 return new UI({
3032 return new UI({
@@ -3130,36 +3038,55 @@
3130 }, mempty22);
3038 }, mempty22);
3041+ var width = function(dictMonoid) {
3042+ var m1 = m2(dictMonoid);
3043+ return function(l2) {
3044+ return m1(new Width(l2));
3047+ var height = function(dictMonoid) {
3048+ var m1 = m2(dictMonoid);
3049+ return function(l2) {
3050+ return m1(new Height(l2));
3133− var hWith = function(elem2) {
3053+ var hWith = function() {
3134− return function(props) {
3054+ return function(elem2) {
3135− return function(classes) {
3055+ return function(props) {
3136− return function(children) {
3056+ return function(classes) {
3057+ return function(children) {
3137− return h2(elem2)(unsafeUnion(props)({
3058+ return h2(elem2)({
3138− "class": intercalate3(" ")(classes)
3059+ attrs: union(fromHomogeneous2(props))(singleton2("class")(intercalate3(" ")(classes))),
3139− }))(children);
3062+ })(children)(asOneOf2($$undefined));
3068+ var hWith1 = /* @__PURE__ */ hWith();
3144 var h3 = function(elem2) {
3069 var h3 = function(elem2) {
3145 return function(classes) {
3070 return function(classes) {
3146 return function(children) {
3071 return function(children) {
3147 return h2(elem2)({
3072 return h2(elem2)({
3148− "class": intercalate3(" ")(classes)
3073+ attrs: singleton2("class")(intercalate3(" ")(classes)),
3149− })(children);
3076+ })(children)(asOneOf2($$undefined));
3153 var growSkin = function(fire) {
3080 var growSkin = function(fire) {
3154− return function(v) {
3081+ return function(v2) {
3155 return function(v1) {
3082 return function(v1) {
3156 var widthFill = [new Width(Fill.value), new Height(Fill.value)];
3083 var widthFill = [new Width(Fill.value), new Height(Fill.value)];
3157 var alignCenter = [new Align(X.value, Center.value), new Align(Y.value, Center.value)];
3084 var alignCenter = [new Align(X.value, Center.value), new Align(Y.value, Center.value)];
3158 var skn = function(ctx) {
3085 var skn = function(ctx) {
3159− return bind2(map2(function($513) {
3086+ return bind2(map2(function($574) {
3160− return function(v2) {
3087+ return function(v22) {
3161− return append2(v2)(v.extraSkin);
3088+ return append2(v22)(v2.extraSkin);
3162− }(concat($513));
3089+ }(concat($574));
3163 })(traverse2(skin(ctx))(append2(v1.value0.meat)(append2(function() {
3090 })(traverse2(skin(ctx))(append2(v1.value0.meat)(append2(function() {
3164 if (ctx instanceof Span) {
3091 if (ctx instanceof Span) {
3165 return mempty2;
3092 return mempty2;
@@ -3177,7 +3104,7 @@
3177 return widthFill;
3104 return widthFill;
3180− throw new Error("Failed pattern match at Plum.View (line 445, column 16 - line 449, column 35): " + [ctx.constructor.name]);
3107+ throw new Error("Failed pattern match at Plum.View (line 577, column 16 - line 581, column 35): " + [ctx.constructor.name]);
3181 }())(function() {
3108 }())(function() {
3182 if (ctx instanceof Grid) {
3109 if (ctx instanceof Grid) {
3183 return alignCenter;
3110 return alignCenter;
@@ -3195,9 +3122,9 @@
3195 return alignCenter;
3122 return alignCenter;
3198− throw new Error("Failed pattern match at Plum.View (line 450, column 16 - line 454, column 37): " + [ctx.constructor.name]);
3125+ throw new Error("Failed pattern match at Plum.View (line 582, column 16 - line 586, column 37): " + [ctx.constructor.name]);
3199 }())))))(function(meatClasses) {
3126 }())))))(function(meatClasses) {
3200− var v2 = runWriter(traverse2(skin(ctx))(v1.value0.hover));
3127+ var v22 = runWriter(traverse2(skin(ctx))(v1.value0.hover));
3201 return bind2(traverseWithIndex2(function(key) {
3128 return bind2(traverseWithIndex2(function(key) {
3202 return function(val) {
3129 return function(val) {
3203 return tell2({
3130 return tell2({
@@ -3206,7 +3133,7 @@
3206 down: empty2
3133 down: empty2
3209− })(v2.value1.meat))(function() {
3136+ })(v22.value1.meat))(function() {
3210 var v3 = runWriter(traverse2(skin(ctx))(v1.value0.down));
3137 var v3 = runWriter(traverse2(skin(ctx))(v1.value0.down));
3211 return bind2(traverseWithIndex2(function(key) {
3138 return bind2(traverseWithIndex2(function(key) {
3212 return function(val) {
3139 return function(val) {
@@ -3219,7 +3146,7 @@
3219 })(v3.value1.meat))(function() {
3146 })(v3.value1.meat))(function() {
3220 return pure2(append2(meatClasses)(append2(map1(function(v4) {
3147 return pure2(append2(meatClasses)(append2(map1(function(v4) {
3221 return v4 + "-hover";
3148 return v4 + "-hover";
3222− })(concat(v2.value0)))(map1(function(v4) {
3149+ })(concat(v22.value0)))(map1(function(v4) {
3223 return v4 + "-down";
3150 return v4 + "-down";
3224 })(concat(v3.value0)))));
3151 })(concat(v3.value0)))));
@@ -3228,7 +3155,7 @@
3229 if (v1.value1 instanceof Text) {
3156 if (v1.value1 instanceof Text) {
3230 return map2(function(c) {
3157 return map2(function(c) {
3231− return h3("span")(c)([string(v1.value1.value0)]);
3158+ return string("span")(c)(v1.value1.value0);
3232 })(skn(Span.value));
3159 })(skn(Span.value));
@@ -3271,7 +3198,7 @@
3271 if (v1.value1 instanceof Link) {
3198 if (v1.value1 instanceof Link) {
3272 return bind2(append22(skn(new Flexbox(X.value)))(append22(sk("display-flex")("display")("flex"))(sk("flex-direction-row")("flex-direction")("row"))))(function(classes) {
3199 return bind2(append22(skn(new Flexbox(X.value)))(append22(sk("display-flex")("display")("flex"))(sk("flex-direction-row")("flex-direction")("row"))))(function(classes) {
3273 return bind2(growSkin(fire)(mempty4)(v1.value1.value2))(function(child$prime) {
3200 return bind2(growSkin(fire)(mempty4)(v1.value1.value2))(function(child$prime) {
3274− return pure2(hWith("a")({
3201+ return pure2(hWith1("a")({
3275 href: v1.value1.value0,
3202 href: v1.value1.value0,
3276 rel: "noopener noreferrer",
3203 rel: "noopener noreferrer",
3277 target: function() {
3204 target: function() {
@@ -3289,7 +3216,7 @@
3289 if (v1.value1 instanceof Download) {
3216 if (v1.value1 instanceof Download) {
3290 return bind2(append22(skn(new Flexbox(X.value)))(append22(sk("display-flex")("display")("flex"))(sk("flex-direction-row")("flex-direction")("row"))))(function(classes) {
3217 return bind2(append22(skn(new Flexbox(X.value)))(append22(sk("display-flex")("display")("flex"))(sk("flex-direction-row")("flex-direction")("row"))))(function(classes) {
3291 return bind2(growSkin(fire)(mempty4)(v1.value1.value2))(function(child$prime) {
3218 return bind2(growSkin(fire)(mempty4)(v1.value1.value2))(function(child$prime) {
3292− return pure2(hWith("a")({
3219+ return pure2(hWith1("a")({
3293 href: v1.value1.value0,
3220 href: v1.value1.value0,
3294 download: fromMaybe("")(v1.value1.value1.filename)
3221 download: fromMaybe("")(v1.value1.value1.filename)
3295 })(classes)([child$prime]));
3222 })(classes)([child$prime]));
@@ -3299,7 +3226,7 @@
3300 if (v1.value1 instanceof Image2) {
3227 if (v1.value1 instanceof Image2) {
3301 return map2(function(c) {
3228 return map2(function(c) {
3302− return hWith("img")({
3229+ return hWith1("img")({
3303 src: v1.value1.value0,
3230 src: v1.value1.value0,
3304 alt: v1.value1.value1.description
3231 alt: v1.value1.value1.description
3305 })(c)([]);
3232 })(c)([]);
@@ -3310,39 +3237,65 @@
3310 return pure2(h3("div")(mempty2)([]));
3237 return pure2(h3("div")(mempty2)([]));
3313− throw new Error("Failed pattern match at Plum.View (line 477, column 3 - line 518, column 37): " + [v1.value1.constructor.name]);
3240+ throw new Error("Failed pattern match at Plum.View (line 609, column 3 - line 650, column 37): " + [v1.value1.constructor.name]);
3317 var grow = function(fire) {
3244 var grow = function(fire) {
3318− return function(v) {
3245+ return function(v2) {
3319− var v1 = runWriter(growSkin(fire)(mempty4)(v));
3246+ var v1 = runWriter(growSkin(fire)(mempty4)(v2));
3320 return {
3247 return {
3321 node: v1.value0,
3248 node: v1.value0,
3322 style: styleSkinGrowth(v1.value1)
3249 style: styleSkinGrowth(v1.value1)
3253+ var fontWeight = function(dictMonoid) {
3254+ var m1 = m2(dictMonoid);
3255+ return function(f) {
3256+ return m1(new FontWeight(f));
3259+ var fontSize = function(dictMonoid) {
3260+ var m1 = m2(dictMonoid);
3261+ return function(f) {
3262+ return m1(new FontSize(f));
3265+ var font = function(dictMonoid) {
3266+ var m1 = m2(dictMonoid);
3267+ return function(f) {
3268+ return m1(new Font(f));
3326− var column = function(v) {
3271+ var column = function(v2) {
3327 return new UI({
3272 return new UI({
3328 nerves: mempty1.nerves,
3273 nerves: mempty1.nerves,
3329 meat: mempty1.meat,
3274 meat: mempty1.meat,
3330 hover: mempty1.hover,
3275 hover: mempty1.hover,
3331 down: mempty1.down,
3276 down: mempty1.down,
3332 children: [new Tuple({
3277 children: [new Tuple({
3333− meat: v.value0.meat,
3278+ meat: v2.value0.meat,
3334− nerves: v.value0.nerves,
3279+ nerves: v2.value0.nerves,
3335− hover: v.value0.hover,
3280+ hover: v2.value0.hover,
3336− down: v.value0.down
3281+ down: v2.value0.down
3337− }, new Column(v.value0.children))]
3282+ }, new Column(v2.value0.children))]
3338− }, v.value1);
3283+ }, unit);
3340 var bgColor = function(dictMonoid) {
3285 var bgColor = function(dictMonoid) {
3341− var m1 = m(dictMonoid);
3286+ var m1 = m2(dictMonoid);
3342 return function(c) {
3287 return function(c) {
3343 return m1(new BackgroundColor(c));
3288 return m1(new BackgroundColor(c));
3291+ var align = function(dictMonoid) {
3292+ var m1 = m2(dictMonoid);
3293+ return function(dir2) {
3294+ return function(al) {
3295+ return m1(new Align(dir2, al));
3347 // output/Web.DOM.NonElementParentNode/foreign.js
3300 // output/Web.DOM.NonElementParentNode/foreign.js
3348 function _getElementById(id) {
3301 function _getElementById(id) {
@@ -3354,13 +3307,13 @@
3356 // output/Data.Nullable/foreign.js
3309 // output/Data.Nullable/foreign.js
3357− function nullable(a, r, f) {
3310+ function nullable(a2, r2, f) {
3358− return a == null ? r : f(a);
3311+ return a2 == null ? r2 : f(a2);
3361 // output/Data.Nullable/index.js
3314 // output/Data.Nullable/index.js
3362− var toMaybe = function(n) {
3315+ var toMaybe = function(n2) {
3363− return nullable(n, Nothing.value, Just.create);
3316+ return nullable(n2, Nothing.value, Just.create);
3366 // output/Web.DOM.NonElementParentNode/index.js
3319 // output/Web.DOM.NonElementParentNode/index.js
@@ -3390,80 +3343,135 @@
3391 // output/Plum/index.js
3344 // output/Plum/index.js
3392 var bind3 = /* @__PURE__ */ bind(bindEffect);
3345 var bind3 = /* @__PURE__ */ bind(bindEffect);
3346+ var pure3 = /* @__PURE__ */ pure(applicativeEffect);
3347+ var asOneOf3 = /* @__PURE__ */ asOneOf();
3393 var outerStyle = "html,body{height:100%;padding:0;margin:0;}";
3348 var outerStyle = "html,body{height:100%;padding:0;margin:0;}";
3394 var run3 = function(id) {
3349 var run3 = function(id) {
3395 return function(plum2) {
3350 return function(plum2) {
3396 return function __do() {
3351 return function __do() {
3397− var modelRef = bind3(plum2.init)($$new)();
3352+ var initModel = plum2.init();
3353+ var modelRef = $$new(initModel)();
3398− var v = bind3(bind3(windowImpl)(document2))(function() {
3354+ var v2 = bind3(bind3(windowImpl)(document2))(function() {
3399− var $21 = getElementById(id);
3355+ var $23 = getElementById(id);
3400− return function($22) {
3356+ return function($24) {
3401− return $21(toNonElementParentNode($22));
3357+ return $23(toNonElementParentNode($24));
3404− if (v instanceof Just) {
3360+ if (v2 instanceof Just) {
3405− var projector = createProjector();
3361+ var patch = init();
3406− return replace(projector)(v.value0)(function __do2() {
3362+ var view = function(model) {
3407− var model = read(modelRef)();
3408 var v1 = plum2.view(model);
3363 var v1 = plum2.view(model);
3409− var v2 = head(v1.value0.children);
3364+ var v22 = uncons(v1.value0.children);
3410− if (v2 instanceof Nothing) {
3411− return h2("div")({})([]);
3414− if (v2 instanceof Just) {
3365+ if (v22 instanceof Just) {
3415 var v3 = grow(function(msg) {
3366 var v3 = grow(function(msg) {
3416− return function __do3() {
3367+ return function __do2() {
3417− var m2 = read(modelRef)();
3368+ var m3 = read(modelRef)();
3418− var m_ = plum2.update(msg)(m2)();
3369+ var m_ = plum2.update(msg)(m3)();
3419 write(m_)(modelRef)();
3370 write(m_)(modelRef)();
3420− return scheduleRender(projector)();
3371+ var node2 = view(m_)();
3372+ patch(v2.value0)(node2)();
3422− })(v2.value0);
3375+ })(v22.value0.head);
3423− return h2("div")({
3376+ return pure3(h2("div")({
3424− styles: {
3377+ attrs: empty2,
3425− height: "100%",
3378+ on: empty2,
3426− width: "100%"
3379+ style: empty2
3427− }
3380+ })([h2("style")({
3428− })([h2("style")({})([string(outerStyle + v3.style)]), v3.node]);
3384+ })([])(asOneOf3(outerStyle + v3.style)), v3.node])(asOneOf3($$undefined)));
3387+ if (v22 instanceof Nothing) {
3388+ return pure3(h2("div")({
3392+ })([])(asOneOf3($$undefined)));
3431− throw new Error("Failed pattern match at Plum (line 35, column 20 - line 52, column 94): " + [v2.constructor.name]);
3395+ throw new Error("Failed pattern match at Plum (line 38, column 11 - line 74, column 36): " + [v22.constructor.name]);
3397+ var node = view(initModel)();
3398+ patch(v2.value0)(node)();
3435− if (v instanceof Nothing) {
3402+ if (v2 instanceof Nothing) {
3436 return unit;
3403 return unit;
3439− throw new Error("Failed pattern match at Plum (line 26, column 92 - line 54, column 25): " + [v.constructor.name]);
3406+ throw new Error("Failed pattern match at Plum (line 32, column 92 - line 79, column 25): " + [v2.constructor.name]);
3444 // output/Main/index.js
3411 // output/Main/index.js
3445− var pure3 = /* @__PURE__ */ pure(applicativeEffect);
3412+ var pure4 = /* @__PURE__ */ pure(applicativeEffect);
3446 var discard3 = /* @__PURE__ */ discard(discardUnit);
3413 var discard3 = /* @__PURE__ */ discard(discardUnit);
3447 var discard1 = /* @__PURE__ */ discard3(/* @__PURE__ */ bindGenericUI(monoidArray));
3414 var discard1 = /* @__PURE__ */ discard3(/* @__PURE__ */ bindGenericUI(monoidArray));
3415+ var align2 = /* @__PURE__ */ align(monoidArray);
3416+ var height9 = /* @__PURE__ */ height(monoidArray);
3417+ var bgColor2 = /* @__PURE__ */ bgColor(monoidArray);
3418+ var mempty5 = /* @__PURE__ */ mempty(/* @__PURE__ */ monoidGenericUI(monoidArray)(monoidUnit));
3419+ var pure1 = /* @__PURE__ */ pure(/* @__PURE__ */ applicativeGenericUI(monoidArray));
3420+ var font2 = /* @__PURE__ */ font(monoidArray);
3421+ var width9 = /* @__PURE__ */ width(monoidArray);
3448 var discard22 = /* @__PURE__ */ discard3(/* @__PURE__ */ bindGenericUI(monoidUnit));
3422 var discard22 = /* @__PURE__ */ discard3(/* @__PURE__ */ bindGenericUI(monoidUnit));
3449− var onHover2 = /* @__PURE__ */ onHover(monoidUnit);
3450− var bgColor2 = /* @__PURE__ */ bgColor(monoidUnit);
3451− var onMouseDown2 = /* @__PURE__ */ onMouseDown(monoidUnit);
3423+ var fontSize2 = /* @__PURE__ */ fontSize(monoidUnit);
3452− var mempty5 = /* @__PURE__ */ mempty(/* @__PURE__ */ monoidGenericUI(monoidUnit)(monoidUnit));
3424+ var fontWeight2 = /* @__PURE__ */ fontWeight(monoidUnit);
3453 var plum = {
3425 var plum = {
3454− init: /* @__PURE__ */ pure3({
3426+ init: /* @__PURE__ */ pure4({
3455 text: "Test"
3427 text: "Test"
3457 view: function(model) {
3429 view: function(model) {
3458− return column(discard1(text("hi")(discard22(onHover2(bgColor2(rgb(1)(0)(0))))(function() {
3430+ return stack(discard1(align2(Y.value)(End.value))(function() {
3431+ return discard1(height9(Fit.value))(function() {
3432+ return discard1(row(discard1(align2(Y.value)(End.value))(function() {
3459− return onMouseDown2(bgColor2(rgb(0)(1)(0)));
3433+ return discard1(column(discard1(bgColor2(rgb(0)(0)(0)))(function() {
3434+ return height9(new Px(10));
3460− })))(function() {
3435+ })))(function() {
3461− return text("hello")(mempty5);
3436+ return discard1(column(mempty5))(function() {
3437+ return pure1(unit);
3441+ return discard1(column(discard1(font2("sans-serif"))(function() {
3442+ return discard1(column(discard1(height9(new Px(100)))(function() {
3443+ return width9(Fit.value);
3445+ return discard1(align2(Y.value)(Start.value))(function() {
3446+ return discard1(width9(Fill.value))(function() {
3447+ return column(discard1(width9(Fill.value))(function() {
3448+ return discard1(width9(Fit.value))(function() {
3449+ return discard1(height9(Fit.value))(function() {
3450+ return discard1(text("PureStack")(discard22(fontSize2(72))(function() {
3451+ return fontWeight2(1e3);
3453+ return column(discard1(bgColor2(rgb(0)(0)(0)))(function() {
3454+ return discard1(height9(new Px(10)))(function() {
3455+ return width9(Fill.value);
3466+ return column(width9(Fill.value));
3464 update: function(msg) {
3472 update: function(msg) {
3465 return function(model) {
3473 return function(model) {
3466− return pure3({
3474+ return pure4({
3467 text: "Button pressed"
3475 text: "Button pressed"