UNPKG

109 kBSource Map (JSON)View Raw
1{"version":3,"file":"dash.dev.js","sources":["../../node_modules/.pnpm/@dash-ui+unitless@2.0.0/node_modules/@dash-ui/unitless/src/index.ts","../../node_modules/.pnpm/@dash-ui+stylis@1.0.5/node_modules/@dash-ui/stylis/src/index.js","../../src/utils.ts","../../src/create-dash.ts","../../src/create-styles.ts"],"sourcesContent":["const unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1,\n} as const\n\nexport default unitlessKeys\n","const WEBKIT = '-webkit-'\nconst MOZ = '-moz-'\nconst MS = '-ms-'\nconst FLEX = 'flex-'\nconst $1 = '$1'\nconst $2 = '$2'\nfunction charCodeAt(s, code) {\n return s.charCodeAt(code)\n}\nfunction replace(s, i, o) {\n return s.replace(i, o)\n}\nfunction indexOf(s, a, b) {\n return s.indexOf(a, b)\n}\nfunction substring(s, a, b) {\n return s.substring(a, b)\n}\nexport default function (Z) {\n function L(d, c, e, h, a) {\n for (\n var m = 0,\n b = 0,\n v = 0,\n n = 0,\n q,\n g,\n w = 0,\n E = 0,\n k,\n u = (k = q = 0),\n l = 0,\n r = 0,\n G = 0,\n t = 0,\n I = e.length,\n H = I - 1,\n x,\n f = '',\n p = '',\n M = '',\n N = '',\n B;\n l < I;\n\n ) {\n g = charCodeAt(e, l)\n l === H &&\n 0 !== b + n + v + m &&\n (0 !== b && (g = 47 === b ? 10 : 47), (n = v = m = 0), I++, H++)\n if (0 === b + n + v + m) {\n if (\n l === H &&\n (0 < r && (f = replace(f, O, '')), 0 < f.trim().length)\n ) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break\n default:\n f += e.charAt(l)\n }\n g = 59\n }\n switch (g) {\n case 123:\n f = f.trim()\n q = charCodeAt(f, 0)\n k = 1\n for (t = ++l; l < I; ) {\n switch ((g = charCodeAt(e, l))) {\n case 123:\n k++\n break\n case 125:\n k--\n break\n case 47:\n switch ((g = charCodeAt(e, l + 1))) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < H; ++u)\n switch (charCodeAt(e, u)) {\n case 47:\n if (\n 42 === g &&\n 42 === charCodeAt(e, u - 1) &&\n l + 2 !== u\n ) {\n l = u + 1\n break a\n }\n break\n case 10:\n if (47 === g) {\n l = u + 1\n break a\n }\n }\n l = u\n }\n }\n break\n case 91:\n g++\n case 40:\n g++\n case 34:\n case 39:\n for (; l++ < H && charCodeAt(e, l) !== g; );\n }\n if (0 === k) break\n l++\n }\n k = substring(e, t, l)\n 0 === q && (q = (f = replace(f, fa, '').trim()).charCodeAt(0))\n switch (q) {\n case 64:\n 0 < r && (f = replace(f, O, ''))\n g = charCodeAt(f, 1)\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c\n break\n default:\n r = P\n }\n k = L(c, r, k, g, a + 1)\n t = k.length\n 0 < A &&\n ((r = aa(P, f, G)),\n (B = F(3, k, r, c, C, z, t, g, a, h)),\n (f = r.join('')),\n void 0 !== B &&\n 0 === (t = (k = B.trim()).length) &&\n ((g = 0), (k = '')))\n if (0 < t)\n switch (g) {\n case 115:\n f = replace(f, ha, ia)\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}'\n break\n case 107:\n f = replace(f, ja, $1 + ' ' + $2)\n k = f + '{' + k + '}'\n k =\n 1 === y || (2 === y && J('@' + k, 3))\n ? '@' + WEBKIT + k + '@' + k\n : '@' + k\n break\n default:\n ;(k = f + k), 112 === h && (k = ((p += k), ''))\n }\n else k = ''\n break\n default:\n k = L(c, aa(c, f, G), k, h, a + 1)\n }\n M += k\n k = G = r = u = q = 0\n f = ''\n g = charCodeAt(e, ++l)\n break\n case 125:\n case 59:\n f = (0 < r ? replace(f, O, '') : f).trim()\n if (1 < (t = f.length))\n switch (\n (0 === u &&\n ((q = charCodeAt(f, 0)), 45 === q || (96 < q && 123 > q)) &&\n (t = (f = replace(f, ' ', ':')).length),\n 0 < A &&\n void 0 !== (B = F(1, f, c, d, C, z, p.length, h, a, h)) &&\n 0 === (t = (f = B.trim()).length) &&\n (f = '\\x00\\x00'),\n (q = charCodeAt(f, 0)),\n (g = charCodeAt(f, 1)),\n q)\n ) {\n case 0:\n break\n case 64:\n if (105 === g || 99 === g) {\n N += f + e.charAt(l)\n break\n }\n default:\n 58 !== charCodeAt(f, t - 1) &&\n (p += Q(f, q, g, charCodeAt(f, 2)))\n }\n G = r = u = q = 0\n f = ''\n g = charCodeAt(e, ++l)\n }\n }\n switch (g) {\n case 13:\n case 10:\n 47 === b\n ? (b = 0)\n : 0 === 1 + q &&\n 107 !== h &&\n 0 < f.length &&\n ((r = 1), (f += '\\x00'))\n 0 < A * ba && F(0, f, c, d, C, z, p.length, h, a, h)\n z = 1\n C++\n break\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++\n break\n }\n default:\n z++\n x = e.charAt(l)\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b)\n switch (w) {\n case 44:\n case 58:\n case 9:\n case 32:\n x = ''\n break\n default:\n 32 !== g && (x = ' ')\n }\n break\n case 0:\n x = '\\\\0'\n break\n case 12:\n x = '\\\\f'\n break\n case 11:\n x = '\\\\v'\n break\n case 38:\n 0 === n + b + m && ((r = G = 1), (x = '\\f' + x))\n break\n case 108:\n if (0 === n + b + m + D && 0 < u)\n switch (l - u) {\n case 2:\n 112 === w && 58 === charCodeAt(e, l - 3) && (D = w)\n case 8:\n 111 === E && (D = E)\n }\n break\n case 58:\n 0 === n + b + m && (u = l)\n break\n case 44:\n 0 === b + v + n + m && ((r = 1), (x += '\\r'))\n break\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n)\n break\n case 91:\n 0 === n + b + v && m++\n break\n case 93:\n 0 === n + b + v && m--\n break\n case 41:\n 0 === n + b + m && v--\n break\n case 40:\n if (0 === n + b + m) {\n if (0 === q)\n switch (2 * w + 3 * E) {\n case 533:\n break\n default:\n q = 1\n }\n v++\n }\n break\n case 64:\n 0 === b + v + n + m + u + k && (k = 1)\n break\n case 42:\n case 47:\n if (!(0 < n + m + v))\n switch (b) {\n case 0:\n switch (2 * g + 3 * charCodeAt(e, l + 1)) {\n case 235:\n b = 47\n break\n case 220:\n ;(t = l), (b = 42)\n }\n break\n case 42:\n 47 === g &&\n 42 === w &&\n t + 2 !== l &&\n (33 === charCodeAt(e, t + 2) &&\n (p += substring(e, t, l + 1)),\n (x = ''),\n (b = 0))\n }\n }\n 0 === b && (f += x)\n }\n E = w\n w = g\n l++\n }\n t = p.length\n if (0 < t) {\n r = c\n if (\n 0 < A &&\n ((B = F(2, p, r, d, C, z, t, h, a, h)),\n void 0 !== B && 0 === (p = B).length)\n )\n return N + p + M\n p = r.join(',') + '{' + p + '}'\n if (0 !== y * D) {\n 2 !== y || J(p, 2) || (D = 0)\n switch (D) {\n case 111:\n p = replace(p, ka, ':' + MOZ + $1) + p\n break\n case 112:\n p =\n replace(p, R, '::' + WEBKIT + 'input-$1') +\n replace(p, R, '::' + MOZ + $1) +\n replace(p, R, ':' + MS + 'input-$1') +\n p\n }\n D = 0\n }\n }\n return N + p + M\n }\n function aa(d, c, e) {\n var h = c.trim().split(la)\n c = h\n var a = h.length,\n m = d.length\n switch (m) {\n case 0:\n case 1:\n var b = 0\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b)\n c[b] = ca(d, c[b], e, m).trim()\n break\n default:\n var v = (b = 0)\n for (c = []; b < a; ++b)\n for (var n = 0; n < m; ++n) c[v++] = ca(d[n] + ' ', h[b], e, m).trim()\n }\n return c\n }\n function ca(d, c, e) {\n var h = charCodeAt(c, 0)\n 33 > h && (h = (c = c.trim()).charCodeAt(0))\n switch (h) {\n case 38:\n return c.replace(S, $1 + d.trim())\n case 58:\n return d.trim() + c.replace(S, $1 + d.trim())\n default:\n if (0 < 1 * e && 0 < indexOf(c, '\\f'))\n return c.replace(S, (58 === charCodeAt(d, 0) ? '' : $1) + d.trim())\n }\n return d + c\n }\n function Q(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h\n if (944 === m) {\n d = indexOf(a, ':', 9) + 1\n var b = substring(a, d, a.length - 1).trim()\n b = substring(a, 0, d).trim() + b + ';'\n return 1 === y || (2 === y && J(b, 1)) ? WEBKIT + b + b : b\n }\n if (0 === y || (2 === y && !J(a, 1))) return a\n switch (m) {\n case 1015:\n return 97 === charCodeAt(a, 10) ? WEBKIT + a + a : a\n case 951:\n return 116 === charCodeAt(a, 3) ? WEBKIT + a + a : a\n case 963:\n return 110 === charCodeAt(a, 5) ? WEBKIT + a + a : a\n case 1009:\n if (100 !== charCodeAt(a, 4)) break\n case 969:\n case 942:\n return WEBKIT + a + a\n case 978:\n return WEBKIT + a + MOZ + a + a\n case 1019:\n case 983:\n return WEBKIT + a + MOZ + a + MS + a + a\n case 883:\n if (45 === charCodeAt(a, 8)) return WEBKIT + a + a\n if (0 < indexOf(a, 'image-set(', 11))\n return replace(a, ma, $1 + WEBKIT + $2) + a\n break\n case 932:\n if (45 === charCodeAt(a, 4))\n switch (charCodeAt(a, 5)) {\n case 103:\n return (\n WEBKIT +\n 'box-' +\n replace(a, '-grow', '') +\n WEBKIT +\n a +\n MS +\n replace(a, 'grow', 'positive') +\n a\n )\n case 115:\n return WEBKIT + a + MS + replace(a, 'shrink', 'negative') + a\n case 98:\n return WEBKIT + a + MS + replace(a, 'basis', 'preferred-size') + a\n }\n return WEBKIT + a + MS + a + a\n case 964:\n return WEBKIT + a + MS + FLEX + a + a\n case 1023:\n if (99 !== charCodeAt(a, 8)) break\n b = substring(a, indexOf(a, ':', 15))\n .replace(FLEX, '')\n .replace('space-between', 'justify')\n return WEBKIT + 'box-pack' + b + WEBKIT + a + MS + FLEX + 'pack' + b + a\n case 1005:\n return na.test(a)\n ? replace(a, da, ':' + WEBKIT) + replace(a, da, ':' + MOZ) + a\n : a\n case 1e3:\n b = substring(a, 13).trim()\n c = indexOf(b, '-') + 1\n switch (charCodeAt(b, 0) + charCodeAt(b, c)) {\n case 226:\n b = replace(a, T, 'tb')\n break\n case 232:\n b = replace(a, T, 'tb-rl')\n break\n case 220:\n b = replace(a, T, 'lr')\n break\n default:\n return a\n }\n return WEBKIT + a + MS + b + a\n case 1017:\n if (-1 === indexOf(a, 'sticky', 9)) break\n case 975:\n c = (a = d).length - 10\n b = (33 === charCodeAt(a, c) ? substring(a, 0, c) : a)\n .substring(indexOf(d, ':', 7) + 1)\n .trim()\n switch ((m = charCodeAt(b, 0) + (charCodeAt(b, 7) | 0))) {\n case 203:\n if (111 > charCodeAt(b, 8)) break\n case 115:\n a = replace(a, b, WEBKIT + b) + ';' + a\n break\n case 207:\n case 102:\n a =\n a.replace(b, WEBKIT + (102 < m ? 'inline-' : '') + 'box') +\n ';' +\n replace(a, b, WEBKIT + b) +\n ';' +\n replace(a, b, MS + b + 'box') +\n ';' +\n a\n }\n return a + ';'\n case 938:\n if (45 === charCodeAt(a, 5))\n switch (charCodeAt(a, 6)) {\n case 105:\n return (\n (b = replace(a, '-items', '')),\n WEBKIT + a + WEBKIT + 'box-' + b + MS + FLEX + b + a\n )\n case 115:\n return WEBKIT + a + MS + FLEX + 'item-' + replace(a, ea, '') + a\n default:\n return (\n WEBKIT +\n a +\n MS +\n FLEX +\n 'line-pack' +\n replace(a, 'align-content', '').replace(ea, '') +\n a\n )\n }\n break\n case 973:\n case 989:\n if (45 !== charCodeAt(a, 3) || 122 === charCodeAt(a, 4)) break\n case 931:\n case 953:\n if (!0 === oa.test(d))\n return 115 === (b = substring(d, indexOf(d, ':') + 1)).charCodeAt(0)\n ? Q(replace(d, 'stretch', 'fill-available'), c, e, h).replace(\n ':fill-available',\n ':stretch'\n )\n : replace(a, b, WEBKIT + b) +\n a.replace(b, MOZ + replace(b, 'fill-', '')) +\n a\n break\n case 962:\n if (\n ((a = WEBKIT + a + (102 === charCodeAt(a, 5) ? MS + a : '') + a),\n 211 === e + h &&\n 105 === charCodeAt(a, 13) &&\n 0 < indexOf(a, 'transform', 10))\n )\n return (\n substring(a, 0, indexOf(a, ';', 27) + 1).replace(\n pa,\n $1 + WEBKIT + $2\n ) + a\n )\n }\n return a\n }\n function J(d, c) {\n var e = indexOf(d, 1 === c ? ':' : '{'),\n h = substring(d, 0, 3 !== c ? e : 10)\n e = substring(d, e + 1, d.length - 1)\n return U(2 !== c ? h : replace(h, qa, $1), e, c)\n }\n function ia(d, c) {\n var e = Q(c, charCodeAt(c, 0), charCodeAt(c, 1), charCodeAt(c, 2))\n return e !== c + ';'\n ? e.replace(ra, ' or ($1)').substring(4)\n : '(' + c + ')'\n }\n function F(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, w = c, E; g < A; ++g)\n switch ((E = V[g].call(K, d, w, e, h, a, m, b, v, n, q))) {\n case void 0:\n case !1:\n case !0:\n case null:\n break\n default:\n w = E\n }\n if (w !== c) return w\n }\n function W(d) {\n switch (d) {\n case void 0:\n case null:\n A = V.length = 0\n break\n default:\n if ('function' === typeof d) V[A++] = d\n else if ('object' === typeof d)\n for (var c = 0, e = d.length; c < e; ++c) W(d[c])\n else ba = !!d | 0\n }\n return W\n }\n function X(d) {\n d = d.prefix\n void 0 !== d &&\n ((U = null),\n d ? ('function' !== typeof d ? (y = 1) : ((y = 2), (U = d))) : (y = 0))\n return X\n }\n function K(d, c) {\n var e = d\n 33 > charCodeAt(e, 0) && (e = e.trim())\n Y = e\n e = [Y]\n if (0 < A) {\n var h = F(-1, c, e, e, C, z, 0, 0, 0, 0)\n void 0 !== h && 'string' === typeof h && (c = h)\n }\n var a = L(P, e, c, 0, 0)\n 0 < A &&\n ((h = F(-2, a, e, e, C, z, a.length, 0, 0, 0)), void 0 !== h && (a = h))\n Y = ''\n D = 0\n z = C = 1\n return a\n }\n var fa = /^\\0+/g,\n O = /[\\0\\r\\f]/g,\n da = /: */g,\n na = /zoo|gra/,\n pa = /([,: ])(transform)/g,\n la = /,\\r+?/g,\n S = /([\\t\\r\\n ])*\\f?&/g,\n ja = /@(k\\w+)\\s*(\\S*)\\s*/,\n R = /::(place)/g,\n ka = /:(read-only)/g,\n T = /[svh]\\w+-[tblr]{2}/,\n ha = /\\(\\s*(.*)\\s*\\)/g,\n ra = /([\\s\\S]*?);/g,\n ea = /-self|' + FLEX + '/g,\n qa = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n oa = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ma = /([^-])(image-set\\()/,\n z = 1,\n C = 1,\n D = 0,\n y = 1,\n P = [],\n V = [],\n A = 0,\n U = null,\n ba = 0,\n Y = ''\n K.use = W\n K.set = X\n void 0 !== Z && X(Z)\n return K\n}\n","/**\n * An FNV-1a hashing algorithm with a 32-bit offset basis. FNV-1a hashes are designed\n * to be fast while maintaining a low collision rate. The high dispersion rate makes\n * them well-suited for hashing nearly identical strings.\n *\n * @param string - A string you want to hash\n */\nexport function hash(string: string): string {\n // 32-bit offset basis\n let out = 2166136261;\n let i = 0;\n let len = string.length;\n\n for (; i < len; ++i)\n out =\n (out ^= string.charCodeAt(i)) +\n (out << 1) +\n (out << 4) +\n (out << 7) +\n (out << 8) +\n (out << 24);\n\n return (out >>> 0).toString(36);\n}\n\nconst minL = /(^|[:;,{}\\s])\\s+|$/g;\nconst minR = / +{/g;\n\nexport function safeHash(\n key: string,\n hashFn: typeof hash\n): (string: string) => string {\n const hashCache: Record<string, string> = {};\n let value: string | undefined;\n return (string: string): string => {\n if ((value = hashCache[string])) return value;\n value = hashFn(string.replace(minL, \"$1\").replace(minR, \"{\"));\n // allows class names to start with numbers\n return (hashCache[string] = value =\n !key && !isNaN(value[0] as any) ? \"_\" + value : value);\n };\n}\n\nexport function noop(): void {}\n","import Stylis from \"@dash-ui/stylis\";\nimport type { Context, Plugable, Plugin } from \"@dash-ui/stylis\";\nimport { noop } from \"./utils\";\n\n/**\n * Dash is a tiny, performant CSS-in-JS style rule sheet manager similar to Emotion.\n *\n * @param options - Configuration options\n */\nexport function createDash(options: CreateDashOptions = {}): Dash {\n let {\n key = \"ui\",\n nonce,\n stylisPlugins,\n prefix = true,\n batchInserts,\n speedy,\n container = typeof document !== \"undefined\" ? document.head : void 0,\n } = options;\n const stylis = new Stylis({ prefix });\n const inserted: Dash[\"inserted\"] = new Set<string>();\n const cache: Dash[\"cache\"] = new Map();\n const sheetsCache = new Map<string, DashSheet>();\n const sheet = styleSheet({\n key,\n container,\n nonce,\n speedy,\n batchInserts,\n });\n\n if (typeof document !== \"undefined\") {\n let nodes = document.querySelectorAll('style[data-cache=\"' + key + '\"]');\n let i = 0;\n let attr;\n let node;\n const insert = inserted.add.bind(inserted);\n\n for (; i < nodes.length; i++) {\n /* istanbul ignore next */\n if ((attr = (node = nodes[i]).getAttribute(`data-dash`)) === null)\n continue;\n attr.split(\" \").forEach(insert);\n\n container && node.parentNode !== container && container.appendChild(node);\n }\n\n stylis.use(stylisPlugins)(ruleSheet as Plugin);\n }\n\n /* istanbul ignore next */\n if (typeof process !== \"undefined\" && process.env.NODE_ENV !== \"production\") {\n const commentStart = /\\/\\*/g;\n const commentEnd = /\\*\\//g;\n\n stylis.use((context, content) => {\n if (context === -1) {\n while (commentStart.test(content)) {\n commentEnd.lastIndex = commentStart.lastIndex;\n\n /* istanbul ignore next */\n if (commentEnd.test(content)) {\n commentStart.lastIndex = commentEnd.lastIndex;\n continue;\n }\n\n throw new Error(\n 'Your styles have an unterminated comment (\"/*\" without ' +\n 'corresponding \"*/\").'\n );\n }\n\n commentStart.lastIndex = 0;\n }\n });\n }\n\n let insert: Dash[\"insert\"] = function (key, selector, styles, styleSheet) {\n if (inserted.has(key)) return;\n inserted.add(key);\n Sheet.x = styleSheet === void 0 ? sheet : styleSheet;\n stylis(selector, styles);\n };\n\n if (typeof document === \"undefined\") {\n insert = function (key, selector, styles, styleSheet) {\n if (inserted.has(key)) return;\n inserted.add(key);\n Sheet.x = styleSheet === void 0 ? sheet : styleSheet;\n cache.set(key, stylis(selector, styles));\n };\n }\n\n return {\n key,\n sheet,\n sheets: {\n add(name) {\n const sheetRef = sheetsCache.get(name) || {\n n: 0,\n s: styleSheet(sheet),\n };\n sheetsCache.set(name, sheetRef);\n sheetRef.n++;\n return sheetRef.s;\n },\n delete(name) {\n const sheetRef = sheetsCache.get(name);\n if (!sheetRef) return -1;\n if (sheetRef.n === 1) {\n sheetsCache.delete(name);\n sheetRef.s.flush();\n }\n return --sheetRef.n;\n },\n keys: sheetsCache.keys.bind(sheetsCache),\n },\n stylis,\n insert,\n inserted,\n cache,\n };\n}\n\nexport interface CreateDashOptions {\n /**\n * Keys in sheets used to associate `<style>` tags with this\n * specific `dash` instances via the `dash-cache` property.\n *\n * @default \"ui\"\n */\n readonly key?: string;\n /**\n * For security policies. A nonce is an arbitrary number that can be used just\n * once in a cryptographic communication.\n */\n readonly nonce?: string;\n /**\n * An array of stylis plugins\n * See: https://www.npmjs.com/package/stylis\n */\n readonly stylisPlugins?: Plugable[];\n /**\n * Turns on/off vendor prefixing. When a boolean, all prefixes will be\n * turned on/off. Use a function to define your own prefixes for a given key/value.\n *\n * @default true\n */\n readonly prefix?:\n | boolean\n | ((key: string, value: any, context: any) => boolean);\n /**\n * This is the container that `<style>` tags will be injected into\n * when style rules are inserted.\n *\n * @default document.head\n */\n readonly container?: HTMLElement;\n /**\n * Batch `insertRule` calls to improve performance by reducing the number of\n * style recalculations.\n */\n readonly batchInserts?: boolean;\n /**\n * Does nothing now.\n *\n * @deprecated\n */\n readonly speedy?: boolean;\n}\n\nexport type Dash = {\n /**\n * The sheet key\n */\n readonly key: string;\n /**\n * The default style sheet used by this instance of Dash\n */\n readonly sheet: DashStyleSheet;\n /**\n * Used for tracking external sheets. You can safely add/delete new\n * custom sheets using this. Those sheets can be used in the `insert()`\n * method. The primary reason you'd want to use this is so that you can\n * create independently flushable styles/sheets.\n */\n readonly sheets: DashSheets;\n /**\n * The instance of Stylis used by this Dash instance\n */\n readonly stylis: Stylis;\n /**\n * A cache of Stylis rules saved by their keys. This is only used\n * on the server for generating CSS files and strings from the keys\n * used in the cache.\n */\n readonly cache: Map<string, string>;\n /**\n * A function for inserting style rules into the document and cache.\n *\n * @param key - The unique key of the rule. This is used for caching.\n * @param selector - The CSS selector to insert the rule under. Omit this\n * when inserting a global style.\n * @param styles - The rules string you'd like to insert into the document or cache.\n * @param styleSheet - The style sheet to insert a rule into, for example `dash.sheet`.\n */\n insert(\n key: string,\n selector: string,\n styles: string,\n styleSheet?: DashStyleSheet\n ): void;\n /**\n * An insertion cache. This tracks which keys have already been inserted into\n * the DOM to prevent duplicates.\n */\n readonly inserted: Set<string>;\n};\n\n/**\n * A stylesheet cache that tracks references to the keys in it.\n * When there are no more references to a sheet, it will be flushed\n * from the DOM.\n */\nexport interface DashSheets {\n /**\n * Creates a new stylesheet if it doesn't exist and returns it.\n *\n * @param key - The unique key of the style sheet\n */\n add(key: string): DashStyleSheet;\n /**\n * Deletes the stylesheet from the sheets cache and flushes the\n * `<style>` tag from the DOM if this is is the last reference to\n * the key.\n *\n * @param key - The key to the sheet\n */\n delete(key: string): number;\n /**\n * Returns an iterator containing all of the keys in the cache.\n */\n keys(): ReturnType<Map<string, DashSheet>[\"keys\"]>;\n}\n\ninterface DashSheet {\n /**\n * The number of references to the sheet\n */\n n: number;\n /**\n * A dash style sheet.\n */\n s: DashStyleSheet;\n}\n\n//\n// Stylesheet\nexport function styleSheet(options: DashStyleSheetOptions): DashStyleSheet {\n // Based off emotion and glamor's StyleSheet\n const { key, container, nonce, batchInserts, speedy } = options;\n let tag: HTMLStyleElement | null = null;\n let sheet: CSSStyleSheet | null = null;\n let supportsConstructableStylesheets = false;\n\n if (typeof document !== \"undefined\") {\n supportsConstructableStylesheets =\n \"CSSStyleSheet\" in window &&\n \"replace\" in CSSStyleSheet.prototype &&\n \"adoptedStyleSheets\" in Document.prototype;\n\n if (!supportsConstructableStylesheets) {\n tag = document.createElement(\"style\");\n tag.setAttribute(`data-dash`, key);\n\n if (nonce) {\n tag.setAttribute(\"nonce\", nonce);\n }\n\n container?.appendChild(tag);\n sheet = tag.sheet;\n\n /* istanbul ignore next */\n if (!sheet) {\n // this weirdness brought to you by firefox\n const { styleSheets } = document;\n for (let i = 0; i < styleSheets.length; i++)\n if (styleSheets[i].ownerNode === tag) {\n sheet = styleSheets[i];\n break;\n }\n }\n } else {\n sheet = new CSSStyleSheet();\n document.adoptedStyleSheets = [...document.adoptedStyleSheets, sheet];\n }\n }\n\n return {\n key,\n nonce,\n container,\n speedy,\n insert(rule) {\n /* istanbul ignore next */\n const insertRule = (): void => {\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet!.insertRule(rule, sheet!.cssRules.length);\n } catch (e) {\n if (\n typeof process !== \"undefined\" &&\n process.env.NODE_ENV !== \"production\"\n ) {\n console.warn(\n 'There was a problem inserting the following rule: \"' +\n rule +\n '\"',\n e\n );\n }\n }\n };\n\n if (batchInserts) {\n tasks.push(insertRule);\n scheduleFlush();\n } else {\n insertRule();\n }\n },\n flush() {\n if (tag && tag.parentNode) {\n tag.parentNode.removeChild(tag);\n } else if (supportsConstructableStylesheets) {\n document.adoptedStyleSheets = document.adoptedStyleSheets.filter(\n (s) => s !== sheet\n );\n }\n },\n };\n}\n\nlet scheduled = false;\nconst tasks: Task[] = [];\n\nfunction scheduleFlush(): void {\n if (!scheduled) {\n scheduled = true;\n\n requestAnimationFrame(() => {\n let task: Task | undefined;\n while ((task = tasks.shift())) task();\n scheduled = false;\n\n if (tasks.length) {\n scheduleFlush();\n }\n });\n }\n}\n\ntype Task = () => void;\n\nexport interface DashStyleSheetOptions {\n /**\n * Keys in sheets used to associate style sheets with\n * specific `dash` instances\n */\n readonly key: string;\n /**\n * The element to insert `<style>` tags into. For example,\n * `document.head`.\n */\n readonly container?: HTMLElement;\n /**\n * For security policies. A nonce is an arbitrary number that can be used just\n * once in a cryptographic communication.\n */\n readonly nonce?: string;\n /**\n * Batch `insertRule` calls to improve performance by reducing the number of\n * style recalculations.\n */\n readonly batchInserts?: boolean;\n /**\n * Does nothing now.\n *\n * @deprecated\n */\n readonly speedy?: boolean;\n}\n\nexport interface DashStyleSheet {\n /**\n * The sheet key\n */\n readonly key: string;\n /**\n * The sheet nonce\n */\n readonly nonce?: string;\n /**\n * The sheet container\n */\n readonly container?: HTMLElement;\n /**\n * Does nothing now.\n *\n * @deprecated\n */\n readonly speedy?: boolean;\n /**\n * Inserts a style rule into your sheet\n *\n * @param rule - A style rule to insert into the sheet\n */\n insert(rule: string): void;\n /**\n * Removes all style rules from the sheet.\n */\n flush(): void;\n}\n\n//\n// Stylis plugins\nconst RULE_DELIMITER = \"/*|*/\";\nconst RULE_NEEDLE = RULE_DELIMITER + \"}\";\n\nfunction ruleSheet(\n // https://github.com/thysultan/stylis.js/tree/master/plugins/rule-sheet\n context: Context,\n content: any,\n selectors: string[],\n parents: string[],\n line: number,\n column: number,\n length: number,\n ns: number,\n depth: number,\n at: number\n): string | undefined {\n // selector\n if (context === 2) {\n if (ns === 0) return content + RULE_DELIMITER;\n }\n // at-rule\n else if (context === 3) {\n // @font-face, @page\n if (ns === 102 || ns === 112) {\n Sheet.x.insert(selectors[0] + content);\n return \"\";\n } else {\n /* istanbul ignore next */\n return content + (at === 0 ? RULE_DELIMITER : \"\");\n }\n } else if (context === -2) {\n content.split(RULE_NEEDLE).forEach((block: string) => {\n block && Sheet.x.insert(block + \"}\");\n });\n }\n}\n\nconst Sheet: {\n x: {\n insert(rule: string): void;\n };\n} = {\n x: {\n insert: noop,\n },\n};\n","import unitless from \"@dash-ui/unitless\";\nimport type {\n HtmlAttributes as CSSHTMLAttributes,\n PropertiesFallback as CSSProperties,\n Pseudos as CSSPseudos,\n SvgAttributes as CSSSvgAttributes,\n} from \"csstype\";\nimport type { JsonValue, PartialDeep, Primitive, ValueOf } from \"type-fest\";\nimport { createDash } from \"./create-dash\";\nimport type { Dash } from \"./create-dash\";\nimport { hash as fnv1aHash, noop, safeHash } from \"./utils\";\n\n/**\n * A factory function that returns a new `styles` instance with\n * your custom configuration options.\n *\n * @param options - Configuration options\n */\nexport function createStyles<\n Tokens extends DashTokens = DashTokens,\n Themes extends DashThemes = DashThemes\n>(options: CreateStylesOptions<Tokens, Themes> = {}): Styles<Tokens, Themes> {\n const dash = options.dash || createDash();\n const { key, insert, sheets } = dash;\n const themes = {} as Themes;\n const tokens = {} as TokensUnion<Tokens, Themes>;\n const hash = safeHash(key, options.hash || fnv1aHash);\n\n let label: (args: any[]) => string;\n // explicit here on purpose so it's not in every test\n /* istanbul ignore next */\n if (\n typeof process !== \"undefined\" &&\n process.env.NODE_ENV === \"development\"\n ) {\n label = function (args) {\n // add helpful labels to the name in development\n return [...args]\n .reduce((curr, arg) => {\n if (typeof arg === \"string\") {\n curr += \"-\" + arg;\n } else if (typeof arg === \"object\") {\n const keys = Object.keys(arg).filter(\n (k) => typeof arg[k] === \"number\" || arg[k]\n );\n\n if (keys.length) {\n curr += \"-\" + keys.join(\"-\");\n }\n }\n\n return curr;\n }, \"\")\n .replace(/[^\\w-]/g, \"-\");\n };\n }\n\n const styles: Styles<Tokens, Themes> = {\n variants<Variants extends string | number>(\n styleMap: StyleMap<Variants, Tokens, Themes>\n ): Style<Variants, Tokens, Themes> {\n const compiledStyleMap: Record<string | number, string> = {};\n let styleKey: keyof typeof styleMap;\n /* istanbul ignore next */\n for (styleKey in styleMap)\n compiledStyleMap[styleKey] = compileStyles(styleMap[styleKey], tokens);\n\n const defaultStyles = compiledStyleMap.default || \"\";\n\n // style('text', {})\n function style(): string {\n // eslint-disable-next-line prefer-spread\n const css_ = css.apply(null, arguments as any);\n if (!css_) return \"\";\n let name = hash(css_);\n /* istanbul ignore next */\n if (label) name += label(arguments as any);\n const className = key + \"-\" + name;\n insert(name, \".\" + className, css_);\n return className;\n }\n\n function css(): string {\n const args = arguments as unknown as StyleArguments<Variants>;\n const numArgs = args.length;\n\n if (numArgs === 1 && typeof args[0] !== \"object\") {\n return defaultStyles + (compiledStyleMap[args[0] as any] || \"\");\n } else if (numArgs > 0) {\n let nextStyles = defaultStyles;\n\n for (let i = 0; i < numArgs; i++) {\n let arg = args[i];\n if (typeof arg !== \"object\") {\n nextStyles += compiledStyleMap[arg as any] || \"\";\n } else if (arg !== null) {\n for (const key in arg)\n if (arg[key]) nextStyles += compiledStyleMap[key] || \"\";\n }\n }\n\n return nextStyles;\n }\n\n return defaultStyles;\n }\n\n style.styles = styleMap;\n style.css = css;\n return style;\n },\n one() {\n const one = compileStyles<Tokens, Themes>(\n compileLiterals(arguments),\n tokens\n );\n const name = hash(one);\n const className = key + \"-\" + name;\n const callback: StylesOne = function (createClassName) {\n if (!createClassName && createClassName !== void 0) return \"\";\n insert(name, \".\" + className, one);\n return className;\n };\n callback.css = function (createCss) {\n return !createCss && createCss !== void 0 ? \"\" : one;\n };\n return callback;\n },\n cls() {\n const css = compileStyles<Tokens, Themes>(\n compileLiterals(arguments),\n tokens\n );\n const name = hash(css);\n const className = key + \"-\" + name;\n insert(name, \".\" + className, css);\n return className;\n },\n lazy<Value extends LazyValue>(\n lazyFn: (\n value: Value\n ) => string | StyleCallback<Tokens, Themes> | StyleObject\n ): StylesLazy<Value> {\n const cache = new Map<string | Value, string>();\n\n function css(value?: Value): string {\n if (value === void 0) return \"\";\n const key = typeof value === \"object\" ? JSON.stringify(value) : value;\n let css = cache.get(key);\n\n if (css === void 0) {\n css = compileStyles<Tokens, Themes>(lazyFn(value), tokens);\n cache.set(key, css);\n }\n\n return css;\n }\n\n const lazyStyle: StylesLazy<Value> = function (value?: Value) {\n const css_ = css(value);\n if (!css_) return \"\";\n const name = hash(css_);\n const className = key + \"-\" + name;\n insert(name, \".\" + className, css_);\n return className;\n };\n lazyStyle.css = css;\n return lazyStyle;\n },\n join() {\n const css = \"\".concat(...Array.prototype.slice.call(arguments));\n const name = hash(css);\n const className = key + \"-\" + name;\n insert(name, \".\" + className, css);\n return className;\n },\n keyframes() {\n const css = compileStyles<Tokens, Themes>(\n compileLiterals(arguments),\n tokens\n );\n const name = hash(css);\n const animationName = key + \"-\" + name;\n // Adding to a cached sheet here rather than the default sheet because\n // we want this to persist between `clearCache()` calls.\n insert(\n name,\n \"\",\n \"@keyframes \" + animationName + \"{\" + css + \"}\",\n sheets.add(name)\n );\n return animationName;\n },\n insertGlobal() {\n const css = compileStyles<Tokens, Themes>(\n compileLiterals(arguments),\n tokens\n );\n\n if (!css) return noop;\n const name = hash(css);\n insert(name, \"\", css, sheets.add(name));\n return function () {\n !sheets.delete(name) && dash.inserted.delete(name);\n };\n },\n insertTokens(nextTokens, selector = \":root\") {\n const { css, vars } = serializeTokens(nextTokens, options.mangleTokens);\n if (!css) return noop;\n mergeTokens<Tokens, Themes>(tokens, vars);\n return styles.insertGlobal(selector + \"{\" + css + \"}\");\n },\n insertThemes(nextThemes) {\n const flush: (() => void)[] = [];\n\n for (const name in nextThemes) {\n flush.push(\n styles.insertTokens(\n // God the types here are f'ing stupid. Someone should feel free to fix this.\n // @ts-expect-error\n (themes[name] =\n themes[name] === void 0\n ? // @ts-expect-error\n nextThemes[name]\n : mergeTokens<any>(themes[name], nextThemes[name] as any)),\n \".\" + styles.theme(name as Extract<keyof Themes, string>)\n )\n );\n }\n\n return function () {\n flush.forEach((e) => e());\n };\n },\n theme(theme) {\n return key + \"-\" + theme + \"-theme\";\n },\n dash,\n hash,\n tokens,\n };\n\n Object.defineProperty(styles, \"tokens\", {\n get() {\n return tokens;\n },\n configurable: false,\n });\n styles.insertTokens(options.tokens || emptyObj);\n styles.insertThemes(options.themes || emptyObj);\n return typeof process !== \"undefined\" && process.env.NODE_ENV !== \"production\"\n ? Object.freeze(styles)\n : styles;\n}\n\nconst emptyObj: any = {};\n\nexport interface CreateStylesOptions<\n Tokens extends DashTokens = DashTokens,\n Themes extends DashThemes = DashThemes\n> {\n /**\n * An instance of dash created by the `createDash()` factory\n *\n * @default createDash()\n */\n dash?: Dash;\n /**\n * Inserts CSS tokens into the DOM and makes them available for use in\n * style callbacks. The name of the CSS tokens is automatically generated\n * based upon the depth of the mapping i.e. `foo.bar.baz` -> `--foo-bar-baz`.\n *\n * @example\n * const styles = createStyles({\n * tokens: {\n * color: {\n * // var(--color-light-red)\n * lightRed: '#c17'\n * }\n * }\n * })\n *\n * const bgRed = styles.one(({color}) => ({\n * backgroundColor: color.lightRed\n * }))\n *\n * const Component = () => <div className={bgRed()} />\n */\n readonly tokens?: Tokens;\n /**\n * A mapping of theme name/CSS variable pairs.\n *\n * This Creates a CSS variable-based theme by defining tokens within a\n * class name selector matching the theme name. Apart from that it works\n * the same way `tokens` does.\n *\n * @example\n * const styles = createStyles({\n * themes: {\n * // .ui-light\n * light: {\n * // var(--background-color)\n * backgroundColor: '#fff'\n * },\n * // .ui-dark\n * dark: {\n * // var(--background-color)\n * backgroundColor: '#000'\n * }\n * }\n * })\n *\n * // CSS tokens in the 'dark' theme take precedence in this component\n * const App = () => <div className={styles.theme('dark)}/>\n */\n readonly themes?: Themes;\n /**\n * When `true` this will mangle CSS variable names. You can also\n * provide an object with `{key: boolean}` pairs of reserved keys\n * which will not be mangled.\n *\n * @example\n * const styles = createStyles({\n * // All CSS tokens will be mangled in production\n * mangleTokens: process.env.NODE_ENV === 'production'\n * })\n * @example\n * const styles = createStyles({\n * mangleTokens: {\n * // --vh will not be mangled\n * vh: true\n * }\n * })\n */\n readonly mangleTokens?: boolean | Record<string, boolean>;\n /**\n * Use your own hash function for creating selector names. By default\n * Dash uses an fnv1a hashing algorithm.\n */\n readonly hash?: typeof fnv1aHash;\n}\n\n/**\n * Utility methods that accomplish everything you need to scale an application\n * using CSS-in-JS.\n */\nexport interface Styles<\n Tokens extends DashTokens = DashTokens,\n Themes extends DashThemes = DashThemes\n> {\n /**\n * `styles.variants()` is a function for composing styles in a\n * deterministic way. It returns a function which when called will insert\n * your styles into the DOM and create a unique class name.\n *\n * @param styleMap - A style name/value mapping\n * @example\n * const bg = styles({\n * // Define styles using an object\n * blue: {\n * backgroundColor: 'blue'\n * },\n * // Access stored CSS tokens when a callback is provided as\n * // the value\n * red: ({colors}) => `\n * background-color: ${colors.red};\n * `,\n * // Define styles using a string\n * green: `\n * background-color: green;\n * `\n * })\n *\n * // This component will have a \"red\" background\n * const Component = () => <div className={bg('blue', 'red')}/>\n *\n * // This component will have a \"blue\" background\n * const Component = () => <div className={bg('red', 'blue')}/>\n *\n * // This component will have a \"green\" background\n * const Component = () => <div className={bg({red: true, green: true})}/>\n */\n variants<Variants extends string | number>(\n styleMap: StyleMap<Variants, Tokens, Themes>\n ): Style<Variants, Tokens, Themes>;\n /**\n * A function that accepts a tagged template literal, style object, or style callback,\n * and returns a function. That function inserts the style into a `<style>` tag and\n * returns a class name when called.\n *\n * @example\n * const row = styles.one`\n * display: flex;\n * flex-wrap: nowrap;\n * `\n * const Row = props => <div {...props} className={row()}/>>\n * // This will not insert the styles if `isRow` is `false`\n * const RowSometimes = ({isRow = false}) => <div className={row(isRow)}/>>\n */\n one(\n literals:\n | TemplateStringsArray\n | string\n | StyleObject\n | StyleCallback<Tokens, Themes>,\n ...placeholders: string[]\n ): StylesOne;\n /**\n * A function that accepts a tagged template literal, style object, or style callback.\n * Calling this will immediately insert the CSS into the DOM and return a unique\n * class name for the styles. This is a shortcut for `styles.one('display: flex;')()`.\n *\n * @example\n * const Component = () => <div className={styles.cls`display: flex;`}/>\n */\n cls(\n literals:\n | TemplateStringsArray\n | string\n | StyleObject\n | StyleCallback<Tokens, Themes>,\n ...placeholders: string[]\n ): string;\n /**\n * A function that uses lazy evalution to create styles with indeterminate values.\n * Calling this will immediately insert the CSS into the DOM and return a unique\n * class name for the styles.\n *\n * @example\n * const lazyWidth = styles.lazy((width) => ({\n * width\n * }))\n * const Component = ({width = 200}) => <div className={lazyWidth(width)}/>>\n */\n lazy<Value extends LazyValue>(\n lazyFn: (\n value: Value\n ) => string | StyleCallback<Tokens, Themes> | StyleObject\n ): StylesLazy<Value>;\n /**\n * A function that joins CSS strings, inserts them into the DOM right away, and returns a class name.\n *\n * @example\n * const Component = () => <div\n * className={styles.join(\n * button.css('primary'),\n * transition.css('fade'),\n * 'display: block;'\n * )}\n * />\n */\n join(...css: string[]): string;\n /**\n * A function that accepts a tagged template literal, style object, or style callback.\n * Using this will immediately insert a global `@keyframes` defintion into the DOM and\n * return the name of the keyframes instance.\n *\n * @example\n * const fadeIn = styles.keyframes`\n * from {\n * opacity: 0;\n * }\n *\n * to {\n * opactity: 1\n * }\n * `\n */\n keyframes(\n literals:\n | TemplateStringsArray\n | string\n | StyleCallback<Tokens, Themes>\n | StyleObject,\n ...placeholders: string[]\n ): string;\n /**\n * A function that returns the generated class name for a given theme when\n * using `insertThemes()` to create CSS variable-based themes.\n *\n * @param name - The name of the theme\n * @example\n * styles.insertThemes({\n * dark: {\n * color: {\n * background: '#000'\n * }\n * }\n * })\n *\n * const Component = () => <div className={styles.theme('dark')}/>\n */\n theme(name: Extract<keyof Themes, string>): string;\n /**\n * Inserts CSS tokens into the DOM and makes them available for use in\n * style callbacks. The name of the CSS tokens is automatically generated\n * based upon the depth of the mapping i.e. `foo.bar.baz` -> `--foo-bar-baz`.\n * This function returns a function that will flush the styles inserted by\n * `insertTokens()` when it is called.\n *\n * @param tokens - A map of CSS variable name/value pairs\n * @param selector - Including a selector will only make these CSS variable\n * definitions take effect within the selector, e.g. a class name or ID. By\n * default the selector is `\":root\"`.\n * @example\n * // Inserts CSS tokens into the document `:root`\n * styles.insertTokens({\n * color: {\n * // var(--color-indigo)\n * indigo: '#5c6ac4',\n * // var(--color-blue)\n * blue: '#007ace',\n * // var(--color-red)\n * red: '#de3618',\n * }\n * })\n *\n * // Overrides the above when they are used within a `.dark` selector\n * const flushTokens = styles.insertTokens(\n * {\n * color: {\n * // var(--color-indigo)\n * indigo: '#5c6ac4',\n * // var(--color-blue)\n * blue: '#007ace',\n * // var(--color-red)\n * red: '#de3618',\n * }\n * },\n * '.dark'\n * )\n */\n insertTokens(tokens: PartialDeep<Tokens>, selector?: string): () => void;\n /**\n * Creates a CSS variable-based theme by defining tokens within a\n * class name selector matching the theme name. Apart from that it works\n * the same way `insertTokens()` does. This function returns a function\n * that will flush the styles inserted by `insertTokens()` when it is called.\n *\n * @param themes - A mapping of theme name/CSS variable pairs.\n * @example\n * const flushThemes = styles.insertThemes({\n * // .ui-light\n * light: {\n * // var(--background-color)\n * backgroundColor: '#fff'\n * },\n * // .ui-dark\n * dark: {\n * // var(--background-color)\n * backgroundColor: '#000'\n * }\n * })\n *\n * // \"dark\" css tokens will take precedence within this component\n * const Component = () => <div className={styles.theme('dark)}/>\n */\n insertThemes(\n themes: PartialDeep<{\n [Name in keyof Themes]: Themes[Name];\n }>\n ): () => void;\n /**\n * A function that accepts a tagged template literal, style object, or style callback.\n * Using this will immediately insert styles into the DOM relative to the root document.\n * This function returns a function that will flush the styles inserted by\n * `insertGlobal()` when it is called.\n *\n * @example\n * const flushGlobal = styles.insertGlobal(({color}) => `\n * body {\n * background-color: ${color.primaryBg};\n * }\n * `)\n */\n insertGlobal(\n literals:\n | TemplateStringsArray\n | string\n | StyleCallback<Tokens, Themes>\n | StyleObject,\n ...placeholders: string[]\n ): () => void;\n /**\n * The CSS tokens currently defined in the instance\n */\n tokens: TokensUnion<Tokens, Themes>;\n /**\n * A hashing function for creating unique selector names\n *\n * @param string - The string you'd like to hash\n */\n hash(string: string): string;\n /**\n * The instance of underlying the Dash cache used by this instance. This was\n * automatically created by `createDash()` when `createStyles()` was called.\n * Dash controls the caching, style sheets, auto-prefixing, and DOM insertion\n * that happens in the `styles` instance.\n */\n dash: Dash;\n}\n\n/**\n * A function that inserts styles from the style map into the DOM when called\n * with those style names selected.\n *\n * @param args - A series of style names or style name/boolean maps which\n * select the styles from the style map you want to compose into a singular\n * deterministic style and class name.\n * @example\n * const style = styles.variants({\n * block: 'display: block',\n * w100: 'width: 100px;',\n * h100: 'height: 100px',\n * })\n *\n * // display: block; height: 100px; width: 100px;\n * const Component = () => <div className={style('block', 'h100', 'w100')}/>\n */\nexport type Style<\n Variants extends string | number,\n Tokens extends DashTokens = DashTokens,\n Themes extends DashThemes = DashThemes\n> = {\n (...args: StyleArguments<Variants>): string;\n /**\n * A function that returns the raw, CSS string for a given\n * name in the style map.\n *\n * @param names - A series of style names or style name/boolean maps which\n * select the styles from the style map you want to compose into a singular\n * CSS string.\n * @example\n * const style = styles.variants({\n * block: 'display: block',\n * w100: 'width: 100px;',\n * h100: 'height: 100px',\n * })\n *\n * const someOtherStyle = styles.variants({\n * // display: block; height: 100px; width: 100px;\n * default: style.css('block', 'h100', 'w100')\n * })\n */\n css(...names: StyleArguments<Variants>): string;\n /**\n * The style map that this `style()` instance was instantiated with.\n */\n styles: StyleMap<Variants, Tokens, Themes>;\n};\n\n/**\n * A function that inserts styles into the DOM when called without\n * a falsy value. If the first argument is falsy, the styles will\n * not be inserted and a class name will not be returned.\n */\nexport type StylesOne = {\n (createClassName?: boolean | number | string | null): string;\n /**\n * A method that returns a CSS string if the first argument is not falsy.\n */\n css(createCss?: boolean | number | string | null): string;\n};\n\nexport type StyleMap<\n Variants extends string | number,\n Tokens extends DashTokens = DashTokens,\n Themes extends DashThemes = DashThemes\n> = {\n [Name in Variants | \"default\"]?: StyleValue<Tokens, Themes>;\n};\n\nexport type StyleArguments<Variants extends string | number> = (\n | Variants\n | {\n [Name in Variants]?: boolean | null | undefined | string | number;\n }\n | Exclude<Falsy, 0 | \"\">\n)[];\n\nexport type StyleValue<\n Tokens extends DashTokens = DashTokens,\n Themes extends DashThemes = DashThemes\n> = string | StyleCallback<Tokens, Themes> | StyleObject;\n\ntype KnownStyles = {\n [property in keyof CSSProperties]?:\n | CSSProperties[property]\n // eslint-disable-next-line @typescript-eslint/ban-types\n | (string & {})\n // eslint-disable-next-line @typescript-eslint/ban-types\n | (number & {});\n};\n\ntype PseudoStyles = {\n [property in CSSPseudos | CSSHTMLAttributes | CSSSvgAttributes]?: StyleObject;\n};\n\ntype SelectorStyles = {\n [property: string]:\n | string\n | number\n | KnownStyles\n | PseudoStyles\n | SelectorStyles;\n};\n\nexport type StyleObject = KnownStyles & PseudoStyles & SelectorStyles;\n\nexport type StyleCallback<\n Tokens extends DashTokens = DashTokens,\n Themes extends DashThemes = DashThemes\n> = (tokens: TokensUnion<Tokens, Themes>) => StyleObject | string;\n\nexport type LazyValue = JsonValue;\n\n/**\n * A function that inserts indeterminate styles based on the value\n * into the DOM when called.\n *\n * @param value - A JSON serializable value to create indeterminate\n * styles from\n */\nexport type StylesLazy<Value extends LazyValue> = {\n (value?: Value): string;\n /**\n * A method that returns indeterminate CSS strings based on the value\n * when called.\n *\n * @param value - A JSON serializable value to create indeterminate\n * styles from\n */\n css(value?: Value): string;\n};\n\n//\n// Utils\nexport type Falsy = false | null | undefined | \"\" | 0;\n\n/**\n * A utility function that will compile style objects and callbacks into CSS strings.\n *\n * @param styles - A style callback, object, or string\n * @param tokens - A map of CSS tokens for style callbacks\n */\nexport function compileStyles<\n Tokens extends DashTokens = DashTokens,\n Themes extends DashThemes = DashThemes\n>(\n styles: StyleValue<Tokens, Themes> | Falsy,\n tokens: TokensUnion<Tokens, Themes>\n): string {\n const value = typeof styles === \"function\" ? styles(tokens) : styles;\n return typeof value === \"object\" && value !== null\n ? stringifyStyleObject(value)\n : // TypeScript w/o \"strict\": true throws here\n ((value || \"\") as string);\n}\n\nfunction stringifyStyleObject(object: StyleObject): string {\n let string = \"\";\n\n for (const key in object) {\n const value = object[key];\n\n if (typeof value !== \"object\") {\n const isCustom = key.charCodeAt(1) === 45;\n string +=\n (isCustom ? key : cssCase(key)) +\n \":\" +\n (typeof value !== \"number\" ||\n unitless[key as keyof typeof unitless] ||\n value === 0 ||\n isCustom\n ? value\n : value + \"px\") +\n \";\";\n } else {\n string += key + \"{\" + stringifyStyleObject(value as StyleObject) + \"}\";\n }\n }\n\n return string;\n}\n\nfunction compileLiterals(args: IArguments): string {\n const literals = args[0];\n return Array.isArray(literals)\n ? literals.reduce((curr, next, i) => curr + next + (args[i + 1] || \"\"), \"\")\n : literals;\n}\n\n//\n// Variable and theme serialization\nconst cssCaseRe = /[A-Z]|^ms/g;\nconst cssDisallowedRe = /[^\\w-]/g;\n// We cache the case transformations below because the cache\n// will grow to a predictable size and the regex is slowwwww\nconst caseCache: Record<string, string> = {};\nfunction cssCase(string: string): string {\n return (\n caseCache[string] ??\n (caseCache[string] = string.replace(cssCaseRe, \"-$&\").toLowerCase())\n );\n}\n\nfunction serializeTokens(\n tokens: Record<string, any>,\n mangle?: CreateStylesOptions[\"mangleTokens\"],\n names: string[] = []\n): SerializedTokens {\n const vars: Record<string, any> = {};\n let css = \"\";\n\n for (let key in tokens) {\n const value = tokens[key];\n\n if (typeof value === \"object\") {\n const result = serializeTokens(value, mangle, names.concat(key));\n vars[key] = result.vars;\n css += result.css;\n } else {\n let name = cssCase(\n names.length > 0 ? names.join(\"-\") + \"-\" + key : key\n ).replace(cssDisallowedRe, \"-\");\n vars[key] =\n \"var(\" +\n (name =\n \"--\" +\n (mangle === true || (mangle && !mangle[name])\n ? mangled(name)\n : name)) +\n \")\";\n css += name + \":\" + value + \";\";\n }\n }\n\n return { vars, css };\n}\n\nconst mangled = safeHash(\"\", fnv1aHash);\n\ntype SerializedTokens = {\n readonly vars: Record<string, Record<string, any> | string | number>;\n readonly css: string;\n};\n\nfunction mergeTokens<\n Tokens extends DashTokens = DashTokens,\n Themes extends DashThemes = DashThemes\n>(\n target: Record<string, any>,\n source: Record<string, any>\n): TokensUnion<Tokens, Themes> {\n for (const key in source) {\n const value = source[key];\n target[key] =\n typeof value === \"object\" ? mergeTokens(target[key] || {}, value) : value;\n }\n\n return target as TokensUnion<Tokens, Themes>;\n}\n\n/**\n * A utility function that will convert a camel-cased, dot-notation string\n * into a dash-cased CSS property variable.\n *\n * @param path - A dot-notation string that represents the path to a value\n */\nexport function pathToToken<\n Tokens extends Record<string, unknown> = TokensUnion<DashTokens, DashThemes>\n>(path: KeysUnion<Tokens>): string {\n return (\n \"var(--\" +\n path.replace(/\\./g, \"-\").replace(cssCaseRe, \"-$&\").toLowerCase() +\n \")\"\n );\n}\n\ntype Concat<Fst, Scd> = Fst extends string\n ? Scd extends string | number\n ? Fst extends \"\"\n ? `${Scd}`\n : `${Fst}.${Scd}`\n : never\n : never;\n\ntype KeysUnion<T, Cache extends string = \"\"> = T extends Primitive\n ? Cache\n : {\n [P in keyof T]: Concat<Cache, P> | KeysUnion<T[P], Concat<Cache, P>>;\n }[keyof T];\n\nexport type TokensUnion<\n Tokens extends DashTokens = DashTokens,\n Themes extends DashThemes = DashThemes\n> = Tokens & ValueOf<Themes>;\n\n//\n// Creates and exports default `styles` instance\nexport const styles: Styles<DashTokens, DashThemes> = createStyles();\n\n/**\n * These are CSS variable type definitions that tell functions like\n * style callbacks which tokens are available. They can be defined\n * globally in your application like so:\n *\n * @example\n * declare module '@dash-ui/styles' {\n * export interface DashTokens {\n * color: {\n * red: string\n * }\n * }\n * }\n *\n * They can also be created automatically when you use a `createStyles()` factory.\n * @example\n * const styles = createStyles({\n * tokens: {\n * foo: 'bar',\n * bar: 'baz'\n * }\n * })\n *\n * // \"foo\" | \"bar\"\n * type Level1VariableNames = keyof DashTokens\n */\nexport interface DashTokens extends Record<string, unknown> {}\n\n/**\n * These are CSS variable theme type definitions that tell functions like\n * style callbacks which tokens are available and which themes are available in\n * `styles.theme()`. They can be defined globally in your application like so:\n *\n * @example\n * declare module '@dash-ui/styles' {\n * export interface DashThemes {\n * light: {\n * color: {\n * red: string;\n * }\n * }\n * dark: {\n * color: {\n * red: string;\n * }\n * }\n * }\n * }\n */\nexport interface DashThemes extends Record<string, Record<string, unknown>> {}\n\n/**\n * The names of the themes defined in the `DashThemes` type\n */\nexport type DashThemeNames = Extract<keyof DashThemes, string>;\n"],"names":["unitlessKeys","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","WEBKIT","MOZ","MS","FLEX","$1","$2","charCodeAt","s","code","replace","i","o","indexOf","a","b","substring","Z","L","d","c","e","h","m","v","n","q","g","w","E","k","u","l","r","G","t","I","length","H","x","f","p","M","N","B","O","trim","charAt","fa","P","A","aa","F","C","z","join","ha","ia","ja","y","J","Q","ba","D","ka","R","split","la","ca","S","ma","na","test","da","T","ea","oa","pa","U","qa","ra","V","call","K","W","X","prefix","Y","use","set","hash","string","out","len","toString","minL","minR","safeHash","key","hashFn","hashCache","value","isNaN","noop","createDash","options","nonce","stylisPlugins","batchInserts","speedy","container","document","head","stylis","Stylis","inserted","Set","cache","Map","sheetsCache","sheet","styleSheet","nodes","querySelectorAll","attr","node","insert","add","bind","getAttribute","forEach","parentNode","appendChild","ruleSheet","process","commentStart","commentEnd","context","content","lastIndex","Error","selector","styles","has","Sheet","sheets","name","sheetRef","get","delete","flush","keys","tag","supportsConstructableStylesheets","window","CSSStyleSheet","prototype","Document","createElement","setAttribute","styleSheets","ownerNode","adoptedStyleSheets","rule","insertRule","cssRules","console","warn","tasks","push","scheduleFlush","removeChild","filter","scheduled","task","shift","requestAnimationFrame","RULE_DELIMITER","RULE_NEEDLE","block","selectors","parents","line","column","ns","depth","at","curr","arg","Object","args","reduce","createStyles","dash","themes","tokens","fnv1aHash","label","variants","styleMap","compiledStyleMap","styleKey","compileStyles","defaultStyles","default","style","css_","css","apply","arguments","className","numArgs","nextStyles","one","compileLiterals","callback","createClassName","createCss","cls","lazy","lazyFn","JSON","stringify","lazyStyle","concat","Array","slice","keyframes","animationName","insertGlobal","insertTokens","nextTokens","serializeTokens","mangleTokens","vars","mergeTokens","insertThemes","nextThemes","theme","defineProperty","configurable","emptyObj","freeze","stringifyStyleObject","object","isCustom","cssCase","unitless","literals","isArray","next","cssCaseRe","cssDisallowedRe","caseCache","toLowerCase","mangle","names","result","mangled","target","source","pathToToken","path"],"mappings":"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"}
\No newline at end of file