Skip to content

Instantly share code, notes, and snippets.

@puglyfe
Created November 23, 2020 15:09
Show Gist options
  • Save puglyfe/2961514970031368bee74297b4415eea to your computer and use it in GitHub Desktop.
Save puglyfe/2961514970031368bee74297b4415eea to your computer and use it in GitHub Desktop.
Patchfile to make stylis v4.0.3 compatible with emotion 11
diff --git a/node_modules/stylis/dist/stylis.cjs.map b/node_modules/stylis/dist/stylis.cjs.map
deleted file mode 100644
index ba82d54..0000000
--- a/node_modules/stylis/dist/stylis.cjs.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"stylis.cjs","sources":["../src/Enum.js","../src/Utility.js","../src/Tokenizer.js","../src/Parser.js","../src/Prefixer.js","../src/Serializer.js","../src/Middleware.js"],"sourcesContent":["export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3)\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} value\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string} type\n * @param {string[]} props\n * @param {object[]} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {string} type\n */\nexport function copy (value, root, type) {\n\treturn node(value, root.root, root.parent, type, root.props, root.children, 0)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } / breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\treturn delimiter(type === 34 || type === 39 ? type : character)\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, trim, from, sizeof, strlen, substr, append, replace} from './Utility.js'\nimport {node, char, next, peek, caret, alloc, dealloc, delimit, whitespace, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// \" ' [ (\n\t\t\tcase 34: case 39: case 91: case 40:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0)\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, length, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {string}\n */\nexport function prefix (value, length) {\n\tswitch (hash(value, length)) {\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// flex, flex-direction\n\t\tcase 6828: case 4268:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + '$2-$3') + value\n\t\t\t\t\t// (f)ill-available\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + '$3') + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn prefix(replace(value, 'stretch', 'fill-available'), length) + value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// (s)ticky?\n\t\t\tif (charat(value, length + 1) !== 115)\n\t\t\t\tbreak\n\t\t// display: (flex|inline-flex|inline-box)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n\t\t\t\t// stic(k)y, inline-b(o)x\n\t\t\t\tcase 107: case 111:\n\t\t\t\t\treturn replace(value, value, WEBKIT + value) + value\n\t\t\t\t// (inline-)?fl(e)x\n\t\t\t\tcase 101:\n\t\t\t\t\treturn replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t}\n\t\t\tbreak\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t}\n\n\t\t\treturn WEBKIT + value + MS + value + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (!element.return)\n\t\tswitch (element.type) {\n\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length)\n\t\t\t\tbreak\n\t\t\tcase KEYFRAMES:\n\t\t\t\treturn serialize([copy(replace(element.value, '@', '@' + WEBKIT), element, '')], callback)\n\t\t\tcase RULESET:\n\t\t\t\tif (element.length)\n\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\treturn serialize([copy(replace(value, /:(read-\\w+)/, ':' + MOZ + '$1'), element, '')], callback)\n\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\tcopy(replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1'), element, ''),\n\t\t\t\t\t\t\t\t\tcopy(replace(value, /:(plac\\w+)/, ':' + MOZ + '$1'), element, ''),\n\t\t\t\t\t\t\t\t\tcopy(replace(value, /:(plac\\w+)/, MS + 'input-$1'), element, '')\n\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn ''\n\t\t\t\t\t})\n\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[index + 1] === 'global')\n\t\t\t\t\t\t\t\tchildren[index + 1] = '', children[index + 2] = '\\f' + substr(children[index + 2], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n"],"names":["MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","PAGE","MEDIA","IMPORT","CHARSET","VIEWPORT","SUPPORTS","DOCUMENT","NAMESPACE","KEYFRAMES","FONT_FACE","COUNTER_STYLE","FONT_FEATURE_VALUES","abs","Math","from","String","fromCharCode","hash","value","length","charat","trim","match","pattern","exec","replace","replacement","indexof","search","indexOf","index","charCodeAt","substr","begin","end","slice","strlen","sizeof","append","array","push","combine","callback","map","join","node","root","parent","type","props","children","line","column","return","copy","char","character","next","position","characters","peek","caret","token","alloc","dealloc","delimit","delimiter","tokenize","tokenizer","whitespace","identifier","commenter","compile","parse","rule","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","i","j","k","x","y","z","prefix","serialize","output","stringify","element","middleware","collection","rulesheet","prefixer","namespace"],"mappings":"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"}
\ No newline at end of file
diff --git a/node_modules/stylis/dist/stylis.cjs b/node_modules/stylis/dist/stylis.js
similarity index 99%
rename from node_modules/stylis/dist/stylis.cjs
rename to node_modules/stylis/dist/stylis.js
index e636ec3..f801ee0 100644
--- a/node_modules/stylis/dist/stylis.cjs
+++ b/node_modules/stylis/dist/stylis.js
@@ -1,2 +1,2 @@
(function(e,r){typeof exports==="object"&&typeof module!=="undefined"?r(exports):typeof define==="function"&&define.amd?define(["exports"],r):(e=e||self,r(e.stylis={}))})(this,(function(e){"use strict";var r="-ms-";var a="-moz-";var c="-webkit-";var t="comm";var n="rule";var s="decl";var i="@page";var u="@media";var o="@import";var f="@charset";var l="@viewport";var h="@supports";var p="@document";var v="@namespace";var b="@keyframes";var d="@font-face";var w="@counter-style";var m="@font-feature-values";var $=Math.abs;var k=String.fromCharCode;function x(e,r){return(((r<<2^A(e,0))<<2^A(e,1))<<2^A(e,2))<<2^A(e,3)}function g(e){return e.trim()}function E(e,r){return(e=r.exec(e))?e[0]:e}function y(e,r,a){return e.replace(r,a)}function T(e,r){return e.indexOf(r)}function A(e,r){return e.charCodeAt(r)|0}function O(e,r,a){return e.slice(r,a)}function M(e){return e.length}function C(e){return e.length}function S(e,r){return r.push(e),e}function R(e,r){return e.map(r).join("")}e.line=1;e.column=1;e.length=0;e.position=0;e.character=0;e.characters="";function z(r,a,c,t,n,s,i){return{value:r,root:a,parent:c,type:t,props:n,children:s,line:e.line,column:e.column,length:i,return:""}}function N(e,r,a){return z(e,r.root,r.parent,a,r.props,r.children,0)}function P(){return e.character}function U(){e.character=e.position<e.length?A(e.characters,e.position++):0;if(e.column++,e.character===10)e.column=1,e.line++;return e.character}function _(){return A(e.characters,e.position)}function j(){return e.position}function F(r,a){return O(e.characters,r,a)}function I(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function L(r){return e.line=e.column=1,e.length=M(e.characters=r),e.position=0,[]}function D(r){return e.characters="",r}function K(r){return g(F(e.position-1,B(r===91?r+2:r===40?r+1:r)))}function V(e){return D(Y(L(e)))}function W(r){while(e.character=_())if(e.character<33)U();else break;return I(r)>2||I(e.character)>3?"":" "}function Y(r){while(U())switch(I(e.character)){case 0:S(H(e.position-1),r);break;case 2:S(K(e.character),r);break;default:S(k(e.character),r)}return r}function B(r){while(U())switch(e.character){case r:return e.position;case 34:case 39:return B(r===34||r===39?r:e.character);case 40:if(r===41)B(r);break;case 92:U();break}return e.position}function G(r,a){while(U())if(r+e.character===47+10)break;else if(r+e.character===42+42&&_()===47)break;return"/*"+F(a,e.position-1)+"*"+k(r===47?r:U())}function H(r){while(!I(_()))U();return F(r,e.position)}function Z(e){return D(q("",null,null,null,[""],e=L(e),0,[0],e))}function q(e,r,a,c,t,n,s,i,u){var o=0;var f=0;var l=s;var h=0;var p=0;var v=0;var b=1;var d=1;var w=1;var m=0;var $="";var x=t;var g=n;var E=c;var T=$;while(d)switch(v=m,m=U()){case 34:case 39:case 91:case 40:T+=K(m);break;case 9:case 10:case 13:case 32:T+=W(v);break;case 47:switch(_()){case 42:case 47:S(Q(G(U(),j()),r,a),u);break;default:T+="/"}break;case 123*b:i[o++]=M(T)*w;case 125*b:case 59:case 0:switch(m){case 0:case 125:d=0;case 59+f:if(p>0)S(p>32?X(T+";",c,a,l-1):X(y(T," ","")+";",c,a,l-2),u);break;case 59:T+=";";default:S(E=J(T,r,a,o,f,t,i,$,x=[],g=[],l),n);if(m===123)if(f===0)q(T,r,E,E,x,n,l,i,g);else switch(h){case 100:case 109:case 115:q(e,E,E,c&&S(J(e,E,E,0,0,t,i,$,t,x=[],l),g),t,g,l,i,c?x:g);break;default:q(T,E,E,E,[""],g,l,i,g)}}o=f=p=0,b=w=1,$=T="",l=s;break;case 58:l=1+M(T),p=v;default:switch(T+=k(m),m*b){case 38:w=f>0?1:(T+="\f",-1);break;case 44:i[o++]=(M(T)-1)*w,w=1;break;case 64:if(_()===45)T+=K(U());h=_(),f=M($=T+=H(j())),m++;break;case 45:if(v===45&&M(T)==2)b=0}}return n}function J(e,r,a,c,t,s,i,u,o,f,l){var h=t-1;var p=t===0?s:[""];var v=C(p);for(var b=0,d=0,w=0;b<c;++b)for(var m=0,k=O(e,h+1,h=$(d=i[b])),x=e;m<v;++m)if(x=g(d>0?p[m]+" "+k:y(k,/&\f/g,p[m])))o[w++]=x;return z(e,r,a,t===0?n:u,o,f,l)}function Q(e,r,a){return z(e,r,a,t,k(P()),O(e,2,-2),0)}function X(e,r,a,c){return z(e,r,a,s,O(e,0,c),O(e,c+1,-1),c)}function ee(e,t){switch(x(e,t)){case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return c+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return c+e+a+e+r+e+e;case 6828:case 4268:return c+e+r+e+e;case 6165:return c+e+r+"flex-"+e+e;case 5187:return c+e+y(e,/(\w+).+(:[^]+)/,c+"box-$1$2"+r+"flex-$1$2")+e;case 5443:return c+e+r+"flex-item-"+y(e,/flex-|-self/,"")+e;case 4675:return c+e+r+"flex-line-pack"+y(e,/align-content|flex-|-self/,"")+e;case 5548:return c+e+r+y(e,"shrink","negative")+e;case 5292:return c+e+r+y(e,"basis","preferred-size")+e;case 6060:return c+"box-"+y(e,"-grow","")+c+e+r+y(e,"grow","positive")+e;case 4554:return c+y(e,/([^-])(transform)/g,"$1"+c+"$2")+e;case 6187:return y(y(y(e,/(zoom-|grab)/,c+"$1"),/(image-set)/,c+"$1"),e,"")+e;case 5495:case 3959:return y(e,/(image-set\([^]*)/,c+"$1"+"$`$1");case 4968:return y(y(e,/(.+:)(flex-)?(.*)/,c+"box-pack:$3"+r+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+c+e+e;case 4095:case 3583:case 4068:case 2532:return y(e,/(.+)-inline(.+)/,c+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(M(e)-1-t>6)switch(A(e,t+1)){case 109:return y(e,/(.+:)(.+)-([^]+)/,"$1"+c+"$2-$3"+"$1"+a+"$2-$3")+e;case 102:return y(e,/(.+:)(.+)-([^]+)/,"$1"+c+"$2-$3"+"$1"+a+"$3")+e;case 115:return ee(y(e,"stretch","fill-available"),t)+e}break;case 4949:if(A(e,t+1)!==115)break;case 6444:switch(A(e,M(e)-3-(~T(e,"!important")&&10))){case 107:case 111:return y(e,e,c+e)+e;case 101:return y(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+c+(A(e,14)===45?"inline-":"")+"box$3"+"$1"+c+"$2$3"+"$1"+r+"$2box$3")+e}break;case 5936:switch(A(e,t+11)){case 114:return c+e+r+y(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return c+e+r+y(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return c+e+r+y(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return c+e+r+e+e}return e}function re(e,r){var a="";var c=C(e);for(var t=0;t<c;t++)a+=r(e[t],t,e,r)||"";return a}function ae(e,r,a,c){switch(e.type){case o:case s:return e.return=e.return||e.value;case t:return"";case n:e.value=e.props.join(",")}return M(a=re(e.children,c))?e.return=e.value+"{"+a+"}":""}function ce(e){var r=C(e);return function(a,c,t,n){var s="";for(var i=0;i<r;i++)s+=e[i](a,c,t,n)||"";return s}}function te(e){return function(r){if(!r.root)if(r=r.return)e(r)}}function ne(e,t,i,u){if(!e.return)switch(e.type){case s:e.return=ee(e.value,e.length);break;case b:return re([N(y(e.value,"@","@"+c),e,"")],u);case n:if(e.length)return R(e.props,(function(t){switch(E(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return re([N(y(t,/:(read-\w+)/,":"+a+"$1"),e,"")],u);case"::placeholder":return re([N(y(t,/:(plac\w+)/,":"+c+"input-$1"),e,""),N(y(t,/:(plac\w+)/,":"+a+"$1"),e,""),N(y(t,/:(plac\w+)/,r+"input-$1"),e,"")],u)}return""}))}}function se(e){switch(e.type){case n:e.props=e.props.map((function(r){return R(V(r),(function(r,a,c){switch(A(r,0)){case 12:return O(r,1,M(r));case 0:case 40:case 43:case 62:case 126:return r;case 58:if(c[a+1]==="global")c[a+1]="",c[a+2]="\f"+O(c[a+2],a=1,-1);case 32:return a===1?"":r;default:switch(a){case 0:e=r;return C(c)>1?"":r;case a=C(c)-1:case 2:return a===2?r+e+e:r+e;default:return r}}}))}))}}e.CHARSET=f;e.COMMENT=t;e.COUNTER_STYLE=w;e.DECLARATION=s;e.DOCUMENT=p;e.FONT_FACE=d;e.FONT_FEATURE_VALUES=m;e.IMPORT=o;e.KEYFRAMES=b;e.MEDIA=u;e.MOZ=a;e.MS=r;e.NAMESPACE=v;e.PAGE=i;e.RULESET=n;e.SUPPORTS=h;e.VIEWPORT=l;e.WEBKIT=c;e.abs=$;e.alloc=L;e.append=S;e.caret=j;e.char=P;e.charat=A;e.combine=R;e.comment=Q;e.commenter=G;e.compile=Z;e.copy=N;e.dealloc=D;e.declaration=X;e.delimit=K;e.delimiter=B;e.from=k;e.hash=x;e.identifier=H;e.indexof=T;e.match=E;e.middleware=ce;e.namespace=se;e.next=U;e.node=z;e.parse=q;e.peek=_;e.prefix=ee;e.prefixer=ne;e.replace=y;e.ruleset=J;e.rulesheet=te;e.serialize=re;e.sizeof=C;e.slice=F;e.stringify=ae;e.strlen=M;e.substr=O;e.token=I;e.tokenize=V;e.tokenizer=Y;e.trim=g;e.whitespace=W;Object.defineProperty(e,"__esModule",{value:true})}));
-//# sourceMappingURL=stylis.cjs.map
+//# sourceMappingURL=stylis.js.map
diff --git a/node_modules/stylis/dist/stylis.js.map b/node_modules/stylis/dist/stylis.js.map
new file mode 100644
index 0000000..d8446fc
--- /dev/null
+++ b/node_modules/stylis/dist/stylis.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"stylis.js","sources":["../src/Enum.js","../src/Utility.js","../src/Tokenizer.js","../src/Parser.js","../src/Prefixer.js","../src/Serializer.js","../src/Middleware.js"],"sourcesContent":["export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3)\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} value\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string} type\n * @param {string[]} props\n * @param {object[]} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {string} type\n */\nexport function copy (value, root, type) {\n\treturn node(value, root.root, root.parent, type, root.props, root.children, 0)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } / breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\treturn delimiter(type === 34 || type === 39 ? type : character)\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, trim, from, sizeof, strlen, substr, append, replace} from './Utility.js'\nimport {node, char, next, peek, caret, alloc, dealloc, delimit, whitespace, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// \" ' [ (\n\t\t\tcase 34: case 39: case 91: case 40:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0)\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, length, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {string}\n */\nexport function prefix (value, length) {\n\tswitch (hash(value, length)) {\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// flex, flex-direction\n\t\tcase 6828: case 4268:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + '$2-$3') + value\n\t\t\t\t\t// (f)ill-available\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + '$3') + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn prefix(replace(value, 'stretch', 'fill-available'), length) + value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// (s)ticky?\n\t\t\tif (charat(value, length + 1) !== 115)\n\t\t\t\tbreak\n\t\t// display: (flex|inline-flex|inline-box)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n\t\t\t\t// stic(k)y, inline-b(o)x\n\t\t\t\tcase 107: case 111:\n\t\t\t\t\treturn replace(value, value, WEBKIT + value) + value\n\t\t\t\t// (inline-)?fl(e)x\n\t\t\t\tcase 101:\n\t\t\t\t\treturn replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t}\n\t\t\tbreak\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t}\n\n\t\t\treturn WEBKIT + value + MS + value + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (!element.return)\n\t\tswitch (element.type) {\n\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length)\n\t\t\t\tbreak\n\t\t\tcase KEYFRAMES:\n\t\t\t\treturn serialize([copy(replace(element.value, '@', '@' + WEBKIT), element, '')], callback)\n\t\t\tcase RULESET:\n\t\t\t\tif (element.length)\n\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\treturn serialize([copy(replace(value, /:(read-\\w+)/, ':' + MOZ + '$1'), element, '')], callback)\n\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\tcopy(replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1'), element, ''),\n\t\t\t\t\t\t\t\t\tcopy(replace(value, /:(plac\\w+)/, ':' + MOZ + '$1'), element, ''),\n\t\t\t\t\t\t\t\t\tcopy(replace(value, /:(plac\\w+)/, MS + 'input-$1'), element, '')\n\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn ''\n\t\t\t\t\t})\n\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[index + 1] === 'global')\n\t\t\t\t\t\t\t\tchildren[index + 1] = '', children[index + 2] = '\\f' + substr(children[index + 2], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n"],"names":["MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","PAGE","MEDIA","IMPORT","CHARSET","VIEWPORT","SUPPORTS","DOCUMENT","NAMESPACE","KEYFRAMES","FONT_FACE","COUNTER_STYLE","FONT_FEATURE_VALUES","abs","Math","from","String","fromCharCode","hash","value","length","charat","trim","match","pattern","exec","replace","replacement","indexof","search","indexOf","index","charCodeAt","substr","begin","end","slice","strlen","sizeof","append","array","push","combine","callback","map","join","node","root","parent","type","props","children","line","column","return","copy","char","character","next","position","characters","peek","caret","token","alloc","dealloc","delimit","delimiter","tokenize","tokenizer","whitespace","identifier","commenter","compile","parse","rule","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","i","j","k","x","y","z","prefix","serialize","output","stringify","element","middleware","collection","rulesheet","prefixer","namespace"],"mappings":"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"}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment