diff --git a/node_modules/jquery/src/css/var/cssExpand.js b/node_modules/jquery/src/css/var/cssExpand.js
new file mode 100644
index 0000000..dd2007c
--- /dev/null
+++ b/node_modules/jquery/src/css/var/cssExpand.js
@@ -0,0 +1,5 @@
+define( function() {
+	"use strict";
+
+	return [ "Top", "Right", "Bottom", "Left" ];
+} );
diff --git a/node_modules/jquery/src/css/var/getStyles.js b/node_modules/jquery/src/css/var/getStyles.js
new file mode 100644
index 0000000..0b893ac
--- /dev/null
+++ b/node_modules/jquery/src/css/var/getStyles.js
@@ -0,0 +1,17 @@
+define( function() {
+	"use strict";
+
+	return function( elem ) {
+
+		// Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+		// IE throws on elements created in popups
+		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+		var view = elem.ownerDocument.defaultView;
+
+		if ( !view || !view.opener ) {
+			view = window;
+		}
+
+		return view.getComputedStyle( elem );
+	};
+} );
diff --git a/node_modules/jquery/src/css/var/isHiddenWithinTree.js b/node_modules/jquery/src/css/var/isHiddenWithinTree.js
new file mode 100644
index 0000000..0ab610e
--- /dev/null
+++ b/node_modules/jquery/src/css/var/isHiddenWithinTree.js
@@ -0,0 +1,34 @@
+define( [
+	"../../core",
+	"../../core/isAttached"
+
+	// css is assumed
+], function( jQuery, isAttached ) {
+	"use strict";
+
+	// isHiddenWithinTree reports if an element has a non-"none" display style (inline and/or
+	// through the CSS cascade), which is useful in deciding whether or not to make it visible.
+	// It differs from the :hidden selector (jQuery.expr.pseudos.hidden) in two important ways:
+	// * A hidden ancestor does not force an element to be classified as hidden.
+	// * Being disconnected from the document does not force an element to be classified as hidden.
+	// These differences improve the behavior of .toggle() et al. when applied to elements that are
+	// detached or contained within hidden ancestors (gh-2404, gh-2863).
+	return function( elem, el ) {
+
+		// isHiddenWithinTree might be called from jQuery#filter function;
+		// in that case, element will be second argument
+		elem = el || elem;
+
+		// Inline style trumps all
+		return elem.style.display === "none" ||
+			elem.style.display === "" &&
+
+			// Otherwise, check computed style
+			// Support: Firefox <=43 - 45
+			// Disconnected elements can have computed display: none, so first confirm that elem is
+			// in the document.
+			isAttached( elem ) &&
+
+			jQuery.css( elem, "display" ) === "none";
+	};
+} );
diff --git a/node_modules/jquery/src/css/var/rboxStyle.js b/node_modules/jquery/src/css/var/rboxStyle.js
new file mode 100644
index 0000000..902c010
--- /dev/null
+++ b/node_modules/jquery/src/css/var/rboxStyle.js
@@ -0,0 +1,7 @@
+define( [
+	"./cssExpand"
+], function( cssExpand ) {
+	"use strict";
+
+	return new RegExp( cssExpand.join( "|" ), "i" );
+} );
diff --git a/node_modules/jquery/src/css/var/rnumnonpx.js b/node_modules/jquery/src/css/var/rnumnonpx.js
new file mode 100644
index 0000000..056cda7
--- /dev/null
+++ b/node_modules/jquery/src/css/var/rnumnonpx.js
@@ -0,0 +1,7 @@
+define( [
+	"../../var/pnum"
+], function( pnum ) {
+	"use strict";
+
+	return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+} );
diff --git a/node_modules/jquery/src/css/var/swap.js b/node_modules/jquery/src/css/var/swap.js
new file mode 100644
index 0000000..1a9556b
--- /dev/null
+++ b/node_modules/jquery/src/css/var/swap.js
@@ -0,0 +1,26 @@
+define( function() {
+
+"use strict";
+
+// A method for quickly swapping in/out CSS properties to get correct calculations.
+return function( elem, options, callback, args ) {
+	var ret, name,
+		old = {};
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.apply( elem, args || [] );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+} );
