Spaces:
Sleeping
Sleeping
| import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isBrowser, a as isDevelopment } from './emotion-element-d59e098f.esm.js'; | |
| export { C as CacheProvider, T as ThemeContext, b as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, d as withTheme } from './emotion-element-d59e098f.esm.js'; | |
| import * as React from 'react'; | |
| import { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils'; | |
| import { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks'; | |
| import { serializeStyles } from '@emotion/serialize'; | |
| import '@emotion/cache'; | |
| import '@babel/runtime/helpers/extends'; | |
| import '@emotion/weak-memoize'; | |
| import '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js'; | |
| import 'hoist-non-react-statics'; | |
| var jsx = function jsx(type, props) { | |
| // eslint-disable-next-line prefer-rest-params | |
| var args = arguments; | |
| if (props == null || !hasOwn.call(props, 'css')) { | |
| return React.createElement.apply(undefined, args); | |
| } | |
| var argsLength = args.length; | |
| var createElementArgArray = new Array(argsLength); | |
| createElementArgArray[0] = Emotion; | |
| createElementArgArray[1] = createEmotionProps(type, props); | |
| for (var i = 2; i < argsLength; i++) { | |
| createElementArgArray[i] = args[i]; | |
| } | |
| return React.createElement.apply(null, createElementArgArray); | |
| }; | |
| (function (_jsx) { | |
| var JSX; | |
| (function (_JSX) {})(JSX || (JSX = _jsx.JSX || (_jsx.JSX = {}))); | |
| })(jsx || (jsx = {})); | |
| // initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild | |
| // initial client-side render from SSR, use place of hydrating tag | |
| var Global = /* #__PURE__ */withEmotionCache(function (props, cache) { | |
| var styles = props.styles; | |
| var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext)); | |
| if (!isBrowser) { | |
| var _ref; | |
| var serializedNames = serialized.name; | |
| var serializedStyles = serialized.styles; | |
| var next = serialized.next; | |
| while (next !== undefined) { | |
| serializedNames += ' ' + next.name; | |
| serializedStyles += next.styles; | |
| next = next.next; | |
| } | |
| var shouldCache = cache.compat === true; | |
| var rules = cache.insert("", { | |
| name: serializedNames, | |
| styles: serializedStyles | |
| }, cache.sheet, shouldCache); | |
| if (shouldCache) { | |
| return null; | |
| } | |
| return /*#__PURE__*/React.createElement("style", (_ref = {}, _ref["data-emotion"] = cache.key + "-global " + serializedNames, _ref.dangerouslySetInnerHTML = { | |
| __html: rules | |
| }, _ref.nonce = cache.sheet.nonce, _ref)); | |
| } // yes, i know these hooks are used conditionally | |
| // but it is based on a constant that will never change at runtime | |
| // it's effectively like having two implementations and switching them out | |
| // so it's not actually breaking anything | |
| var sheetRef = React.useRef(); | |
| useInsertionEffectWithLayoutFallback(function () { | |
| var key = cache.key + "-global"; // use case of https://github.com/emotion-js/emotion/issues/2675 | |
| var sheet = new cache.sheet.constructor({ | |
| key: key, | |
| nonce: cache.sheet.nonce, | |
| container: cache.sheet.container, | |
| speedy: cache.sheet.isSpeedy | |
| }); | |
| var rehydrating = false; | |
| var node = document.querySelector("style[data-emotion=\"" + key + " " + serialized.name + "\"]"); | |
| if (cache.sheet.tags.length) { | |
| sheet.before = cache.sheet.tags[0]; | |
| } | |
| if (node !== null) { | |
| rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s | |
| node.setAttribute('data-emotion', key); | |
| sheet.hydrate([node]); | |
| } | |
| sheetRef.current = [sheet, rehydrating]; | |
| return function () { | |
| sheet.flush(); | |
| }; | |
| }, [cache]); | |
| useInsertionEffectWithLayoutFallback(function () { | |
| var sheetRefCurrent = sheetRef.current; | |
| var sheet = sheetRefCurrent[0], | |
| rehydrating = sheetRefCurrent[1]; | |
| if (rehydrating) { | |
| sheetRefCurrent[1] = false; | |
| return; | |
| } | |
| if (serialized.next !== undefined) { | |
| // insert keyframes | |
| insertStyles(cache, serialized.next, true); | |
| } | |
| if (sheet.tags.length) { | |
| // if this doesn't exist then it will be null so the style element will be appended | |
| var element = sheet.tags[sheet.tags.length - 1].nextElementSibling; | |
| sheet.before = element; | |
| sheet.flush(); | |
| } | |
| cache.insert("", serialized, sheet, false); | |
| }, [cache, serialized.name]); | |
| return null; | |
| }); | |
| function css() { | |
| for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { | |
| args[_key] = arguments[_key]; | |
| } | |
| return serializeStyles(args); | |
| } | |
| function keyframes() { | |
| var insertable = css.apply(void 0, arguments); | |
| var name = "animation-" + insertable.name; | |
| return { | |
| name: name, | |
| styles: "@keyframes " + name + "{" + insertable.styles + "}", | |
| anim: 1, | |
| toString: function toString() { | |
| return "_EMO_" + this.name + "_" + this.styles + "_EMO_"; | |
| } | |
| }; | |
| } | |
| var classnames = function classnames(args) { | |
| var len = args.length; | |
| var i = 0; | |
| var cls = ''; | |
| for (; i < len; i++) { | |
| var arg = args[i]; | |
| if (arg == null) continue; | |
| var toAdd = void 0; | |
| switch (typeof arg) { | |
| case 'boolean': | |
| break; | |
| case 'object': | |
| { | |
| if (Array.isArray(arg)) { | |
| toAdd = classnames(arg); | |
| } else { | |
| toAdd = ''; | |
| for (var k in arg) { | |
| if (arg[k] && k) { | |
| toAdd && (toAdd += ' '); | |
| toAdd += k; | |
| } | |
| } | |
| } | |
| break; | |
| } | |
| default: | |
| { | |
| toAdd = arg; | |
| } | |
| } | |
| if (toAdd) { | |
| cls && (cls += ' '); | |
| cls += toAdd; | |
| } | |
| } | |
| return cls; | |
| }; | |
| function merge(registered, css, className) { | |
| var registeredStyles = []; | |
| var rawClassName = getRegisteredStyles(registered, registeredStyles, className); | |
| if (registeredStyles.length < 2) { | |
| return className; | |
| } | |
| return rawClassName + css(registeredStyles); | |
| } | |
| var Insertion = function Insertion(_ref) { | |
| var cache = _ref.cache, | |
| serializedArr = _ref.serializedArr; | |
| var rules = useInsertionEffectAlwaysWithSyncFallback(function () { | |
| var rules = ''; | |
| for (var i = 0; i < serializedArr.length; i++) { | |
| var res = insertStyles(cache, serializedArr[i], false); | |
| if (!isBrowser && res !== undefined) { | |
| rules += res; | |
| } | |
| } | |
| if (!isBrowser) { | |
| return rules; | |
| } | |
| }); | |
| if (!isBrowser && rules.length !== 0) { | |
| var _ref2; | |
| return /*#__PURE__*/React.createElement("style", (_ref2 = {}, _ref2["data-emotion"] = cache.key + " " + serializedArr.map(function (serialized) { | |
| return serialized.name; | |
| }).join(' '), _ref2.dangerouslySetInnerHTML = { | |
| __html: rules | |
| }, _ref2.nonce = cache.sheet.nonce, _ref2)); | |
| } | |
| return null; | |
| }; | |
| var ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) { | |
| var hasRendered = false; | |
| var serializedArr = []; | |
| var css = function css() { | |
| if (hasRendered && isDevelopment) { | |
| throw new Error('css can only be used during render'); | |
| } | |
| for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { | |
| args[_key] = arguments[_key]; | |
| } | |
| var serialized = serializeStyles(args, cache.registered); | |
| serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx` | |
| registerStyles(cache, serialized, false); | |
| return cache.key + "-" + serialized.name; | |
| }; | |
| var cx = function cx() { | |
| if (hasRendered && isDevelopment) { | |
| throw new Error('cx can only be used during render'); | |
| } | |
| for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { | |
| args[_key2] = arguments[_key2]; | |
| } | |
| return merge(cache.registered, css, classnames(args)); | |
| }; | |
| var content = { | |
| css: css, | |
| cx: cx, | |
| theme: React.useContext(ThemeContext) | |
| }; | |
| var ele = props.children(content); | |
| hasRendered = true; | |
| return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, { | |
| cache: cache, | |
| serializedArr: serializedArr | |
| }), ele); | |
| }); | |
| export { ClassNames, Global, jsx as createElement, css, jsx, keyframes }; | |