Index: frontend/node_modules/camelcase-css/README.md
===================================================================
--- frontend/node_modules/camelcase-css/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/camelcase-css/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,27 @@
+# camelcase-css [![NPM Version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url]
+
+> Convert a kebab-cased CSS property into a camelCased DOM property.
+
+
+## Installation
+[Node.js](http://nodejs.org/) `>= 6` is required. Type this at the command line:
+```shell
+npm install camelcase-css
+```
+
+
+## Usage
+```js
+const camelCaseCSS = require('camelcase-css');
+
+camelCaseCSS('-webkit-border-radius');  //-> WebkitBorderRadius
+camelCaseCSS('-moz-border-radius');     //-> MozBorderRadius
+camelCaseCSS('-ms-border-radius');      //-> msBorderRadius
+camelCaseCSS('border-radius');          //-> borderRadius
+```
+
+
+[npm-image]: https://img.shields.io/npm/v/camelcase-css.svg
+[npm-url]: https://npmjs.org/package/camelcase-css
+[travis-image]: https://img.shields.io/travis/stevenvachon/camelcase-css.svg
+[travis-url]: https://travis-ci.org/stevenvachon/camelcase-css
Index: frontend/node_modules/camelcase-css/index-es5.js
===================================================================
--- frontend/node_modules/camelcase-css/index-es5.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/camelcase-css/index-es5.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,24 @@
+"use strict";
+
+var pattern = /-(\w|$)/g;
+
+var callback = function callback(dashChar, char) {
+	return char.toUpperCase();
+};
+
+var camelCaseCSS = function camelCaseCSS(property) {
+	property = property.toLowerCase();
+
+	// NOTE :: IE8's "styleFloat" is intentionally not supported
+	if (property === "float") {
+		return "cssFloat";
+	}
+	// Microsoft vendor-prefixes are uniquely cased
+	else if (property.charCodeAt(0) === 45&& property.charCodeAt(1) === 109&& property.charCodeAt(2) === 115&& property.charCodeAt(3) === 45) {
+			return property.substr(1).replace(pattern, callback);
+		} else {
+			return property.replace(pattern, callback);
+		}
+};
+
+module.exports = camelCaseCSS;
Index: frontend/node_modules/camelcase-css/index.js
===================================================================
--- frontend/node_modules/camelcase-css/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/camelcase-css/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,30 @@
+"use strict";
+const pattern = /-(\w|$)/g;
+
+const callback = (dashChar, char) => char.toUpperCase();
+
+
+
+const camelCaseCSS = property =>
+{
+	property = property.toLowerCase();
+
+	// NOTE :: IE8's "styleFloat" is intentionally not supported
+	if (property === "float")
+	{
+		return "cssFloat";
+	}
+	// Microsoft vendor-prefixes are uniquely cased
+	else if (property.startsWith("-ms-"))
+	{
+		return property.substr(1).replace(pattern, callback);
+	}
+	else
+	{
+		return property.replace(pattern, callback);
+	}
+};
+
+
+
+module.exports = camelCaseCSS;
Index: frontend/node_modules/camelcase-css/license
===================================================================
--- frontend/node_modules/camelcase-css/license	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/camelcase-css/license	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Steven Vachon <contact@svachon.com> (svachon.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
Index: frontend/node_modules/camelcase-css/package.json
===================================================================
--- frontend/node_modules/camelcase-css/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/camelcase-css/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,34 @@
+{
+  "name": "camelcase-css",
+  "description": "Convert a kebab-cased CSS property into a camelCased DOM property.",
+  "version": "2.0.1",
+  "license": "MIT",
+  "author": "Steven Vachon <contact@svachon.com> (https://www.svachon.com/)",
+  "repository": "stevenvachon/camelcase-css",
+  "browser": "index-es5.js",
+  "devDependencies": {
+    "babel-cli": "^6.26.0",
+    "babel-core": "^6.26.3",
+    "babel-plugin-optimize-starts-with": "^1.0.1",
+    "babel-preset-env": "^1.7.0",
+    "chai": "^4.1.2",
+    "mocha": "^5.2.0"
+  },
+  "engines": {
+    "node": ">= 6"
+  },
+  "scripts": {
+    "pretest": "babel index.js --out-file=index-es5.js --presets=env --plugins=optimize-starts-with",
+    "test": "mocha test.js --check-leaks --bail"
+  },
+  "files": [
+    "index.js",
+    "index-es5.js"
+  ],
+  "keywords": [
+    "camelcase",
+    "case",
+    "css",
+    "dom"
+  ]
+}
