@explorable-viz/fluid 0.7.63 → 0.7.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
  };