@@ -0,0 +1,2976 @@
2+ // output/Control.Semigroupoid/index.js
3+ var semigroupoidFn = {
4+ compose: function(f) {
13+ // output/Control.Category/index.js
14+ var identity = function(dict) {
15+ return dict.identity;
18+ identity: function(x) {
21+ Semigroupoid0: function() {
22+ return semigroupoidFn;
26+ // output/Data.Function/index.js
27+ var flip = function(f) {
34+ var applyFlipped = function(x) {
40+ // output/Data.Functor/foreign.js
41+ var arrayMap = function(f) {
42+ return function(arr) {
44+ var result = new Array(l);
45+ for (var i = 0; i < l; i++) {
46+ result[i] = f(arr[i]);
52+ // output/Data.Unit/foreign.js
55+ // output/Type.Proxy/index.js
56+ var $$Proxy = /* @__PURE__ */ function() {
57+ function $$Proxy2() {
60+ $$Proxy2.value = new $$Proxy2();
64+ // output/Data.Functor/index.js
65+ var map = function(dict) {
72+ // output/Control.Apply/index.js
73+ var apply = function(dict) {
76+ var lift2 = function(dictApply) {
77+ var apply1 = apply(dictApply);
78+ var map4 = map(dictApply.Functor0());
82+ return apply1(map4(f)(a))(b);
88+ // output/Control.Applicative/index.js
89+ var pure = function(dict) {
92+ var liftA1 = function(dictApplicative) {
93+ var apply2 = apply(dictApplicative.Apply0());
94+ var pure1 = pure(dictApplicative);
97+ return apply2(pure1(f))(a);
102+ // output/Control.Bind/foreign.js
103+ var arrayBind = typeof Array.prototype.flatMap === "function" ? function(arr) {
104+ return function(f) {
105+ return arr.flatMap(f);
108+ return function(f) {
111+ for (var i = 0; i < l; i++) {
114+ for (var j = 0; j < k; j++) {
122+ // output/Control.Bind/index.js
123+ var discard = function(dict) {
124+ return dict.discard;
126+ var bind = function(dict) {
129+ var bindFlipped = function(dictBind) {
130+ return flip(bind(dictBind));
133+ discard: function(dictBind) {
134+ return bind(dictBind);
138+ // output/Data.Symbol/index.js
139+ var reflectSymbol = function(dict) {
140+ return dict.reflectSymbol;
143+ // output/Record.Unsafe/foreign.js
144+ var unsafeGet = function(label4) {
145+ return function(rec) {
149+ var unsafeSet = function(label4) {
150+ return function(value12) {
151+ return function(rec) {
153+ for (var key in rec) {
154+ if ({}.hasOwnProperty.call(rec, key)) {
155+ copy[key] = rec[key];
158+ copy[label4] = value12;
164+ // output/Data.Semigroup/foreign.js
165+ var concatString = function(s1) {
166+ return function(s2) {
170+ var concatArray = function(xs) {
171+ return function(ys) {
172+ if (xs.length === 0) return ys;
173+ if (ys.length === 0) return xs;
174+ return xs.concat(ys);
178+ // output/Data.Semigroup/index.js
179+ var semigroupUnit = {
180+ append: function(v) {
181+ return function(v1) {
186+ var semigroupString = {
187+ append: concatString
189+ var semigroupRecordNil = {
190+ appendRecord: function(v) {
191+ return function(v1) {
192+ return function(v2) {
198+ var semigroupArray = {
201+ var appendRecord = function(dict) {
202+ return dict.appendRecord;
204+ var semigroupRecord = function() {
205+ return function(dictSemigroupRecord) {
207+ append: appendRecord(dictSemigroupRecord)($$Proxy.value)
211+ var append = function(dict) {
214+ var semigroupRecordCons = function(dictIsSymbol) {
215+ var reflectSymbol2 = reflectSymbol(dictIsSymbol);
217+ return function(dictSemigroupRecord) {
218+ var appendRecord1 = appendRecord(dictSemigroupRecord);
219+ return function(dictSemigroup) {
220+ var append1 = append(dictSemigroup);
222+ appendRecord: function(v) {
223+ return function(ra) {
224+ return function(rb) {
225+ var tail = appendRecord1($$Proxy.value)(ra)(rb);
226+ var key = reflectSymbol2($$Proxy.value);
227+ var insert = unsafeSet(key);
228+ var get = unsafeGet(key);
229+ return insert(append1(get(ra))(get(rb)))(tail);
239+ // output/Data.Monoid/index.js
240+ var semigroupRecord2 = /* @__PURE__ */ semigroupRecord();
243+ Semigroup0: function() {
244+ return semigroupUnit;
247+ var monoidString = {
249+ Semigroup0: function() {
250+ return semigroupString;
253+ var monoidRecordNil = {
254+ memptyRecord: function(v) {
257+ SemigroupRecord0: function() {
258+ return semigroupRecordNil;
263+ Semigroup0: function() {
264+ return semigroupArray;
267+ var memptyRecord = function(dict) {
268+ return dict.memptyRecord;
270+ var monoidRecord = function() {
271+ return function(dictMonoidRecord) {
272+ var semigroupRecord1 = semigroupRecord2(dictMonoidRecord.SemigroupRecord0());
274+ mempty: memptyRecord(dictMonoidRecord)($$Proxy.value),
275+ Semigroup0: function() {
276+ return semigroupRecord1;
281+ var mempty = function(dict) {
284+ var monoidRecordCons = function(dictIsSymbol) {
285+ var reflectSymbol2 = reflectSymbol(dictIsSymbol);
286+ var semigroupRecordCons3 = semigroupRecordCons(dictIsSymbol)();
287+ return function(dictMonoid) {
288+ var mempty12 = mempty(dictMonoid);
289+ var Semigroup0 = dictMonoid.Semigroup0();
291+ return function(dictMonoidRecord) {
292+ var memptyRecord1 = memptyRecord(dictMonoidRecord);
293+ var semigroupRecordCons1 = semigroupRecordCons3(dictMonoidRecord.SemigroupRecord0())(Semigroup0);
295+ memptyRecord: function(v) {
296+ var tail = memptyRecord1($$Proxy.value);
297+ var key = reflectSymbol2($$Proxy.value);
298+ var insert = unsafeSet(key);
299+ return insert(mempty12)(tail);
301+ SemigroupRecord0: function() {
302+ return semigroupRecordCons1;
310+ // output/Effect/foreign.js
311+ var pureE = function(a) {
316+ var bindE = function(a) {
317+ return function(f) {
324+ // output/Control.Monad/index.js
325+ var ap = function(dictMonad) {
326+ var bind4 = bind(dictMonad.Bind1());
327+ var pure4 = pure(dictMonad.Applicative0());
328+ return function(f) {
329+ return function(a) {
330+ return bind4(f)(function(f$prime) {
331+ return bind4(a)(function(a$prime) {
332+ return pure4(f$prime(a$prime));
339+ // output/Effect/index.js
340+ var $runtime_lazy = function(name15, moduleName, init) {
343+ return function(lineNumber) {
344+ if (state3 === 2) return val;
345+ if (state3 === 1) throw new ReferenceError(name15 + " was needed before it finished initializing (module " + moduleName + ", line " + lineNumber + ")", moduleName, lineNumber);
353+ Applicative0: function() {
354+ return applicativeEffect;
362+ Apply0: function() {
363+ return $lazy_applyEffect(0);
366+ var applicativeEffect = {
368+ Apply0: function() {
369+ return $lazy_applyEffect(0);
372+ var $lazy_functorEffect = /* @__PURE__ */ $runtime_lazy("functorEffect", "Effect", function() {
374+ map: liftA1(applicativeEffect)
377+ var $lazy_applyEffect = /* @__PURE__ */ $runtime_lazy("applyEffect", "Effect", function() {
379+ apply: ap(monadEffect),
380+ Functor0: function() {
381+ return $lazy_functorEffect(0);
385+ var functorEffect = /* @__PURE__ */ $lazy_functorEffect(20);
387+ // output/Data.Array/foreign.js
388+ var replicateFill = function(count, value12) {
392+ var result = new Array(count);
393+ return result.fill(value12);
395+ var replicatePolyfill = function(count, value12) {
398+ for (var i = 0; i < count; i++) {
399+ result[n++] = value12;
403+ var replicateImpl = typeof Array.prototype.fill === "function" ? replicateFill : replicatePolyfill;
404+ var indexImpl = function(just, nothing, xs, i) {
405+ return i < 0 || i >= xs.length ? nothing : just(xs[i]);
407+ var concat = function(xss) {
408+ if (xss.length <= 1e4) {
409+ return Array.prototype.concat.apply([], xss);
412+ for (var i = 0, l = xss.length; i < l; i++) {
414+ for (var j = 0, m = xs.length; j < m; j++) {
421+ // output/Data.Bounded/foreign.js
422+ var topChar = String.fromCharCode(65535);
423+ var bottomChar = String.fromCharCode(0);
424+ var topNumber = Number.POSITIVE_INFINITY;
425+ var bottomNumber = Number.NEGATIVE_INFINITY;
427+ // output/Data.Show/foreign.js
428+ var showIntImpl = function(n) {
429+ return n.toString();
431+ var showNumberImpl = function(n) {
432+ var str = n.toString();
433+ return isNaN(str + ".0") ? str : str + ".0";
436+ // output/Data.Show/index.js
438+ show: showNumberImpl
443+ var show = function(dict) {
447+ // output/Data.Maybe/index.js
448+ var identity2 = /* @__PURE__ */ identity(categoryFn);
449+ var Nothing = /* @__PURE__ */ function() {
450+ function Nothing2() {
453+ Nothing2.value = new Nothing2();
456+ var Just = /* @__PURE__ */ function() {
457+ function Just2(value0) {
458+ this.value0 = value0;
461+ Just2.create = function(value0) {
462+ return new Just2(value0);
466+ var maybe = function(v) {
467+ return function(v1) {
468+ return function(v2) {
469+ if (v2 instanceof Nothing) {
473+ if (v2 instanceof Just) {
474+ return v1(v2.value0);
477+ 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]);
481+ var fromMaybe = function(a) {
482+ return maybe(a)(identity2);
485+ // output/Data.Identity/index.js
486+ var Identity = function(x) {
489+ var functorIdentity = {
491+ return function(m) {
496+ var applyIdentity = {
497+ apply: function(v) {
498+ return function(v1) {
502+ Functor0: function() {
503+ return functorIdentity;
506+ var bindIdentity = {
508+ return function(f) {
512+ Apply0: function() {
513+ return applyIdentity;
516+ var applicativeIdentity = {
518+ Apply0: function() {
519+ return applyIdentity;
522+ var monadIdentity = {
523+ Applicative0: function() {
524+ return applicativeIdentity;
527+ return bindIdentity;
531+ // output/Effect.Ref/foreign.js
532+ var _new = function(val) {
534+ return { value: val };
537+ var read = function(ref) {
542+ var write = function(val) {
543+ return function(ref) {
550+ // output/Effect.Ref/index.js
553+ // output/Control.Monad.ST.Internal/foreign.js
554+ var map_ = function(f) {
555+ return function(a) {
561+ var pure_ = function(a) {
566+ var bind_ = function(a) {
567+ return function(f) {
574+ // output/Control.Monad.ST.Internal/index.js
575+ var $runtime_lazy2 = function(name15, moduleName, init) {
578+ return function(lineNumber) {
579+ if (state3 === 2) return val;
580+ if (state3 === 1) throw new ReferenceError(name15 + " was needed before it finished initializing (module " + moduleName + ", line " + lineNumber + ")", moduleName, lineNumber);
591+ Applicative0: function() {
592+ return applicativeST;
600+ Apply0: function() {
601+ return $lazy_applyST(0);
604+ var applicativeST = {
606+ Apply0: function() {
607+ return $lazy_applyST(0);
610+ var $lazy_applyST = /* @__PURE__ */ $runtime_lazy2("applyST", "Control.Monad.ST.Internal", function() {
613+ Functor0: function() {
619+ // output/Data.Foldable/foreign.js
620+ var foldrArray = function(f) {
621+ return function(init) {
622+ return function(xs) {
624+ var len = xs.length;
625+ for (var i = len - 1; i >= 0; i--) {
626+ acc = f(xs[i])(acc);
632+ var foldlArray = function(f) {
633+ return function(init) {
634+ return function(xs) {
636+ var len = xs.length;
637+ for (var i = 0; i < len; i++) {
638+ acc = f(acc)(xs[i]);
645+ // output/Data.Tuple/index.js
646+ var Tuple = /* @__PURE__ */ function() {
647+ function Tuple2(value0, value1) {
648+ this.value0 = value0;
649+ this.value1 = value1;
652+ Tuple2.create = function(value0) {
653+ return function(value1) {
654+ return new Tuple2(value0, value1);
660+ // output/Unsafe.Coerce/foreign.js
661+ var unsafeCoerce2 = function(x) {
665+ // output/Safe.Coerce/index.js
666+ var coerce = function() {
667+ return unsafeCoerce2;
670+ // output/Data.Newtype/index.js
671+ var coerce2 = /* @__PURE__ */ coerce();
672+ var unwrap = function() {
676+ // output/Data.Foldable/index.js
677+ var foldr = function(dict) {
680+ var foldl = function(dict) {
683+ var intercalate = function(dictFoldable) {
684+ var foldl2 = foldl(dictFoldable);
685+ return function(dictMonoid) {
686+ var append3 = append(dictMonoid.Semigroup0());
687+ var mempty5 = mempty(dictMonoid);
688+ return function(sep) {
689+ return function(xs) {
690+ var go2 = function(v) {
691+ return function(v1) {
701+ acc: append3(v.acc)(append3(sep)(v1))
705+ return foldl2(go2)({
713+ var foldMapDefaultR = function(dictFoldable) {
714+ var foldr2 = foldr(dictFoldable);
715+ return function(dictMonoid) {
716+ var append3 = append(dictMonoid.Semigroup0());
717+ var mempty5 = mempty(dictMonoid);
718+ return function(f) {
719+ return foldr2(function(x) {
720+ return function(acc) {
721+ return append3(f(x))(acc);
727+ var foldableArray = {
730+ foldMap: function(dictMonoid) {
731+ return foldMapDefaultR(foldableArray)(dictMonoid);
735+ // output/Data.Function.Uncurried/foreign.js
736+ var runFn2 = function(fn) {
737+ return function(a) {
738+ return function(b) {
743+ var runFn4 = function(fn) {
744+ return function(a) {
745+ return function(b) {
746+ return function(c) {
747+ return function(d) {
748+ return fn(a, b, c, d);
755+ // output/Data.Traversable/foreign.js
756+ var traverseArrayImpl = /* @__PURE__ */ function() {
757+ function array1(a) {
760+ function array2(a) {
761+ return function(b) {
765+ function array3(a) {
766+ return function(b) {
767+ return function(c) {
772+ function concat2(xs) {
773+ return function(ys) {
774+ return xs.concat(ys);
777+ return function(apply2) {
778+ return function(map4) {
779+ return function(pure4) {
780+ return function(f) {
781+ return function(array) {
782+ function go2(bot, top2) {
783+ switch (top2 - bot) {
787+ return map4(array1)(f(array[bot]));
789+ return apply2(map4(array2)(f(array[bot])))(f(array[bot + 1]));
791+ return apply2(apply2(map4(array3)(f(array[bot])))(f(array[bot + 1])))(f(array[bot + 2]));
793+ var pivot = bot + Math.floor((top2 - bot) / 4) * 2;
794+ return apply2(map4(concat2)(go2(bot, pivot)))(go2(pivot, top2));
797+ return go2(0, array.length);
805+ // output/Data.Traversable/index.js
806+ var identity3 = /* @__PURE__ */ identity(categoryFn);
807+ var traverse = function(dict) {
808+ return dict.traverse;
810+ var sequenceDefault = function(dictTraversable) {
811+ var traverse22 = traverse(dictTraversable);
812+ return function(dictApplicative) {
813+ return traverse22(dictApplicative)(identity3);
816+ var traversableArray = {
817+ traverse: function(dictApplicative) {
818+ var Apply0 = dictApplicative.Apply0();
819+ return traverseArrayImpl(apply(Apply0))(map(Apply0.Functor0()))(pure(dictApplicative));
821+ sequence: function(dictApplicative) {
822+ return sequenceDefault(traversableArray)(dictApplicative);
824+ Functor0: function() {
825+ return functorArray;
827+ Foldable1: function() {
828+ return foldableArray;
832+ // output/Data.Array/index.js
833+ var intercalate1 = /* @__PURE__ */ intercalate(foldableArray);
834+ var intercalate2 = function(dictMonoid) {
835+ return intercalate1(dictMonoid);
837+ var index = /* @__PURE__ */ function() {
838+ return runFn4(indexImpl)(Just.create)(Nothing.value);
840+ var head = function(xs) {
841+ return index(xs)(0);
844+ // output/Maquette/foreign.js
845+ var NAMESPACE_W3 = "http://www.w3.org/";
846+ var NAMESPACE_SVG = NAMESPACE_W3 + "2000/svg";
847+ var NAMESPACE_XLINK = NAMESPACE_W3 + "1999/xlink";
848+ var emptyArray = [];
849+ var extend2 = function(base, overrides) {
851+ Object.keys(base).forEach(function(key) {
852+ result[key] = base[key];
855+ Object.keys(overrides).forEach(function(key) {
856+ result[key] = overrides[key];
861+ var same = function(vnode1, vnode2) {
862+ if (vnode1.vnodeSelector !== vnode2.vnodeSelector) {
865+ if (vnode1.properties && vnode2.properties) {
866+ if (vnode1.properties.key !== vnode2.properties.key) {
869+ return vnode1.properties.bind === vnode2.properties.bind;
871+ return !vnode1.properties && !vnode2.properties;
873+ var checkStyleValue = function(styleValue) {
874+ if (typeof styleValue !== "string") {
875+ throw new Error("Style values must be strings");
878+ var findIndexOfChild = function(children, sameAs, start2) {
879+ if (sameAs.vnodeSelector !== "") {
880+ for (var i = start2; i < children.length; i++) {
881+ if (same(children[i], sameAs)) {
888+ var checkDistinguishable = function(childNodes, indexToCheck, parentVNode, operation) {
889+ var childNode = childNodes[indexToCheck];
890+ if (childNode.vnodeSelector === "") {
893+ var properties = childNode.properties;
894+ var key = properties ? properties.key === void 0 ? properties.bind : properties.key : void 0;
896+ for (var i = 0; i < childNodes.length; i++) {
897+ if (i !== indexToCheck) {
898+ var node = childNodes[i];
899+ if (same(node, childNode)) {
901+ 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."),
902+ parentNode: parentVNode,
910+ var nodeAdded = function(vNode) {
911+ if (vNode.properties) {
912+ var enterAnimation = vNode.properties.enterAnimation;
913+ if (enterAnimation) {
914+ enterAnimation(vNode.domNode, vNode.properties);
918+ var removedNodes = [];
919+ var requestedIdleCallback = false;
920+ var visitRemovedNode = function(node) {
921+ (node.children || []).forEach(visitRemovedNode);
922+ if (node.properties && node.properties.afterRemoved) {
923+ node.properties.afterRemoved.apply(node.properties.bind || node.properties, [
928+ var processPendingNodeRemovals = function() {
929+ requestedIdleCallback = false;
930+ removedNodes.forEach(visitRemovedNode);
931+ removedNodes.length = 0;
933+ var scheduleNodeRemoval = function(vNode) {
934+ removedNodes.push(vNode);
935+ if (!requestedIdleCallback) {
936+ requestedIdleCallback = true;
937+ if (typeof window !== "undefined" && "requestIdleCallback" in window) {
938+ window.requestIdleCallback(processPendingNodeRemovals, { timeout: 16 });
940+ setTimeout(processPendingNodeRemovals, 16);
944+ var nodeToRemove = function(vNode) {
945+ var domNode = vNode.domNode;
946+ if (vNode.properties) {
947+ var exitAnimation = vNode.properties.exitAnimation;
948+ if (exitAnimation) {
949+ domNode.style.pointerEvents = "none";
950+ var removeDomNode = function() {
951+ if (domNode.parentNode) {
952+ domNode.parentNode.removeChild(domNode);
953+ scheduleNodeRemoval(vNode);
956+ exitAnimation(domNode, removeDomNode, vNode.properties);
960+ if (domNode.parentNode) {
961+ domNode.parentNode.removeChild(domNode);
962+ scheduleNodeRemoval(vNode);
965+ var vnodeOnlyProps = [
973+ function filterVNodeOnlyProps(name15) {
974+ return !vnodeOnlyProps.includes(name15);
976+ var setProperties = function(domNode, properties, projectionOptions) {
980+ var eventHandlerInterceptor = projectionOptions.eventHandlerInterceptor;
981+ var propNames = Object.keys(properties).filter(filterVNodeOnlyProps);
982+ var propCount = propNames.length;
983+ for (var i = 0; i < propCount; i++) {
984+ var propName = propNames[i];
985+ var propValue = properties[propName];
986+ if (propName === "className") {
987+ throw new Error('Property "className" is not supported, use "class".');
988+ } else if (propName === "class") {
989+ toggleClasses(domNode, propValue, true);
990+ } else if (propName === "classes") {
991+ var classNames = Object.keys(propValue);
992+ var classNameCount = classNames.length;
993+ for (var j = 0; j < classNameCount; j++) {
994+ var className = classNames[j];
995+ if (propValue[className]) {
996+ domNode.classList.add(className);
999+ } else if (propName === "styles") {
1000+ var styleNames = Object.keys(propValue);
1001+ var styleCount = styleNames.length;
1002+ for (var j = 0; j < styleCount; j++) {
1003+ var styleName = styleNames[j];
1004+ var styleValue = propValue[styleName];
1006+ checkStyleValue(styleValue);
1007+ projectionOptions.styleApplyer(domNode, styleName, styleValue);
1010+ } else if (propName === "on" && propValue) {
1011+ for (var _i = 0, _a = Object.entries(properties.on); _i < _a.length; _i++) {
1012+ var _b = _a[_i], key = _b[0], handler = _b[1];
1013+ var listener = typeof handler === "function" ? handler : handler.listener;
1014+ if (eventHandlerInterceptor) {
1015+ listener = eventHandlerInterceptor(key, listener, domNode, properties);
1018+ domNode.addEventListener(key, listener, typeof handler === "function" ? void 0 : handler.options);
1021+ } else if (propName !== "key" && propValue !== null && propValue !== void 0) {
1022+ var type = typeof propValue;
1023+ if (type === "function") {
1024+ if (propName.lastIndexOf("on", 0) === 0) {
1025+ if (eventHandlerInterceptor) {
1026+ propValue = eventHandlerInterceptor(propName, propValue, domNode, properties);
1029+ domNode[propName] = propValue;
1030+ } else if (projectionOptions.namespace === NAMESPACE_SVG) {
1031+ if (propName === "href") {
1032+ domNode.setAttributeNS(NAMESPACE_XLINK, propName, propValue);
1034+ domNode.setAttribute(propName, propValue);
1036+ } else if (type === "string" && propName !== "value" && propName !== "innerHTML") {
1037+ domNode.setAttribute(propName, propValue);
1039+ domNode[propName] = propValue;
1044+ var addChildren = function(domNode, children, projectionOptions) {
1048+ for (var _i = 0, children_1 = children; _i < children_1.length; _i++) {
1049+ var child = children_1[_i];
1050+ createDom(child, domNode, void 0, projectionOptions);
1053+ var initPropertiesAndChildren = function(domNode, vnode, projectionOptions) {
1054+ addChildren(domNode, vnode.children, projectionOptions);
1056+ domNode.textContent = vnode.text;
1058+ setProperties(domNode, vnode.properties, projectionOptions);
1059+ if (vnode.properties && vnode.properties.afterCreate) {
1060+ vnode.properties.afterCreate.apply(vnode.properties.bind || vnode.properties, [
1063+ vnode.vnodeSelector,
1069+ var createDom = function(vnode, parentNode, insertBefore, projectionOptions) {
1073+ var vnodeSelector = vnode.vnodeSelector;
1074+ var doc = parentNode.ownerDocument;
1075+ if (vnodeSelector === "") {
1076+ if (vnode.domNode) {
1077+ vnode.domNode.nodeValue = vnode.text;
1079+ domNode = vnode.domNode = doc.createTextNode(vnode.text);
1080+ if (insertBefore !== void 0) {
1081+ parentNode.insertBefore(domNode, insertBefore);
1083+ parentNode.appendChild(domNode);
1087+ for (var i = 0; i <= vnodeSelector.length; ++i) {
1088+ var c = vnodeSelector.charAt(i);
1089+ if (i === vnodeSelector.length || c === "." || c === "#") {
1090+ var type = vnodeSelector.charAt(start2 - 1);
1091+ var found = vnodeSelector.slice(start2, i);
1092+ if (type === ".") {
1093+ domNode.classList.add(found);
1094+ } else if (type === "#") {
1095+ domNode.id = found;
1097+ if (found === "svg") {
1098+ projectionOptions = extend2(projectionOptions, {
1099+ namespace: NAMESPACE_SVG
1102+ if (projectionOptions.namespace !== void 0) {
1103+ domNode = vnode.domNode = doc.createElementNS(projectionOptions.namespace, found);
1105+ 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));
1106+ if (found === "input" && vnode.properties && vnode.properties.type !== void 0) {
1107+ domNode.setAttribute("type", vnode.properties.type);
1110+ if (insertBefore !== void 0) {
1111+ parentNode.insertBefore(domNode, insertBefore);
1112+ } else if (domNode.parentNode !== parentNode) {
1113+ parentNode.appendChild(domNode);
1119+ initPropertiesAndChildren(domNode, vnode, projectionOptions);
1123+ var toggleClasses = function(domNode, classes, on2) {
1127+ classes.split(" ").forEach(function(classToToggle) {
1128+ if (classToToggle) {
1129+ domNode.classList.toggle(classToToggle, on2);
1133+ var updateProperties = function(domNode, previousProperties, properties, projectionOptions) {
1137+ var propertiesUpdated = false;
1138+ var propNames = Object.keys(properties).filter(filterVNodeOnlyProps);
1139+ var propCount = propNames.length;
1140+ for (var i = 0; i < propCount; i++) {
1141+ var propName = propNames[i];
1142+ var propValue = properties[propName];
1143+ var previousValue = previousProperties[propName];
1144+ if (propName === "class") {
1145+ if (previousValue !== propValue) {
1146+ toggleClasses(domNode, previousValue, false);
1147+ toggleClasses(domNode, propValue, true);
1149+ } else if (propName === "classes") {
1150+ var classList = domNode.classList;
1151+ var classNames = Object.keys(propValue);
1152+ var classNameCount = classNames.length;
1153+ for (var j = 0; j < classNameCount; j++) {
1154+ var className = classNames[j];
1155+ var on2 = !!propValue[className];
1156+ var previousOn = !!previousValue[className];
1157+ if (on2 === previousOn) {
1160+ propertiesUpdated = true;
1162+ classList.add(className);
1164+ classList.remove(className);
1167+ } else if (propName === "styles") {
1168+ var styleNames = Object.keys(propValue);
1169+ var styleCount = styleNames.length;
1170+ for (var j = 0; j < styleCount; j++) {
1171+ var styleName = styleNames[j];
1172+ var newStyleValue = propValue[styleName];
1173+ var oldStyleValue = previousValue[styleName];
1174+ if (newStyleValue === oldStyleValue) {
1177+ propertiesUpdated = true;
1178+ if (newStyleValue) {
1179+ checkStyleValue(newStyleValue);
1180+ projectionOptions.styleApplyer(domNode, styleName, newStyleValue);
1182+ projectionOptions.styleApplyer(domNode, styleName, "");
1186+ if (!propValue && typeof previousValue === "string") {
1189+ if (propName === "value") {
1190+ var domValue = domNode[propName];
1191+ if (domValue !== propValue && // The 'value' in the DOM tree !== newValue
1192+ propValue !== previousValue) {
1193+ domNode[propName] = propValue;
1195+ if (propValue !== previousValue) {
1196+ propertiesUpdated = true;
1198+ } else if (propValue !== previousValue) {
1199+ var type = typeof propValue;
1200+ if (type !== "function" || !projectionOptions.eventHandlerInterceptor) {
1201+ if (projectionOptions.namespace === NAMESPACE_SVG) {
1202+ if (propName === "href") {
1203+ domNode.setAttributeNS(NAMESPACE_XLINK, propName, propValue);
1205+ domNode.setAttribute(propName, propValue);
1207+ } else if (type === "string" && propName !== "innerHTML") {
1208+ if (propName === "role" && propValue === "") {
1209+ domNode.removeAttribute(propName);
1211+ domNode.setAttribute(propName, propValue);
1213+ } else if (domNode[propName] !== propValue) {
1214+ domNode[propName] = propValue;
1216+ propertiesUpdated = true;
1221+ return propertiesUpdated;
1223+ var updateChildren = function(vnode, domNode, oldChildren, newChildren, projectionOptions) {
1224+ if (oldChildren === newChildren) {
1227+ oldChildren = oldChildren || emptyArray;
1228+ newChildren = newChildren || emptyArray;
1229+ var oldChildrenLength = oldChildren.length;
1230+ var newChildrenLength = newChildren.length;
1234+ var textUpdated = false;
1235+ while (newIndex < newChildrenLength) {
1236+ var oldChild = oldIndex < oldChildrenLength ? oldChildren[oldIndex] : void 0;
1237+ var newChild = newChildren[newIndex];
1238+ if (oldChild !== void 0 && same(oldChild, newChild)) {
1239+ textUpdated = updateDom(oldChild, newChild, projectionOptions, domNode, oldChildren) || textUpdated;
1242+ var findOldIndex = findIndexOfChild(oldChildren, newChild, oldIndex + 1);
1243+ if (findOldIndex >= 0) {
1244+ for (i = oldIndex; i < findOldIndex; i++) {
1245+ nodeToRemove(oldChildren[i]);
1246+ checkDistinguishable(oldChildren, i, vnode, "removed");
1248+ textUpdated = updateDom(oldChildren[findOldIndex], newChild, projectionOptions, domNode, oldChildren) || textUpdated;
1249+ oldIndex = findOldIndex + 1;
1251+ createDom(newChild, domNode, oldIndex < oldChildrenLength ? oldChildren[oldIndex].domNode : void 0, projectionOptions);
1252+ nodeAdded(newChild);
1253+ checkDistinguishable(newChildren, newIndex, vnode, "added");
1258+ if (oldChildrenLength > oldIndex) {
1259+ for (i = oldIndex; i < oldChildrenLength; i++) {
1260+ nodeToRemove(oldChildren[i]);
1261+ checkDistinguishable(oldChildren, i, vnode, "removed");
1264+ return textUpdated;
1266+ updateDom = function(previous, vnode, projectionOptions, parentNode, oldChildren) {
1267+ var domNode = previous.domNode;
1268+ var textUpdated = false;
1269+ if (previous === vnode) {
1272+ var updated = false;
1273+ if (vnode.vnodeSelector === "") {
1274+ if (vnode.text !== previous.text) {
1275+ var newTextNode = domNode.ownerDocument.createTextNode(vnode.text);
1277+ parentNode.replaceChild(newTextNode, domNode);
1279+ parentNode.replaceChild(newTextNode, parentNode.childNodes[oldChildren.indexOf(previous)]);
1281+ vnode.domNode = newTextNode;
1282+ textUpdated = true;
1283+ return textUpdated;
1285+ vnode.domNode = domNode;
1287+ if (vnode.vnodeSelector.lastIndexOf("svg", 0) === 0) {
1288+ projectionOptions = extend2(projectionOptions, {
1289+ namespace: NAMESPACE_SVG
1292+ if (previous.text !== vnode.text) {
1294+ if (vnode.text === void 0) {
1295+ domNode.removeChild(domNode.firstChild);
1297+ domNode.textContent = vnode.text;
1300+ vnode.domNode = domNode;
1301+ updated = updateChildren(vnode, domNode, previous.children, vnode.children, projectionOptions) || updated;
1302+ updated = updateProperties(domNode, previous.properties, vnode.properties, projectionOptions) || updated;
1303+ if (vnode.properties && vnode.properties.afterUpdate) {
1304+ vnode.properties.afterUpdate.apply(vnode.properties.bind || vnode.properties, [
1307+ vnode.vnodeSelector,
1313+ if (updated && vnode.properties && vnode.properties.updateAnimation) {
1314+ vnode.properties.updateAnimation(domNode, vnode.properties, previous.properties);
1316+ return textUpdated;
1318+ var createProjection = function(vnode, projectionOptions) {
1320+ getLastRender: function() {
1323+ update: function(updatedVnode) {
1324+ if (vnode.vnodeSelector !== updatedVnode.vnodeSelector) {
1325+ 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)");
1327+ var previousVNode = vnode;
1328+ vnode = updatedVnode;
1329+ updateDom(previousVNode, updatedVnode, projectionOptions, previousVNode.domNode.parentNode, [previousVNode]);
1331+ domNode: vnode.domNode
1334+ var DEFAULT_PROJECTION_OPTIONS = {
1336+ performanceLogger: function() {
1339+ eventHandlerInterceptor: void 0,
1340+ styleApplyer: function(domNode, styleName, value12) {
1341+ if (styleName.charAt(0) === "-") {
1342+ domNode.style.setProperty(styleName, value12);
1344+ domNode.style[styleName] = value12;
1348+ var applyDefaultProjectionOptions = function(projectorOptions) {
1349+ return extend2(DEFAULT_PROJECTION_OPTIONS, projectorOptions);
1353+ * Creates a real DOM tree from `vnode`. The [[Projection]] object returned will contain the resulting DOM Node in
1354+ * its [[Projection.domNode|domNode]] property.
1355+ * This is a low-level method. Users will typically use a [[Projector]] instead.
1356+ * @param vnode - The root of the virtual DOM tree that was created using the [[h]] function. NOTE: [[VNode]]
1357+ * objects may only be rendered once.
1358+ * @param projectionOptions - Options to be used to create and update the projection.
1359+ * @returns The [[Projection]] which also contains the DOM Node that was created.
1361+ create: function(vnode, projectionOptions) {
1362+ projectionOptions = applyDefaultProjectionOptions(projectionOptions);
1363+ createDom(vnode, document.createElement("div"), void 0, projectionOptions);
1364+ return createProjection(vnode, projectionOptions);
1367+ * Appends a new child node to the DOM which is generated from a [[VNode]].
1368+ * This is a low-level method. Users will typically use a [[Projector]] instead.
1369+ * @param parentNode - The parent node for the new child node.
1370+ * @param vnode - The root of the virtual DOM tree that was created using the [[h]] function. NOTE: [[VNode]]
1371+ * objects may only be rendered once.
1372+ * @param projectionOptions - Options to be used to create and update the [[Projection]].
1373+ * @returns The [[Projection]] that was created.
1375+ append: function(parentNode, vnode, projectionOptions) {
1376+ projectionOptions = applyDefaultProjectionOptions(projectionOptions);
1377+ createDom(vnode, parentNode, void 0, projectionOptions);
1378+ return createProjection(vnode, projectionOptions);
1381+ * Inserts a new DOM node which is generated from a [[VNode]].
1382+ * This is a low-level method. Users wil typically use a [[Projector]] instead.
1383+ * @param beforeNode - The node that the DOM Node is inserted before.
1384+ * @param vnode - The root of the virtual DOM tree that was created using the [[h]] function.
1385+ * NOTE: [[VNode]] objects may only be rendered once.
1386+ * @param projectionOptions - Options to be used to create and update the projection, see [[createProjector]].
1387+ * @returns The [[Projection]] that was created.
1389+ insertBefore: function(beforeNode, vnode, projectionOptions) {
1390+ projectionOptions = applyDefaultProjectionOptions(projectionOptions);
1391+ createDom(vnode, beforeNode.parentNode, beforeNode, projectionOptions);
1392+ return createProjection(vnode, projectionOptions);
1395+ * Merges a new DOM node which is generated from a [[VNode]] with an existing DOM Node.
1396+ * This means that the virtual DOM and the real DOM will have one overlapping element.
1397+ * Therefore the selector for the root [[VNode]] will be ignored, but its properties and children will be applied to the Element provided.
1398+ * This is a low-level method. Users wil typically use a [[Projector]] instead.
1399+ * @param element - The existing element to adopt as the root of the new virtual DOM. Existing attributes and child nodes are preserved.
1400+ * @param vnode - The root of the virtual DOM tree that was created using the [[h]] function. NOTE: [[VNode]] objects
1401+ * may only be rendered once.
1402+ * @param projectionOptions - Options to be used to create and update the projection, see [[createProjector]].
1403+ * @returns The [[Projection]] that was created.
1405+ merge: function(element, vnode, projectionOptions) {
1406+ projectionOptions = applyDefaultProjectionOptions(projectionOptions);
1407+ vnode.domNode = element;
1408+ initPropertiesAndChildren(element, vnode, projectionOptions);
1409+ return createProjection(vnode, projectionOptions);
1412+ * Replaces an existing DOM node with a node generated from a [[VNode]].
1413+ * This is a low-level method. Users will typically use a [[Projector]] instead.
1414+ * @param element - The node for the [[VNode]] to replace.
1415+ * @param vnode - The root of the virtual DOM tree that was created using the [[h]] function. NOTE: [[VNode]]
1416+ * objects may only be rendered once.
1417+ * @param projectionOptions - Options to be used to create and update the [[Projection]].
1418+ * @returns The [[Projection]] that was created.
1420+ replace: function(element, vnode, projectionOptions) {
1421+ projectionOptions = applyDefaultProjectionOptions(projectionOptions);
1422+ createDom(vnode, element.parentNode, element, projectionOptions);
1423+ element.parentNode.removeChild(element);
1424+ return createProjection(vnode, projectionOptions);
1427+ var toTextVNode = function(data) {
1430+ properties: void 0,
1432+ text: data.toString(),
1436+ var appendChildren = function(parentSelector, insertions, main2) {
1437+ for (var i = 0, length_1 = insertions.length; i < length_1; i++) {
1438+ var item = insertions[i];
1439+ if (Array.isArray(item)) {
1440+ appendChildren(parentSelector, item, main2);
1442+ if (item !== null && item !== void 0 && item !== false) {
1443+ if (typeof item === "string") {
1444+ item = toTextVNode(item);
1451+ function h(selector, properties, children) {
1452+ if (Array.isArray(properties)) {
1453+ children = properties;
1454+ properties = void 0;
1455+ } else if (properties && (typeof properties === "string" || properties.vnodeSelector) || children && (typeof children === "string" || children.vnodeSelector)) {
1456+ throw new Error("h called with invalid arguments");
1459+ var flattenedChildren;
1460+ if (children && children.length === 1 && typeof children[0] === "string") {
1461+ text6 = children[0];
1462+ } else if (children) {
1463+ flattenedChildren = [];
1464+ appendChildren(selector, children, flattenedChildren);
1465+ if (flattenedChildren.length === 0) {
1466+ flattenedChildren = void 0;
1470+ vnodeSelector: selector,
1472+ children: flattenedChildren,
1473+ text: text6 === "" ? void 0 : text6,
1477+ var createParentNodePath = function(node, rootNode) {
1478+ var parentNodePath = [];
1479+ while (node && node !== rootNode) {
1480+ parentNodePath.push(node);
1481+ node = node.parentNode;
1483+ return parentNodePath;
1486+ if (Array.prototype.find) {
1487+ find2 = function(items, predicate) {
1488+ return items.find(predicate);
1491+ find2 = function(items, predicate) {
1492+ return items.filter(predicate)[0];
1495+ var findVNodeByParentNodePath = function(vnode, parentNodePath) {
1496+ var result = vnode;
1497+ parentNodePath.forEach(function(node) {
1498+ result = result && result.children ? find2(result.children, function(child) {
1499+ return child.domNode === node;
1504+ var createEventHandlerInterceptor = function(projector, getProjection, performanceLogger) {
1505+ return function(propertyName, eventHandler, domNode, properties) {
1506+ return modifiedEventHandler;
1508+ function modifiedEventHandler(evt) {
1510+ performanceLogger("domEvent", evt);
1511+ var projection = getProjection();
1512+ var parentNodePath = createParentNodePath(evt.currentTarget, projection.domNode);
1513+ parentNodePath.reverse();
1514+ var matchingVNode = findVNodeByParentNodePath(projection.getLastRender(), parentNodePath);
1515+ projector.scheduleRender();
1517+ if (matchingVNode) {
1518+ 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];
1519+ result = listener.apply(matchingVNode.properties.bind || this, arguments);
1521+ performanceLogger("domEventProcessed", evt);
1525+ var createProjector = function(projectorOptions) {
1527+ var projectionOptions = applyDefaultProjectionOptions(projectorOptions);
1528+ var performanceLogger = projectionOptions.performanceLogger;
1529+ var renderCompleted = true;
1531+ var stopped = false;
1532+ var projections = [];
1533+ var renderFunctions = [];
1534+ var addProjection = function(domFunction, node, renderFunction) {
1536+ var getProjection = function() {
1539+ projectionOptions.eventHandlerInterceptor = createEventHandlerInterceptor(projector, getProjection, performanceLogger);
1540+ projection = domFunction(node, renderFunction(), projectionOptions);
1541+ projections.push(projection);
1542+ renderFunctions.push(renderFunction);
1544+ var doRender = function() {
1545+ scheduled = void 0;
1546+ if (!renderCompleted) {
1549+ renderCompleted = false;
1550+ performanceLogger("renderStart", void 0);
1551+ for (var i = 0; i < projections.length; i++) {
1552+ var updatedVnode = renderFunctions[i]();
1553+ performanceLogger("rendered", void 0);
1554+ projections[i].update(updatedVnode);
1555+ performanceLogger("patched", void 0);
1557+ performanceLogger("renderDone", void 0);
1558+ renderCompleted = true;
1561+ renderNow: doRender,
1562+ scheduleRender: function() {
1563+ if (!scheduled && !stopped) {
1564+ scheduled = requestAnimationFrame(doRender);
1569+ cancelAnimationFrame(scheduled);
1570+ scheduled = void 0;
1574+ resume: function() {
1576+ renderCompleted = true;
1577+ projector.scheduleRender();
1579+ append: function(parentNode, renderFunction) {
1580+ addProjection(dom.append, parentNode, renderFunction);
1582+ insertBefore: function(beforeNode, renderFunction) {
1583+ addProjection(dom.insertBefore, beforeNode, renderFunction);
1585+ merge: function(domNode, renderFunction) {
1586+ addProjection(dom.merge, domNode, renderFunction);
1588+ replace: function(domNode, renderFunction) {
1589+ addProjection(dom.replace, domNode, renderFunction);
1591+ detach: function(renderFunction) {
1592+ for (var i = 0; i < renderFunctions.length; i++) {
1593+ if (renderFunctions[i] === renderFunction) {
1594+ renderFunctions.splice(i, 1);
1595+ return projections.splice(i, 1)[0];
1598+ throw new Error("renderFunction was not found");
1603+ function _h(selector) {
1604+ return function(properties) {
1605+ return function(children) {
1606+ return h(selector, properties, children);
1610+ function scheduleRender(projector) {
1611+ return function() {
1612+ projector.scheduleRender();
1615+ function replace(projector) {
1616+ return function(el) {
1617+ return function(render3) {
1618+ return function() {
1619+ projector.replace(el, render3);
1625+ // output/Maquette/index.js
1626+ var string = unsafeCoerce2;
1629+ // output/Control.Monad.Writer.Class/index.js
1630+ var tell = function(dict) {
1634+ // output/Control.Monad.Writer.Trans/index.js
1635+ var WriterT = function(x) {
1638+ var runWriterT = function(v) {
1641+ var mapWriterT = function(f) {
1642+ return function(v) {
1646+ var functorWriterT = function(dictFunctor) {
1647+ var map4 = map(dictFunctor);
1650+ return mapWriterT(map4(function(v) {
1651+ return new Tuple(f(v.value0), v.value1);
1656+ var applyWriterT = function(dictSemigroup) {
1657+ var append3 = append(dictSemigroup);
1658+ return function(dictApply) {
1659+ var apply2 = apply(dictApply);
1660+ var Functor0 = dictApply.Functor0();
1661+ var map4 = map(Functor0);
1662+ var functorWriterT1 = functorWriterT(Functor0);
1664+ apply: function(v) {
1665+ return function(v1) {
1666+ var k = function(v3) {
1667+ return function(v4) {
1668+ return new Tuple(v3.value0(v4.value0), append3(v3.value1)(v4.value1));
1671+ return apply2(map4(k)(v))(v1);
1674+ Functor0: function() {
1675+ return functorWriterT1;
1680+ var bindWriterT = function(dictSemigroup) {
1681+ var append3 = append(dictSemigroup);
1682+ var applyWriterT1 = applyWriterT(dictSemigroup);
1683+ return function(dictBind) {
1684+ var bind4 = bind(dictBind);
1685+ var Apply0 = dictBind.Apply0();
1686+ var map4 = map(Apply0.Functor0());
1687+ var applyWriterT2 = applyWriterT1(Apply0);
1689+ bind: function(v) {
1690+ return function(k) {
1691+ return bind4(v)(function(v1) {
1692+ var v2 = k(v1.value0);
1693+ return map4(function(v3) {
1694+ return new Tuple(v3.value0, append3(v1.value1)(v3.value1));
1699+ Apply0: function() {
1700+ return applyWriterT2;
1705+ var semigroupWriterT = function(dictApply) {
1706+ return function(dictSemigroup) {
1707+ var lift22 = lift2(applyWriterT(dictSemigroup)(dictApply));
1708+ return function(dictSemigroup1) {
1710+ append: lift22(append(dictSemigroup1))
1715+ var applicativeWriterT = function(dictMonoid) {
1716+ var mempty5 = mempty(dictMonoid);
1717+ var applyWriterT1 = applyWriterT(dictMonoid.Semigroup0());
1718+ return function(dictApplicative) {
1719+ var pure4 = pure(dictApplicative);
1720+ var applyWriterT2 = applyWriterT1(dictApplicative.Apply0());
1722+ pure: function(a) {
1723+ return pure4(new Tuple(a, mempty5));
1725+ Apply0: function() {
1726+ return applyWriterT2;
1731+ var monadWriterT = function(dictMonoid) {
1732+ var applicativeWriterT1 = applicativeWriterT(dictMonoid);
1733+ var bindWriterT1 = bindWriterT(dictMonoid.Semigroup0());
1734+ return function(dictMonad) {
1735+ var applicativeWriterT22 = applicativeWriterT1(dictMonad.Applicative0());
1736+ var bindWriterT22 = bindWriterT1(dictMonad.Bind1());
1738+ Applicative0: function() {
1739+ return applicativeWriterT22;
1741+ Bind1: function() {
1742+ return bindWriterT22;
1747+ var monadTellWriterT = function(dictMonoid) {
1748+ var Semigroup0 = dictMonoid.Semigroup0();
1749+ var monadWriterT1 = monadWriterT(dictMonoid);
1750+ return function(dictMonad) {
1751+ var monadWriterT2 = monadWriterT1(dictMonad);
1754+ var $262 = pure(dictMonad.Applicative0());
1755+ var $263 = Tuple.create(unit);
1756+ return function($264) {
1757+ return WriterT($262($263($264)));
1760+ Semigroup0: function() {
1763+ Monad1: function() {
1764+ return monadWriterT2;
1769+ var monoidWriterT = function(dictApplicative) {
1770+ var semigroupWriterT1 = semigroupWriterT(dictApplicative.Apply0());
1771+ return function(dictMonoid) {
1772+ var pure4 = pure(applicativeWriterT(dictMonoid)(dictApplicative));
1773+ var semigroupWriterT2 = semigroupWriterT1(dictMonoid.Semigroup0());
1774+ return function(dictMonoid1) {
1775+ var semigroupWriterT3 = semigroupWriterT2(dictMonoid1.Semigroup0());
1777+ mempty: pure4(mempty(dictMonoid1)),
1778+ Semigroup0: function() {
1779+ return semigroupWriterT3;
1786+ // output/Control.Monad.Writer/index.js
1787+ var unwrap2 = /* @__PURE__ */ unwrap();
1788+ var runWriter = function($5) {
1789+ return unwrap2(runWriterT($5));
1792+ // output/Foreign.Object/foreign.js
1793+ function _copyST(m) {
1794+ return function() {
1797+ if (hasOwnProperty.call(m, k)) {
1805+ function runST(f) {
1808+ function _foldM(bind4) {
1809+ return function(f) {
1810+ return function(mz) {
1811+ return function(m) {
1814+ return function(z) {
1815+ return f(z)(k2)(m[k2]);
1819+ if (hasOwnProperty.call(m, k)) {
1820+ acc = bind4(acc)(g(k));
1828+ function toArrayWithKey(f) {
1829+ return function(m) {
1832+ if (hasOwnProperty.call(m, k)) {
1833+ r.push(f(k)(m[k]));
1839+ var keys = Object.keys || toArrayWithKey(function(k) {
1840+ return function() {
1845+ // output/Foreign.Object.ST/foreign.js
1846+ var newImpl = function() {
1849+ function poke2(k) {
1850+ return function(v) {
1851+ return function(m) {
1852+ return function() {
1860+ // output/Foreign.Object/index.js
1861+ var bindFlipped2 = /* @__PURE__ */ bindFlipped(bindST);
1862+ var thawST = _copyST;
1863+ var singleton2 = function(k) {
1864+ return function(v) {
1865+ return runST(bindFlipped2(poke2(k)(v))(newImpl));
1868+ var mutate = function(f) {
1869+ return function(m) {
1870+ return runST(function __do() {
1871+ var s = thawST(m)();
1877+ var foldM = function(dictMonad) {
1878+ var bind1 = bind(dictMonad.Bind1());
1879+ var pure1 = pure(dictMonad.Applicative0());
1880+ return function(f) {
1881+ return function(z) {
1882+ return _foldM(bind1)(f)(pure1(z));
1886+ var foldM1 = /* @__PURE__ */ foldM(monadST);
1887+ var union = function(m) {
1888+ return mutate(function(s) {
1889+ return foldM1(function(s$prime) {
1890+ return function(k) {
1891+ return function(v) {
1892+ return poke2(k)(v)(s$prime);
1898+ var fold2 = /* @__PURE__ */ _foldM(applyFlipped);
1899+ var foldMap2 = function(dictMonoid) {
1900+ var append1 = append(dictMonoid.Semigroup0());
1901+ var mempty5 = mempty(dictMonoid);
1902+ return function(f) {
1903+ return fold2(function(acc) {
1904+ return function(k) {
1905+ return function(v) {
1906+ return append1(acc)(f(k)(v));
1913+ // output/Record.Unsafe.Union/foreign.js
1914+ function unsafeUnionFn(r1, r2) {
1916+ for (var k1 in r2) {
1917+ if ({}.hasOwnProperty.call(r2, k1)) {
1921+ for (var k2 in r1) {
1922+ if ({}.hasOwnProperty.call(r1, k2)) {
1929+ // output/Record.Unsafe.Union/index.js
1930+ var unsafeUnion = /* @__PURE__ */ runFn2(unsafeUnionFn);
1932+ // output/Plum.View/index.js
1933+ var append2 = /* @__PURE__ */ append(semigroupArray);
1934+ var semigroupRecord3 = /* @__PURE__ */ semigroupRecord();
1935+ var childrenIsSymbol = {
1936+ reflectSymbol: function() {
1940+ var downIsSymbol = {
1941+ reflectSymbol: function() {
1945+ var hoverIsSymbol = {
1946+ reflectSymbol: function() {
1950+ var meatIsSymbol = {
1951+ reflectSymbol: function() {
1955+ var nervesIsSymbol = {
1956+ reflectSymbol: function() {
1960+ var semigroupRecordCons2 = /* @__PURE__ */ semigroupRecordCons(childrenIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(downIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(hoverIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(meatIsSymbol)()(/* @__PURE__ */ semigroupRecordCons(nervesIsSymbol)()(semigroupRecordNil)(semigroupArray))(semigroupArray))(semigroupArray))(semigroupArray));
1961+ var show2 = /* @__PURE__ */ show(showInt);
1962+ var show1 = /* @__PURE__ */ show(showNumber);
1963+ var mempty2 = /* @__PURE__ */ mempty(monoidArray);
1964+ var monoidRecord2 = /* @__PURE__ */ monoidRecord();
1965+ var monoidRecordCons2 = /* @__PURE__ */ monoidRecordCons(childrenIsSymbol);
1966+ var monoidRecordCons1 = /* @__PURE__ */ monoidRecordCons(downIsSymbol)(monoidArray)()(/* @__PURE__ */ monoidRecordCons(hoverIsSymbol)(monoidArray)()(/* @__PURE__ */ monoidRecordCons(meatIsSymbol)(monoidArray)()(/* @__PURE__ */ monoidRecordCons(nervesIsSymbol)(monoidArray)()(monoidRecordNil))));
1967+ var mempty1 = /* @__PURE__ */ mempty(/* @__PURE__ */ monoidRecord2(/* @__PURE__ */ monoidRecordCons2(monoidArray)()(monoidRecordCons1)));
1968+ var foldMap3 = /* @__PURE__ */ foldMap2(monoidString);
1969+ var intercalate3 = /* @__PURE__ */ intercalate2(monoidString);
1970+ var map2 = /* @__PURE__ */ map(/* @__PURE__ */ functorWriterT(functorIdentity));
1971+ var Px = /* @__PURE__ */ function() {
1972+ function Px2(value0) {
1973+ this.value0 = value0;
1976+ Px2.create = function(value0) {
1977+ return new Px2(value0);
1981+ var Fill = /* @__PURE__ */ function() {
1985+ Fill2.value = new Fill2();
1988+ var Fit = /* @__PURE__ */ function() {
1992+ Fit2.value = new Fit2();
1995+ var Max2 = /* @__PURE__ */ function() {
1996+ function Max3(value0, value1) {
1997+ this.value0 = value0;
1998+ this.value1 = value1;
2001+ Max3.create = function(value0) {
2002+ return function(value1) {
2003+ return new Max3(value0, value1);
2008+ var Min2 = /* @__PURE__ */ function() {
2009+ function Min3(value0, value1) {
2010+ this.value0 = value0;
2011+ this.value1 = value1;
2014+ Min3.create = function(value0) {
2015+ return function(value1) {
2016+ return new Min3(value0, value1);
2021+ var X = /* @__PURE__ */ function() {
2025+ X2.value = new X2();
2028+ var Y = /* @__PURE__ */ function() {
2032+ Y2.value = new Y2();
2035+ var Grid = /* @__PURE__ */ function() {
2039+ Grid2.value = new Grid2();
2042+ var Flexbox = /* @__PURE__ */ function() {
2043+ function Flexbox2(value0) {
2044+ this.value0 = value0;
2047+ Flexbox2.create = function(value0) {
2048+ return new Flexbox2(value0);
2052+ var Generic = /* @__PURE__ */ function() {
2053+ function Generic2() {
2056+ Generic2.value = new Generic2();
2059+ var Span = /* @__PURE__ */ function() {
2063+ Span2.value = new Span2();
2066+ var Start = /* @__PURE__ */ function() {
2067+ function Start2() {
2070+ Start2.value = new Start2();
2073+ var Center = /* @__PURE__ */ function() {
2074+ function Center2() {
2077+ Center2.value = new Center2();
2080+ var End = /* @__PURE__ */ function() {
2084+ End2.value = new End2();
2087+ var Spacing = /* @__PURE__ */ function() {
2088+ function Spacing2(value0, value1) {
2089+ this.value0 = value0;
2090+ this.value1 = value1;
2093+ Spacing2.create = function(value0) {
2094+ return function(value1) {
2095+ return new Spacing2(value0, value1);
2100+ var Explain = /* @__PURE__ */ function() {
2101+ function Explain2() {
2104+ Explain2.value = new Explain2();
2107+ var Align = /* @__PURE__ */ function() {
2108+ function Align2(value0, value1) {
2109+ this.value0 = value0;
2110+ this.value1 = value1;
2113+ Align2.create = function(value0) {
2114+ return function(value1) {
2115+ return new Align2(value0, value1);
2120+ var Width = /* @__PURE__ */ function() {
2121+ function Width2(value0) {
2122+ this.value0 = value0;
2125+ Width2.create = function(value0) {
2126+ return new Width2(value0);
2130+ var Height = /* @__PURE__ */ function() {
2131+ function Height2(value0) {
2132+ this.value0 = value0;
2135+ Height2.create = function(value0) {
2136+ return new Height2(value0);
2140+ var Wrapped = /* @__PURE__ */ function() {
2141+ function Wrapped2() {
2144+ Wrapped2.value = new Wrapped2();
2147+ var BackgroundColor = /* @__PURE__ */ function() {
2148+ function BackgroundColor2(value0) {
2149+ this.value0 = value0;
2152+ BackgroundColor2.create = function(value0) {
2153+ return new BackgroundColor2(value0);
2155+ return BackgroundColor2;
2157+ var Padding = /* @__PURE__ */ function() {
2158+ function Padding2(value0) {
2159+ this.value0 = value0;
2162+ Padding2.create = function(value0) {
2163+ return new Padding2(value0);
2167+ var Spread = /* @__PURE__ */ function() {
2168+ function Spread2() {
2171+ Spread2.value = new Spread2();
2174+ var Opacity = /* @__PURE__ */ function() {
2175+ function Opacity2(value0) {
2176+ this.value0 = value0;
2179+ Opacity2.create = function(value0) {
2180+ return new Opacity2(value0);
2184+ var Pointer = /* @__PURE__ */ function() {
2185+ function Pointer2() {
2188+ Pointer2.value = new Pointer2();
2191+ var Move = /* @__PURE__ */ function() {
2192+ function Move2(value0) {
2193+ this.value0 = value0;
2196+ Move2.create = function(value0) {
2197+ return new Move2(value0);
2201+ var Clip = /* @__PURE__ */ function() {
2202+ function Clip2(value0) {
2203+ this.value0 = value0;
2206+ Clip2.create = function(value0) {
2207+ return new Clip2(value0);
2211+ var UI = /* @__PURE__ */ function() {
2212+ function UI2(value0, value1) {
2213+ this.value0 = value0;
2214+ this.value1 = value1;
2217+ UI2.create = function(value0) {
2218+ return function(value1) {
2219+ return new UI2(value0, value1);
2224+ var Column = /* @__PURE__ */ function() {
2225+ function Column2(value0) {
2226+ this.value0 = value0;
2229+ Column2.create = function(value0) {
2230+ return new Column2(value0);
2234+ var Row = /* @__PURE__ */ function() {
2235+ function Row2(value0) {
2236+ this.value0 = value0;
2239+ Row2.create = function(value0) {
2240+ return new Row2(value0);
2244+ var Stack = /* @__PURE__ */ function() {
2245+ function Stack2(value0) {
2246+ this.value0 = value0;
2249+ Stack2.create = function(value0) {
2250+ return new Stack2(value0);
2254+ var Wrapper = /* @__PURE__ */ function() {
2255+ function Wrapper2(value0) {
2256+ this.value0 = value0;
2259+ Wrapper2.create = function(value0) {
2260+ return new Wrapper2(value0);
2264+ var Text = /* @__PURE__ */ function() {
2265+ function Text2(value0) {
2266+ this.value0 = value0;
2269+ Text2.create = function(value0) {
2270+ return new Text2(value0);
2274+ var Link = /* @__PURE__ */ function() {
2275+ function Link2(value0, value1, value22) {
2276+ this.value0 = value0;
2277+ this.value1 = value1;
2278+ this.value2 = value22;
2281+ Link2.create = function(value0) {
2282+ return function(value1) {
2283+ return function(value22) {
2284+ return new Link2(value0, value1, value22);
2290+ var Download = /* @__PURE__ */ function() {
2291+ function Download2(value0, value1, value22) {
2292+ this.value0 = value0;
2293+ this.value1 = value1;
2294+ this.value2 = value22;
2297+ Download2.create = function(value0) {
2298+ return function(value1) {
2299+ return function(value22) {
2300+ return new Download2(value0, value1, value22);
2306+ var Image2 = /* @__PURE__ */ function() {
2307+ function Image3(value0, value1) {
2308+ this.value0 = value0;
2309+ this.value1 = value1;
2312+ Image3.create = function(value0) {
2313+ return function(value1) {
2314+ return new Image3(value0, value1);
2319+ var None = /* @__PURE__ */ function() {
2323+ None3.value = new None3();
2326+ var semigroupSkinGrowth = {
2327+ append: function(v) {
2328+ return function(v1) {
2329+ return union(v)(v1);
2333+ var bindWriterT2 = /* @__PURE__ */ bindWriterT(semigroupSkinGrowth)(bindIdentity);
2334+ var discard2 = /* @__PURE__ */ discard(discardUnit)(bindWriterT2);
2335+ var bind2 = /* @__PURE__ */ bind(bindWriterT2);
2336+ var append22 = /* @__PURE__ */ append(/* @__PURE__ */ semigroupWriterT(applyIdentity)(semigroupSkinGrowth)(semigroupArray));
2337+ var semigroupMutation = {
2338+ append: function(v) {
2339+ return function(v1) {
2341+ extraSkin: append2(v.extraSkin)(v1.extraSkin)
2346+ var semigroupGenericUI = function(dictSemigroup) {
2347+ var append3 = append(semigroupRecord3(semigroupRecordCons2(dictSemigroup)));
2348+ return function(dictSemigroup1) {
2349+ var append4 = append(dictSemigroup1);
2351+ append: function(v) {
2352+ return function(v1) {
2353+ return new UI(append3(v.value0)(v1.value0), append4(v.value1)(v1.value1));
2359+ var renderableColor = {
2360+ render: function(v) {
2361+ return "rgba(" + (show2(v.r) + ("," + (show2(v.g) + ("," + (show2(v.b) + ("," + (show1(v.a) + ")")))))));
2363+ renderKey: function(v) {
2364+ return show2(v.r) + ("-" + (show2(v.g) + ("-" + (show2(v.b) + ("-" + show1(v.a))))));
2367+ var monoidSkinGrowth = {
2369+ Semigroup0: function() {
2370+ return semigroupSkinGrowth;
2373+ var tell2 = /* @__PURE__ */ tell(/* @__PURE__ */ monadTellWriterT(monoidSkinGrowth)(monadIdentity));
2374+ var applicativeWriterT2 = /* @__PURE__ */ applicativeWriterT(monoidSkinGrowth)(applicativeIdentity);
2375+ var pure2 = /* @__PURE__ */ pure(applicativeWriterT2);
2376+ var mempty22 = /* @__PURE__ */ mempty(/* @__PURE__ */ monoidWriterT(applicativeIdentity)(monoidSkinGrowth)(monoidArray));
2377+ var traverse2 = /* @__PURE__ */ traverse(traversableArray)(applicativeWriterT2);
2378+ var monoidMutation = {
2382+ Semigroup0: function() {
2383+ return semigroupMutation;
2386+ var mempty3 = /* @__PURE__ */ mempty(monoidMutation);
2387+ var monoidGenericUI = function(dictMonoid) {
2388+ var mempty42 = mempty(monoidRecord2(monoidRecordCons2(dictMonoid)()(monoidRecordCons1)));
2389+ var semigroupGenericUI1 = semigroupGenericUI(dictMonoid.Semigroup0());
2390+ return function(dictMonoid1) {
2391+ var semigroupGenericUI2 = semigroupGenericUI1(dictMonoid1.Semigroup0());
2393+ mempty: new UI(mempty42, mempty(dictMonoid1)),
2394+ Semigroup0: function() {
2395+ return semigroupGenericUI2;
2400+ var functorGenericUI = {
2402+ return function(v) {
2403+ return new UI(v.value0, f(v.value1));
2407+ var applyGenericUI = function(dictMonoid) {
2408+ var append3 = append(semigroupRecord3(semigroupRecordCons2(dictMonoid.Semigroup0())));
2410+ apply: function(v) {
2411+ return function(v1) {
2412+ return new UI(append3(v.value0)(v1.value0), v.value1(v1.value1));
2415+ Functor0: function() {
2416+ return functorGenericUI;
2420+ var bindGenericUI = function(dictMonoid) {
2421+ var append3 = append(semigroupRecord3(semigroupRecordCons2(dictMonoid.Semigroup0())));
2422+ var applyGenericUI1 = applyGenericUI(dictMonoid);
2424+ bind: function(v) {
2425+ return function(f) {
2426+ var v1 = f(v.value1);
2427+ return new UI(append3(v.value0)(v1.value0), v1.value1);
2430+ Apply0: function() {
2431+ return applyGenericUI1;
2435+ var text = function(s) {
2436+ return function(v) {
2438+ nerves: mempty1.nerves,
2439+ meat: mempty1.meat,
2440+ hover: mempty1.hover,
2441+ down: mempty1.down,
2442+ children: [new Tuple({
2443+ meat: v.value0.meat,
2444+ nerves: v.value0.nerves,
2445+ hover: v.value0.hover,
2446+ down: v.value0.down
2451+ var styleSkinGrowth = function(v) {
2452+ return foldMap3(function(className) {
2453+ return function(v1) {
2454+ return "." + (className + ("{" + (v1.key + (":" + (v1.value + ";}")))));
2458+ var sk = function(cName) {
2459+ return function(key) {
2460+ return function(value12) {
2461+ return discard2(tell2(singleton2(cName)({
2465+ return pure2([cName]);
2470+ var renderKey = function(dict) {
2471+ return dict.renderKey;
2473+ var renderKey1 = /* @__PURE__ */ renderKey(renderableColor);
2474+ var render = function(dict) {
2475+ return dict.render;
2477+ var render1 = /* @__PURE__ */ render(renderableColor);
2478+ var renderableLength = {
2479+ render: function(v) {
2480+ if (v instanceof Px) {
2481+ return show2(v.value0) + "px";
2484+ if (v instanceof Fit) {
2485+ return "fit-content";
2488+ if (v instanceof Fill) {
2492+ if (v instanceof Max2) {
2493+ return "max(" + (show2(v.value0) + ("px," + (render(renderableLength)(v.value1) + ")")));
2496+ if (v instanceof Min2) {
2497+ return "min(" + (show2(v.value0) + ("px," + (render(renderableLength)(v.value1) + ")")));
2500+ throw new Error("Failed pattern match at Plum.View (line 295, column 12 - line 300, column 62): " + [v.constructor.name]);
2502+ renderKey: function(v) {
2503+ if (v instanceof Px) {
2504+ return show2(v.value0);
2507+ if (v instanceof Fit) {
2508+ return "fit-content";
2511+ if (v instanceof Fill) {
2515+ if (v instanceof Max2) {
2516+ return "max-" + (show2(v.value0) + ("-" + renderKey(renderableLength)(v.value1)));
2519+ if (v instanceof Min2) {
2520+ return "min-" + (show2(v.value0) + ("-" + renderKey(renderableLength)(v.value1)));
2523+ throw new Error("Failed pattern match at Plum.View (line 301, column 15 - line 306, column 56): " + [v.constructor.name]);
2526+ var renderKey2 = /* @__PURE__ */ renderKey(renderableLength);
2527+ var render2 = /* @__PURE__ */ render(renderableLength);
2528+ var skin = function(ctx) {
2529+ return function(v) {
2530+ if (v instanceof Spacing) {
2531+ return sk("spacing-" + (show2(v.value0) + ("-" + show2(v.value1))))("gap")(show2(v.value0) + ("px " + (show2(v.value1) + "px")));
2534+ if (v instanceof Explain) {
2535+ return sk("explain")("border")("dashed magenta");
2538+ if (v instanceof Align) {
2539+ if (ctx instanceof Generic) {
2543+ if (ctx instanceof Span) {
2547+ if (ctx instanceof Grid) {
2548+ var v1 = function() {
2549+ if (v.value1 instanceof Start) {
2553+ if (v.value1 instanceof Center) {
2557+ if (v.value1 instanceof End) {
2561+ throw new Error("Failed pattern match at Plum.View (line 244, column 13 - line 247, column 27): " + [v.value1.constructor.name]);
2563+ var k = function() {
2564+ if (v.value0 instanceof X) {
2565+ return "justify-items";
2568+ if (v.value0 instanceof Y) {
2569+ return "align-items";
2572+ throw new Error("Failed pattern match at Plum.View (line 239, column 13 - line 241, column 33): " + [v.value0.constructor.name]);
2574+ return sk("align-grid-" + (k + ("-" + v1)))(k)(v1);
2577+ if (ctx instanceof Flexbox) {
2578+ var v1 = function() {
2579+ if (v.value1 instanceof Start) {
2580+ return "flex-start";
2583+ if (v.value1 instanceof Center) {
2587+ if (v.value1 instanceof End) {
2591+ throw new Error("Failed pattern match at Plum.View (line 263, column 13 - line 266, column 32): " + [v.value1.constructor.name]);
2593+ var k = function() {
2594+ var v2 = new Tuple(ctx.value0, v.value0);
2595+ if (v2.value0 instanceof X && v2.value1 instanceof X) {
2596+ return "justify-content";
2599+ if (v2.value0 instanceof X && v2.value1 instanceof Y) {
2600+ return "align-items";
2603+ if (v2.value0 instanceof Y && v2.value1 instanceof X) {
2604+ return "align-items";
2607+ if (v2.value0 instanceof Y && v2.value1 instanceof Y) {
2608+ return "justify-content";
2611+ throw new Error("Failed pattern match at Plum.View (line 255, column 13 - line 259, column 42): " + [v2.constructor.name]);
2613+ return sk("align-flexbox-" + (k + ("-" + v1)))(k)(v1);
2616+ throw new Error("Failed pattern match at Plum.View (line 233, column 26 - line 269, column 51): " + [ctx.constructor.name]);
2619+ if (v instanceof Width) {
2620+ return sk("width-" + renderKey2(v.value0))("width")(render2(v.value0));
2623+ if (v instanceof Height) {
2624+ return sk("width-" + renderKey2(v.value0))("height")(render2(v.value0));
2627+ if (v instanceof Wrapped) {
2628+ if (ctx instanceof Flexbox) {
2629+ return sk("wrapped")("flex-wrap")("wrap");
2635+ if (v instanceof BackgroundColor) {
2636+ return sk("bg-color-" + renderKey1(v.value0))("background-color")(render1(v.value0));
2639+ if (v instanceof Padding) {
2640+ return sk("padding-" + (show2(v.value0.top) + ("-" + (show2(v.value0.right) + ("-" + (show2(v.value0.bottom) + ("-" + show2(v.value0.left))))))))("padding")(show2(v.value0.top) + ("px " + (show2(v.value0.right) + ("px " + (show2(v.value0.bottom) + ("px " + (show2(v.value0.left) + "px")))))));
2643+ if (v instanceof Spread) {
2644+ if (ctx instanceof Flexbox) {
2645+ return sk("spread")("justify-content")("space-between");
2651+ if (v instanceof Opacity) {
2652+ return sk("opacity-" + show1(v.value0))("opacity")(show1(v.value0));
2655+ if (v instanceof Pointer) {
2656+ return sk("pointer")("cursor")("pointer");
2659+ if (v instanceof Move) {
2660+ return sk("move-" + (show2(v.value0.x) + ("-" + show2(v.value0.y))))("transform")("translate(" + (show2(v.value0.x) + ("px, " + (show2(v.value0.y) + "px)"))));
2663+ if (v instanceof Clip && v.value0 instanceof X) {
2664+ return sk("clip-x")("overflow-x")("hidden");
2667+ if (v instanceof Clip && v.value0 instanceof Y) {
2668+ return sk("clip-y")("overflow-y")("hidden");
2671+ throw new Error("Failed pattern match at Plum.View (line 230, column 12 - line 288, column 46): " + [v.constructor.name]);
2674+ var hWith = function(elem2) {
2675+ return function(props) {
2676+ return function(classes) {
2677+ return function(children) {
2678+ return h2(elem2)(unsafeUnion(props)({
2679+ "class": intercalate3(" ")(classes)
2685+ var h3 = function(elem2) {
2686+ return function(classes) {
2687+ return function(children) {
2689+ "class": intercalate3(" ")(classes)
2694+ var growSkin = function(fire) {
2695+ return function(v) {
2696+ return function(v1) {
2697+ var widthFill = [new Width(Fill.value), new Height(Fill.value)];
2698+ var alignCenter = [new Align(X.value, Center.value), new Align(Y.value, Center.value)];
2699+ var skn = function(ctx) {
2700+ return map2(function($424) {
2701+ return function(v2) {
2702+ return append2(v2)(v.extraSkin);
2704+ })(traverse2(skin(ctx))(append2(v1.value0.meat)(append2(function() {
2705+ if (ctx instanceof Span) {
2709+ if (ctx instanceof Grid) {
2713+ if (ctx instanceof Flexbox) {
2717+ if (ctx instanceof Generic) {
2721+ throw new Error("Failed pattern match at Plum.View (line 368, column 16 - line 372, column 35): " + [ctx.constructor.name]);
2723+ if (ctx instanceof Grid) {
2724+ return alignCenter;
2727+ if (ctx instanceof Flexbox) {
2728+ return alignCenter;
2731+ if (ctx instanceof Span) {
2735+ if (ctx instanceof Generic) {
2736+ return alignCenter;
2739+ throw new Error("Failed pattern match at Plum.View (line 373, column 16 - line 377, column 37): " + [ctx.constructor.name]);
2742+ if (v1.value1 instanceof Text) {
2743+ return map2(function(c) {
2744+ return h3("span")(c)([string(v1.value1.value0)]);
2745+ })(skn(Span.value));
2748+ if (v1.value1 instanceof Wrapper) {
2749+ return bind2(append22(skn(new Flexbox(X.value)))(append22(sk("display-flex")("display")("flex"))(sk("flex-direction-row")("flex-direction")("row"))))(function(classes) {
2750+ return bind2(growSkin(fire)(mempty3)(v1.value1.value0))(function(x$prime) {
2751+ return pure2(h3("div")(classes)([x$prime]));
2756+ if (v1.value1 instanceof Stack) {
2757+ return bind2(append22(skn(Grid.value))(sk("display-grid")("display")("grid")))(function(classes) {
2758+ return bind2(append22(sk("grid-row-1")("grid-row")("1"))(sk("grid-column-1")("grid-column")("1")))(function(extraSkin) {
2759+ return bind2(traverse2(growSkin(fire)({
2761+ }))(v1.value1.value0))(function(children$prime) {
2762+ return pure2(h3("div")(classes)(children$prime));
2768+ if (v1.value1 instanceof Row) {
2769+ return bind2(append22(skn(new Flexbox(X.value)))(append22(sk("display-flex")("display")("flex"))(sk("flex-direction-row")("flex-direction")("row"))))(function(classes) {
2770+ return bind2(traverse2(growSkin(fire)(mempty3))(v1.value1.value0))(function(children$prime) {
2771+ return pure2(h3("div")(classes)(children$prime));
2776+ if (v1.value1 instanceof Column) {
2777+ return bind2(append22(skn(new Flexbox(Y.value)))(append22(sk("display-flex")("display")("flex"))(sk("flex-direction-column")("flex-direction")("column"))))(function(classes) {
2778+ return bind2(traverse2(growSkin(fire)(mempty3))(v1.value1.value0))(function(children$prime) {
2779+ return pure2(h3("div")(classes)(children$prime));
2784+ if (v1.value1 instanceof Link) {
2785+ return bind2(append22(skn(new Flexbox(X.value)))(append22(sk("display-flex")("display")("flex"))(sk("flex-direction-row")("flex-direction")("row"))))(function(classes) {
2786+ return bind2(growSkin(fire)(mempty3)(v1.value1.value2))(function(child$prime) {
2787+ return pure2(hWith("a")({
2788+ href: v1.value1.value0,
2789+ rel: "noopener noreferrer",
2790+ target: function() {
2791+ if (v1.value1.value1.newTab) {
2797+ })(classes)([child$prime]));
2802+ if (v1.value1 instanceof Download) {
2803+ return bind2(append22(skn(new Flexbox(X.value)))(append22(sk("display-flex")("display")("flex"))(sk("flex-direction-row")("flex-direction")("row"))))(function(classes) {
2804+ return bind2(growSkin(fire)(mempty3)(v1.value1.value2))(function(child$prime) {
2805+ return pure2(hWith("a")({
2806+ href: v1.value1.value0,
2807+ download: fromMaybe("")(v1.value1.value1.filename)
2808+ })(classes)([child$prime]));
2813+ if (v1.value1 instanceof Image2) {
2814+ return map2(function(c) {
2815+ return hWith("img")({
2816+ src: v1.value1.value0,
2817+ alt: v1.value1.value1.description
2819+ })(skn(Generic.value));
2822+ if (v1.value1 instanceof None) {
2823+ return pure2(h3("div")(mempty2)([]));
2826+ throw new Error("Failed pattern match at Plum.View (line 380, column 3 - line 421, column 37): " + [v1.value1.constructor.name]);
2830+ var grow = function(fire) {
2831+ return function(v) {
2832+ var v1 = runWriter(growSkin(fire)(mempty3)(v));
2835+ style: styleSkinGrowth(v1.value1)
2839+ var column = function(v) {
2841+ nerves: mempty1.nerves,
2842+ meat: mempty1.meat,
2843+ hover: mempty1.hover,
2844+ down: mempty1.down,
2845+ children: [new Tuple({
2846+ meat: v.value0.meat,
2847+ nerves: v.value0.nerves,
2848+ hover: v.value0.hover,
2849+ down: v.value0.down
2850+ }, new Column(v.value0.children))]
2854+ // output/Web.DOM.NonElementParentNode/foreign.js
2855+ function _getElementById(id) {
2856+ return function(node) {
2857+ return function() {
2858+ return node.getElementById(id);
2863+ // output/Data.Nullable/foreign.js
2864+ function nullable(a, r, f) {
2865+ return a == null ? r : f(a);
2868+ // output/Data.Nullable/index.js
2869+ var toMaybe = function(n) {
2870+ return nullable(n, Nothing.value, Just.create);
2873+ // output/Web.DOM.NonElementParentNode/index.js
2874+ var map3 = /* @__PURE__ */ map(functorEffect);
2875+ var getElementById = function(eid) {
2876+ var $2 = map3(toMaybe);
2877+ var $3 = _getElementById(eid);
2878+ return function($4) {
2883+ // output/Web.HTML/foreign.js
2884+ var windowImpl = function() {
2888+ // output/Web.HTML.HTMLDocument/index.js
2889+ var toNonElementParentNode = unsafeCoerce2;
2891+ // output/Web.HTML.Window/foreign.js
2892+ function document2(window2) {
2893+ return function() {
2894+ return window2.document;
2898+ // output/Plum/index.js
2899+ var bind3 = /* @__PURE__ */ bind(bindEffect);
2900+ var outerStyle = "html,body{height:100%;padding:0;margin:0;}";
2901+ var run3 = function(id) {
2902+ return function(plum2) {
2903+ return function __do() {
2904+ var modelRef = bind3(plum2.init)($$new)();
2905+ var v = bind3(bind3(windowImpl)(document2))(function() {
2906+ var $21 = getElementById(id);
2907+ return function($22) {
2908+ return $21(toNonElementParentNode($22));
2911+ if (v instanceof Just) {
2912+ var projector = createProjector();
2913+ return replace(projector)(v.value0)(function __do2() {
2914+ var model = read(modelRef)();
2915+ var v1 = plum2.view(model);
2916+ var v2 = head(v1.value0.children);
2917+ if (v2 instanceof Nothing) {
2918+ return h2("div")({})([]);
2921+ if (v2 instanceof Just) {
2922+ var v3 = grow(function(msg) {
2923+ return function __do3() {
2924+ var m = read(modelRef)();
2925+ var m_ = plum2.update(msg)(m)();
2926+ write(m_)(modelRef)();
2927+ return scheduleRender(projector)();
2935+ })([h2("style")({})([string(outerStyle + v3.style)]), v3.node]);
2938+ throw new Error("Failed pattern match at Plum (line 35, column 20 - line 52, column 94): " + [v2.constructor.name]);
2942+ if (v instanceof Nothing) {
2946+ throw new Error("Failed pattern match at Plum (line 26, column 92 - line 54, column 25): " + [v.constructor.name]);
2951+ // output/Main/index.js
2952+ var pure3 = /* @__PURE__ */ pure(applicativeEffect);
2953+ var discard3 = /* @__PURE__ */ discard(discardUnit)(/* @__PURE__ */ bindGenericUI(monoidArray));
2954+ var mempty4 = /* @__PURE__ */ mempty(/* @__PURE__ */ monoidGenericUI(monoidUnit)(monoidUnit));
2956+ init: /* @__PURE__ */ pure3({
2959+ view: function(model) {
2960+ return column(discard3(text("hi")(mempty4))(function() {
2961+ return text("hello")(mempty4);
2964+ update: function(msg) {
2965+ return function(model) {
2967+ text: "Button pressed"
2972+ var main = /* @__PURE__ */ run3("plum")(plum);