JSFiddle - React, Tailwind, and code Playground

HTML

<div id='content'>
<h1>Stuff</h1>
    <fieldset>
        <legend>Pets</legend>
        <div class='options'>Dogs Cats</div>
    </fieldset>
    
    <fieldset>
        <legend>Services</legend>
        <div class='options'>Service 1, Service 2, Service 3</div>
    </fieldset
</div>

JavaScript

(function($){
	$.fn.collapsify = function(collapsable, options){
		var settings = $.extend(
			{
				start_collapsed : true,
				textFadeSpeed : 'slow',
				containerShrinkSpeed : 'fast',
				containerClass : 'collapsify_container',
				collapsableClass : 'collapsify_collapsable',
				collapsedClass : 'collapsify_collapsed',
				expandedClass : 'collapsify_expanded',
				expandLinkClass : 'collapsify_expand',
				collapseLinkClass : 'collapsify_collapse',
				collapseLinkText : 'Collapse',
				expandLinkText : 'Expand'
				
				
			},options||{});
		
		var containers = this;
		var EXPAND_LINK_HTML = '<a href="#" class="' + settings['expandLinkClass'] + '">' + settings['expandLinkText'] + '</a>';
		var COLLAPSE_LINK_HTML = '<a href="#" class="' + settings['collapseLinkClass'] + '">' + settings['collapseLinkText'] + '</a>';
		var EXPAND_LINK;
		var COLLAPSE_LINK; 
		var CONTAINER_SELECTOR = "." + settings['containerClass'];
		var COLLAPSABLE_SELECTOR = "." + settings['collapsableClass'];
		var COLLAPSED_SELECTOR = "." + settings['collapsedClass'];
		var EXPANDED_SELECTOR = "." + settings['expandedClass'];
		var COLLAPSE_LINK_SELECTOR = "." + settings['collapseLinkClass'];
		var EXPAND_LINK_SELECTOR = "." + settings['expandLinkClass'];
		var QUEUE_NAME = 'collapsify_queue';
		
		/* validate the passed wrapped set */
		if(!collapsable instanceof jQuery){
			throw new UserException("You did not pass a wrapped set to collapsify.");
		}
		collapsable.each(function(){
			if(containers.find(this).size() == 0){
				throw new UserException("At least one element of wrapped set you passed to collapsify isn't a decendent of the calling context.")
			}
		})
			
		/*helpers*/
		
		var collapsify_dequeue = function(queue){ return function(){$(queue).dequeue(QUEUE_NAME)}}; /*Interesting issue with self executing functions, workaround by returning another function in this function*/
		
		/*event handlers*/
		var collapse = function()
		{
			var hide =...