JSFiddle - React, Tailwind, and code Playground

by vikikamath

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/bacon.js/0.7.23/Bacon.min.js"></script>
<ul>
    <li id="1">One</li>
    <li id="2">Two</li>
</ul>
<button id="hello">Hello</button>
<br/>
Type<input id="text" type="text" placeholder="Type something here..."/>

JavaScript

(function() {
  var Bacon, init,
    __slice = [].slice;

  init = function(Bacon) {
    var Lens, Model, defaultEquals, fold, globalModCount, id, idCounter, isModel, nonEmpty, sameValue, shallowCopy, valueLens;
    id = function(x) {
      return x;
    };
    nonEmpty = function(x) {
      return x.length > 0;
    };
    fold = function(xs, seed, f) {
      var x, _i, _len;
      for (_i = 0, _len = xs.length; _i < _len; _i++) {
        x = xs[_i];
        seed = f(seed, x);
      }
      return seed;
    };
    isModel = function(obj) {
      return obj instanceof Bacon.Property;
    };
    globalModCount = 0;
    idCounter = 1;
    defaultEquals = function(a, b) {
      return a === b;
    };
    sameValue = function(eq) {
      return function(a, b) {
        return !a.initial && eq(a.value, b.value);
      };
    };
    Model = Bacon.Model = function(initValue) {
      var currentValue, eq, model, modificationBus, myId, myModCount, syncBus, valueWithSource;
      myId = idCounter++;
      eq = defaultEquals;
      myModCount = 0;
      modificationBus = new Bacon.Bus();
      syncBus = new Bacon.Bus();
      currentValue = void 0;
      valueWithSource = Bacon.update({
        initial: true
      }, [modificationBus], (function(_arg, _arg1) {
        var changed, f, modStack, newValue, source, value;
        value = _arg.value;
        source = _arg1.source, f = _arg1.f;
        newValue = f(value);
        modStack = [myId];
        changed = newValue !== value;
        return {
          source: source,
          value: newValue,
          modStack: modStack,
          changed: changed
        };
      }), [syncBus], (function(_, syncEvent) {
        return syncEvent;
      })).skipDuplicates(sameValue(eq)).changes().toProperty();
      model = valueWithSource.map(".value").skipDuplicates(eq);
      model.subscribeInternal(function(event) {
        if (event.hasValue()) {
          return currentValue = event.value();
        }
      });
      if...