{"version":3,"file":"index.mjs","sources":["../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js","../../../node_modules/.pnpm/@emotion+sheet@1.4.0/node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Enum.js","../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Utility.js","../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Tokenizer.js","../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Parser.js","../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Serializer.js","../../../node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Middleware.js","../../../node_modules/.pnpm/@emotion+memoize@0.9.0/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../../node_modules/.pnpm/@emotion+cache@11.14.0/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js","../../../node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../node_modules/.pnpm/@emotion+utils@1.4.2/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../../../node_modules/.pnpm/@emotion+hash@0.9.2/node_modules/@emotion/hash/dist/emotion-hash.esm.js","../../../node_modules/.pnpm/@emotion+unitless@0.10.0/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../../node_modules/.pnpm/@emotion+serialize@1.3.3/node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../../../node_modules/.pnpm/@emotion+use-insertion-effect-with-fallbacks@1.2.0_react@18.3.1/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../../../node_modules/.pnpm/@emotion+react@11.14.0_@types+react@18.3.23_react@18.3.1/node_modules/@emotion/react/dist/emotion-element-f0de968e.browser.esm.js","../../../node_modules/.pnpm/@emotion+react@11.14.0_@types+react@18.3.23_react@18.3.1/node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js","../src/constants.ts","../src/components/TreeNode.tsx","../src/components/MagicTree.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n  (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n  if (maybeIterable === null || typeof maybeIterable !== 'object') {\n    return null;\n  }\n\n  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n  if (typeof maybeIterator === 'function') {\n    return maybeIterator;\n  }\n\n  return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n  {\n    {\n      for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n        args[_key2 - 1] = arguments[_key2];\n      }\n\n      printWarning('error', format, args);\n    }\n  }\n}\n\nfunction printWarning(level, format, args) {\n  // When changing this logic, you might want to also\n  // update consoleWithStackDev.www.js as well.\n  {\n    var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n    var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n    if (stack !== '') {\n      format += '%s';\n      args = args.concat([stack]);\n    } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n    var argsWithFormat = args.map(function (item) {\n      return String(item);\n    }); // Careful: RN currently depends on this prefix\n\n    argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n    // breaks IE9: https://github.com/facebook/react/issues/13610\n    // eslint-disable-next-line react-internal/no-production-logging\n\n    Function.prototype.apply.call(console[level], console, argsWithFormat);\n  }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n  REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n  if (typeof type === 'string' || typeof type === 'function') {\n    return true;\n  } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n  if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing  || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden  || type === REACT_OFFSCREEN_TYPE || enableScopeAPI  || enableCacheElement  || enableTransitionTracing ) {\n    return true;\n  }\n\n  if (typeof type === 'object' && type !== null) {\n    if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n    // types supported by any Flight configuration anywhere since\n    // we don't know which Flight build this will end up being used\n    // with.\n    type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n  var displayName = outerType.displayName;\n\n  if (displayName) {\n    return displayName;\n  }\n\n  var functionName = innerType.displayName || innerType.name || '';\n  return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n  return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n  if (type == null) {\n    // Host root, text node or just invalid type.\n    return null;\n  }\n\n  {\n    if (typeof type.tag === 'number') {\n      error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n    }\n  }\n\n  if (typeof type === 'function') {\n    return type.displayName || type.name || null;\n  }\n\n  if (typeof type === 'string') {\n    return type;\n  }\n\n  switch (type) {\n    case REACT_FRAGMENT_TYPE:\n      return 'Fragment';\n\n    case REACT_PORTAL_TYPE:\n      return 'Portal';\n\n    case REACT_PROFILER_TYPE:\n      return 'Profiler';\n\n    case REACT_STRICT_MODE_TYPE:\n      return 'StrictMode';\n\n    case REACT_SUSPENSE_TYPE:\n      return 'Suspense';\n\n    case REACT_SUSPENSE_LIST_TYPE:\n      return 'SuspenseList';\n\n  }\n\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_CONTEXT_TYPE:\n        var context = type;\n        return getContextName(context) + '.Consumer';\n\n      case REACT_PROVIDER_TYPE:\n        var provider = type;\n        return getContextName(provider._context) + '.Provider';\n\n      case REACT_FORWARD_REF_TYPE:\n        return getWrappedName(type, type.render, 'ForwardRef');\n\n      case REACT_MEMO_TYPE:\n        var outerName = type.displayName || null;\n\n        if (outerName !== null) {\n          return outerName;\n        }\n\n        return getComponentNameFromType(type.type) || 'Memo';\n\n      case REACT_LAZY_TYPE:\n        {\n          var lazyComponent = type;\n          var payload = lazyComponent._payload;\n          var init = lazyComponent._init;\n\n          try {\n            return getComponentNameFromType(init(payload));\n          } catch (x) {\n            return null;\n          }\n        }\n\n      // eslint-disable-next-line no-fallthrough\n    }\n  }\n\n  return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n  {\n    if (disabledDepth === 0) {\n      /* eslint-disable react-internal/no-production-logging */\n      prevLog = console.log;\n      prevInfo = console.info;\n      prevWarn = console.warn;\n      prevError = console.error;\n      prevGroup = console.group;\n      prevGroupCollapsed = console.groupCollapsed;\n      prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n      var props = {\n        configurable: true,\n        enumerable: true,\n        value: disabledLog,\n        writable: true\n      }; // $FlowFixMe Flow thinks console is immutable.\n\n      Object.defineProperties(console, {\n        info: props,\n        log: props,\n        warn: props,\n        error: props,\n        group: props,\n        groupCollapsed: props,\n        groupEnd: props\n      });\n      /* eslint-enable react-internal/no-production-logging */\n    }\n\n    disabledDepth++;\n  }\n}\nfunction reenableLogs() {\n  {\n    disabledDepth--;\n\n    if (disabledDepth === 0) {\n      /* eslint-disable react-internal/no-production-logging */\n      var props = {\n        configurable: true,\n        enumerable: true,\n        writable: true\n      }; // $FlowFixMe Flow thinks console is immutable.\n\n      Object.defineProperties(console, {\n        log: assign({}, props, {\n          value: prevLog\n        }),\n        info: assign({}, props, {\n          value: prevInfo\n        }),\n        warn: assign({}, props, {\n          value: prevWarn\n        }),\n        error: assign({}, props, {\n          value: prevError\n        }),\n        group: assign({}, props, {\n          value: prevGroup\n        }),\n        groupCollapsed: assign({}, props, {\n          value: prevGroupCollapsed\n        }),\n        groupEnd: assign({}, props, {\n          value: prevGroupEnd\n        })\n      });\n      /* eslint-enable react-internal/no-production-logging */\n    }\n\n    if (disabledDepth < 0) {\n      error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n    }\n  }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n  {\n    if (prefix === undefined) {\n      // Extract the VM specific prefix used by each line.\n      try {\n        throw Error();\n      } catch (x) {\n        var match = x.stack.trim().match(/\\n( *(at )?)/);\n        prefix = match && match[1] || '';\n      }\n    } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n    return '\\n' + prefix + name;\n  }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n  var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n  componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n  // If something asked for a stack inside a fake render, it should get ignored.\n  if ( !fn || reentry) {\n    return '';\n  }\n\n  {\n    var frame = componentFrameCache.get(fn);\n\n    if (frame !== undefined) {\n      return frame;\n    }\n  }\n\n  var control;\n  reentry = true;\n  var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n  Error.prepareStackTrace = undefined;\n  var previousDispatcher;\n\n  {\n    previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n    // for warnings.\n\n    ReactCurrentDispatcher.current = null;\n    disableLogs();\n  }\n\n  try {\n    // This should throw.\n    if (construct) {\n      // Something should be setting the props in the constructor.\n      var Fake = function () {\n        throw Error();\n      }; // $FlowFixMe\n\n\n      Object.defineProperty(Fake.prototype, 'props', {\n        set: function () {\n          // We use a throwing setter instead of frozen or non-writable props\n          // because that won't throw in a non-strict mode function.\n          throw Error();\n        }\n      });\n\n      if (typeof Reflect === 'object' && Reflect.construct) {\n        // We construct a different control for this case to include any extra\n        // frames added by the construct call.\n        try {\n          Reflect.construct(Fake, []);\n        } catch (x) {\n          control = x;\n        }\n\n        Reflect.construct(fn, [], Fake);\n      } else {\n        try {\n          Fake.call();\n        } catch (x) {\n          control = x;\n        }\n\n        fn.call(Fake.prototype);\n      }\n    } else {\n      try {\n        throw Error();\n      } catch (x) {\n        control = x;\n      }\n\n      fn();\n    }\n  } catch (sample) {\n    // This is inlined manually because closure doesn't do it for us.\n    if (sample && control && typeof sample.stack === 'string') {\n      // This extracts the first frame from the sample that isn't also in the control.\n      // Skipping one frame that we assume is the frame that calls the two.\n      var sampleLines = sample.stack.split('\\n');\n      var controlLines = control.stack.split('\\n');\n      var s = sampleLines.length - 1;\n      var c = controlLines.length - 1;\n\n      while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n        // We expect at least one stack frame to be shared.\n        // Typically this will be the root most one. However, stack frames may be\n        // cut off due to maximum stack limits. In this case, one maybe cut off\n        // earlier than the other. We assume that the sample is longer or the same\n        // and there for cut off earlier. So we should find the root most frame in\n        // the sample somewhere in the control.\n        c--;\n      }\n\n      for (; s >= 1 && c >= 0; s--, c--) {\n        // Next we find the first one that isn't the same which should be the\n        // frame that called our sample function and the control.\n        if (sampleLines[s] !== controlLines[c]) {\n          // In V8, the first line is describing the message but other VMs don't.\n          // If we're about to return the first line, and the control is also on the same\n          // line, that's a pretty good indicator that our sample threw at same line as\n          // the control. I.e. before we entered the sample frame. So we ignore this result.\n          // This can happen if you passed a class to function component, or non-function.\n          if (s !== 1 || c !== 1) {\n            do {\n              s--;\n              c--; // We may still have similar intermediate frames from the construct call.\n              // The next one that isn't the same should be our match though.\n\n              if (c < 0 || sampleLines[s] !== controlLines[c]) {\n                // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n                var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n                // but we have a user-provided \"displayName\"\n                // splice it in to make the stack more readable.\n\n\n                if (fn.displayName && _frame.includes('<anonymous>')) {\n                  _frame = _frame.replace('<anonymous>', fn.displayName);\n                }\n\n                {\n                  if (typeof fn === 'function') {\n                    componentFrameCache.set(fn, _frame);\n                  }\n                } // Return the line we found.\n\n\n                return _frame;\n              }\n            } while (s >= 1 && c >= 0);\n          }\n\n          break;\n        }\n      }\n    }\n  } finally {\n    reentry = false;\n\n    {\n      ReactCurrentDispatcher.current = previousDispatcher;\n      reenableLogs();\n    }\n\n    Error.prepareStackTrace = previousPrepareStackTrace;\n  } // Fallback to just using the name if we couldn't make it throw.\n\n\n  var name = fn ? fn.displayName || fn.name : '';\n  var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n  {\n    if (typeof fn === 'function') {\n      componentFrameCache.set(fn, syntheticFrame);\n    }\n  }\n\n  return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n  {\n    return describeNativeComponentFrame(fn, false);\n  }\n}\n\nfunction shouldConstruct(Component) {\n  var prototype = Component.prototype;\n  return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n  if (type == null) {\n    return '';\n  }\n\n  if (typeof type === 'function') {\n    {\n      return describeNativeComponentFrame(type, shouldConstruct(type));\n    }\n  }\n\n  if (typeof type === 'string') {\n    return describeBuiltInComponentFrame(type);\n  }\n\n  switch (type) {\n    case REACT_SUSPENSE_TYPE:\n      return describeBuiltInComponentFrame('Suspense');\n\n    case REACT_SUSPENSE_LIST_TYPE:\n      return describeBuiltInComponentFrame('SuspenseList');\n  }\n\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_FORWARD_REF_TYPE:\n        return describeFunctionComponentFrame(type.render);\n\n      case REACT_MEMO_TYPE:\n        // Memo may contain any component type so we recursively resolve it.\n        return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n      case REACT_LAZY_TYPE:\n        {\n          var lazyComponent = type;\n          var payload = lazyComponent._payload;\n          var init = lazyComponent._init;\n\n          try {\n            // Lazy may contain any component type so we recursively resolve it.\n            return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n          } catch (x) {}\n        }\n    }\n  }\n\n  return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n  {\n    if (element) {\n      var owner = element._owner;\n      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n      ReactDebugCurrentFrame.setExtraStackFrame(stack);\n    } else {\n      ReactDebugCurrentFrame.setExtraStackFrame(null);\n    }\n  }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n  {\n    // $FlowFixMe This is okay but Flow doesn't know it.\n    var has = Function.call.bind(hasOwnProperty);\n\n    for (var typeSpecName in typeSpecs) {\n      if (has(typeSpecs, typeSpecName)) {\n        var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n        // fail the render phase where it didn't fail before. So we log it.\n        // After these have been cleaned up, we'll let them throw.\n\n        try {\n          // This is intentionally an invariant that gets caught. It's the same\n          // behavior as without this statement except with a better message.\n          if (typeof typeSpecs[typeSpecName] !== 'function') {\n            // eslint-disable-next-line react-internal/prod-error-codes\n            var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n            err.name = 'Invariant Violation';\n            throw err;\n          }\n\n          error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n        } catch (ex) {\n          error$1 = ex;\n        }\n\n        if (error$1 && !(error$1 instanceof Error)) {\n          setCurrentlyValidatingElement(element);\n\n          error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n          setCurrentlyValidatingElement(null);\n        }\n\n        if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n          // Only monitor this failure once because there tends to be a lot of the\n          // same error.\n          loggedTypeFailures[error$1.message] = true;\n          setCurrentlyValidatingElement(element);\n\n          error('Failed %s type: %s', location, error$1.message);\n\n          setCurrentlyValidatingElement(null);\n        }\n      }\n    }\n  }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n  return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n  {\n    // toStringTag is needed for namespaced types like Temporal.Instant\n    var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n    var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n    return type;\n  }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n  {\n    try {\n      testStringCoercion(value);\n      return false;\n    } catch (e) {\n      return true;\n    }\n  }\n}\n\nfunction testStringCoercion(value) {\n  // If you ended up here by following an exception call stack, here's what's\n  // happened: you supplied an object or symbol value to React (as a prop, key,\n  // DOM attribute, CSS property, string ref, etc.) and when React tried to\n  // coerce it to a string using `'' + value`, an exception was thrown.\n  //\n  // The most common types that will cause this exception are `Symbol` instances\n  // and Temporal objects like `Temporal.Instant`. But any object that has a\n  // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n  // exception. (Library authors do this to prevent users from using built-in\n  // numeric operators like `+` or comparison operators like `>=` because custom\n  // methods are needed to perform accurate arithmetic or comparison.)\n  //\n  // To fix the problem, coerce this object or symbol value to a string before\n  // passing it to React. The most reliable way is usually `String(value)`.\n  //\n  // To find which value is throwing, check the browser or debugger console.\n  // Before this exception was thrown, there should be `console.error` output\n  // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n  // problem and how that type was used: key, atrribute, input value prop, etc.\n  // In most cases, this console output also shows the component and its\n  // ancestor components where the exception happened.\n  //\n  // eslint-disable-next-line react-internal/safe-string-coercion\n  return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n  {\n    if (willCoercionThrow(value)) {\n      error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n      return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n    }\n  }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true,\n  __self: true,\n  __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n  didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n  {\n    if (hasOwnProperty.call(config, 'ref')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n\n  return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n  {\n    if (hasOwnProperty.call(config, 'key')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n\n  return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n  {\n    if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n      var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n      if (!didWarnAboutStringRefs[componentName]) {\n        error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n        didWarnAboutStringRefs[componentName] = true;\n      }\n    }\n  }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n  {\n    var warnAboutAccessingKey = function () {\n      if (!specialPropKeyWarningShown) {\n        specialPropKeyWarningShown = true;\n\n        error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n      }\n    };\n\n    warnAboutAccessingKey.isReactWarning = true;\n    Object.defineProperty(props, 'key', {\n      get: warnAboutAccessingKey,\n      configurable: true\n    });\n  }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n  {\n    var warnAboutAccessingRef = function () {\n      if (!specialPropRefWarningShown) {\n        specialPropRefWarningShown = true;\n\n        error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n      }\n    };\n\n    warnAboutAccessingRef.isReactWarning = true;\n    Object.defineProperty(props, 'ref', {\n      get: warnAboutAccessingRef,\n      configurable: true\n    });\n  }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n  var element = {\n    // This tag allows us to uniquely identify this as a React Element\n    $$typeof: REACT_ELEMENT_TYPE,\n    // Built-in properties that belong on the element\n    type: type,\n    key: key,\n    ref: ref,\n    props: props,\n    // Record the component responsible for creating this element.\n    _owner: owner\n  };\n\n  {\n    // The validation flag is currently mutative. We put it on\n    // an external backing store so that we can freeze the whole object.\n    // This can be replaced with a WeakMap once they are implemented in\n    // commonly used development environments.\n    element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n    // the validation flag non-enumerable (where possible, which should\n    // include every environment we run tests in), so the test framework\n    // ignores it.\n\n    Object.defineProperty(element._store, 'validated', {\n      configurable: false,\n      enumerable: false,\n      writable: true,\n      value: false\n    }); // self and source are DEV only properties.\n\n    Object.defineProperty(element, '_self', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: self\n    }); // Two elements created in two different places should be considered\n    // equal for testing purposes and therefore we hide it from enumeration.\n\n    Object.defineProperty(element, '_source', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: source\n    });\n\n    if (Object.freeze) {\n      Object.freeze(element.props);\n      Object.freeze(element);\n    }\n  }\n\n  return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n  {\n    var propName; // Reserved names are extracted\n\n    var props = {};\n    var key = null;\n    var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n    // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n    // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n    // but as an intermediary step, we will use jsxDEV for everything except\n    // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n    // key is explicitly declared to be undefined or not.\n\n    if (maybeKey !== undefined) {\n      {\n        checkKeyStringCoercion(maybeKey);\n      }\n\n      key = '' + maybeKey;\n    }\n\n    if (hasValidKey(config)) {\n      {\n        checkKeyStringCoercion(config.key);\n      }\n\n      key = '' + config.key;\n    }\n\n    if (hasValidRef(config)) {\n      ref = config.ref;\n      warnIfStringRefCannotBeAutoConverted(config, self);\n    } // Remaining properties are added to a new props object\n\n\n    for (propName in config) {\n      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    } // Resolve default props\n\n\n    if (type && type.defaultProps) {\n      var defaultProps = type.defaultProps;\n\n      for (propName in defaultProps) {\n        if (props[propName] === undefined) {\n          props[propName] = defaultProps[propName];\n        }\n      }\n    }\n\n    if (key || ref) {\n      var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n      if (key) {\n        defineKeyPropWarningGetter(props, displayName);\n      }\n\n      if (ref) {\n        defineRefPropWarningGetter(props, displayName);\n      }\n    }\n\n    return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n  }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n  {\n    if (element) {\n      var owner = element._owner;\n      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n      ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n    } else {\n      ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n    }\n  }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n  propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n  {\n    return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n  }\n}\n\nfunction getDeclarationErrorAddendum() {\n  {\n    if (ReactCurrentOwner$1.current) {\n      var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n      if (name) {\n        return '\\n\\nCheck the render method of `' + name + '`.';\n      }\n    }\n\n    return '';\n  }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n  {\n    if (source !== undefined) {\n      var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n      var lineNumber = source.lineNumber;\n      return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n    }\n\n    return '';\n  }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n  {\n    var info = getDeclarationErrorAddendum();\n\n    if (!info) {\n      var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n      if (parentName) {\n        info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n      }\n    }\n\n    return info;\n  }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n  {\n    if (!element._store || element._store.validated || element.key != null) {\n      return;\n    }\n\n    element._store.validated = true;\n    var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n    if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n      return;\n    }\n\n    ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n    // property, it may be the creator of the child that's responsible for\n    // assigning it a key.\n\n    var childOwner = '';\n\n    if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n      // Give the component that originally created this child.\n      childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n    }\n\n    setCurrentlyValidatingElement$1(element);\n\n    error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n    setCurrentlyValidatingElement$1(null);\n  }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n  {\n    if (typeof node !== 'object') {\n      return;\n    }\n\n    if (isArray(node)) {\n      for (var i = 0; i < node.length; i++) {\n        var child = node[i];\n\n        if (isValidElement(child)) {\n          validateExplicitKey(child, parentType);\n        }\n      }\n    } else if (isValidElement(node)) {\n      // This element was passed in a valid location.\n      if (node._store) {\n        node._store.validated = true;\n      }\n    } else if (node) {\n      var iteratorFn = getIteratorFn(node);\n\n      if (typeof iteratorFn === 'function') {\n        // Entry iterators used to provide implicit keys,\n        // but now we print a separate warning for them later.\n        if (iteratorFn !== node.entries) {\n          var iterator = iteratorFn.call(node);\n          var step;\n\n          while (!(step = iterator.next()).done) {\n            if (isValidElement(step.value)) {\n              validateExplicitKey(step.value, parentType);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n  {\n    var type = element.type;\n\n    if (type === null || type === undefined || typeof type === 'string') {\n      return;\n    }\n\n    var propTypes;\n\n    if (typeof type === 'function') {\n      propTypes = type.propTypes;\n    } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n    // Inner props are checked in the reconciler.\n    type.$$typeof === REACT_MEMO_TYPE)) {\n      propTypes = type.propTypes;\n    } else {\n      return;\n    }\n\n    if (propTypes) {\n      // Intentionally inside to avoid triggering lazy initializers:\n      var name = getComponentNameFromType(type);\n      checkPropTypes(propTypes, element.props, 'prop', name, element);\n    } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n      propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n      var _name = getComponentNameFromType(type);\n\n      error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n    }\n\n    if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n      error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n    }\n  }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n  {\n    var keys = Object.keys(fragment.props);\n\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n\n      if (key !== 'children' && key !== 'key') {\n        setCurrentlyValidatingElement$1(fragment);\n\n        error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n        setCurrentlyValidatingElement$1(null);\n        break;\n      }\n    }\n\n    if (fragment.ref !== null) {\n      setCurrentlyValidatingElement$1(fragment);\n\n      error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n      setCurrentlyValidatingElement$1(null);\n    }\n  }\n}\n\nvar didWarnAboutKeySpread = {};\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n  {\n    var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n    // succeed and there will likely be errors in render.\n\n    if (!validType) {\n      var info = '';\n\n      if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n        info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n      }\n\n      var sourceInfo = getSourceInfoErrorAddendum(source);\n\n      if (sourceInfo) {\n        info += sourceInfo;\n      } else {\n        info += getDeclarationErrorAddendum();\n      }\n\n      var typeString;\n\n      if (type === null) {\n        typeString = 'null';\n      } else if (isArray(type)) {\n        typeString = 'array';\n      } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n        typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n        info = ' Did you accidentally export a JSX literal instead of a component?';\n      } else {\n        typeString = typeof type;\n      }\n\n      error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n    }\n\n    var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n    // TODO: Drop this when these are no longer allowed as the type argument.\n\n    if (element == null) {\n      return element;\n    } // Skip key warning if the type isn't valid since our key validation logic\n    // doesn't expect a non-string/function type and can throw confusing errors.\n    // We don't want exception behavior to differ between dev and prod.\n    // (Rendering will throw with a helpful message and as soon as the type is\n    // fixed, the key warnings will appear.)\n\n\n    if (validType) {\n      var children = props.children;\n\n      if (children !== undefined) {\n        if (isStaticChildren) {\n          if (isArray(children)) {\n            for (var i = 0; i < children.length; i++) {\n              validateChildKeys(children[i], type);\n            }\n\n            if (Object.freeze) {\n              Object.freeze(children);\n            }\n          } else {\n            error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n          }\n        } else {\n          validateChildKeys(children, type);\n        }\n      }\n    }\n\n    {\n      if (hasOwnProperty.call(props, 'key')) {\n        var componentName = getComponentNameFromType(type);\n        var keys = Object.keys(props).filter(function (k) {\n          return k !== 'key';\n        });\n        var beforeExample = keys.length > 0 ? '{key: someKey, ' + keys.join(': ..., ') + ': ...}' : '{key: someKey}';\n\n        if (!didWarnAboutKeySpread[componentName + beforeExample]) {\n          var afterExample = keys.length > 0 ? '{' + keys.join(': ..., ') + ': ...}' : '{}';\n\n          error('A props object containing a \"key\" prop is being spread into JSX:\\n' + '  let props = %s;\\n' + '  <%s {...props} />\\n' + 'React keys must be passed directly to JSX without using spread:\\n' + '  let props = %s;\\n' + '  <%s key={someKey} {...props} />', beforeExample, componentName, afterExample, componentName);\n\n          didWarnAboutKeySpread[componentName + beforeExample] = true;\n        }\n      }\n    }\n\n    if (type === REACT_FRAGMENT_TYPE) {\n      validateFragmentProps(element);\n    } else {\n      validatePropTypes(element);\n    }\n\n    return element;\n  }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n  {\n    return jsxWithValidation(type, props, key, true);\n  }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n  {\n    return jsxWithValidation(type, props, key, false);\n  }\n}\n\nvar jsx =  jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs =  jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n  })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n  module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n  if (tag.sheet) {\n    return tag.sheet;\n  } // this weirdness brought to you by firefox\n\n  /* istanbul ignore next */\n\n\n  for (var i = 0; i < document.styleSheets.length; i++) {\n    if (document.styleSheets[i].ownerNode === tag) {\n      return document.styleSheets[i];\n    }\n  } // this function should always return with a value\n  // TS can't understand it though so we make it stop complaining here\n\n\n  return undefined;\n}\n\nfunction createStyleElement(options) {\n  var tag = document.createElement('style');\n  tag.setAttribute('data-emotion', options.key);\n\n  if (options.nonce !== undefined) {\n    tag.setAttribute('nonce', options.nonce);\n  }\n\n  tag.appendChild(document.createTextNode(''));\n  tag.setAttribute('data-s', '');\n  return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n  // Using Node instead of HTMLElement since container may be a ShadowRoot\n  function StyleSheet(options) {\n    var _this = this;\n\n    this._insertTag = function (tag) {\n      var before;\n\n      if (_this.tags.length === 0) {\n        if (_this.insertionPoint) {\n          before = _this.insertionPoint.nextSibling;\n        } else if (_this.prepend) {\n          before = _this.container.firstChild;\n        } else {\n          before = _this.before;\n        }\n      } else {\n        before = _this.tags[_this.tags.length - 1].nextSibling;\n      }\n\n      _this.container.insertBefore(tag, before);\n\n      _this.tags.push(tag);\n    };\n\n    this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n    this.tags = [];\n    this.ctr = 0;\n    this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n    this.key = options.key;\n    this.container = options.container;\n    this.prepend = options.prepend;\n    this.insertionPoint = options.insertionPoint;\n    this.before = null;\n  }\n\n  var _proto = StyleSheet.prototype;\n\n  _proto.hydrate = function hydrate(nodes) {\n    nodes.forEach(this._insertTag);\n  };\n\n  _proto.insert = function insert(rule) {\n    // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n    // it's 1 in dev because we insert source maps that map a single rule to a location\n    // and you can only have one source map per style tag\n    if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n      this._insertTag(createStyleElement(this));\n    }\n\n    var tag = this.tags[this.tags.length - 1];\n\n    if (this.isSpeedy) {\n      var sheet = sheetForTag(tag);\n\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      }\n    } else {\n      tag.appendChild(document.createTextNode(rule));\n    }\n\n    this.ctr++;\n  };\n\n  _proto.flush = function flush() {\n    this.tags.forEach(function (tag) {\n      var _tag$parentNode;\n\n      return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n    });\n    this.tags = [];\n    this.ctr = 0;\n  };\n\n  return StyleSheet;\n}();\n\nexport { StyleSheet };\n","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'\nexport var LAYER = '@layer'\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 {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\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} search\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, assign} 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 | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} 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 {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? 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 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} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\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\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\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, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, 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 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\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 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\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: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\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 === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: 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, 0, 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\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\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 = length = 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 {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} 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 LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\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.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\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] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], 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","function memoize(fn) {\n  var cache = Object.create(null);\n  return function (arg) {\n    if (cache[arg] === undefined) cache[arg] = fn(arg);\n    return cache[arg];\n  };\n}\n\nexport { memoize as default };\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n  var previous = 0;\n  var character = 0;\n\n  while (true) {\n    previous = character;\n    character = peek(); // &\\f\n\n    if (previous === 38 && character === 12) {\n      points[index] = 1;\n    }\n\n    if (token(character)) {\n      break;\n    }\n\n    next();\n  }\n\n  return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n  // pretend we've started with a comma\n  var index = -1;\n  var character = 44;\n\n  do {\n    switch (token(character)) {\n      case 0:\n        // &\\f\n        if (character === 38 && peek() === 12) {\n          // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n          // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n          // and when it should just concatenate the outer and inner selectors\n          // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n          points[index] = 1;\n        }\n\n        parsed[index] += identifierWithPointTracking(position - 1, points, index);\n        break;\n\n      case 2:\n        parsed[index] += delimit(character);\n        break;\n\n      case 4:\n        // comma\n        if (character === 44) {\n          // colon\n          parsed[++index] = peek() === 58 ? '&\\f' : '';\n          points[index] = parsed[index].length;\n          break;\n        }\n\n      // fallthrough\n\n      default:\n        parsed[index] += from(character);\n    }\n  } while (character = next());\n\n  return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n  return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n  if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n  // negative .length indicates that this rule has been already prefixed\n  element.length < 1) {\n    return;\n  }\n\n  var value = element.value;\n  var parent = element.parent;\n  var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n  while (parent.type !== 'rule') {\n    parent = parent.parent;\n    if (!parent) return;\n  } // short-circuit for the simplest case\n\n\n  if (element.props.length === 1 && value.charCodeAt(0) !== 58\n  /* colon */\n  && !fixedElements.get(parent)) {\n    return;\n  } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n  // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n  if (isImplicitRule) {\n    return;\n  }\n\n  fixedElements.set(element, true);\n  var points = [];\n  var rules = getRules(value, points);\n  var parentRules = parent.props;\n\n  for (var i = 0, k = 0; i < rules.length; i++) {\n    for (var j = 0; j < parentRules.length; j++, k++) {\n      element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n    }\n  }\n};\nvar removeLabel = function removeLabel(element) {\n  if (element.type === 'decl') {\n    var value = element.value;\n\n    if ( // charcode for l\n    value.charCodeAt(0) === 108 && // charcode for b\n    value.charCodeAt(2) === 98) {\n      // this ignores label\n      element[\"return\"] = '';\n      element.value = '';\n    }\n  }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n  switch (hash(value, length)) {\n    // color-adjust\n    case 5103:\n      return WEBKIT + 'print-' + value + value;\n    // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n    case 5737:\n    case 4201:\n    case 3177:\n    case 3433:\n    case 1641:\n    case 4457:\n    case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n    case 5572:\n    case 6356:\n    case 5844:\n    case 3191:\n    case 6645:\n    case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n    case 6391:\n    case 5879:\n    case 5623:\n    case 6135:\n    case 4599:\n    case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n    case 4215:\n    case 6389:\n    case 5109:\n    case 5365:\n    case 5621:\n    case 3829:\n      return WEBKIT + value + value;\n    // appearance, user-select, transform, hyphens, text-size-adjust\n\n    case 5349:\n    case 4246:\n    case 4810:\n    case 6968:\n    case 2756:\n      return WEBKIT + value + MOZ + value + MS + value + value;\n    // flex, flex-direction\n\n    case 6828:\n    case 4268:\n      return WEBKIT + value + MS + value + value;\n    // order\n\n    case 6165:\n      return WEBKIT + value + MS + 'flex-' + value + value;\n    // align-items\n\n    case 5187:\n      return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n    // align-self\n\n    case 5443:\n      return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n    // align-content\n\n    case 4675:\n      return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n    // flex-shrink\n\n    case 5548:\n      return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n    // flex-basis\n\n    case 5292:\n      return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n    // flex-grow\n\n    case 6060:\n      return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n    // transition\n\n    case 4554:\n      return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n    // cursor\n\n    case 6187:\n      return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n    // background, background-image\n\n    case 5495:\n    case 3959:\n      return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n    // justify-content\n\n    case 4968:\n      return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n    // (margin|padding)-inline-(start|end)\n\n    case 4095:\n    case 3583:\n    case 4068:\n    case 2532:\n      return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n    // (min|max)?(width|height|inline-size|block-size)\n\n    case 8116:\n    case 7059:\n    case 5753:\n    case 5535:\n    case 5445:\n    case 5701:\n    case 4933:\n    case 4677:\n    case 5533:\n    case 5789:\n    case 5021:\n    case 4765:\n      // stretch, max-content, min-content, fill-available\n      if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n        // (m)ax-content, (m)in-content\n        case 109:\n          // -\n          if (charat(value, length + 4) !== 45) break;\n        // (f)ill-available, (f)it-content\n\n        case 102:\n          return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n        // (s)tretch\n\n        case 115:\n          return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n      }\n      break;\n    // position: sticky\n\n    case 4949:\n      // (s)ticky?\n      if (charat(value, length + 1) !== 115) break;\n    // display: (flex|inline-flex)\n\n    case 6444:\n      switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n        // stic(k)y\n        case 107:\n          return replace(value, ':', ':' + WEBKIT) + value;\n        // (inline-)?fl(e)x\n\n        case 101:\n          return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n      }\n\n      break;\n    // writing-mode\n\n    case 5936:\n      switch (charat(value, length + 11)) {\n        // vertical-l(r)\n        case 114:\n          return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n        // vertical-r(l)\n\n        case 108:\n          return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n        // horizontal(-)tb\n\n        case 45:\n          return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n      }\n\n      return WEBKIT + value + MS + value + value;\n  }\n\n  return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n  if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n    case DECLARATION:\n      element[\"return\"] = prefix(element.value, element.length);\n      break;\n\n    case KEYFRAMES:\n      return serialize([copy(element, {\n        value: replace(element.value, '@', '@' + WEBKIT)\n      })], callback);\n\n    case RULESET:\n      if (element.length) return combine(element.props, function (value) {\n        switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n          // :read-(only|write)\n          case ':read-only':\n          case ':read-write':\n            return serialize([copy(element, {\n              props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n            })], callback);\n          // :placeholder\n\n          case '::placeholder':\n            return serialize([copy(element, {\n              props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n            }), copy(element, {\n              props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n            }), copy(element, {\n              props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n            })], callback);\n        }\n\n        return '';\n      });\n  }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n  var key = options.key;\n\n  if (key === 'css') {\n    var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n    // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n    // note this very very intentionally targets all style elements regardless of the key to ensure\n    // that creating a cache works inside of render of a React component\n\n    Array.prototype.forEach.call(ssrStyles, function (node) {\n      // we want to only move elements which have a space in the data-emotion attribute value\n      // because that indicates that it is an Emotion 11 server-side rendered style elements\n      // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n      // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n      // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n      // will not result in the Emotion 10 styles being destroyed\n      var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n      if (dataEmotionAttribute.indexOf(' ') === -1) {\n        return;\n      }\n\n      document.head.appendChild(node);\n      node.setAttribute('data-s', '');\n    });\n  }\n\n  var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n  var inserted = {};\n  var container;\n  var nodesToHydrate = [];\n\n  {\n    container = options.container || document.head;\n    Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n    // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n    document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n      var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n      for (var i = 1; i < attrib.length; i++) {\n        inserted[attrib[i]] = true;\n      }\n\n      nodesToHydrate.push(node);\n    });\n  }\n\n  var _insert;\n\n  var omnipresentPlugins = [compat, removeLabel];\n\n  {\n    var currentSheet;\n    var finalizingPlugins = [stringify, rulesheet(function (rule) {\n      currentSheet.insert(rule);\n    })];\n    var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n    var stylis = function stylis(styles) {\n      return serialize(compile(styles), serializer);\n    };\n\n    _insert = function insert(selector, serialized, sheet, shouldCache) {\n      currentSheet = sheet;\n\n      stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n      if (shouldCache) {\n        cache.inserted[serialized.name] = true;\n      }\n    };\n  }\n\n  var cache = {\n    key: key,\n    sheet: new StyleSheet({\n      key: key,\n      container: container,\n      nonce: options.nonce,\n      speedy: options.speedy,\n      prepend: options.prepend,\n      insertionPoint: options.insertionPoint\n    }),\n    nonce: options.nonce,\n    inserted: inserted,\n    registered: {},\n    insert: _insert\n  };\n  cache.sheet.hydrate(nodesToHydrate);\n  return cache;\n};\n\nexport { createCache as default };\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n  (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n  return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n  type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n  if (typeof object === 'object' && object !== null) {\n    var $$typeof = object.$$typeof;\n\n    switch ($$typeof) {\n      case REACT_ELEMENT_TYPE:\n        var type = object.type;\n\n        switch (type) {\n          case REACT_ASYNC_MODE_TYPE:\n          case REACT_CONCURRENT_MODE_TYPE:\n          case REACT_FRAGMENT_TYPE:\n          case REACT_PROFILER_TYPE:\n          case REACT_STRICT_MODE_TYPE:\n          case REACT_SUSPENSE_TYPE:\n            return type;\n\n          default:\n            var $$typeofType = type && type.$$typeof;\n\n            switch ($$typeofType) {\n              case REACT_CONTEXT_TYPE:\n              case REACT_FORWARD_REF_TYPE:\n              case REACT_LAZY_TYPE:\n              case REACT_MEMO_TYPE:\n              case REACT_PROVIDER_TYPE:\n                return $$typeofType;\n\n              default:\n                return $$typeof;\n            }\n\n        }\n\n      case REACT_PORTAL_TYPE:\n        return $$typeof;\n    }\n  }\n\n  return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n  {\n    if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n      hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n      console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n    }\n  }\n\n  return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n  return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n  return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n  return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n  return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n  return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n  return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n  return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n  return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n  return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n  return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n  return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n  })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-is.production.min.js');\n} else {\n  module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n  childContextTypes: true,\n  contextType: true,\n  contextTypes: true,\n  defaultProps: true,\n  displayName: true,\n  getDefaultProps: true,\n  getDerivedStateFromError: true,\n  getDerivedStateFromProps: true,\n  mixins: true,\n  propTypes: true,\n  type: true\n};\nvar KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true\n};\nvar FORWARD_REF_STATICS = {\n  '$$typeof': true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true\n};\nvar MEMO_STATICS = {\n  '$$typeof': true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n  // React v16.11 and below\n  if (reactIs.isMemo(component)) {\n    return MEMO_STATICS;\n  } // React v16.12 and above\n\n\n  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n    if (objectPrototype) {\n      var inheritedComponent = getPrototypeOf(sourceComponent);\n\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n      }\n    }\n\n    var keys = getOwnPropertyNames(sourceComponent);\n\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n    }\n\n    var targetStatics = getStatics(targetComponent);\n    var sourceStatics = getStatics(sourceComponent);\n\n    for (var i = 0; i < keys.length; ++i) {\n      var key = keys[i];\n\n      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor);\n        } catch (e) {}\n      }\n    }\n  }\n\n  return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var isBrowser = true;\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n  var rawClassName = '';\n  classNames.split(' ').forEach(function (className) {\n    if (registered[className] !== undefined) {\n      registeredStyles.push(registered[className] + \";\");\n    } else if (className) {\n      rawClassName += className + \" \";\n    }\n  });\n  return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n  var className = cache.key + \"-\" + serialized.name;\n\n  if ( // we only need to add the styles to the registered cache if the\n  // class name could be used further down\n  // the tree but if it's a string tag, we know it won't\n  // so we don't have to add it to registered cache.\n  // this improves memory usage since we can avoid storing the whole style string\n  (isStringTag === false || // we need to always store it if we're in compat mode and\n  // in node since emotion-server relies on whether a style is in\n  // the registered cache to know whether a style is global or not\n  // also, note that this check will be dead code eliminated in the browser\n  isBrowser === false ) && cache.registered[className] === undefined) {\n    cache.registered[className] = serialized.styles;\n  }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n  registerStyles(cache, serialized, isStringTag);\n  var className = cache.key + \"-\" + serialized.name;\n\n  if (cache.inserted[serialized.name] === undefined) {\n    var current = serialized;\n\n    do {\n      cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n      current = current.next;\n    } while (current !== undefined);\n  }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n  // 'm' and 'r' are mixing constants generated offline.\n  // They're not really 'magic', they just happen to work well.\n  // const m = 0x5bd1e995;\n  // const r = 24;\n  // Initialize the hash\n  var h = 0; // Mix 4 bytes at a time into the hash\n\n  var k,\n      i = 0,\n      len = str.length;\n\n  for (; len >= 4; ++i, len -= 4) {\n    k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n    k =\n    /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n    k ^=\n    /* k >>> r: */\n    k >>> 24;\n    h =\n    /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n    /* Math.imul(h, m): */\n    (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Handle the last few bytes of the input array\n\n\n  switch (len) {\n    case 3:\n      h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n    case 2:\n      h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n    case 1:\n      h ^= str.charCodeAt(i) & 0xff;\n      h =\n      /* Math.imul(h, m): */\n      (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Do a few final mixes of the hash to ensure the last few\n  // bytes are well-incorporated.\n\n\n  h ^= h >>> 13;\n  h =\n  /* Math.imul(h, m): */\n  (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","var unitlessKeys = {\n  animationIterationCount: 1,\n  aspectRatio: 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  scale: 1,\n  tabSize: 1,\n  widows: 1,\n  zIndex: 1,\n  zoom: 1,\n  WebkitLineClamp: 1,\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};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n  return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n  return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n  return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n  switch (key) {\n    case 'animation':\n    case 'animationName':\n      {\n        if (typeof value === 'string') {\n          return value.replace(animationRegex, function (match, p1, p2) {\n            cursor = {\n              name: p1,\n              styles: p2,\n              next: cursor\n            };\n            return p1;\n          });\n        }\n      }\n  }\n\n  if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n    return value + 'px';\n  }\n\n  return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n  if (interpolation == null) {\n    return '';\n  }\n\n  var componentSelector = interpolation;\n\n  if (componentSelector.__emotion_styles !== undefined) {\n\n    return componentSelector;\n  }\n\n  switch (typeof interpolation) {\n    case 'boolean':\n      {\n        return '';\n      }\n\n    case 'object':\n      {\n        var keyframes = interpolation;\n\n        if (keyframes.anim === 1) {\n          cursor = {\n            name: keyframes.name,\n            styles: keyframes.styles,\n            next: cursor\n          };\n          return keyframes.name;\n        }\n\n        var serializedStyles = interpolation;\n\n        if (serializedStyles.styles !== undefined) {\n          var next = serializedStyles.next;\n\n          if (next !== undefined) {\n            // not the most efficient thing ever but this is a pretty rare case\n            // and there will be very few iterations of this generally\n            while (next !== undefined) {\n              cursor = {\n                name: next.name,\n                styles: next.styles,\n                next: cursor\n              };\n              next = next.next;\n            }\n          }\n\n          var styles = serializedStyles.styles + \";\";\n          return styles;\n        }\n\n        return createStringFromObject(mergedProps, registered, interpolation);\n      }\n\n    case 'function':\n      {\n        if (mergedProps !== undefined) {\n          var previousCursor = cursor;\n          var result = interpolation(mergedProps);\n          cursor = previousCursor;\n          return handleInterpolation(mergedProps, registered, result);\n        }\n\n        break;\n      }\n  } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n  var asString = interpolation;\n\n  if (registered == null) {\n    return asString;\n  }\n\n  var cached = registered[asString];\n  return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n  var string = '';\n\n  if (Array.isArray(obj)) {\n    for (var i = 0; i < obj.length; i++) {\n      string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n    }\n  } else {\n    for (var key in obj) {\n      var value = obj[key];\n\n      if (typeof value !== 'object') {\n        var asString = value;\n\n        if (registered != null && registered[asString] !== undefined) {\n          string += key + \"{\" + registered[asString] + \"}\";\n        } else if (isProcessableValue(asString)) {\n          string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n        }\n      } else {\n        if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n          throw new Error(noComponentSelectorMessage);\n        }\n\n        if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n          for (var _i = 0; _i < value.length; _i++) {\n            if (isProcessableValue(value[_i])) {\n              string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n            }\n          }\n        } else {\n          var interpolated = handleInterpolation(mergedProps, registered, value);\n\n          switch (key) {\n            case 'animation':\n            case 'animationName':\n              {\n                string += processStyleName(key) + \":\" + interpolated + \";\";\n                break;\n              }\n\n            default:\n              {\n\n                string += key + \"{\" + interpolated + \"}\";\n              }\n          }\n        }\n      }\n    }\n  }\n\n  return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g; // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n  if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n    return args[0];\n  }\n\n  var stringMode = true;\n  var styles = '';\n  cursor = undefined;\n  var strings = args[0];\n\n  if (strings == null || strings.raw === undefined) {\n    stringMode = false;\n    styles += handleInterpolation(mergedProps, registered, strings);\n  } else {\n    var asTemplateStringsArr = strings;\n\n    styles += asTemplateStringsArr[0];\n  } // we start at 1 since we've already handled the first arg\n\n\n  for (var i = 1; i < args.length; i++) {\n    styles += handleInterpolation(mergedProps, registered, args[i]);\n\n    if (stringMode) {\n      var templateStringsArr = strings;\n\n      styles += templateStringsArr[i];\n    }\n  } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n  labelPattern.lastIndex = 0;\n  var identifierName = '';\n  var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n  while ((match = labelPattern.exec(styles)) !== null) {\n    identifierName += '-' + match[1];\n  }\n\n  var name = hashString(styles) + identifierName;\n\n  return {\n    name: name,\n    styles: styles,\n    next: cursor\n  };\n}\n\nexport { serializeStyles };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n  return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isDevelopment = false;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n  key: 'css'\n}) : null);\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n  return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n  return /*#__PURE__*/forwardRef(function (props, ref) {\n    // the cache will never be null in the browser\n    var cache = useContext(EmotionCacheContext);\n    return func(props, cache, ref);\n  });\n};\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nvar useTheme = function useTheme() {\n  return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n  if (typeof theme === 'function') {\n    var mergedTheme = theme(outerTheme);\n\n    return mergedTheme;\n  }\n\n  return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n  return weakMemoize(function (theme) {\n    return getTheme(outerTheme, theme);\n  });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n  var theme = React.useContext(ThemeContext);\n\n  if (props.theme !== theme) {\n    theme = createCacheWithTheme(theme)(props.theme);\n  }\n\n  return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n    value: theme\n  }, props.children);\n};\nfunction withTheme(Component) {\n  var componentName = Component.displayName || Component.name || 'Component';\n  var WithTheme = /*#__PURE__*/React.forwardRef(function render(props, ref) {\n    var theme = React.useContext(ThemeContext);\n    return /*#__PURE__*/React.createElement(Component, _extends({\n      theme: theme,\n      ref: ref\n    }, props));\n  });\n  WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n  return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar hasOwn = {}.hasOwnProperty;\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n\n  var newProps = {};\n\n  for (var _key in props) {\n    if (hasOwn.call(props, _key)) {\n      newProps[_key] = props[_key];\n    }\n  }\n\n  newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\n\n  return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n  var cache = _ref.cache,\n      serialized = _ref.serialized,\n      isStringTag = _ref.isStringTag;\n  registerStyles(cache, serialized, isStringTag);\n  useInsertionEffectAlwaysWithSyncFallback(function () {\n    return insertStyles(cache, serialized, isStringTag);\n  });\n\n  return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n  var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n  // not passing the registered cache to serializeStyles because it would\n  // make certain babel optimisations not possible\n\n  if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n    cssProp = cache.registered[cssProp];\n  }\n\n  var WrappedComponent = props[typePropName];\n  var registeredStyles = [cssProp];\n  var className = '';\n\n  if (typeof props.className === 'string') {\n    className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n  } else if (props.className != null) {\n    className = props.className + \" \";\n  }\n\n  var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n  className += cache.key + \"-\" + serialized.name;\n  var newProps = {};\n\n  for (var _key2 in props) {\n    if (hasOwn.call(props, _key2) && _key2 !== 'css' && _key2 !== typePropName && (!isDevelopment )) {\n      newProps[_key2] = props[_key2];\n    }\n  }\n\n  newProps.className = className;\n\n  if (ref) {\n    newProps.ref = ref;\n  }\n\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n    cache: cache,\n    serialized: serialized,\n    isStringTag: typeof WrappedComponent === 'string'\n  }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isDevelopment as i, useTheme as u, withEmotionCache as w };\n","import * as ReactJSXRuntime from 'react/jsx-runtime';\nimport { h as hasOwn, E as Emotion, c as createEmotionProps } from '../../dist/emotion-element-f0de968e.browser.esm.js';\nimport 'react';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar Fragment = ReactJSXRuntime.Fragment;\nvar jsx = function jsx(type, props, key) {\n  if (!hasOwn.call(props, 'css')) {\n    return ReactJSXRuntime.jsx(type, props, key);\n  }\n\n  return ReactJSXRuntime.jsx(Emotion, createEmotionProps(type, props), key);\n};\nvar jsxs = function jsxs(type, props, key) {\n  if (!hasOwn.call(props, 'css')) {\n    return ReactJSXRuntime.jsxs(type, props, key);\n  }\n\n  return ReactJSXRuntime.jsxs(Emotion, createEmotionProps(type, props), key);\n};\n\nexport { Fragment, jsx, jsxs };\n","/** Default height for each tree node in pixels. */\r\nexport const DEFAULT_NODE_HEIGHT: number = 24\r\n\r\n/** Default indentation width for each level of the tree in pixels. */\r\nexport const DEFAULT_INDENT_WIDTH: number = 20\r\n\r\n/** Size of the expand/collapse icon in pixels. */\r\nexport const ICON_SIZE: number = 16\r\n\r\n/** Padding around the icon. */\r\nexport const ICON_PADDING: number = 4\r\n\r\n/** Color for the expand/collapse icon. */\r\nexport const ICON_COLOR: string = '#bbbfc4'\r\n\r\n/** Color for the node label text. */\r\nexport const LABEL_COLOR: string = '#333'\r\n\r\n/** Font size for the node label. */\r\nexport const LABEL_FONT_SIZE: number = 14\r\n\r\n/** Font family for the node label. */\r\nexport const LABEL_FONT_FAMILY: string = 'Arial, sans-serif'\r\n\r\n/** Color for the hover state of a node. */\r\nexport const NODE_HOVER_COLOR: string = '#f0f0f0'\r\n\r\n/** Delay in milliseconds for showing hover actions. */\r\nexport const HOVER_ACTION_DELAY: number = 300\r\n\r\n/** Minimum height for the custom scrollbar thumb in pixels. */\r\nexport const MIN_SCROLLBAR_THUMB_HEIGHT: number = 20\r\n","import React, { useEffect, useRef, useState } from 'react'\r\nimport { Group, Rect, Text, Path, Image, Arc } from 'react-konva'\r\nimport Konva from 'konva'\r\nimport { FlattenedTreeNode, TreeNodeId, NodeContentRenderProps } from '../types'\r\nimport {\r\n  DEFAULT_INDENT_WIDTH,\r\n  ICON_SIZE,\r\n  ICON_PADDING,\r\n  ICON_COLOR,\r\n  LABEL_COLOR,\r\n  LABEL_FONT_SIZE,\r\n  LABEL_FONT_FAMILY,\r\n  NODE_HOVER_COLOR,\r\n} from '../constants'\r\nimport { Html } from 'react-konva-utils'\r\n\r\nconst ACTION_BUTTON_AREA_WIDTH = 0 // Width for the actions area on the right\r\n\r\ninterface TreeNodeProps<T extends Record<string, unknown>> {\r\n  readonly node: FlattenedTreeNode<T>\r\n  readonly x: number\r\n  readonly y: number\r\n  readonly width: number\r\n  readonly height: number\r\n  readonly onToggleExpand: (nodeId: TreeNodeId) => void\r\n  readonly renderNodeContent?: (\r\n    props: NodeContentRenderProps<T>,\r\n  ) => React.ReactNode // For framework-agnostic custom content\r\n  readonly onNodeClick?: (\r\n    node: FlattenedTreeNode<T>,\r\n    event: Konva.KonvaEventObject<MouseEvent>,\r\n  ) => void\r\n  readonly onNodeHover: (\r\n    node: FlattenedTreeNode<T> | null,\r\n    event: Konva.KonvaEventObject<MouseEvent> | null,\r\n  ) => void\r\n  readonly isHovered: boolean\r\n  readonly isLoading: boolean\r\n  /** Optional: Callback when the mouse is pressed down on the node, initiating a potential drag. */\r\n  readonly onNodePress?: (\r\n    node: FlattenedTreeNode<T>,\r\n    event: Konva.KonvaEventObject<MouseEvent>,\r\n  ) => void\r\n  readonly icon?: (props: FlattenedTreeNode<T>) => React.ReactNode\r\n  readonly iconSize?: number\r\n  // Add props for drag and drop later\r\n}\r\n\r\nconst EXPAND_ICON_PATH = 'M 0 0 L 0 8 L 4 4 Z' // Simple triangle for expand\r\nconst COLLAPSE_ICON_PATH = 'M 0 0 L 8 0 L 4 4 Z' // Simple triangle for collapse\r\n\r\n// Simple Spinner Component\r\nconst Spinner: React.FC<{\r\n  x: number\r\n  y: number\r\n  radius: number\r\n  stroke: string\r\n}> = ({ x, y, radius, stroke }) => {\r\n  const arcRef = useRef<Konva.Arc>(null)\r\n\r\n  useEffect(() => {\r\n    if (!arcRef.current) return\r\n    const anim = new Konva.Animation((frame) => {\r\n      if (!frame || !arcRef.current?.getStage()) return\r\n      const angleDiff = (frame.timeDiff * 360) / 1000\r\n      arcRef.current.rotation((arcRef.current.rotation() + angleDiff) % 360)\r\n    }, arcRef.current.getLayer() || arcRef.current.getStage())\r\n\r\n    anim.start()\r\n    return () => {\r\n      anim.stop()\r\n    }\r\n  }, [])\r\n\r\n  return (\r\n    <Arc\r\n      ref={arcRef}\r\n      x={x}\r\n      y={y}\r\n      innerRadius={radius * 0.6}\r\n      outerRadius={radius}\r\n      angle={270}\r\n      fill={stroke}\r\n      rotation={0}\r\n    />\r\n  )\r\n}\r\n\r\n/**\r\n * TreeNode component renders a single node in the Konva-based tree.\r\n * @template T - The type of custom data associated with the node.\r\n */\r\nexport function TreeNode<T extends Record<string, unknown>>({\r\n  node,\r\n  x,\r\n  y,\r\n  width,\r\n  height,\r\n  onToggleExpand,\r\n  renderNodeContent,\r\n  onNodeClick,\r\n  onNodeHover,\r\n  isHovered,\r\n  isLoading,\r\n  onNodePress,\r\n  icon,\r\n  iconSize,\r\n}: TreeNodeProps<T>): React.ReactElement {\r\n  // Node properties: node.isExpanded, node.isLoading, node.hasAsyncChildren, node.children\r\n  const hasLoadedChildren = node.children && node.children.length > 0\r\n  const canShowExpandCollapseIcon =\r\n    (node.hasAsyncChildren && !hasLoadedChildren && !isLoading) ||\r\n    hasLoadedChildren\r\n\r\n  const currentIndent = node.depth * DEFAULT_INDENT_WIDTH\r\n\r\n  // --- Define areas ---\r\n  // 1. Expand Area (Left)\r\n  const expandAreaX = currentIndent\r\n  const reservedIconSpace = ICON_SIZE + ICON_PADDING * 2\r\n\r\n  // 3. Actions Area (Right)\r\n  const actionsAreaX = width - ACTION_BUTTON_AREA_WIDTH - 15 // 10 = 滚动条宽度 + 5\r\n\r\n  // State for loaded image if node.icon.type === 'image'\r\n  const [loadedImage, setLoadedImage] = useState<HTMLImageElement | null>(null)\r\n  const [imageLoadingError, setImageLoadingError] = useState<boolean>(false)\r\n\r\n  useEffect(() => {\r\n    if (\r\n      node.icon &&\r\n      node.icon.type === 'image' &&\r\n      typeof node.icon.content === 'string'\r\n    ) {\r\n      const img = new window.Image()\r\n      img.src = node.icon.content as string\r\n      img.onload = () => {\r\n        setLoadedImage(img)\r\n        setImageLoadingError(false)\r\n      }\r\n      img.onerror = () => {\r\n        console.error(`Failed to load image: ${img.src}`)\r\n        setLoadedImage(null)\r\n        setImageLoadingError(true)\r\n      }\r\n    } else {\r\n      // Reset if icon changes or is not an image type\r\n      setLoadedImage(null)\r\n      setImageLoadingError(false)\r\n    }\r\n  }, [node.icon])\r\n\r\n  // --- Calculate positions for custom icon and content area ---\r\n  const afterExpandIconAreaX = expandAreaX + reservedIconSpace\r\n  let contentGroupX = afterExpandIconAreaX // Default X for content if no custom icon\r\n  let customIconKonvaElement: React.ReactNode | null = null\r\n\r\n  if (node.icon || icon) {\r\n    const iconWidth = node.icon?.width || (iconSize ?? ICON_SIZE)\r\n    const iconHeight = node.icon?.height || (iconSize ?? ICON_SIZE)\r\n    const customIconDisplayX = afterExpandIconAreaX + ICON_PADDING\r\n    const customIconDisplayY = (height - iconHeight) / 2 // Center the icon vertically within the node height\r\n\r\n    if (node.icon) {\r\n      if (node.icon.type === 'image') {\r\n        if (loadedImage && !imageLoadingError) {\r\n          customIconKonvaElement = (\r\n            <Group x={customIconDisplayX} y={customIconDisplayY}>\r\n              <Image\r\n                image={loadedImage}\r\n                width={iconWidth}\r\n                height={iconHeight}\r\n              />\r\n            </Group>\r\n          )\r\n        } else if (imageLoadingError) {\r\n          // Optionally render a placeholder or error indicator for a failed image load\r\n          customIconKonvaElement = (\r\n            <Group x={customIconDisplayX} y={customIconDisplayY}>\r\n              <Rect width={iconWidth} height={iconHeight} fill=\"#cccccc\" />\r\n              <Text\r\n                text=\"X\"\r\n                fill=\"red\"\r\n                fontSize={iconHeight * 0.8}\r\n                width={iconWidth}\r\n                height={iconHeight}\r\n                align=\"center\"\r\n                verticalAlign=\"middle\"\r\n              />\r\n            </Group>\r\n          )\r\n        }\r\n      } else if (node.icon.type === 'html') {\r\n        customIconKonvaElement = (\r\n          // The Html component itself doesn't take x/y directly for Konva positioning.\r\n          // We wrap it in a Konva Group to position it.\r\n          // The content of Html is standard React DOM, so its internal styling will apply.\r\n          <Group x={customIconDisplayX} y={customIconDisplayY}>\r\n            <Html\r\n              divProps={{\r\n                style: {\r\n                  width: `${iconWidth}px`,\r\n                  height: `${iconHeight}px`,\r\n                  display: 'flex', // Helps with centering if content is smaller\r\n                  alignItems: 'center',\r\n                  justifyContent: 'center',\r\n                  pointerEvents: 'none', // Added to pass events to Konva\r\n                },\r\n              }}\r\n            >\r\n              {node.icon.content}\r\n            </Html>\r\n          </Group>\r\n        )\r\n      } else if (node.icon.type === 'konva') {\r\n        // Assuming node.icon.content is already a Konva-compatible ReactNode\r\n        customIconKonvaElement = (\r\n          <Group x={customIconDisplayX} y={customIconDisplayY}>\r\n            {node.icon.content}\r\n          </Group>\r\n        )\r\n      }\r\n    } else {\r\n      customIconKonvaElement = (\r\n        <Group x={customIconDisplayX} y={customIconDisplayY}>\r\n          <Html\r\n            divProps={{\r\n              style: {\r\n                display: 'flex', // Helps with centering if content is smaller\r\n                alignItems: 'center',\r\n                justifyContent: 'center',\r\n                pointerEvents: 'none', // Added to pass events to Konva\r\n              },\r\n            }}\r\n          >\r\n            {icon(node)}\r\n          </Html>\r\n        </Group>\r\n      )\r\n    }\r\n    // Update the X offset for the main content to be after the custom icon and its padding\r\n    // Only adjust contentGroupX if an icon is actually going to be rendered\r\n    if (customIconKonvaElement) {\r\n      contentGroupX = customIconDisplayX + iconWidth + ICON_PADDING\r\n    }\r\n  }\r\n\r\n  // 2. Content Area (Middle)\r\n  // Content area should start after the reserved space for the icon area, for consistent alignment\r\n  const calculatedContentWidth = Math.max(0, actionsAreaX - contentGroupX)\r\n  const relativeTextY = 0 // Text is vertically aligned within its own height later\r\n\r\n  console.log('calculatedContentWidth', calculatedContentWidth)\r\n\r\n  const handleExpandClick = (\r\n    event: Konva.KonvaEventObject<MouseEvent>,\r\n  ): void => {\r\n    event.cancelBubble = true\r\n    if (!isLoading) {\r\n      onToggleExpand(node.id)\r\n    }\r\n  }\r\n\r\n  const handleNodeClickInternal = (\r\n    event: Konva.KonvaEventObject<MouseEvent>,\r\n  ): void => {\r\n    if (onNodeClick) {\r\n      onNodeClick(node, event)\r\n    }\r\n  }\r\n\r\n  const handleMouseEnter = (\r\n    event: Konva.KonvaEventObject<MouseEvent>,\r\n  ): void => {\r\n    onNodeHover(node, event)\r\n    const stage = event.target.getStage()\r\n    if (stage) stage.container().style.cursor = 'pointer'\r\n  }\r\n\r\n  const handleMouseLeave = (\r\n    event: Konva.KonvaEventObject<MouseEvent>,\r\n  ): void => {\r\n    onNodeHover(null, event)\r\n    const stage = event.target.getStage()\r\n    if (stage) stage.container().style.cursor = 'default'\r\n  }\r\n\r\n  const handleNodeMouseDownInternal = (\r\n    event: Konva.KonvaEventObject<MouseEvent>,\r\n  ): void => {\r\n    // This event will be used to initiate dragging from MagicTree\r\n    if (onNodePress) {\r\n      onNodePress(node, event)\r\n    }\r\n    // We don't call onNodeClick here, as mousedown + mouseup without move = click\r\n    // onNodeClick is handled by the Group's onClick handler.\r\n  }\r\n\r\n  // Default content renderer if custom one is not provided\r\n  const defaultNodeContent = (\r\n    <Text\r\n      x={0} // Relative to its group placement\r\n      y={relativeTextY}\r\n      text={node.label}\r\n      fontSize={LABEL_FONT_SIZE}\r\n      fontFamily={LABEL_FONT_FAMILY}\r\n      fill={LABEL_COLOR}\r\n      width={calculatedContentWidth} // Use calculated content area width\r\n      height={height}\r\n      verticalAlign=\"middle\"\r\n    />\r\n  )\r\n\r\n  const nodeContentRenderProps: NodeContentRenderProps<T> = {\r\n    node,\r\n    depth: node.depth,\r\n    isExpanded: node.isExpanded,\r\n    hasChildren: hasLoadedChildren || !!node.hasAsyncChildren,\r\n    isHovered,\r\n    isLoading,\r\n    contentX: 0, // X is relative to the content group\r\n    contentY: 0, // Y is relative to the content group\r\n    contentWidth: calculatedContentWidth, // Provide available width to custom renderer\r\n    contentHeight: height, // Provide available height\r\n  }\r\n\r\n  return (\r\n    <Group\r\n      x={x}\r\n      y={y}\r\n      onClick={handleNodeClickInternal}\r\n      onTap={handleNodeClickInternal}\r\n      onMouseDown={handleNodeMouseDownInternal}\r\n      onMouseEnter={handleMouseEnter}\r\n      onMouseLeave={handleMouseLeave}\r\n    >\r\n      {/* Background for hover effect and click area */}\r\n      <Rect\r\n        width={width}\r\n        height={height}\r\n        fill={isHovered ? NODE_HOVER_COLOR : undefined}\r\n        opacity={isHovered ? 0.5 : 0} // Make hover slightly transparent\r\n      />\r\n\r\n      {/* --- 1. Expand/Collapse Area (Clickable Group) --- */}\r\n      {((node.isExpanded && isLoading) ||\r\n        (!isLoading && canShowExpandCollapseIcon)) && (\r\n          <Group\r\n            x={expandAreaX} // Positioned at the start of the indent\r\n            y={0}\r\n            width={reservedIconSpace} // Covers the dedicated space for the expand icon\r\n            height={height}\r\n            onClick={\r\n              !isLoading && canShowExpandCollapseIcon\r\n                ? handleExpandClick\r\n                : undefined\r\n            }\r\n            onTap={\r\n              !isLoading && canShowExpandCollapseIcon\r\n                ? handleExpandClick\r\n                : undefined\r\n            }\r\n            onMouseEnter={(e: Konva.KonvaEventObject<MouseEvent>) => {\r\n              if (!isLoading && canShowExpandCollapseIcon) {\r\n                const stage = e.target.getStage()\r\n                if (stage) stage.container().style.cursor = 'pointer'\r\n              }\r\n            }}\r\n            onMouseLeave={(e: Konva.KonvaEventObject<MouseEvent>) => {\r\n              const stage = e.target.getStage()\r\n              if (stage) stage.container().style.cursor = 'default'\r\n            }}\r\n            listening\r\n          >\r\n            {/* Transparent Rect to ensure a hittable area for the Group */}\r\n            <Rect width={reservedIconSpace} height={height} opacity={0} />\r\n\r\n            {/* Optional: Add a visible Rect for debugging the clickable area */}\r\n            {/* <Rect width={reservedIconSpace} height={height} stroke=\"red\" strokeWidth={1} opacity={0.3} /> */}\r\n\r\n            {node.isExpanded && isLoading && (\r\n              <Spinner\r\n                x={ICON_PADDING + ICON_SIZE / 2} // Centered within this Group\r\n                y={height / 2} // Centered within this Group\r\n                radius={ICON_SIZE / 2.5}\r\n                stroke={ICON_COLOR}\r\n              />\r\n            )}\r\n\r\n            {!isLoading && canShowExpandCollapseIcon && (\r\n              <Path\r\n                x={ICON_PADDING + ICON_SIZE / 2} // Centered within this Group\r\n                y={height / 2} // Centered within this Group\r\n                offsetX={\r\n                  (node.isExpanded && hasLoadedChildren ? 8 * 1.5 : 4 * 1.5) / 2\r\n                }\r\n                offsetY={\r\n                  (node.isExpanded && hasLoadedChildren ? 4 * 1.5 : 8 * 1.5) / 2\r\n                }\r\n                data={\r\n                  node.isExpanded && hasLoadedChildren\r\n                    ? COLLAPSE_ICON_PATH\r\n                    : EXPAND_ICON_PATH\r\n                }\r\n                fill={ICON_COLOR}\r\n                scale={{ x: 1.5, y: 1.5 }}\r\n                listening={false} // The Group handles events, Path is purely visual\r\n              />\r\n            )}\r\n          </Group>\r\n        )}\r\n\r\n      {/* --- Render Custom Node Icon --- */}\r\n      {customIconKonvaElement}\r\n\r\n      {/* --- 2. Content --- */}\r\n      <Group x={contentGroupX} y={0}>\r\n        {/* Use contentGroupX for positioning */}\r\n        {renderNodeContent ? (\r\n          <Html\r\n            divProps={{\r\n              style: {\r\n                // Apply pointerEvents: 'none' to the div wrapping the custom content\r\n                // This allows mouse events to pass through to the Konva Group underneath.\r\n                pointerEvents: 'none',\r\n                display: 'flex',\r\n                alignItems: 'center',\r\n                justifyContent: 'flex-start',\r\n                width: `${calculatedContentWidth}px`, // Ensure it uses the available width\r\n                height: `${height}px`, // Ensure it uses the available height\r\n              },\r\n            }}\r\n          >\r\n            {renderNodeContent(nodeContentRenderProps)}\r\n          </Html>\r\n        ) : (\r\n          defaultNodeContent\r\n        )}\r\n      </Group>\r\n\r\n      {/* --- 3. Actions Area (Right) --- */}\r\n      {/* {actionsAreaVisible && (\r\n        <Group x={actionsAreaX} y={(height - ACTION_BUTTON_SIZE) / 2}>\r\n          <Rect\r\n            width={ACTION_BUTTON_SIZE}\r\n            height={ACTION_BUTTON_SIZE}\r\n            fill=\"lightblue\"\r\n            x={0}\r\n            cornerRadius={3}\r\n            onClick={(e) => {\r\n              e.cancelBubble = true\r\n              console.log('Edit action')\r\n            }}\r\n          />\r\n          <Text\r\n            text=\"E\"\r\n            x={ACTION_BUTTON_PADDING}\r\n            y={(ACTION_BUTTON_SIZE - LABEL_FONT_SIZE) / 2}\r\n            fontSize={LABEL_FONT_SIZE}\r\n            fill=\"black\"\r\n            listening={false}\r\n          />\r\n          <Rect\r\n            width={ACTION_BUTTON_SIZE}\r\n            height={ACTION_BUTTON_SIZE}\r\n            fill=\"lightgreen\"\r\n            x={ACTION_BUTTON_SIZE + ACTION_BUTTON_PADDING * 2}\r\n            cornerRadius={3}\r\n            onClick={(e) => {\r\n              e.cancelBubble = true\r\n              console.log('Delete action')\r\n            }}\r\n          />\r\n          <Text\r\n            text=\"D\"\r\n            x={\r\n              ACTION_BUTTON_SIZE +\r\n              ACTION_BUTTON_PADDING * 2 +\r\n              ACTION_BUTTON_PADDING\r\n            }\r\n            y={(ACTION_BUTTON_SIZE - LABEL_FONT_SIZE) / 2}\r\n            fontSize={LABEL_FONT_SIZE}\r\n            fill=\"black\"\r\n            listening={false}\r\n          />\r\n        </Group>\r\n      )} */}\r\n    </Group>\r\n  )\r\n}\r\n","import React, { useMemo, useState, useCallback, useEffect, useRef } from 'react'\r\nimport ReactDOM from 'react-dom'\r\nimport { Stage, Layer } from 'react-konva'\r\nimport Konva from 'konva'\r\nimport {\r\n  MagicTreeProps,\r\n  TreeNodeData,\r\n  TreeNodeId,\r\n  FlattenedTreeNode,\r\n  NodeDragStartEvent,\r\n  NodeDragMoveEvent,\r\n  NodeDragEndEvent,\r\n} from '../types'\r\nimport { DEFAULT_NODE_HEIGHT, MIN_SCROLLBAR_THUMB_HEIGHT } from '../constants'\r\nimport { TreeNode } from './TreeNode'\r\n\r\n// Helper to create a map of nodes by ID from the hierarchical data\r\nconst createNodeMap = <T extends Record<string, unknown>>(\r\n  data: ReadonlyArray<TreeNodeData<T>>,\r\n): Map<TreeNodeId, TreeNodeData<T>> => {\r\n  const map = new Map<TreeNodeId, TreeNodeData<T>>()\r\n  const stack = [...data]\r\n  while (stack.length > 0) {\r\n    const node = stack.pop()\r\n    if (node) {\r\n      map.set(node.id, node)\r\n      if (node.children) {\r\n        node.children.forEach((child) => stack.push(child))\r\n      }\r\n    }\r\n  }\r\n  return map\r\n}\r\n\r\n/**\r\n * Flattens the hierarchical tree data into a list, respecting expanded states.\r\n * @template T - The type of custom data in tree nodes.\r\n * @param {ReadonlyArray<TreeNodeData<T>>} data - The tree data.\r\n * @param {ReadonlySet<TreeNodeId>} expandedKeys - Set of expanded node IDs.\r\n * @param {number} nodeHeight - Height of each node.\r\n * @returns {ReadonlyArray<FlattenedTreeNode<T>>} - Flattened list of nodes with depth and y-position.\r\n */\r\nconst flattenTreeData = <T extends Record<string, unknown>>(\r\n  data: ReadonlyArray<TreeNodeData<T>>,\r\n  expandedKeysSet: ReadonlySet<TreeNodeId>,\r\n  nodeHeight: number,\r\n  parentId?: TreeNodeId,\r\n  depth: number = 0,\r\n  currentY: number = 0,\r\n): FlattenedTreeNode<T>[] => {\r\n  let flatList: FlattenedTreeNode<T>[] = []\r\n  let runningY = currentY\r\n  for (const node of data) {\r\n    const isCurrentlyExpanded = expandedKeysSet.has(node.id)\r\n    const flatNode: FlattenedTreeNode<T> = {\r\n      ...(node as Omit<TreeNodeData<T>, 'isLoading'>),\r\n      depth,\r\n      y: runningY,\r\n      parentId,\r\n      isExpanded: isCurrentlyExpanded,\r\n    }\r\n    flatList.push(flatNode)\r\n    runningY += nodeHeight\r\n    if (node.children && isCurrentlyExpanded) {\r\n      const childrenFlat = flattenTreeData(\r\n        node.children,\r\n        expandedKeysSet,\r\n        nodeHeight,\r\n        node.id,\r\n        depth + 1,\r\n        runningY,\r\n      )\r\n      flatList = flatList.concat(childrenFlat)\r\n      if (childrenFlat.length > 0) {\r\n        runningY = childrenFlat[childrenFlat.length - 1].y + nodeHeight\r\n      }\r\n    }\r\n  }\r\n  return flatList\r\n}\r\n\r\n/**\r\n * The main MagicTree component.\r\n * It uses Konva to render a tree structure, optimized for large datasets via virtualization.\r\n * @template T - The type of custom data associated with each tree node.\r\n */\r\nexport function MagicTree<T extends Record<string, unknown>>({\r\n  data,\r\n  expandedKeys,\r\n  onExpand,\r\n  nodeHeight = DEFAULT_NODE_HEIGHT,\r\n  width: initialWidth,\r\n  height: initialHeight,\r\n  renderNodeContent,\r\n  onNodeClick,\r\n  onNodeHover,\r\n  onLoadData,\r\n  onNodeDragStart,\r\n  icon,\r\n  iconSize,\r\n  showNodeTooltip,\r\n}: MagicTreeProps<T>): React.ReactElement {\r\n  const [scrollTop, setScrollTop] = useState<number>(0)\r\n  const [hoveredNodeId, setHoveredNodeId] = useState<TreeNodeId | null>(null)\r\n  const [loadingNodeIds, setLoadingNodeIds] = useState<Set<TreeNodeId>>(\r\n    new Set(),\r\n  )\r\n  const [measuredWidth, setMeasuredWidth] = useState<number>(0)\r\n  const [measuredHeight, setMeasuredHeight] = useState<number>(0)\r\n\r\n  // State for internal tooltip management\r\n  const [internalTooltipData, setInternalTooltipData] = useState<{\r\n    visible: boolean\r\n    content: React.ReactNode | string\r\n    x: number\r\n    y: number\r\n    nodeId: TreeNodeId | null\r\n  }>({\r\n    visible: false,\r\n    content: '',\r\n    x: 0,\r\n    y: 0,\r\n    nodeId: null,\r\n  })\r\n\r\n  const stageRef = useRef<Konva.Stage>(null)\r\n  const containerRef = useRef<HTMLDivElement>(null)\r\n\r\n  const width = initialWidth ?? measuredWidth\r\n  const height = initialHeight ?? measuredHeight\r\n\r\n  const expandedKeysSet = useMemo(() => new Set(expandedKeys), [expandedKeys])\r\n\r\n  useEffect(() => {\r\n    if (initialWidth !== undefined && initialHeight !== undefined) {\r\n      if (initialWidth !== undefined) setMeasuredWidth(initialWidth)\r\n      if (initialHeight !== undefined) setMeasuredHeight(initialHeight)\r\n      return\r\n    }\r\n\r\n    const resizeObserver = new ResizeObserver((entries) => {\r\n      if (entries && entries.length > 0) {\r\n        const entry = entries[0]\r\n        if (initialWidth === undefined) {\r\n          setMeasuredWidth(entry.contentRect.width)\r\n        }\r\n        if (initialHeight === undefined) {\r\n          setMeasuredHeight(entry.contentRect.height)\r\n        }\r\n      }\r\n    })\r\n\r\n    if (containerRef.current) {\r\n      if (initialWidth === undefined) {\r\n        setMeasuredWidth(containerRef.current.clientWidth)\r\n      }\r\n      if (initialHeight === undefined) {\r\n        setMeasuredHeight(containerRef.current.clientHeight)\r\n      }\r\n      resizeObserver.observe(containerRef.current)\r\n    }\r\n\r\n    return () => {\r\n      if (containerRef.current) {\r\n        resizeObserver.unobserve(containerRef.current)\r\n      }\r\n      resizeObserver.disconnect()\r\n    }\r\n  }, [initialWidth, initialHeight])\r\n\r\n  const nodeMap = useMemo(() => createNodeMap(data), [data])\r\n\r\n  const scrollbarDragData = useRef<{\r\n    initialMouseY: number\r\n    initialScrollTop: number\r\n  } | null>(null)\r\n\r\n  useEffect(() => {\r\n    if (!onLoadData) return\r\n\r\n    expandedKeys.forEach((nodeId) => {\r\n      const nodeToLoad = nodeMap.get(nodeId)\r\n      if (\r\n        nodeToLoad &&\r\n        nodeToLoad.hasAsyncChildren &&\r\n        (!nodeToLoad.children || nodeToLoad.children.length === 0) &&\r\n        !loadingNodeIds.has(nodeId)\r\n      ) {\r\n        setLoadingNodeIds((prev) => new Set(prev).add(nodeId))\r\n        onLoadData(nodeToLoad)\r\n          .catch((error) => {\r\n            console.error(`Error loading data for node ${nodeId}:`, error)\r\n          })\r\n          .finally(() => {\r\n            setLoadingNodeIds((prev) => {\r\n              const newSet = new Set(prev)\r\n              newSet.delete(nodeId)\r\n              return newSet\r\n            })\r\n          })\r\n      }\r\n    })\r\n  }, [expandedKeys, nodeMap, onLoadData, loadingNodeIds])\r\n\r\n  const flattenedNodes = useMemo(() => {\r\n    return flattenTreeData(data, expandedKeysSet, nodeHeight)\r\n  }, [data, expandedKeysSet, nodeHeight])\r\n\r\n  const totalContentHeight = useMemo(() => {\r\n    return flattenedNodes.length * nodeHeight\r\n  }, [flattenedNodes, nodeHeight])\r\n\r\n  const visibleNodes = useMemo(() => {\r\n    const startIndex = Math.floor(scrollTop / nodeHeight)\r\n    const endIndex = Math.min(\r\n      startIndex + Math.ceil(height / nodeHeight) + 1,\r\n      flattenedNodes.length,\r\n    )\r\n    return flattenedNodes.slice(startIndex, endIndex)\r\n  }, [flattenedNodes, scrollTop, height, nodeHeight])\r\n\r\n  useEffect(() => {\r\n    const stage = stageRef.current\r\n    if (!stage) return\r\n\r\n    const handleWheel = (e: Konva.KonvaEventObject<WheelEvent>) => {\r\n      e.evt.preventDefault()\r\n      const dy = e.evt.deltaY\r\n      setScrollTop((prev) => {\r\n        const newScrollTop = Math.max(\r\n          0,\r\n          Math.min(prev + dy, totalContentHeight - height),\r\n        )\r\n        return newScrollTop\r\n      })\r\n    }\r\n\r\n    stage.on('wheel', handleWheel)\r\n    return () => {\r\n      stage.off('wheel', handleWheel)\r\n    }\r\n  }, [totalContentHeight, height])\r\n\r\n  const handleNodePress = useCallback(\r\n    (\r\n      pressedNode: FlattenedTreeNode<T>,\r\n      event: Konva.KonvaEventObject<MouseEvent>,\r\n    ) => {\r\n      if (onNodeDragStart && event.evt.button === 0) {\r\n        const stage = stageRef.current\r\n        if (!stage) return\r\n\r\n        const pointerPosition = stage.getPointerPosition()\r\n        if (!pointerPosition) return\r\n\r\n        const originalNodeData = nodeMap.get(pressedNode.id)\r\n        if (!originalNodeData) return\r\n\r\n        const dragStartEvent: NodeDragStartEvent<T> = {\r\n          node: originalNodeData,\r\n          pointerPosition,\r\n          rawEvent: event.evt as MouseEvent,\r\n        }\r\n        onNodeDragStart(dragStartEvent)\r\n\r\n        event.evt.preventDefault()\r\n      }\r\n    },\r\n    [onNodeDragStart, nodeMap],\r\n  )\r\n\r\n  const handleThumbMouseMove = useCallback(\r\n    (e: MouseEvent) => {\r\n      if (!scrollbarDragData.current) return\r\n\r\n      const { initialMouseY, initialScrollTop } = scrollbarDragData.current\r\n      const deltaY = e.clientY - initialMouseY\r\n\r\n      const viewportHeight = height\r\n      const scrollableDistTotal = totalContentHeight - viewportHeight\r\n      if (scrollableDistTotal <= 0) return\r\n      let thumbPixelHeight =\r\n        (viewportHeight / totalContentHeight) * viewportHeight\r\n      thumbPixelHeight = Math.max(thumbPixelHeight, MIN_SCROLLBAR_THUMB_HEIGHT)\r\n      thumbPixelHeight = Math.min(thumbPixelHeight, viewportHeight)\r\n      const scrollbarTrackEffectiveHeight = viewportHeight - thumbPixelHeight\r\n\r\n      const scrollRatio = scrollableDistTotal / scrollbarTrackEffectiveHeight\r\n\r\n      let newScrollTop = initialScrollTop + deltaY * scrollRatio\r\n      newScrollTop = Math.max(0, Math.min(newScrollTop, scrollableDistTotal))\r\n      setScrollTop(newScrollTop)\r\n    },\r\n    [height, totalContentHeight],\r\n  )\r\n\r\n  const handleThumbMouseUp = useCallback(() => {\r\n    scrollbarDragData.current = null\r\n    document.removeEventListener('mousemove', handleThumbMouseMove)\r\n    document.removeEventListener('mouseup', handleThumbMouseUp)\r\n  }, [handleThumbMouseMove])\r\n\r\n  const handleThumbMouseDown = useCallback(\r\n    (e: React.MouseEvent<HTMLDivElement>) => {\r\n      e.preventDefault()\r\n      scrollbarDragData.current = {\r\n        initialMouseY: e.clientY,\r\n        initialScrollTop: scrollTop,\r\n      }\r\n      document.addEventListener('mousemove', handleThumbMouseMove)\r\n      document.addEventListener('mouseup', handleThumbMouseUp)\r\n    },\r\n    [scrollTop, handleThumbMouseMove, handleThumbMouseUp],\r\n  )\r\n\r\n  useEffect(() => {\r\n    return () => {\r\n      document.removeEventListener('mousemove', handleThumbMouseMove)\r\n      document.removeEventListener('mouseup', handleThumbMouseUp)\r\n    }\r\n  }, [handleThumbMouseMove, handleThumbMouseUp])\r\n\r\n  const handleNodeHover = useCallback(\r\n    (\r\n      flattenedNode: FlattenedTreeNode<T> | null,\r\n      event: Konva.KonvaEventObject<MouseEvent> | null,\r\n    ) => {\r\n      setHoveredNodeId(flattenedNode ? flattenedNode.id : null)\r\n\r\n      const originalNode = flattenedNode ? nodeMap.get(flattenedNode.id) : null\r\n\r\n      if (showNodeTooltip && originalNode && event) {\r\n        let tooltipContent: React.ReactNode | string = ''\r\n        if (typeof showNodeTooltip === 'function') {\r\n          tooltipContent = showNodeTooltip(originalNode)\r\n        } else if (showNodeTooltip === true) {\r\n          tooltipContent = originalNode.label // Default to node label\r\n        }\r\n\r\n        if (tooltipContent) {\r\n          setInternalTooltipData({\r\n            visible: true,\r\n            content: tooltipContent,\r\n            x: event.evt.clientX + 10, // Offset tooltip slightly\r\n            y: event.evt.clientY + 10,\r\n            nodeId: originalNode.id,\r\n          })\r\n        } else {\r\n          setInternalTooltipData((prev) => ({\r\n            ...prev,\r\n            visible: false,\r\n            nodeId: null,\r\n          }))\r\n        }\r\n      } else {\r\n        setInternalTooltipData((prev) => ({\r\n          ...prev,\r\n          visible: false,\r\n          nodeId: null,\r\n        }))\r\n      }\r\n\r\n      if (onNodeHover) {\r\n        onNodeHover(\r\n          originalNode || (flattenedNode as unknown as TreeNodeData<T> | null), // Ensure type matches\r\n          event,\r\n        )\r\n      }\r\n    },\r\n    [onNodeHover, nodeMap, showNodeTooltip, setInternalTooltipData], // Add dependencies\r\n  )\r\n\r\n  const handleNodeClick = useCallback(\r\n    (\r\n      flattenedNode: FlattenedTreeNode<T>,\r\n      event: Konva.KonvaEventObject<MouseEvent>,\r\n    ) => {\r\n      if (onNodeClick) {\r\n        const originalNode = nodeMap.get(flattenedNode.id)\r\n        onNodeClick(\r\n          originalNode || (flattenedNode as unknown as TreeNodeData<T>),\r\n          event,\r\n        )\r\n      }\r\n    },\r\n    [onNodeClick, nodeMap],\r\n  )\r\n\r\n  const handleToggleExpand = useCallback(\r\n    (nodeId: TreeNodeId) => {\r\n      if (expandedKeysSet.has(nodeId)) {\r\n        onExpand(expandedKeys.filter((id) => id !== nodeId))\r\n      } else {\r\n        onExpand([...expandedKeys, nodeId])\r\n      }\r\n    },\r\n    [expandedKeys, expandedKeysSet, onExpand],\r\n  )\r\n\r\n  return (\r\n    <div\r\n      ref={containerRef}\r\n      style={{\r\n        width: initialWidth !== undefined ? `${initialWidth}px` : '100%',\r\n        height: initialHeight !== undefined ? `${initialHeight}px` : '100%',\r\n        overflow: 'hidden',\r\n        position: 'relative', // Ensures fixed tooltip is relative to this container if not using portal\r\n      }}\r\n    >\r\n      <Stage\r\n        ref={stageRef}\r\n        width={width}\r\n        height={height}\r\n        style={{ position: 'absolute', top: 0, left: 0 }}\r\n      >\r\n        <Layer y={-scrollTop}>\r\n          {visibleNodes.map((node) => (\r\n            <TreeNode<T>\r\n              key={node.id}\r\n              node={node}\r\n              x={0}\r\n              y={node.y}\r\n              width={width}\r\n              height={nodeHeight}\r\n              onToggleExpand={handleToggleExpand}\r\n              renderNodeContent={renderNodeContent}\r\n              onNodeClick={handleNodeClick}\r\n              onNodeHover={handleNodeHover}\r\n              isHovered={node.id === hoveredNodeId}\r\n              isLoading={loadingNodeIds.has(node.id)}\r\n              onNodePress={handleNodePress}\r\n              icon={icon}\r\n              iconSize={iconSize}\r\n            />\r\n          ))}\r\n        </Layer>\r\n      </Stage>\r\n      {totalContentHeight > height && (\r\n        <div\r\n          style={{\r\n            position: 'absolute',\r\n            right: 0,\r\n            top: 0,\r\n            width: '10px',\r\n            height: `${height}px`,\r\n            backgroundColor: '#eee',\r\n          }}\r\n        >\r\n          {(() => {\r\n            const viewportHeight = height\r\n            const scrollableDist = totalContentHeight - viewportHeight\r\n            let thumbPixelHeight =\r\n              (viewportHeight / totalContentHeight) * viewportHeight\r\n            thumbPixelHeight = Math.max(\r\n              thumbPixelHeight,\r\n              MIN_SCROLLBAR_THUMB_HEIGHT,\r\n            )\r\n            thumbPixelHeight = Math.min(thumbPixelHeight, viewportHeight)\r\n            const scrollbarTrackEffectiveHeight =\r\n              viewportHeight - thumbPixelHeight\r\n            const thumbTop =\r\n              scrollableDist > 0\r\n                ? (scrollTop / scrollableDist) * scrollbarTrackEffectiveHeight\r\n                : 0\r\n            return (\r\n              <div\r\n                style={{\r\n                  position: 'absolute',\r\n                  right: 0,\r\n                  top: `${thumbTop}px`,\r\n                  width: '100%',\r\n                  height: `${thumbPixelHeight}px`,\r\n                  backgroundColor: '#888',\r\n                  borderRadius: '5px',\r\n                  cursor: 'pointer',\r\n                }}\r\n                onMouseDown={handleThumbMouseDown}\r\n              />\r\n            )\r\n          })()}\r\n        </div>\r\n      )}\r\n      {/* Render tooltip outside the Konva Stage, potentially using a Portal */}\r\n      {internalTooltipData.visible &&\r\n        ReactDOM.createPortal(\r\n          <div\r\n            style={{\r\n              position: 'fixed',\r\n              top: `${internalTooltipData.y}px`,\r\n              left: `${internalTooltipData.x}px`,\r\n              background: 'black',\r\n              color: 'white',\r\n              padding: '5px 10px',\r\n              borderRadius: '4px',\r\n              fontSize: '12px',\r\n              zIndex: 10000, // Ensure tooltip is on top\r\n              pointerEvents: 'none', // Prevent tooltip from interfering with mouse events\r\n              whiteSpace: 'nowrap',\r\n            }}\r\n          >\r\n            {internalTooltipData.content}\r\n          </div>,\r\n          document.body, // Render tooltip at the end of the body\r\n        )}\r\n    </div>\r\n  )\r\n}\r\n"],"names":["f","require$$0","k","l","m","n","p","q","c","a","g","b","d","e","h","reactJsxRuntime_production_min","React","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","MAYBE_ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","maybeIterator","ReactSharedInternals","error","format","_len2","args","_key2","printWarning","level","ReactDebugCurrentFrame","stack","argsWithFormat","item","enableScopeAPI","enableCacheElement","enableTransitionTracing","enableLegacyHidden","enableDebugTracing","REACT_MODULE_REFERENCE","isValidElementType","type","getWrappedName","outerType","innerType","wrapperName","displayName","functionName","getContextName","getComponentNameFromType","context","provider","outerName","lazyComponent","payload","init","assign","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","disableLogs","props","reenableLogs","ReactCurrentDispatcher","prefix","describeBuiltInComponentFrame","name","source","ownerFn","x","match","reentry","componentFrameCache","PossiblyWeakMap","describeNativeComponentFrame","fn","construct","frame","control","previousPrepareStackTrace","previousDispatcher","Fake","sample","sampleLines","controlLines","s","_frame","syntheticFrame","describeFunctionComponentFrame","shouldConstruct","Component","prototype","describeUnknownElementTypeFrameInDEV","hasOwnProperty","loggedTypeFailures","setCurrentlyValidatingElement","element","owner","checkPropTypes","typeSpecs","values","location","componentName","has","typeSpecName","error$1","err","ex","isArrayImpl","isArray","typeName","value","hasToStringTag","willCoercionThrow","testStringCoercion","checkKeyStringCoercion","ReactCurrentOwner","RESERVED_PROPS","specialPropKeyWarningShown","specialPropRefWarningShown","hasValidRef","config","getter","hasValidKey","warnIfStringRefCannotBeAutoConverted","self","defineKeyPropWarningGetter","warnAboutAccessingKey","defineRefPropWarningGetter","warnAboutAccessingRef","ReactElement","key","ref","jsxDEV","maybeKey","propName","defaultProps","ReactCurrentOwner$1","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement$1","propTypesMisspellWarningShown","isValidElement","object","getDeclarationErrorAddendum","getSourceInfoErrorAddendum","ownerHasKeyUseWarning","getCurrentComponentErrorInfo","parentType","info","parentName","validateExplicitKey","currentComponentErrorInfo","childOwner","validateChildKeys","node","i","child","iteratorFn","iterator","step","validatePropTypes","propTypes","_name","validateFragmentProps","fragment","keys","didWarnAboutKeySpread","jsxWithValidation","isStaticChildren","validType","sourceInfo","typeString","children","beforeExample","afterExample","jsxWithValidationStatic","jsxWithValidationDynamic","jsx","jsxs","reactJsxRuntime_development","jsxRuntimeModule","require$$1","sheetForTag","tag","createStyleElement","options","StyleSheet","_this","before","_proto","nodes","rule","sheet","_tag$parentNode","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","abs","from","hash","length","charat","trim","pattern","replace","replacement","indexof","search","index","substr","begin","end","strlen","sizeof","append","array","combine","callback","line","column","position","character","characters","root","parent","copy","char","prev","next","peek","caret","slice","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","compile","parse","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","j","y","z","serialize","output","stringify","middleware","collection","rulesheet","memoize","cache","arg","identifierWithPointTracking","toRules","parsed","getRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","prefixer","defaultStylisPlugins","createCache","ssrStyles","dataEmotionAttribute","stylisPlugins","inserted","container","nodesToHydrate","attrib","_insert","omnipresentPlugins","currentSheet","finalizingPlugins","serializer","stylis","styles","selector","serialized","shouldCache","r","t","v","w","u","A","reactIs_production_min","hasSymbol","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","typeOf","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","reactIsModule","reactIs","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","isBrowser","getRegisteredStyles","registered","registeredStyles","classNames","rawClassName","className","registerStyles","isStringTag","insertStyles","current","murmur2","str","len","unitlessKeys","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","p1","p2","cursor","unitless","handleInterpolation","mergedProps","interpolation","componentSelector","keyframes","serializedStyles","createStringFromObject","previousCursor","result","asString","obj","string","_i","interpolated","labelPattern","serializeStyles","stringMode","strings","asTemplateStringsArr","templateStringsArr","identifierName","hashString","syncFallback","create","useInsertionEffect","useInsertionEffectAlwaysWithSyncFallback","EmotionCacheContext","withEmotionCache","func","forwardRef","useContext","ThemeContext","hasOwn","typePropName","createEmotionProps","newProps","_key","Insertion","_ref","Emotion","cssProp","WrappedComponent","Emotion$1","ReactJSXRuntime.jsx","ReactJSXRuntime.jsxs","DEFAULT_NODE_HEIGHT","DEFAULT_INDENT_WIDTH","ICON_SIZE","ICON_PADDING","ICON_COLOR","LABEL_COLOR","LABEL_FONT_SIZE","LABEL_FONT_FAMILY","NODE_HOVER_COLOR","MIN_SCROLLBAR_THUMB_HEIGHT","ACTION_BUTTON_AREA_WIDTH","EXPAND_ICON_PATH","COLLAPSE_ICON_PATH","Spinner","radius","stroke","arcRef","useRef","useEffect","anim","Konva","Animation","getStage","angleDiff","timeDiff","rotation","getLayer","start","stop","Arc","TreeNode","width","height","onToggleExpand","renderNodeContent","onNodeClick","onNodeHover","isHovered","isLoading","onNodePress","icon","iconSize","hasLoadedChildren","canShowExpandCollapseIcon","hasAsyncChildren","expandAreaX","depth","reservedIconSpace","actionsAreaX","loadedImage","setLoadedImage","useState","imageLoadingError","setImageLoadingError","content","img","window","Image","src","onload","onerror","console","afterExpandIconAreaX","contentGroupX","customIconKonvaElement","iconWidth","iconHeight","customIconDisplayX","customIconDisplayY","Group","Rect","Text","Html","style","display","alignItems","justifyContent","pointerEvents","calculatedContentWidth","Math","max","relativeTextY","log","handleExpandClick","event","cancelBubble","id","handleNodeClickInternal","handleMouseEnter","stage","target","handleMouseLeave","handleNodeMouseDownInternal","defaultNodeContent","label","nodeContentRenderProps","isExpanded","hasChildren","contentX","contentY","contentWidth","contentHeight","undefined","Path","createNodeMap","data","map","Map","pop","set","forEach","push","flattenTreeData","expandedKeysSet","nodeHeight","parentId","currentY","flatList","runningY","isCurrentlyExpanded","flatNode","childrenFlat","concat","MagicTree","expandedKeys","onExpand","initialWidth","initialHeight","onLoadData","onNodeDragStart","showNodeTooltip","scrollTop","setScrollTop","hoveredNodeId","setHoveredNodeId","loadingNodeIds","setLoadingNodeIds","Set","measuredWidth","setMeasuredWidth","measuredHeight","setMeasuredHeight","internalTooltipData","setInternalTooltipData","visible","nodeId","stageRef","containerRef","useMemo","resizeObserver","ResizeObserver","entries","entry","contentRect","clientWidth","clientHeight","observe","unobserve","disconnect","nodeMap","scrollbarDragData","nodeToLoad","get","add","catch","finally","newSet","delete","flattenedNodes","totalContentHeight","visibleNodes","startIndex","floor","endIndex","min","ceil","handleWheel","evt","preventDefault","dy","deltaY","on","off","handleNodePress","useCallback","pressedNode","button","pointerPosition","getPointerPosition","originalNodeData","dragStartEvent","rawEvent","handleThumbMouseMove","initialMouseY","initialScrollTop","clientY","viewportHeight","scrollableDistTotal","thumbPixelHeight","scrollbarTrackEffectiveHeight","scrollRatio","newScrollTop","handleThumbMouseUp","removeEventListener","handleThumbMouseDown","addEventListener","handleNodeHover","flattenedNode","originalNode","tooltipContent","clientX","handleNodeClick","handleToggleExpand","filter","overflow","Stage","top","left","Layer","right","backgroundColor","scrollableDist","thumbTop","borderRadius","ReactDOM","createPortal","background","color","padding","fontSize","zIndex","whiteSpace","document","body"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]}