JavaScript Left popover

JavaScript pop over component that appears to the left of a button on user click.


Examples

For this component to properly work, we had to add the following script inside the code snippet / HTML file:
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js" charset="utf-8"></script>

<div class="flex flex-wrap">
  <div class="w-full text-center">
    <button class="bg-pink-500 text-white active:bg-pink-600 font-bold uppercase text-sm px-6 py-3 rounded shadow hover:shadow-lg outline-none focus:outline-none mr-1 mb-1" type="button" style="transition:all .15s ease" onclick="openPopover(event,'popover-id')">
      left pink
    </button>
    <div class="hidden bg-pink-600 border-0 mr-3 block z-50 font-normal leading-normal text-sm max-w-xs text-left no-underline break-words rounded-lg" id="popover-id">
      <div>
        <div class="bg-pink-600 text-white opacity-75 font-semibold p-3 mb-0 border-b border-solid border-gray-200 uppercase rounded-t-lg">
          pink popover title
        </div>
        <div class="text-white p-3">
          And here's some amazing content. It's very engaging. Right?
        </div>
      </div>
    </div>
  </div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js" charset="utf-8"></script>
<script>
  function openPopover(event,popoverID){
    let element = event.target;
    while(element.nodeName !== "BUTTON"){
      element = element.parentNode;
    }
    var popper = new Popper(element, document.getElementById(popoverID), {
      placement: 'left'
    });
    document.getElementById(popoverID).classList.toggle("hidden");
  }
</script>