@explorable-viz/fluid 0.7.63 → 0.7.65

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. package/dist/fluid/fluid/lib/graphics.fld +6 -6
  2. package/dist/fluid/shared/fluid.mjs +4 -3
  3. package/dist/fluid/shared/load-figure.js +338 -168
  4. package/package.json +3 -2
  5. package/script/bundle-website.sh +5 -2
  6. package/dist/fluid/fluid/dataset/methane-emissions.fld +0 -123
  7. package/dist/fluid/fluid/dataset/mini-non-renewables.fld +0 -3
  8. package/dist/fluid/fluid/dataset/mini-renewables.fld +0 -6
  9. package/dist/fluid/fluid/dataset/non-renewables.fld +0 -67
  10. package/dist/fluid/fluid/dataset/renewables-new.fld +0 -301
  11. package/dist/fluid/fluid/dataset/renewables-restricted.fld +0 -139
  12. package/dist/fluid/fluid/dataset/renewables.fld +0 -100
  13. package/dist/fluid/fluid/dataset/ssp126-2081-2100.fld +0 -194
  14. package/dist/fluid/fluid/example/arithmetic.fld +0 -1
  15. package/dist/fluid/fluid/example/array.fld +0 -2
  16. package/dist/fluid/fluid/example/compose.fld +0 -2
  17. package/dist/fluid/fluid/example/desugar/list-comp-1.fld +0 -1
  18. package/dist/fluid/fluid/example/desugar/list-comp-10.fld +0 -1
  19. package/dist/fluid/fluid/example/desugar/list-comp-2.fld +0 -1
  20. package/dist/fluid/fluid/example/desugar/list-comp-3.fld +0 -1
  21. package/dist/fluid/fluid/example/desugar/list-comp-4.fld +0 -1
  22. package/dist/fluid/fluid/example/desugar/list-comp-5.fld +0 -1
  23. package/dist/fluid/fluid/example/desugar/list-comp-6.fld +0 -1
  24. package/dist/fluid/fluid/example/desugar/list-comp-7.fld +0 -1
  25. package/dist/fluid/fluid/example/desugar/list-comp-8.fld +0 -1
  26. package/dist/fluid/fluid/example/desugar/list-comp-9.fld +0 -1
  27. package/dist/fluid/fluid/example/desugar/list-enum.fld +0 -1
  28. package/dist/fluid/fluid/example/dict-list-comp.fld +0 -1
  29. package/dist/fluid/fluid/example/dicts.fld +0 -10
  30. package/dist/fluid/fluid/example/div-mod-quot-rem.fld +0 -4
  31. package/dist/fluid/fluid/example/factorial.fld +0 -6
  32. package/dist/fluid/fluid/example/filter.fld +0 -1
  33. package/dist/fluid/fluid/example/first-class-constr.fld +0 -1
  34. package/dist/fluid/fluid/example/flatten.fld +0 -12
  35. package/dist/fluid/fluid/example/foldr-sumSquares.fld +0 -1
  36. package/dist/fluid/fluid/example/graphics/background.fld +0 -7
  37. package/dist/fluid/fluid/example/graphics/grouped-bar-chart.fld +0 -9
  38. package/dist/fluid/fluid/example/graphics/line-chart.fld +0 -13
  39. package/dist/fluid/fluid/example/graphics/stacked-bar-chart.fld +0 -3
  40. package/dist/fluid/fluid/example/include-input-into-output.fld +0 -1
  41. package/dist/fluid/fluid/example/length.fld +0 -1
  42. package/dist/fluid/fluid/example/lexicalScoping.fld +0 -3
  43. package/dist/fluid/fluid/example/lib/some-constants.fld +0 -1
  44. package/dist/fluid/fluid/example/linked-inputs/energyscatter.fld +0 -23
  45. package/dist/fluid/fluid/example/linked-inputs/mini-energyscatter.fld +0 -29
  46. package/dist/fluid/fluid/example/linked-outputs/convolution-data.fld +0 -5
  47. package/dist/fluid/fluid/example/linked-outputs/convolution.fld +0 -12
  48. package/dist/fluid/fluid/example/linked-outputs/line-chart.fld +0 -15
  49. package/dist/fluid/fluid/example/linked-outputs/moving-average.fld +0 -19
  50. package/dist/fluid/fluid/example/linked-outputs/pairs-data.fld +0 -1
  51. package/dist/fluid/fluid/example/lookup.fld +0 -15
  52. package/dist/fluid/fluid/example/map.fld +0 -1
  53. package/dist/fluid/fluid/example/mergeSort.fld +0 -22
  54. package/dist/fluid/fluid/example/normalise.fld +0 -3
  55. package/dist/fluid/fluid/example/nub.fld +0 -1
  56. package/dist/fluid/fluid/example/pattern-match.fld +0 -12
  57. package/dist/fluid/fluid/example/percent.fld +0 -1
  58. package/dist/fluid/fluid/example/plot/methane.fld +0 -14
  59. package/dist/fluid/fluid/example/plot/non-renewables.fld +0 -21
  60. package/dist/fluid/fluid/example/range.fld +0 -4
  61. package/dist/fluid/fluid/example/record-lookup.fld +0 -3
  62. package/dist/fluid/fluid/example/records.expect.fld +0 -0
  63. package/dist/fluid/fluid/example/records.fld +0 -11
  64. package/dist/fluid/fluid/example/reverse.fld +0 -1
  65. package/dist/fluid/fluid/example/scratchpad.fld +0 -6
  66. package/dist/fluid/fluid/example/slicing/add.expect.fld +0 -1
  67. package/dist/fluid/fluid/example/slicing/add.fld +0 -1
  68. package/dist/fluid/fluid/example/slicing/array/array.expect.fld +0 -2
  69. package/dist/fluid/fluid/example/slicing/array/array.fld +0 -4
  70. package/dist/fluid/fluid/example/slicing/array/dims.expect.fld +0 -3
  71. package/dist/fluid/fluid/example/slicing/array/dims.fld +0 -3
  72. package/dist/fluid/fluid/example/slicing/array/lookup.expect.fld +0 -3
  73. package/dist/fluid/fluid/example/slicing/array/lookup.fld +0 -5
  74. package/dist/fluid/fluid/example/slicing/array/renewables.fld +0 -100
  75. package/dist/fluid/fluid/example/slicing/convolution/edgeDetect.expect.fld +0 -1
  76. package/dist/fluid/fluid/example/slicing/convolution/edgeDetect.fld +0 -1
  77. package/dist/fluid/fluid/example/slicing/convolution/emboss-wrap.fld +0 -1
  78. package/dist/fluid/fluid/example/slicing/convolution/emboss.expect.fld +0 -1
  79. package/dist/fluid/fluid/example/slicing/convolution/emboss.fld +0 -1
  80. package/dist/fluid/fluid/example/slicing/convolution/filter/edge-detect.fld +0 -5
  81. package/dist/fluid/fluid/example/slicing/convolution/filter/emboss.fld +0 -5
  82. package/dist/fluid/fluid/example/slicing/convolution/filter/gaussian.fld +0 -5
  83. package/dist/fluid/fluid/example/slicing/convolution/gaussian.expect.fld +0 -1
  84. package/dist/fluid/fluid/example/slicing/convolution/gaussian.fld +0 -1
  85. package/dist/fluid/fluid/example/slicing/convolution/test-image.fld +0 -7
  86. package/dist/fluid/fluid/example/slicing/dict/create.expect.fld +0 -2
  87. package/dist/fluid/fluid/example/slicing/dict/create.fld +0 -1
  88. package/dist/fluid/fluid/example/slicing/dict/difference.expect.fld +0 -4
  89. package/dist/fluid/fluid/example/slicing/dict/difference.fld +0 -3
  90. package/dist/fluid/fluid/example/slicing/dict/disjointUnion.expect.fld +0 -2
  91. package/dist/fluid/fluid/example/slicing/dict/disjointUnion.fld +0 -1
  92. package/dist/fluid/fluid/example/slicing/dict/foldl.expect.fld +0 -3
  93. package/dist/fluid/fluid/example/slicing/dict/foldl.fld +0 -1
  94. package/dist/fluid/fluid/example/slicing/dict/get.expect.fld +0 -5
  95. package/dist/fluid/fluid/example/slicing/dict/get.fld +0 -3
  96. package/dist/fluid/fluid/example/slicing/dict/intersectionWith.expect.fld +0 -5
  97. package/dist/fluid/fluid/example/slicing/dict/intersectionWith.fld +0 -4
  98. package/dist/fluid/fluid/example/slicing/dict/map.expect.fld +0 -8
  99. package/dist/fluid/fluid/example/slicing/dict/map.fld +0 -5
  100. package/dist/fluid/fluid/example/slicing/dict/match.expect.fld +0 -6
  101. package/dist/fluid/fluid/example/slicing/dict/match.fld +0 -5
  102. package/dist/fluid/fluid/example/slicing/divide.expect.fld +0 -1
  103. package/dist/fluid/fluid/example/slicing/divide.fld +0 -1
  104. package/dist/fluid/fluid/example/slicing/dtw/average-series.expect.fld +0 -8
  105. package/dist/fluid/fluid/example/slicing/dtw/average-series.fld +0 -8
  106. package/dist/fluid/fluid/example/slicing/dtw/compute-dtw.expect.fld +0 -6
  107. package/dist/fluid/fluid/example/slicing/dtw/compute-dtw.fld +0 -6
  108. package/dist/fluid/fluid/example/slicing/explained.expect.fld +0 -1
  109. package/dist/fluid/fluid/example/slicing/explained.fld +0 -1
  110. package/dist/fluid/fluid/example/slicing/filter.expect.fld +0 -4
  111. package/dist/fluid/fluid/example/slicing/filter.fld +0 -6
  112. package/dist/fluid/fluid/example/slicing/intersperse-1.expect.fld +0 -4
  113. package/dist/fluid/fluid/example/slicing/intersperse-2.expect.fld +0 -4
  114. package/dist/fluid/fluid/example/slicing/intersperse.fld +0 -5
  115. package/dist/fluid/fluid/example/slicing/length.expect.fld +0 -1
  116. package/dist/fluid/fluid/example/slicing/length.fld +0 -1
  117. package/dist/fluid/fluid/example/slicing/linked-outputs/bar-chart-line-chart.expect.fld +0 -0
  118. package/dist/fluid/fluid/example/slicing/linked-outputs/bar-chart-line-chart.fld +0 -29
  119. package/dist/fluid/fluid/example/slicing/linked-outputs/stacked-bar-scatter-plot.expect.fld +0 -0
  120. package/dist/fluid/fluid/example/slicing/linked-outputs/stacked-bar-scatter-plot.fld +0 -38
  121. package/dist/fluid/fluid/example/slicing/list-comp-1.expect.fld +0 -6
  122. package/dist/fluid/fluid/example/slicing/list-comp-2.expect.fld +0 -6
  123. package/dist/fluid/fluid/example/slicing/list-comp.fld +0 -8
  124. package/dist/fluid/fluid/example/slicing/lookup.expect.fld +0 -6
  125. package/dist/fluid/fluid/example/slicing/lookup.fld +0 -14
  126. package/dist/fluid/fluid/example/slicing/map.expect.fld +0 -1
  127. package/dist/fluid/fluid/example/slicing/map.fld +0 -1
  128. package/dist/fluid/fluid/example/slicing/matrix-update.expect.fld +0 -5
  129. package/dist/fluid/fluid/example/slicing/matrix-update.fld +0 -10
  130. package/dist/fluid/fluid/example/slicing/multiply.expect.fld +0 -1
  131. package/dist/fluid/fluid/example/slicing/multiply.fld +0 -1
  132. package/dist/fluid/fluid/example/slicing/nth.expect.fld +0 -1
  133. package/dist/fluid/fluid/example/slicing/nth.fld +0 -1
  134. package/dist/fluid/fluid/example/slicing/output-not-source.expect.fld +0 -2
  135. package/dist/fluid/fluid/example/slicing/output-not-source.fld +0 -1
  136. package/dist/fluid/fluid/example/slicing/qcut.expect.fld +0 -0
  137. package/dist/fluid/fluid/example/slicing/qcut.fld +0 -2
  138. package/dist/fluid/fluid/example/slicing/section-5-example-1.expect.fld +0 -10
  139. package/dist/fluid/fluid/example/slicing/section-5-example-2.expect.fld +0 -10
  140. package/dist/fluid/fluid/example/slicing/section-5-example-3.expect.fld +0 -10
  141. package/dist/fluid/fluid/example/slicing/section-5-example.fld +0 -14
  142. package/dist/fluid/fluid/example/slicing/zeros-1.expect.fld +0 -3
  143. package/dist/fluid/fluid/example/slicing/zeros-2.expect.fld +0 -3
  144. package/dist/fluid/fluid/example/slicing/zeros.fld +0 -4
  145. package/dist/fluid/fluid/example/slicing/zipWith-1.expect.fld +0 -4
  146. package/dist/fluid/fluid/example/slicing/zipWith.fld +0 -4
  147. package/dist/fluid/fluid/example/text-viz/datasets/ssp126.fld +0 -898
  148. package/dist/fluid/fluid/example/text-viz/datasets/ssp245.fld +0 -954
  149. package/dist/fluid/fluid/example/text-viz/datasets/ssp370.fld +0 -842
  150. package/dist/fluid/fluid/example/text-viz/datasets/ssp585.fld +0 -954
  151. package/dist/fluid/fluid/example/text-viz/explainable-table.fld +0 -7
  152. package/dist/fluid/fluid/example/text-viz/fake-probabilities.fld +0 -3
  153. package/dist/fluid/fluid/example/text-viz/figure-spm-4.fld +0 -42
  154. package/dist/fluid/fluid/example/text-viz/left-barchart-table.fld +0 -5
  155. package/dist/fluid/fluid/example/text-viz/likelihoods.fld +0 -9
  156. package/dist/fluid/fluid/example/text-viz/right-barchart-table.fld +0 -5
  157. package/dist/fluid/fluid/example/text-viz/table-spm-1.fld +0 -30
@@ -780,19 +780,19 @@ var traverseArrayImpl = function() {
780
780
  return function(pure3) {
781
781
  return function(f) {
782
782
  return function(array4) {
783
- function go(bot, top3) {
784
- switch (top3 - bot) {
783
+ function go(bot2, top3) {
784
+ switch (top3 - bot2) {
785
785
  case 0:
786
786
  return pure3([]);
787
787
  case 1:
788
- return map3(array1)(f(array4[bot]));
788
+ return map3(array1)(f(array4[bot2]));
789
789
  case 2:
790
- return apply4(map3(array2)(f(array4[bot])))(f(array4[bot + 1]));
790
+ return apply4(map3(array2)(f(array4[bot2])))(f(array4[bot2 + 1]));
791
791
  case 3:
792
- return apply4(apply4(map3(array3)(f(array4[bot])))(f(array4[bot + 1])))(f(array4[bot + 2]));
792
+ return apply4(apply4(map3(array3)(f(array4[bot2])))(f(array4[bot2 + 1])))(f(array4[bot2 + 2]));
793
793
  default:
794
- var pivot = bot + Math.floor((top3 - bot) / 4) * 2;
795
- return apply4(map3(concat2)(go(bot, pivot)))(go(pivot, top3));
794
+ var pivot = bot2 + Math.floor((top3 - bot2) / 4) * 2;
795
+ return apply4(map3(concat2)(go(bot2, pivot)))(go(pivot, top3));
796
796
  }
797
797
  }
798
798
  return go(0, array4.length);
@@ -2459,17 +2459,17 @@ var Aff = function() {
2459
2459
  }
2460
2460
  }
2461
2461
  }
2462
- function onComplete(join4) {
2462
+ function onComplete(join5) {
2463
2463
  return function() {
2464
2464
  if (status === COMPLETED) {
2465
- rethrow = rethrow && join4.rethrow;
2466
- join4.handler(step)();
2465
+ rethrow = rethrow && join5.rethrow;
2466
+ join5.handler(step)();
2467
2467
  return function() {
2468
2468
  };
2469
2469
  }
2470
2470
  var jid = joinId++;
2471
2471
  joins = joins || {};
2472
- joins[jid] = join4;
2472
+ joins[jid] = join5;
2473
2473
  return function() {
2474
2474
  if (joins !== null) {
2475
2475
  delete joins[jid];
@@ -2524,7 +2524,7 @@ var Aff = function() {
2524
2524
  return canceler;
2525
2525
  };
2526
2526
  }
2527
- function join3(cb) {
2527
+ function join4(cb) {
2528
2528
  return function() {
2529
2529
  var canceler = onComplete({
2530
2530
  rethrow: false,
@@ -2538,7 +2538,7 @@ var Aff = function() {
2538
2538
  }
2539
2539
  return {
2540
2540
  kill,
2541
- join: join3,
2541
+ join: join4,
2542
2542
  onComplete,
2543
2543
  isSuspended: function() {
2544
2544
  return status === SUSPENDED;
@@ -2622,7 +2622,7 @@ var Aff = function() {
2622
2622
  }
2623
2623
  return kills2;
2624
2624
  }
2625
- function join3(result, head, tail4) {
2625
+ function join4(result, head, tail4) {
2626
2626
  var fail3, step, lhs, rhs, tmp, kid;
2627
2627
  if (util2.isLeft(result)) {
2628
2628
  fail3 = result;
@@ -2669,9 +2669,9 @@ var Aff = function() {
2669
2669
  if (tmp) {
2670
2670
  tmp = false;
2671
2671
  } else if (tail4 === null) {
2672
- join3(fail3, null, null);
2672
+ join4(fail3, null, null);
2673
2673
  } else {
2674
- join3(fail3, tail4._1, tail4._2);
2674
+ join4(fail3, tail4._1, tail4._2);
2675
2675
  }
2676
2676
  };
2677
2677
  });
@@ -2706,9 +2706,9 @@ var Aff = function() {
2706
2706
  if (tmp) {
2707
2707
  tmp = false;
2708
2708
  } else if (tail4 === null) {
2709
- join3(step, null, null);
2709
+ join4(step, null, null);
2710
2710
  } else {
2711
- join3(step, tail4._1, tail4._2);
2711
+ join4(step, tail4._1, tail4._2);
2712
2712
  }
2713
2713
  };
2714
2714
  });
@@ -2732,7 +2732,7 @@ var Aff = function() {
2732
2732
  return function() {
2733
2733
  delete fibers[fiber._1];
2734
2734
  fiber._3 = result;
2735
- join3(result, fiber._2._1, fiber._2._2);
2735
+ join4(result, fiber._2._1, fiber._2._2);
2736
2736
  };
2737
2737
  };
2738
2738
  }
@@ -14758,18 +14758,18 @@ var ViewState = class {
14758
14758
  let viewFrom, viewTo;
14759
14759
  if (wrapping) {
14760
14760
  let marginHeight = margin / this.heightOracle.lineLength * this.heightOracle.lineHeight;
14761
- let top3, bot;
14761
+ let top3, bot2;
14762
14762
  if (target != null) {
14763
14763
  let targetFrac = findFraction(structure, target);
14764
14764
  let spaceFrac = ((this.visibleBottom - this.visibleTop) / 2 + marginHeight) / line2.height;
14765
14765
  top3 = targetFrac - spaceFrac;
14766
- bot = targetFrac + spaceFrac;
14766
+ bot2 = targetFrac + spaceFrac;
14767
14767
  } else {
14768
14768
  top3 = (this.visibleTop - line2.top - marginHeight) / line2.height;
14769
- bot = (this.visibleBottom - line2.top + marginHeight) / line2.height;
14769
+ bot2 = (this.visibleBottom - line2.top + marginHeight) / line2.height;
14770
14770
  }
14771
14771
  viewFrom = findPosition(structure, top3);
14772
- viewTo = findPosition(structure, bot);
14772
+ viewTo = findPosition(structure, bot2);
14773
14773
  } else {
14774
14774
  let totalWidth = structure.total * this.heightOracle.charWidth;
14775
14775
  let marginWidth = margin * this.heightOracle.charWidth;
@@ -27780,7 +27780,7 @@ var dataTypes = /* @__PURE__ */ foldrArray(Cons)(Nil)([
27780
27780
  /* @__PURE__ */ dataType("View")([
27781
27781
  /* @__PURE__ */ $Tuple("BarChart", 1),
27782
27782
  /* @__PURE__ */ $Tuple("LineChart", 1),
27783
- /* @__PURE__ */ $Tuple("LinkedText", 1),
27783
+ /* @__PURE__ */ $Tuple("Paragraph", 1),
27784
27784
  /* @__PURE__ */ $Tuple("MultiView", 1),
27785
27785
  /* @__PURE__ */ $Tuple("ScatterPlot", 1)
27786
27786
  ]),
@@ -27793,11 +27793,12 @@ var dataTypes = /* @__PURE__ */ foldrArray(Cons)(Nil)([
27793
27793
  /* @__PURE__ */ $Tuple("Polyline", 3),
27794
27794
  /* @__PURE__ */ $Tuple("Polymarkers", 2),
27795
27795
  /* @__PURE__ */ $Tuple("Rect", 5),
27796
- /* @__PURE__ */ $Tuple("Text", 5),
27796
+ /* @__PURE__ */ $Tuple("String", 5),
27797
27797
  /* @__PURE__ */ $Tuple("Viewport", 9)
27798
27798
  ]),
27799
27799
  /* @__PURE__ */ dataType("Transform")([/* @__PURE__ */ $Tuple("Scale", 2), /* @__PURE__ */ $Tuple("Translate", 2)]),
27800
- /* @__PURE__ */ dataType("Marker")([/* @__PURE__ */ $Tuple("Arrowhead", 0)])
27800
+ /* @__PURE__ */ dataType("Marker")([/* @__PURE__ */ $Tuple("Arrowhead", 0)]),
27801
+ /* @__PURE__ */ dataType("TextFragment")([/* @__PURE__ */ $Tuple("Text", 1), /* @__PURE__ */ $Tuple("Link", 2)])
27801
27802
  ]);
27802
27803
  var ctrToDataType = /* @__PURE__ */ (() => fromFoldable(foldableList)(bindList.bind(listMap((d) => listMap((v) => $Tuple(
27803
27804
  v,
@@ -32336,12 +32337,12 @@ var anon = (v) => {
32336
32337
  fail();
32337
32338
  };
32338
32339
  var orElseBwd = (dictBoundedJoinSemilattice) => {
32339
- const bot = dictBoundedJoinSemilattice.bot;
32340
+ const bot2 = dictBoundedJoinSemilattice.bot;
32340
32341
  const $0 = dictBoundedJoinSemilattice.JoinSemilattice0();
32341
32342
  return (v) => (ks) => {
32342
32343
  if (v._1.tag === "Nil") {
32343
32344
  if (ks._1._1.tag === "Nil" && ks._2.tag === "Nil") {
32344
- return $Tuple(bot, ks._1._2);
32345
+ return $Tuple(bot2, ks._1._2);
32345
32346
  }
32346
32347
  fail();
32347
32348
  }
@@ -32349,7 +32350,7 @@ var orElseBwd = (dictBoundedJoinSemilattice) => {
32349
32350
  const $1 = v._1._2;
32350
32351
  const popIfPresent = (v1) => (v2) => {
32351
32352
  if (v1.tag === "Nil") {
32352
- return $Tuple(bot, v2);
32353
+ return $Tuple(bot2, v2);
32353
32354
  }
32354
32355
  const v3 = unsnoc3(v2);
32355
32356
  const v4 = unsnoc3(nonEmptyListNonEmptyList.nonEmpty(v1));
@@ -34735,32 +34736,32 @@ var joinSemilatticeDictRep = (dictJoinSemilattice) => ({
34735
34736
  }
34736
34737
  });
34737
34738
  var joinSemilatticeBaseVal = (dictJoinSemilattice) => {
34738
- const join3 = dictJoinSemilattice.join;
34739
+ const join4 = dictJoinSemilattice.join;
34739
34740
  return {
34740
34741
  join: (v) => (v1) => {
34741
34742
  if (v.tag === "Int") {
34742
34743
  if (v1.tag === "Int") {
34743
34744
  return $BaseVal("Int", mustEq(eqInt)(showInt)(v._1)(v1._1));
34744
34745
  }
34745
- return applyBaseVal.apply(functorBaseVal.map(join3)(v))(v1);
34746
+ return applyBaseVal.apply(functorBaseVal.map(join4)(v))(v1);
34746
34747
  }
34747
34748
  if (v.tag === "Float") {
34748
34749
  if (v1.tag === "Float") {
34749
34750
  return $BaseVal("Float", mustEq(eqNumber)(showNumber)(v._1)(v1._1));
34750
34751
  }
34751
- return applyBaseVal.apply(functorBaseVal.map(join3)(v))(v1);
34752
+ return applyBaseVal.apply(functorBaseVal.map(join4)(v))(v1);
34752
34753
  }
34753
34754
  if (v.tag === "Str") {
34754
34755
  if (v1.tag === "Str") {
34755
34756
  return $BaseVal("Str", mustEq(eqString)(showString)(v._1)(v1._1));
34756
34757
  }
34757
- return applyBaseVal.apply(functorBaseVal.map(join3)(v))(v1);
34758
+ return applyBaseVal.apply(functorBaseVal.map(join4)(v))(v1);
34758
34759
  }
34759
34760
  if (v.tag === "Dictionary") {
34760
34761
  if (v1.tag === "Dictionary") {
34761
34762
  return $BaseVal("Dictionary", joinSemilatticeDictRep(dictJoinSemilattice).join(v._1)(v1._1));
34762
34763
  }
34763
- return applyBaseVal.apply(functorBaseVal.map(join3)(v))(v1);
34764
+ return applyBaseVal.apply(functorBaseVal.map(join4)(v))(v1);
34764
34765
  }
34765
34766
  if (v.tag === "Constr") {
34766
34767
  if (v1.tag === "Constr") {
@@ -34770,18 +34771,18 @@ var joinSemilatticeBaseVal = (dictJoinSemilattice) => {
34770
34771
  joinSemilatticeList(joinSemilatticeVal(dictJoinSemilattice)).join(v._2)(v1._2)
34771
34772
  );
34772
34773
  }
34773
- return applyBaseVal.apply(functorBaseVal.map(join3)(v))(v1);
34774
+ return applyBaseVal.apply(functorBaseVal.map(join4)(v))(v1);
34774
34775
  }
34775
34776
  if (v.tag === "Matrix") {
34776
34777
  if (v1.tag === "Matrix") {
34777
34778
  return $BaseVal("Matrix", joinSemilatticeMatrixRep(dictJoinSemilattice).join(v._1)(v1._1));
34778
34779
  }
34779
- return applyBaseVal.apply(functorBaseVal.map(join3)(v))(v1);
34780
+ return applyBaseVal.apply(functorBaseVal.map(join4)(v))(v1);
34780
34781
  }
34781
34782
  if (v.tag === "Fun" && v1.tag === "Fun") {
34782
34783
  return $BaseVal("Fun", joinSemilatticeFun(dictJoinSemilattice).join(v._1)(v1._1));
34783
34784
  }
34784
- return applyBaseVal.apply(functorBaseVal.map(join3)(v))(v1);
34785
+ return applyBaseVal.apply(functorBaseVal.map(join4)(v))(v1);
34785
34786
  }
34786
34787
  };
34787
34788
  };
@@ -34864,11 +34865,11 @@ var string2 = {
34864
34865
  }
34865
34866
  };
34866
34867
  var unary = (dictBoundedJoinSemilattice) => {
34867
- const bot = dictBoundedJoinSemilattice.bot;
34868
+ const bot2 = dictBoundedJoinSemilattice.bot;
34868
34869
  return (id3) => (f) => $Tuple(
34869
34870
  id3,
34870
34871
  $Val(
34871
- bot,
34872
+ bot2,
34872
34873
  $BaseVal(
34873
34874
  "Fun",
34874
34875
  $Fun(
@@ -35021,11 +35022,11 @@ var $$boolean = {
35021
35022
  }
35022
35023
  };
35023
35024
  var binaryZero = (dictBoundedJoinSemilattice) => {
35024
- const bot = dictBoundedJoinSemilattice.bot;
35025
+ const bot2 = dictBoundedJoinSemilattice.bot;
35025
35026
  return (dictIsZero) => (id3) => (f) => $Tuple(
35026
35027
  id3,
35027
35028
  $Val(
35028
- bot,
35029
+ bot2,
35029
35030
  $BaseVal(
35030
35031
  "Fun",
35031
35032
  $Fun(
@@ -35109,11 +35110,11 @@ var binaryZero = (dictBoundedJoinSemilattice) => {
35109
35110
  );
35110
35111
  };
35111
35112
  var binary = (dictBoundedJoinSemilattice) => {
35112
- const bot = dictBoundedJoinSemilattice.bot;
35113
+ const bot2 = dictBoundedJoinSemilattice.bot;
35113
35114
  return (id3) => (f) => $Tuple(
35114
35115
  id3,
35115
35116
  $Val(
35116
- bot,
35117
+ bot2,
35117
35118
  $BaseVal(
35118
35119
  "Fun",
35119
35120
  $Fun(
@@ -35267,6 +35268,23 @@ var reflectDictSelState\u{1D54A}$x215ValS = {
35267
35268
  })()
35268
35269
  })
35269
35270
  };
35271
+ var meetSemilatticeSelState = (dictMeetSemilattice) => ({
35272
+ meet: (v) => (v1) => {
35273
+ if (v1.tag === "Inert") {
35274
+ return Inert;
35275
+ }
35276
+ if (v.tag === "Inert") {
35277
+ return Inert;
35278
+ }
35279
+ if (v.tag === "Reactive" && v1.tag === "Reactive") {
35280
+ return $SelState(
35281
+ "Reactive",
35282
+ { persistent: dictMeetSemilattice.meet(v._1.persistent)(v1._1.persistent), transient: dictMeetSemilattice.meet(v._1.transient)(v1._1.transient) }
35283
+ );
35284
+ }
35285
+ fail();
35286
+ }
35287
+ });
35270
35288
  var highlightableSelState = (dictHighlightable) => (dictJoinSemilattice) => ({
35271
35289
  highlightIf: (v) => {
35272
35290
  if (v.tag === "Inert") {
@@ -35316,6 +35334,24 @@ var functorSelState = {
35316
35334
  fail();
35317
35335
  }
35318
35336
  };
35337
+ var boundedJoinSemilatticeSel = (dictBoundedJoinSemilattice) => {
35338
+ const $0 = dictBoundedJoinSemilattice.JoinSemilattice0();
35339
+ const joinSemilatticeSelState1 = {
35340
+ join: (v) => (v1) => {
35341
+ if (v1.tag === "Inert") {
35342
+ return v;
35343
+ }
35344
+ if (v.tag === "Inert") {
35345
+ return v1;
35346
+ }
35347
+ if (v.tag === "Reactive" && v1.tag === "Reactive") {
35348
+ return $SelState("Reactive", { persistent: $0.join(v._1.persistent)(v1._1.persistent), transient: $0.join(v._1.transient)(v1._1.transient) });
35349
+ }
35350
+ fail();
35351
+ }
35352
+ };
35353
+ return { bot: Inert, JoinSemilattice0: () => joinSemilatticeSelState1 };
35354
+ };
35319
35355
  var applySelState = {
35320
35356
  apply: (v) => (v1) => {
35321
35357
  if (v.tag === "Inert") {
@@ -35331,12 +35367,6 @@ var applySelState = {
35331
35367
  },
35332
35368
  Functor0: () => functorSelState
35333
35369
  };
35334
- var joinSemilatticeSelState = (dictJoinSemilattice) => ({
35335
- join: (() => {
35336
- const $0 = dictJoinSemilattice.join;
35337
- return (a) => (b) => applySelState.apply(functorSelState.map($0)(a))(b);
35338
- })()
35339
- });
35340
35370
  var to\u{1D54A} = (v) => {
35341
35371
  if (v) {
35342
35372
  return Primary;
@@ -35494,6 +35524,7 @@ var joinSemilattice\u{1D54A} = {
35494
35524
  fail();
35495
35525
  }
35496
35526
  };
35527
+ var boundedJoinSemilattice\u{1D54A} = { bot: None, JoinSemilattice0: () => joinSemilattice\u{1D54A} };
35497
35528
  var isPersistent = (x2) => compare$p((() => {
35498
35529
  if (x2.tag === "Inert") {
35499
35530
  return None;
@@ -36309,13 +36340,27 @@ var $Direction = (tag) => tag;
36309
36340
  var for_2 = /* @__PURE__ */ for_(applicativeEffect)(foldableArray);
36310
36341
  var LinkedInputs = /* @__PURE__ */ $Direction("LinkedInputs");
36311
36342
  var LinkedOutputs = /* @__PURE__ */ $Direction("LinkedOutputs");
36312
- var uiHelpers = /* @__PURE__ */ (() => ({
36343
+ var uiHelpers = {
36313
36344
  val: fst,
36314
36345
  selState: snd,
36315
- join: joinSemilatticeSelState(joinSemilattice\u{1D54A}).join,
36346
+ join: (v) => (v1) => {
36347
+ if (v1.tag === "Inert") {
36348
+ return v;
36349
+ }
36350
+ if (v.tag === "Inert") {
36351
+ return v1;
36352
+ }
36353
+ if (v.tag === "Reactive" && v1.tag === "Reactive") {
36354
+ return $SelState(
36355
+ "Reactive",
36356
+ { persistent: joinSemilattice\u{1D54A}.join(v._1.persistent)(v1._1.persistent), transient: joinSemilattice\u{1D54A}.join(v._1.transient)(v1._1.transient) }
36357
+ );
36358
+ }
36359
+ fail();
36360
+ },
36316
36361
  selClasses,
36317
36362
  selClassesFor
36318
- }))();
36363
+ };
36319
36364
  var selListener = (figVal) => (redraw) => (selector2) => eventListener((x2) => {
36320
36365
  const $0 = selectionEventData(x2);
36321
36366
  return redraw(figVal(selector2($0._1)($0._2)));
@@ -36593,7 +36638,22 @@ var reflectDictSelState\u{1D54A}$x215ValS23 = { from: () => (r) => ({ x: get_int
36593
36638
 
36594
36639
  // output-es/App.View.LineChart/index.js
36595
36640
  var identity27 = (x2) => x2;
36596
- var join = /* @__PURE__ */ (() => joinSemilatticeSelState(joinSemilattice\u{1D54A}).join)();
36641
+ var join = (v) => (v1) => {
36642
+ if (v1.tag === "Inert") {
36643
+ return v;
36644
+ }
36645
+ if (v.tag === "Inert") {
36646
+ return v1;
36647
+ }
36648
+ if (v.tag === "Reactive" && v1.tag === "Reactive") {
36649
+ return $SelState(
36650
+ "Reactive",
36651
+ { persistent: joinSemilattice\u{1D54A}.join(v._1.persistent)(v1._1.persistent), transient: joinSemilattice\u{1D54A}.join(v._1.transient)(v1._1.transient) }
36652
+ );
36653
+ }
36654
+ fail();
36655
+ };
36656
+ var meet = /* @__PURE__ */ (() => meetSemilatticeSelState(meetSemilattice\u{1D54A}).meet)();
36597
36657
  var for_3 = /* @__PURE__ */ for_(applicativeEffect)(foldableArray);
36598
36658
  var minimum2 = /* @__PURE__ */ minimum(ordNumber)(foldable1NonEmptyArray);
36599
36659
  var maximum2 = /* @__PURE__ */ maximum(ordNumber)(foldable1NonEmptyArray);
@@ -36682,9 +36742,13 @@ var setSelState2 = (v) => (redraw) => (rootElement) => {
36682
36742
  const segment$p = $2();
36683
36743
  const v2 = definitely("index within bounds")(index($0)(segment$p.i));
36684
36744
  return attrs(segment)(fromFoldable10((() => {
36685
- const $3 = definitely("index within bounds")(index(v2.points)(segment$p.j1));
36686
- const $4 = definitely("index within bounds")(index(v2.points)(segment$p.j2));
36687
- const sel = applySelState.apply(functorSelState.map(meetSemilattice\u{1D54A}.meet)(join($3.x._2)($3.y._2)))(join($4.x._2)($4.y._2));
36745
+ const sel = meet((() => {
36746
+ const $3 = definitely("index within bounds")(index(v2.points)(segment$p.j1));
36747
+ return join($3.x._2)($3.y._2);
36748
+ })())((() => {
36749
+ const $3 = definitely("index within bounds")(index(v2.points)(segment$p.j2));
36750
+ return join($3.x._2)($3.y._2);
36751
+ })());
36688
36752
  return [
36689
36753
  $Tuple(
36690
36754
  "stroke",
@@ -36893,87 +36957,8 @@ var drawableLineChart = {
36893
36957
  }
36894
36958
  };
36895
36959
 
36896
- // output-es/App.View.LinkedText/index.js
36897
- var for_4 = /* @__PURE__ */ for_(applicativeEffect)(foldableArray);
36898
- var forWithIndex_2 = /* @__PURE__ */ forWithIndex_(applicativeEffect)(foldableWithIndexArray);
36899
- var reflectValSelState\u{1D54A}Linked = {
36900
- from: () => (r) => arrayMap((v) => $Tuple(v._2.tag === "Str" ? v._2._1 : typeError(v._2)("Str"), v._1))(reflectValSelState\u{1D54A}ArrayV.from()(r))
36901
- };
36902
- var setSelState3 = (v) => (redraw) => (rootElement) => {
36903
- const $0 = selectAll2(".linked-text")(rootElement);
36904
- return () => {
36905
- const elems$p = $0();
36906
- return for_4(elems$p)((elem2) => {
36907
- const $1 = datum2(elem2);
36908
- return () => {
36909
- const v1 = $1();
36910
- const $2 = definitely("index within bounds")(index(v)(v1.i));
36911
- const $3 = styles(elem2)(fromFoldable10([
36912
- $Tuple("border-bottom", isTransient($2._2) ? "1px solid blue" : "none"),
36913
- $Tuple(
36914
- "background",
36915
- (() => {
36916
- if (isPrimary($2._2) && isPersistent($2._2)) {
36917
- return "#93E9BE";
36918
- }
36919
- if (isSecondary($2._2) && isPersistent($2._2)) {
36920
- return "rgb(226, 226, 226)";
36921
- }
36922
- return "white";
36923
- })()
36924
- ),
36925
- $Tuple(
36926
- "color",
36927
- (() => {
36928
- if (isPrimary($2._2) && isTransient($2._2)) {
36929
- return "blue";
36930
- }
36931
- if (isSecondary($2._2) && isTransient($2._2)) {
36932
- return "royalblue";
36933
- }
36934
- return "black";
36935
- })()
36936
- )
36937
- ]))();
36938
- return for_2(["mousedown", "mouseenter", "mouseleave"])((ev) => on(ev)(redraw)($3))();
36939
- };
36940
- })();
36941
- };
36942
- };
36943
- var createRootElement2 = (v) => (div) => (childId) => {
36944
- const $0 = createChild(div)(showElementType.show(Text2))(fromFoldable10([
36945
- classes(["linked-text-parent"]),
36946
- $Tuple("id", childId)
36947
- ]));
36948
- return () => {
36949
- const rootElement = $0();
36950
- forWithIndex_2(v)((i) => (elem2) => {
36951
- const $1 = createChild(rootElement)(showElementType.show(Text2))(fromFoldable10([
36952
- classes(["linked-text"]),
36953
- $Tuple("id", childId)
36954
- ]));
36955
- return () => {
36956
- const elem$p = $1();
36957
- const $2 = setText(elem2._1)(elem$p)();
36958
- return setDatum({ i })($2)();
36959
- };
36960
- })();
36961
- return rootElement;
36962
- };
36963
- };
36964
- var drawable2LinkedText = { createRootElement: createRootElement2, setSelState: setSelState3 };
36965
- var drawableLinkedText = {
36966
- draw: (rSpec) => (figVal) => (v) => (redraw) => {
36967
- const $0 = selListener(figVal)(redraw)((v1) => (x2) => constrArg("LinkedText")(0)(listElement(v1.i)(x2)));
36968
- return () => {
36969
- const $1 = $0();
36970
- return draw$p(drawable2LinkedText)(uiHelpers)(rSpec)($1)();
36971
- };
36972
- }
36973
- };
36974
-
36975
36960
  // output-es/App.View.MatrixView/foreign.js
36976
- function setSelState4({
36961
+ function setSelState3({
36977
36962
  hBorderStyles,
36978
36963
  vBorderStyles
36979
36964
  }, {
@@ -37051,7 +37036,7 @@ function drawMatrix_(matrixViewHelpers2, uiHelpers2, {
37051
37036
  select_default2(this).selectAll("line").data(range3(matrix.j + 1).map((j) => ({ i: d, j }))).enter().append("line").attr("x1", ({ j }) => j * w).attr("y1", ({ i }) => (i - 1) * h).attr("x2", ({ j }) => j * w).attr("y2", ({ i }) => i * h).attr("class", "matrix-cell-vBorder");
37052
37037
  });
37053
37038
  }
37054
- setSelState4(matrixViewHelpers2, uiHelpers2, rootElement, { matrix }, listener);
37039
+ setSelState3(matrixViewHelpers2, uiHelpers2, rootElement, { matrix }, listener);
37055
37040
  };
37056
37041
  }
37057
37042
  var drawMatrix = (x1) => (x2) => (x3) => (x4) => drawMatrix_(x1, x2, x3, x4);
@@ -37129,16 +37114,174 @@ var drawableMultiView = {
37129
37114
  }
37130
37115
  };
37131
37116
 
37117
+ // output-es/App.View.Paragraph/index.js
37118
+ var $TextFragment = (tag, _1, _2) => ({ tag, _1, _2 });
37119
+ var join2 = (v) => (v1) => {
37120
+ if (v1.tag === "Inert") {
37121
+ return v;
37122
+ }
37123
+ if (v.tag === "Inert") {
37124
+ return v1;
37125
+ }
37126
+ if (v.tag === "Reactive" && v1.tag === "Reactive") {
37127
+ return $SelState(
37128
+ "Reactive",
37129
+ { persistent: joinSemilattice\u{1D54A}.join(v._1.persistent)(v1._1.persistent), transient: joinSemilattice\u{1D54A}.join(v._1.transient)(v1._1.transient) }
37130
+ );
37131
+ }
37132
+ fail();
37133
+ };
37134
+ var bot = /* @__PURE__ */ (() => boundedJoinSemilatticeSel(boundedJoinSemilattice\u{1D54A}).bot)();
37135
+ var for_4 = /* @__PURE__ */ for_(applicativeEffect)(foldableArray);
37136
+ var forWithIndex_2 = /* @__PURE__ */ forWithIndex_(applicativeEffect)(foldableWithIndexArray);
37137
+ var textFragment = {
37138
+ pack: (v) => {
37139
+ if (v.tag === "TextFragment") {
37140
+ return $BaseVal("Constr", "Text", $List("Cons", $Val(v._1._2, $BaseVal("Str", v._1._1)), Nil));
37141
+ }
37142
+ if (v.tag === "Link") {
37143
+ return $BaseVal(
37144
+ "Constr",
37145
+ "Link",
37146
+ $List("Cons", v._1, $List("Cons", $Val(v._2._2, $BaseVal("Str", v._2._1)), Nil))
37147
+ );
37148
+ }
37149
+ fail();
37150
+ },
37151
+ unpack: (v) => {
37152
+ if (v.tag === "Constr" && v._2.tag === "Cons") {
37153
+ if (v._2._1._2.tag === "Str" && v._2._2.tag === "Nil") {
37154
+ if (v._1 === "Text") {
37155
+ return $TextFragment("TextFragment", $Tuple(v._2._1._2._1, v._2._1._1));
37156
+ }
37157
+ return typeError(v)("TextFragment");
37158
+ }
37159
+ if (v._2._2.tag === "Cons" && v._2._2._1._2.tag === "Str" && v._2._2._2.tag === "Nil" && v._1 === "Link") {
37160
+ return $TextFragment("Link", $Val(v._2._1._1, v._2._1._2), $Tuple(v._2._2._1._2._1, v._2._2._1._1));
37161
+ }
37162
+ }
37163
+ return typeError(v)("TextFragment");
37164
+ }
37165
+ };
37166
+ var reflectValSelState\u{1D54A}Paragr = { from: () => (r) => arrayMap((x2) => textFragment.unpack(x2._2))(reflectValSelState\u{1D54A}ArrayV.from()(r)) };
37167
+ var selTextFragment = (v) => (x2) => constrArg("Paragraph")(0)(listElement(v.i)((v1) => {
37168
+ if (v1._2.tag === "Constr" && v1._2._2.tag === "Cons") {
37169
+ if (v1._2._2._2.tag === "Nil") {
37170
+ if (v1._2._1 === "Text") {
37171
+ return $Val(v1._1, $BaseVal("Constr", v1._2._1, $List("Cons", x2(v1._2._2._1), Nil)));
37172
+ }
37173
+ fail();
37174
+ }
37175
+ if (v1._2._2._2.tag === "Cons" && v1._2._2._2._2.tag === "Nil" && v1._2._1 === "Link") {
37176
+ return $Val(
37177
+ v1._1,
37178
+ $BaseVal("Constr", v1._2._1, $List("Cons", x2(v1._2._2._1), $List("Cons", v1._2._2._2._1, Nil)))
37179
+ );
37180
+ }
37181
+ }
37182
+ fail();
37183
+ }));
37184
+ var getText = (elems) => (i) => {
37185
+ const v = definitely("index within bounds")(index(elems)(i));
37186
+ if (v.tag === "TextFragment") {
37187
+ return v._1;
37188
+ }
37189
+ if (v.tag === "Link") {
37190
+ return $Tuple(v._2._1, join2(v._1._1)(foldableBaseVal.foldr(join2)(bot)(v._1._2)));
37191
+ }
37192
+ fail();
37193
+ };
37194
+ var setSelState4 = (v) => (redraw) => (rootElement) => {
37195
+ const $0 = selectAll2(".text-fragment")(rootElement);
37196
+ return () => {
37197
+ const elems$p = $0();
37198
+ return for_4(elems$p)((elem2) => {
37199
+ const $1 = datum2(elem2);
37200
+ return () => {
37201
+ const v1 = $1();
37202
+ const $2 = getText(v)(v1.i);
37203
+ const $3 = styles(elem2)(fromFoldable10([
37204
+ $Tuple("border-bottom", isTransient($2._2) ? "1px solid blue" : "none"),
37205
+ $Tuple(
37206
+ "background",
37207
+ (() => {
37208
+ if (isPrimary($2._2) && isPersistent($2._2)) {
37209
+ return "#93E9BE";
37210
+ }
37211
+ if (isSecondary($2._2) && isPersistent($2._2)) {
37212
+ return "rgb(226, 226, 226)";
37213
+ }
37214
+ return "white";
37215
+ })()
37216
+ ),
37217
+ $Tuple(
37218
+ "color",
37219
+ (() => {
37220
+ if (isPrimary($2._2) && isTransient($2._2)) {
37221
+ return "blue";
37222
+ }
37223
+ if (isSecondary($2._2) && isTransient($2._2)) {
37224
+ return "royalblue";
37225
+ }
37226
+ return "black";
37227
+ })()
37228
+ )
37229
+ ]))();
37230
+ return for_2(["mousedown", "mouseenter", "mouseleave"])((ev) => on(ev)(redraw)($3))();
37231
+ };
37232
+ })();
37233
+ };
37234
+ };
37235
+ var createRootElement2 = (v) => (div) => (childId) => {
37236
+ const $0 = createChild(div)(showElementType.show(Text2))(fromFoldable10([
37237
+ classes(["paragraph"]),
37238
+ $Tuple("id", childId)
37239
+ ]));
37240
+ return () => {
37241
+ const rootElement = $0();
37242
+ forWithIndex_2(v)((i) => (elem2) => {
37243
+ const $1 = createChild(rootElement)(showElementType.show(Text2))(fromFoldable10([
37244
+ classes(["text-fragment"]),
37245
+ $Tuple("id", childId)
37246
+ ]));
37247
+ return () => {
37248
+ const elem$p = $1();
37249
+ const $2 = setText((() => {
37250
+ if (elem2.tag === "TextFragment") {
37251
+ return elem2._1._1;
37252
+ }
37253
+ if (elem2.tag === "Link") {
37254
+ return elem2._2._1;
37255
+ }
37256
+ fail();
37257
+ })())(elem$p)();
37258
+ return setDatum({ i })($2)();
37259
+ };
37260
+ })();
37261
+ return rootElement;
37262
+ };
37263
+ };
37264
+ var drawable2ParagraphSelStat = { createRootElement: createRootElement2, setSelState: setSelState4 };
37265
+ var drawableParagraphSelState = {
37266
+ draw: (rSpec) => (figVal) => (v) => (redraw) => {
37267
+ const $0 = selListener(figVal)(redraw)((v1) => selTextFragment({ i: v1.i }));
37268
+ return () => {
37269
+ const $1 = $0();
37270
+ return draw$p(drawable2ParagraphSelStat)(uiHelpers)(rSpec)($1)();
37271
+ };
37272
+ }
37273
+ };
37274
+
37132
37275
  // output-es/App.View.ScatterPlot/foreign.js
37133
37276
  function setSelState5({ point_attrs }, {
37134
37277
  selState: selState2,
37135
37278
  selClasses: selClasses2,
37136
37279
  selClassesFor: selClassesFor2,
37137
- join: join3
37280
+ join: join4
37138
37281
  }, rootElement, chart, listener) {
37139
37282
  const { points } = chart;
37140
37283
  rootElement.selectAll(".scatterplot-point").each(function(point2) {
37141
- const sel = join3(selState2(points[point2.i].x))(selState2(points[point2.i].y));
37284
+ const sel = join4(selState2(points[point2.i].x))(selState2(points[point2.i].y));
37142
37285
  select_default2(this).classed(selClasses2, false).classed(selClassesFor2(sel), true).attrs(point_attrs(chart)(point2)).on("mousedown", (e) => {
37143
37286
  listener(e);
37144
37287
  }).on("mouseenter", (e) => {
@@ -37193,7 +37336,21 @@ function drawScatterPlot_(scatterPlotHelpers2, uiHelpers2, {
37193
37336
  var drawScatterPlot = (x1) => (x2) => (x3) => (x4) => drawScatterPlot_(x1, x2, x3, x4);
37194
37337
 
37195
37338
  // output-es/App.View.ScatterPlot/index.js
37196
- var join2 = /* @__PURE__ */ (() => joinSemilatticeSelState(joinSemilattice\u{1D54A}).join)();
37339
+ var join3 = (v) => (v1) => {
37340
+ if (v1.tag === "Inert") {
37341
+ return v;
37342
+ }
37343
+ if (v.tag === "Inert") {
37344
+ return v1;
37345
+ }
37346
+ if (v.tag === "Reactive" && v1.tag === "Reactive") {
37347
+ return $SelState(
37348
+ "Reactive",
37349
+ { persistent: joinSemilattice\u{1D54A}.join(v._1.persistent)(v1._1.persistent), transient: joinSemilattice\u{1D54A}.join(v._1.transient)(v1._1.transient) }
37350
+ );
37351
+ }
37352
+ fail();
37353
+ };
37197
37354
  var fromFoldable17 = /* @__PURE__ */ fromFoldable(foldableArray);
37198
37355
  var reflectDictSelState\u{1D54A}$x215ValS5 = {
37199
37356
  from: () => (r) => ({
@@ -37208,7 +37365,7 @@ var reflectDictSelState\u{1D54A}$x215ValS5 = {
37208
37365
  var scatterPlotHelpers = {
37209
37366
  point_attrs: (v) => (v1) => {
37210
37367
  const v2 = definitely("index within bounds")(index(v.points)(v1.i));
37211
- const sel = join2(v2.x._2)(v2.y._2);
37368
+ const sel = join3(v2.x._2)(v2.y._2);
37212
37369
  return fromFoldable17([
37213
37370
  $Tuple(
37214
37371
  "r",
@@ -37531,7 +37688,7 @@ var arrayDictToArray2 = (x2) => arrayMap((a) => arrayMap((a$1) => $$get2(showStr
37531
37688
  var pack = (x2) => (k) => k(drawableBarChart)(x2);
37532
37689
  var pack1 = (x2) => (k) => k(drawableLineChart)(x2);
37533
37690
  var pack2 = (x2) => (k) => k(drawableScatterPlot)(x2);
37534
- var pack3 = (x2) => (k) => k(drawableLinkedText)(x2);
37691
+ var pack3 = (x2) => (k) => k(drawableParagraphSelState)(x2);
37535
37692
  var pack4 = (x2) => (k) => k(drawableMultiView)(x2);
37536
37693
  var identity28 = (x2) => x2;
37537
37694
  var pack5 = (x2) => (k) => k(drawableTableView)(x2);
@@ -37548,8 +37705,8 @@ var view = () => (v) => (v1) => (v2) => {
37548
37705
  if (v1._2._1 === "ScatterPlot") {
37549
37706
  return pack2(dict(reflectDictSelState\u{1D54A}$x215ValS5.from())(v1._2._2._1));
37550
37707
  }
37551
- if (v1._2._1 === "LinkedText") {
37552
- return pack3(reflectValSelState\u{1D54A}Linked.from()(v1._2._2._1));
37708
+ if (v1._2._1 === "Paragraph") {
37709
+ return pack3(reflectValSelState\u{1D54A}Paragr.from()(v1._2._2._1));
37553
37710
  }
37554
37711
  if (v1._2._1 === "MultiView") {
37555
37712
  const vws = _fmapObject(
@@ -42772,7 +42929,7 @@ var matrixUpdate = /* @__PURE__ */ $Tuple(
42772
42929
  },
42773
42930
  op_bwd: (dictAnn) => {
42774
42931
  const BoundedJoinSemilattice0 = dictAnn.BoundedLattice1().BoundedJoinSemilattice0();
42775
- const bot = BoundedJoinSemilattice0.bot;
42932
+ const bot2 = BoundedJoinSemilattice0.bot;
42776
42933
  return (v) => {
42777
42934
  if (v._2._2.tag === "Matrix") {
42778
42935
  return $List(
@@ -42791,14 +42948,14 @@ var matrixUpdate = /* @__PURE__ */ $Tuple(
42791
42948
  $List(
42792
42949
  "Cons",
42793
42950
  $Val(
42794
- bot,
42951
+ bot2,
42795
42952
  $BaseVal(
42796
42953
  "Constr",
42797
42954
  "Pair",
42798
42955
  $List(
42799
42956
  "Cons",
42800
- $Val(bot, $BaseVal("Int", v._1._1._1)),
42801
- $List("Cons", $Val(bot, $BaseVal("Int", v._1._1._2)), Nil)
42957
+ $Val(bot2, $BaseVal("Int", v._1._1._1)),
42958
+ $List("Cons", $Val(bot2, $BaseVal("Int", v._1._1._2)), Nil)
42802
42959
  )
42803
42960
  )
42804
42961
  ),
@@ -42841,13 +42998,13 @@ var matrixLookup = /* @__PURE__ */ $Tuple(
42841
42998
  },
42842
42999
  op_bwd: (dictAnn) => {
42843
43000
  const BoundedJoinSemilattice0 = dictAnn.BoundedLattice1().BoundedJoinSemilattice0();
42844
- const bot = BoundedJoinSemilattice0.bot;
43001
+ const bot2 = BoundedJoinSemilattice0.bot;
42845
43002
  return (v) => {
42846
43003
  const $0 = v._2;
42847
43004
  return $List(
42848
43005
  "Cons",
42849
43006
  $Val(
42850
- bot,
43007
+ bot2,
42851
43008
  $BaseVal(
42852
43009
  "Matrix",
42853
43010
  matrixPut(v._1._2._1)(v._1._2._2)((v$1) => $0)(functorMatrixRep.map((() => {
@@ -42859,14 +43016,14 @@ var matrixLookup = /* @__PURE__ */ $Tuple(
42859
43016
  $List(
42860
43017
  "Cons",
42861
43018
  $Val(
42862
- bot,
43019
+ bot2,
42863
43020
  $BaseVal(
42864
43021
  "Constr",
42865
43022
  "Pair",
42866
43023
  $List(
42867
43024
  "Cons",
42868
- $Val(bot, $BaseVal("Int", v._1._2._1)),
42869
- $List("Cons", $Val(bot, $BaseVal("Int", v._1._2._2)), Nil)
43025
+ $Val(bot2, $BaseVal("Int", v._1._2._1)),
43026
+ $List("Cons", $Val(bot2, $BaseVal("Int", v._1._2._2)), Nil)
42870
43027
  )
42871
43028
  )
42872
43029
  ),
@@ -42891,8 +43048,8 @@ var lessThan = /* @__PURE__ */ union5(asBooleanBoolean)(asBooleanBoolean)(asIntN
42891
43048
  var greaterThanEquals = /* @__PURE__ */ union5(asBooleanBoolean)(asBooleanBoolean)(asIntNumberOrString)(asIntNumberOrString)((a1) => (a2) => a1 >= a2)(/* @__PURE__ */ union5(asBooleanBoolean)(asBooleanBoolean)(asNumberString)(asNumberString)((a1) => (a2) => a1 >= a2)((a1) => (a2) => a1 >= a2));
42892
43049
  var greaterThan = /* @__PURE__ */ union5(asBooleanBoolean)(asBooleanBoolean)(asIntNumberOrString)(asIntNumberOrString)((a1) => (a2) => a1 > a2)(/* @__PURE__ */ union5(asBooleanBoolean)(asBooleanBoolean)(asNumberString)(asNumberString)((a1) => (a2) => a1 > a2)((a1) => (a2) => a1 > a2));
42893
43050
  var extern = (dictBoundedJoinSemilattice) => {
42894
- const bot = dictBoundedJoinSemilattice.bot;
42895
- return (v) => $Tuple(v._1, $Val(bot, $BaseVal("Fun", $Fun("Foreign", $Tuple(v._1, v._2), Nil))));
43051
+ const bot2 = dictBoundedJoinSemilattice.bot;
43052
+ return (v) => $Tuple(v._1, $Val(bot2, $BaseVal("Fun", $Fun("Foreign", $Tuple(v._1, v._2), Nil))));
42896
43053
  };
42897
43054
  var extern1 = /* @__PURE__ */ extern(boundedJoinSemilatticeUni);
42898
43055
  var error_ = /* @__PURE__ */ $Tuple(
@@ -43217,21 +43374,21 @@ var dict_get = /* @__PURE__ */ $Tuple(
43217
43374
  };
43218
43375
  },
43219
43376
  op_bwd: (dictAnn) => {
43220
- const bot = dictAnn.BoundedLattice1().BoundedJoinSemilattice0().bot;
43377
+ const bot2 = dictAnn.BoundedLattice1().BoundedJoinSemilattice0().bot;
43221
43378
  return (v) => {
43222
43379
  const $0 = v._1;
43223
43380
  return $List(
43224
43381
  "Cons",
43225
- $Val(bot, $BaseVal("Str", $0)),
43382
+ $Val(bot2, $BaseVal("Str", $0)),
43226
43383
  $List(
43227
43384
  "Cons",
43228
43385
  $Val(
43229
- bot,
43386
+ bot2,
43230
43387
  $BaseVal(
43231
43388
  "Dictionary",
43232
43389
  (() => {
43233
43390
  const $1 = {};
43234
- $1[$0] = $Tuple(bot, v._2);
43391
+ $1[$0] = $Tuple(bot2, v._2);
43235
43392
  return $1;
43236
43393
  })()
43237
43394
  )
@@ -43292,7 +43449,7 @@ var dict_foldl = /* @__PURE__ */ $Tuple(
43292
43449
  op_bwd: (dictAnn) => {
43293
43450
  const apply2Bwd2 = apply2Bwd(dictAnn);
43294
43451
  const BoundedJoinSemilattice0 = dictAnn.BoundedLattice1().BoundedJoinSemilattice0();
43295
- const bot = BoundedJoinSemilattice0.bot;
43452
+ const bot2 = BoundedJoinSemilattice0.bot;
43296
43453
  return (v) => {
43297
43454
  const go = (go$a0$copy) => (go$a1$copy) => {
43298
43455
  let go$a0 = go$a0$copy, go$a1 = go$a1$copy, go$c = true, go$r;
@@ -43312,7 +43469,7 @@ var dict_foldl = /* @__PURE__ */ $Tuple(
43312
43469
  $Tuple(
43313
43470
  v5._2._1,
43314
43471
  mutate(($1) => () => {
43315
- $1[$0] = $Tuple(bot, v5._2._2);
43472
+ $1[$0] = $Tuple(bot2, v5._2._2);
43316
43473
  return $1;
43317
43474
  })(b._2._2)
43318
43475
  )
@@ -43335,7 +43492,7 @@ var dict_foldl = /* @__PURE__ */ $Tuple(
43335
43492
  return $List(
43336
43493
  "Cons",
43337
43494
  v2._1,
43338
- $List("Cons", v2._2._1, $List("Cons", $Val(bot, $BaseVal("Dictionary", v2._2._2)), Nil))
43495
+ $List("Cons", v2._2._1, $List("Cons", $Val(bot2, $BaseVal("Dictionary", v2._2._2)), Nil))
43339
43496
  );
43340
43497
  };
43341
43498
  }
@@ -43822,9 +43979,22 @@ var dual = (v) => ({
43822
43979
  bwd: (x2) => functorEnvExpr.map(boolNot)(v.fwd(_fmapObject(x2, functorVal.map(boolNot))))
43823
43980
  });
43824
43981
  var neg12 = { neg: (x2) => functorSelState.map(boolNot)(x2) };
43825
- var joinSemilatticeSelState2 = /* @__PURE__ */ joinSemilatticeSelState(joinSemilatticeBoolean);
43826
- var meet = /* @__PURE__ */ (() => {
43827
- const $0 = joinSemilatticeVal(joinSemilatticeSelState2);
43982
+ var joinSemilatticeSelState = {
43983
+ join: (v) => (v1) => {
43984
+ if (v1.tag === "Inert") {
43985
+ return v;
43986
+ }
43987
+ if (v.tag === "Inert") {
43988
+ return v1;
43989
+ }
43990
+ if (v.tag === "Reactive" && v1.tag === "Reactive") {
43991
+ return $SelState("Reactive", { persistent: v._1.persistent || v1._1.persistent, transient: v._1.transient || v1._1.transient });
43992
+ }
43993
+ fail();
43994
+ }
43995
+ };
43996
+ var meet2 = /* @__PURE__ */ (() => {
43997
+ const $0 = joinSemilatticeVal(joinSemilatticeSelState);
43828
43998
  return {
43829
43999
  fwd: (x2) => {
43830
44000
  const $1 = $0.join($Val(functorSelState.map(boolNot)(x2._1._1), functorBaseVal.map(neg12.neg)(x2._1._2)))($Val(
@@ -43845,7 +44015,7 @@ var meet = /* @__PURE__ */ (() => {
43845
44015
  })();
43846
44016
  var meet1 = {
43847
44017
  fwd: (x2) => _fmapObject(
43848
- unionWith(joinSemilatticeVal(joinSemilatticeSelState2).join)(_fmapObject(x2._1, functorVal.map(neg12.neg)))(_fmapObject(
44018
+ unionWith(joinSemilatticeVal(joinSemilatticeSelState).join)(_fmapObject(x2._1, functorVal.map(neg12.neg)))(_fmapObject(
43849
44019
  x2._2,
43850
44020
  functorVal.map(neg12.neg)
43851
44021
  )),
@@ -44032,9 +44202,9 @@ var loadFig = (v) => (dictMonadAff) => {
44032
44202
  const $11 = lift1(\u03B3Inert)(vInert)(gc);
44033
44203
  const $12 = lift3(vInert)(\u03B3Inert)(gc_dual);
44034
44204
  return {
44035
- fwd: (x2) => $12.fwd(meet.fwd($Tuple($11.fwd(x2._1), categoryGaloisConnection.identity.fwd(x2._2)))),
44205
+ fwd: (x2) => $12.fwd(meet2.fwd($Tuple($11.fwd(x2._1), categoryGaloisConnection.identity.fwd(x2._2)))),
44036
44206
  bwd: (x2) => {
44037
- const $13 = meet.bwd($12.bwd(x2));
44207
+ const $13 = meet2.bwd($12.bwd(x2));
44038
44208
  return $Tuple($11.bwd($13._1), categoryGaloisConnection.identity.bwd($13._2));
44039
44209
  }
44040
44210
  };