{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/aYGJCvSFoantRUzfEvdJ/R3HzaXN99zpIst2zJwMZ/codesandbox_nodebox.js", "ssg:https://framerusercontent.com/modules/fn2r53K2SixLM3ktuGOw/eTuqjtAw0LFZDyNdTgHv/codesandbox_sandpack_client.js", "ssg:https://framerusercontent.com/modules/peSgSa05KnLqaA8FHu9n/D7eZPbfsEH95yDKH1UTM/codemirror_commands.js", "ssg:https://framerusercontent.com/modules/SWAtenub3goqbKHfvwGg/SGdoMClxnsCb2h0GRQ48/codesandbox_sandpack_react.js", "ssg:https://framerusercontent.com/modules/wOI0XDWuPNeaYuatKp4b/ezOdeUpHBrE7fwL9evTL/browser.js", "ssg:https://framerusercontent.com/modules/19BkzxjVBT3VP0Ykl3DY/Ca7pJ6oGfAIcZSScMdTx/types.js", "ssg:https://framerusercontent.com/modules/HpmklHRFex5a5HMDftQo/5VVfjnRHGJM1T33zb1N5/SuspenseValue.js", "ssg:https://framerusercontent.com/modules/IdMJ4CymCWCh4cOBkZlb/RXSqswLIbuViBOVW1keE/utils.js", "ssg:https://framerusercontent.com/modules/DyzTKdNCsRH8nvz08sNT/dJhQ3yTSKg9tQmEoIrL8/useLanguageAsync.js", "ssg:https://framerusercontent.com/modules/c4BjG1nmVImY1EzTuV13/OqRStXQUJv4l4u3XtQrx/codesandbox_sandpack_themes.js", "ssg:https://framerusercontent.com/modules/HdJmYu90NFzknVhsFw9C/MDI6YFyMfuxuxcY2EeV6/theming.js", "ssg:https://framerusercontent.com/modules/pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js", "ssg:https://framerusercontent.com/modules/lXUrkYI2Yx5IiVHIvtZx/xEaIh6TTHE1mOP4rJrzz/tsMPIaZTQ.js"],
  "sourcesContent": ["// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./build\".\n */ // ../../node_modules/@codesandbox/nodebox/build/index.mjs\nfunction _checkPrivateRedeclaration(obj, privateCollection) {\n  if (privateCollection.has(obj)) {\n    throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n  }\n}\nfunction _classApplyDescriptorGet(receiver, descriptor) {\n  if (descriptor.get) {\n    return descriptor.get.call(receiver);\n  }\n  return descriptor.value;\n}\nfunction _classApplyDescriptorSet(receiver, descriptor, value) {\n  if (descriptor.set) {\n    descriptor.set.call(receiver, value);\n  } else {\n    if (!descriptor.writable) {\n      throw new TypeError(\"attempted to set read only private field\");\n    }\n    descriptor.value = value;\n  }\n}\nfunction _classExtractFieldDescriptor(receiver, privateMap, action) {\n  if (!privateMap.has(receiver)) {\n    throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n  }\n  return privateMap.get(receiver);\n}\nfunction _classPrivateFieldGet(receiver, privateMap) {\n  var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\");\n  return _classApplyDescriptorGet(receiver, descriptor);\n}\nfunction _classPrivateFieldInit(obj, privateMap, value) {\n  _checkPrivateRedeclaration(obj, privateMap);\n  privateMap.set(obj, value);\n}\nfunction _classPrivateFieldSet(receiver, privateMap, value) {\n  var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\");\n  _classApplyDescriptorSet(receiver, descriptor, value);\n  return value;\n}\nfunction _classPrivateMethodGet(receiver, privateSet, fn) {\n  if (!privateSet.has(receiver)) {\n    throw new TypeError(\"attempted to get private field on non-instance\");\n  }\n  return fn;\n}\nfunction _classPrivateMethodInit(obj, privateSet) {\n  _checkPrivateRedeclaration(obj, privateSet);\n  privateSet.add(obj);\n}\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {\n  enumerable: true,\n  configurable: true,\n  writable: true,\n  value\n}) : obj[key] = value;\nvar __commonJS = (cb, mod) => function __require() {\n  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = {\n    exports: {}\n  }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n      get: () => from[key],\n      enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n    });\n  }\n  return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", {\n  value: mod,\n  enumerable: true\n}) : target, mod));\nvar __publicField = (obj, key, value) => {\n  __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n  return value;\n};\nvar __accessCheck = (obj, member, msg) => {\n  if (!member.has(obj)) throw TypeError(\"Cannot \" + msg);\n};\nvar __privateGet = (obj, member, getter) => {\n  __accessCheck(obj, member, \"read from private field\");\n  return getter ? getter.call(obj) : member.get(obj);\n};\nvar __privateAdd = (obj, member, value) => {\n  if (member.has(obj)) throw TypeError(\"Cannot add the same private member more than once\");\n  member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n};\nvar __privateSet = (obj, member, value, setter) => {\n  __accessCheck(obj, member, \"write to private field\");\n  setter ? setter.call(obj, value) : member.set(obj, value);\n  return value;\n};\nvar __privateMethod = (obj, member, method) => {\n  __accessCheck(obj, member, \"access private method\");\n  return method;\n};\nvar require_pad = __commonJS({\n  \"../../node_modules/.pnpm/cuid@2.1.8/node_modules/cuid/lib/pad.js\"(exports, module) {\n    module.exports = function pad(num, size) {\n      var s = \"000000000\" + num;\n      return s.substr(s.length - size);\n    };\n  }\n});\nvar require_fingerprint_browser = __commonJS({\n  \"../../node_modules/.pnpm/cuid@2.1.8/node_modules/cuid/lib/fingerprint.browser.js\"(exports, module) {\n    module.exports = function fingerprint() {\n      return Math.random().toString(16).slice(2);\n    };\n  }\n});\nvar require_getRandomValue_browser = __commonJS({\n  \"../../node_modules/.pnpm/cuid@2.1.8/node_modules/cuid/lib/getRandomValue.browser.js\"(exports, module) {\n    var getRandomValue;\n    var crypto = typeof window !== \"undefined\" && (window.crypto || window.msCrypto) || typeof self !== \"undefined\" && self.crypto;\n    if (crypto) {\n      lim = Math.pow(2, 32) - 1;\n      getRandomValue = function () {\n        return Math.abs(crypto.getRandomValues(new Uint32Array(1))[0] / lim);\n      };\n    } else {\n      getRandomValue = Math.random;\n    }\n    var lim;\n    module.exports = getRandomValue;\n  }\n});\nvar require_cuid = __commonJS({\n  \"../../node_modules/.pnpm/cuid@2.1.8/node_modules/cuid/index.js\"(exports, module) {\n    var fingerprint = require_fingerprint_browser();\n    var pad = require_pad();\n    var getRandomValue = require_getRandomValue_browser();\n    var c = 0;\n    var blockSize = 4;\n    var base = 36;\n    var discreteValues = Math.pow(base, blockSize);\n    function randomBlock() {\n      return pad((getRandomValue() * discreteValues << 0).toString(base), blockSize);\n    }\n    function safeCounter() {\n      c = c < discreteValues ? c : 0;\n      c++;\n      return c - 1;\n    }\n    function cuid3() {\n      var letter = \"c\",\n        timestamp = /* @__PURE__ */new Date().getTime().toString(base),\n        counter = pad(safeCounter().toString(base), blockSize),\n        print = fingerprint(),\n        random = randomBlock() + randomBlock();\n      return letter + timestamp + counter + print + random;\n    }\n    cuid3.slug = function slug() {\n      var date = /* @__PURE__ */new Date().getTime().toString(36),\n        counter = safeCounter().toString(36).slice(-4),\n        print = fingerprint().slice(0, 1) + fingerprint().slice(-1),\n        random = randomBlock().slice(-2);\n      return date.slice(-2) + counter + print + random;\n    };\n    cuid3.isCuid = function isCuid(stringToCheck) {\n      if (typeof stringToCheck !== \"string\") return false;\n      if (stringToCheck.startsWith(\"c\")) return true;\n      return false;\n    };\n    cuid3.isSlug = function isSlug(stringToCheck) {\n      if (typeof stringToCheck !== \"string\") return false;\n      var stringLength = stringToCheck.length;\n      if (stringLength >= 7 && stringLength <= 10) return true;\n      return false;\n    };\n    cuid3.fingerprint = fingerprint;\n    module.exports = cuid3;\n  }\n});\nvar require_createDeferredExecutor = __commonJS({\n  \"../../node_modules/.pnpm/@open-draft+deferred-promise@2.1.0/node_modules/@open-draft/deferred-promise/build/createDeferredExecutor.js\"(exports) {\n    \"use strict\";\n\n    Object.defineProperty(exports, \"__esModule\", {\n      value: true\n    });\n    exports.createDeferredExecutor = void 0;\n    function createDeferredExecutor() {\n      const executor = (resolve, reject) => {\n        executor.state = \"pending\";\n        executor.resolve = data => {\n          if (executor.state !== \"pending\") {\n            return;\n          }\n          executor.result = data;\n          const onFulfilled = value => {\n            executor.state = \"fulfilled\";\n            return value;\n          };\n          return resolve(data instanceof Promise ? data : Promise.resolve(data).then(onFulfilled));\n        };\n        executor.reject = reason => {\n          if (executor.state !== \"pending\") {\n            return;\n          }\n          queueMicrotask(() => {\n            executor.state = \"rejected\";\n          });\n          return reject(executor.rejectionReason = reason);\n        };\n      };\n      return executor;\n    }\n    exports.createDeferredExecutor = createDeferredExecutor;\n  }\n});\nvar require_DeferredPromise = __commonJS({\n  \"../../node_modules/.pnpm/@open-draft+deferred-promise@2.1.0/node_modules/@open-draft/deferred-promise/build/DeferredPromise.js\"(exports) {\n    \"use strict\";\n\n    var _executor, _decorate, _class;\n    Object.defineProperty(exports, \"__esModule\", {\n      value: true\n    });\n    exports.DeferredPromise = void 0;\n    var createDeferredExecutor_1 = require_createDeferredExecutor();\n    var DeferredPromise4 = (_executor = /*#__PURE__*/new WeakMap(), _decorate = /*#__PURE__*/new WeakSet(), _class = class extends Promise {\n      get state() {\n        return _classPrivateFieldGet(this, _executor).state;\n      }\n      get rejectionReason() {\n        return _classPrivateFieldGet(this, _executor).rejectionReason;\n      }\n      then(onFulfilled, onRejected) {\n        return _classPrivateMethodGet(this, _decorate, decorate).call(this, super.then(onFulfilled, onRejected));\n      }\n      catch(onRejected) {\n        return _classPrivateMethodGet(this, _decorate, decorate).call(this, super.catch(onRejected));\n      }\n      finally(onfinally) {\n        return _classPrivateMethodGet(this, _decorate, decorate).call(this, super.finally(onfinally));\n      }\n      constructor(executor = null) {\n        const deferredExecutor = (0, createDeferredExecutor_1.createDeferredExecutor)();\n        super((originalResolve, originalReject) => {\n          deferredExecutor(originalResolve, originalReject);\n          executor === null || executor === void 0 ? void 0 : executor(deferredExecutor.resolve, deferredExecutor.reject);\n        });\n        _classPrivateMethodInit(this, _decorate);\n        _classPrivateFieldInit(this, _executor, {\n          writable: true,\n          value: void 0\n        });\n        _classPrivateFieldSet(this, _executor, deferredExecutor);\n        this.resolve = _classPrivateFieldGet(this, _executor).resolve;\n        this.reject = _classPrivateFieldGet(this, _executor).reject;\n      }\n    }, _class);\n    exports.DeferredPromise = DeferredPromise4;\n    function decorate(promise) {\n      return Object.defineProperties(promise, {\n        resolve: {\n          configurable: true,\n          value: this.resolve\n        },\n        reject: {\n          configurable: true,\n          value: this.reject\n        }\n      });\n    }\n  }\n});\nvar require_build = __commonJS({\n  \"../../node_modules/.pnpm/@open-draft+deferred-promise@2.1.0/node_modules/@open-draft/deferred-promise/build/index.js\"(exports) {\n    \"use strict\";\n\n    var __createBinding = exports && exports.__createBinding || (Object.create ? function (o, m, k, k2) {\n      if (k2 === void 0) k2 = k;\n      var desc = Object.getOwnPropertyDescriptor(m, k);\n      if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n        desc = {\n          enumerable: true,\n          get: function () {\n            return m[k];\n          }\n        };\n      }\n      Object.defineProperty(o, k2, desc);\n    } : function (o, m, k, k2) {\n      if (k2 === void 0) k2 = k;\n      o[k2] = m[k];\n    });\n    var __exportStar = exports && exports.__exportStar || function (m, exports2) {\n      for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports2, p)) __createBinding(exports2, m, p);\n    };\n    Object.defineProperty(exports, \"__esModule\", {\n      value: true\n    });\n    __exportStar(require_createDeferredExecutor(), exports);\n    __exportStar(require_DeferredPromise(), exports);\n  }\n});\nvar require_MemoryLeakError = __commonJS({\n  \"../../node_modules/.pnpm/strict-event-emitter@0.4.3/node_modules/strict-event-emitter/lib/MemoryLeakError.js\"(exports) {\n    \"use strict\";\n\n    Object.defineProperty(exports, \"__esModule\", {\n      value: true\n    });\n    exports.MemoryLeakError = void 0;\n    var MemoryLeakError = class extends Error {\n      constructor(emitter, type, count) {\n        super(`Possible EventEmitter memory leak detected. ${count} ${type.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`);\n        this.emitter = emitter;\n        this.type = type;\n        this.count = count;\n        this.name = \"MaxListenersExceededWarning\";\n      }\n    };\n    exports.MemoryLeakError = MemoryLeakError;\n  }\n});\nvar require_Emitter = __commonJS({\n  \"../../node_modules/.pnpm/strict-event-emitter@0.4.3/node_modules/strict-event-emitter/lib/Emitter.js\"(exports) {\n    \"use strict\";\n\n    Object.defineProperty(exports, \"__esModule\", {\n      value: true\n    });\n    exports.Emitter = void 0;\n    var MemoryLeakError_1 = require_MemoryLeakError();\n    var _events, _maxListeners, _hasWarnedAboutPotentialMemortyLeak, _getListeners, getListeners_fn, _removeListener, removeListener_fn, _wrapOnceListener, wrapOnceListener_fn, _internalEmit, internalEmit_fn;\n    var _Emitter = class {\n      static listenerCount(emitter, eventName) {\n        return emitter.listenerCount(eventName);\n      }\n      setMaxListeners(maxListeners) {\n        __privateSet(this, _maxListeners, maxListeners);\n        return this;\n      }\n      getMaxListeners() {\n        return __privateGet(this, _maxListeners);\n      }\n      eventNames() {\n        return Array.from(__privateGet(this, _events).keys());\n      }\n      emit(eventName, ...data) {\n        const listeners = __privateMethod(this, _getListeners, getListeners_fn).call(this, eventName);\n        listeners.forEach(listener => {\n          listener.apply(this, data);\n        });\n        return listeners.length > 0;\n      }\n      addListener(eventName, listener) {\n        __privateMethod(this, _internalEmit, internalEmit_fn).call(this, \"newListener\", eventName, listener);\n        const nextListeners = __privateMethod(this, _getListeners, getListeners_fn).call(this, eventName).concat(listener);\n        __privateGet(this, _events).set(eventName, nextListeners);\n        if (__privateGet(this, _maxListeners) > 0 && this.listenerCount(eventName) > __privateGet(this, _maxListeners) && !__privateGet(this, _hasWarnedAboutPotentialMemortyLeak)) {\n          __privateSet(this, _hasWarnedAboutPotentialMemortyLeak, true);\n          const memoryLeakWarning = new MemoryLeakError_1.MemoryLeakError(this, eventName, this.listenerCount(eventName));\n          console.warn(memoryLeakWarning);\n        }\n        return this;\n      }\n      on(eventName, listener) {\n        return this.addListener(eventName, listener);\n      }\n      once(eventName, listener) {\n        return this.addListener(eventName, __privateMethod(this, _wrapOnceListener, wrapOnceListener_fn).call(this, eventName, listener));\n      }\n      prependListener(eventName, listener) {\n        const listeners = __privateMethod(this, _getListeners, getListeners_fn).call(this, eventName);\n        if (listeners.length > 0) {\n          const nextListeners = [listener].concat(listeners);\n          __privateGet(this, _events).set(eventName, nextListeners);\n        } else {\n          __privateGet(this, _events).set(eventName, listeners.concat(listener));\n        }\n        return this;\n      }\n      prependOnceListener(eventName, listener) {\n        return this.prependListener(eventName, __privateMethod(this, _wrapOnceListener, wrapOnceListener_fn).call(this, eventName, listener));\n      }\n      removeListener(eventName, listener) {\n        const listeners = __privateMethod(this, _getListeners, getListeners_fn).call(this, eventName);\n        if (listeners.length > 0) {\n          __privateMethod(this, _removeListener, removeListener_fn).call(this, listeners, listener);\n          __privateGet(this, _events).set(eventName, listeners);\n          __privateMethod(this, _internalEmit, internalEmit_fn).call(this, \"removeListener\", eventName, listener);\n        }\n        return this;\n      }\n      off(eventName, listener) {\n        return this.removeListener(eventName, listener);\n      }\n      removeAllListeners(eventName) {\n        if (eventName) {\n          __privateGet(this, _events).delete(eventName);\n        } else {\n          __privateGet(this, _events).clear();\n        }\n        return this;\n      }\n      listeners(eventName) {\n        return Array.from(__privateMethod(this, _getListeners, getListeners_fn).call(this, eventName));\n      }\n      listenerCount(eventName) {\n        return __privateMethod(this, _getListeners, getListeners_fn).call(this, eventName).length;\n      }\n      rawListeners(eventName) {\n        return this.listeners(eventName);\n      }\n      constructor() {\n        __privateAdd(this, _getListeners);\n        __privateAdd(this, _removeListener);\n        __privateAdd(this, _wrapOnceListener);\n        __privateAdd(this, _internalEmit);\n        __privateAdd(this, _events, void 0);\n        __privateAdd(this, _maxListeners, void 0);\n        __privateAdd(this, _hasWarnedAboutPotentialMemortyLeak, void 0);\n        __privateSet(this, _events, /* @__PURE__ */new Map());\n        __privateSet(this, _maxListeners, _Emitter.defaultMaxListeners);\n        __privateSet(this, _hasWarnedAboutPotentialMemortyLeak, false);\n      }\n    };\n    var Emitter2 = _Emitter;\n    _events = /* @__PURE__ */new WeakMap();\n    _maxListeners = /* @__PURE__ */new WeakMap();\n    _hasWarnedAboutPotentialMemortyLeak = /* @__PURE__ */new WeakMap();\n    _getListeners = /* @__PURE__ */new WeakSet();\n    getListeners_fn = function (eventName) {\n      return __privateGet(this, _events).get(eventName) || [];\n    };\n    _removeListener = /* @__PURE__ */new WeakSet();\n    removeListener_fn = function (listeners, listener) {\n      const index = listeners.indexOf(listener);\n      if (index > -1) {\n        listeners.splice(index, 1);\n      }\n      return [];\n    };\n    _wrapOnceListener = /* @__PURE__ */new WeakSet();\n    wrapOnceListener_fn = function (eventName, listener) {\n      const onceListener = (...data) => {\n        this.removeListener(eventName, onceListener);\n        listener.apply(this, data);\n      };\n      return onceListener;\n    };\n    _internalEmit = /* @__PURE__ */new WeakSet();\n    internalEmit_fn = function (internalEventName, eventName, listener) {\n      this.emit(internalEventName, ...[eventName, listener]);\n    };\n    __publicField(Emitter2, \"defaultMaxListeners\", 10);\n    exports.Emitter = Emitter2;\n  }\n});\nvar require_lib = __commonJS({\n  \"../../node_modules/.pnpm/strict-event-emitter@0.4.3/node_modules/strict-event-emitter/lib/index.js\"(exports) {\n    \"use strict\";\n\n    var __createBinding = exports && exports.__createBinding || (Object.create ? function (o, m, k, k2) {\n      if (k2 === void 0) k2 = k;\n      var desc = Object.getOwnPropertyDescriptor(m, k);\n      if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n        desc = {\n          enumerable: true,\n          get: function () {\n            return m[k];\n          }\n        };\n      }\n      Object.defineProperty(o, k2, desc);\n    } : function (o, m, k, k2) {\n      if (k2 === void 0) k2 = k;\n      o[k2] = m[k];\n    });\n    var __exportStar = exports && exports.__exportStar || function (m, exports2) {\n      for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports2, p)) __createBinding(exports2, m, p);\n    };\n    Object.defineProperty(exports, \"__esModule\", {\n      value: true\n    });\n    __exportStar(require_Emitter(), exports);\n    __exportStar(require_MemoryLeakError(), exports);\n  }\n});\nvar import_cuid = __toESM(require_cuid());\nvar POSITIONALS_EXP = /(%?)(%([sdjo]))/g;\nfunction serializePositional(positional, flag) {\n  switch (flag) {\n    case \"s\":\n      return positional;\n    case \"d\":\n    case \"i\":\n      return Number(positional);\n    case \"j\":\n      return JSON.stringify(positional);\n    case \"o\":\n      {\n        if (typeof positional === \"string\") {\n          return positional;\n        }\n        const json = JSON.stringify(positional);\n        if (json === \"{}\" || json === \"[]\" || /^\\[object .+?\\]$/.test(json)) {\n          return positional;\n        }\n        return json;\n      }\n  }\n}\nfunction format(message, ...positionals) {\n  if (positionals.length === 0) {\n    return message;\n  }\n  let positionalIndex = 0;\n  let formattedMessage = message.replace(POSITIONALS_EXP, (match, isEscaped, _, flag) => {\n    const positional = positionals[positionalIndex];\n    const value = serializePositional(positional, flag);\n    if (!isEscaped) {\n      positionalIndex++;\n      return value;\n    }\n    return match;\n  });\n  if (positionalIndex < positionals.length) {\n    formattedMessage += ` ${positionals.slice(positionalIndex).join(\" \")}`;\n  }\n  formattedMessage = formattedMessage.replace(/%{2,2}/g, \"%\");\n  return formattedMessage;\n}\nvar STACK_FRAMES_TO_IGNORE = 2;\nfunction cleanErrorStack(error) {\n  if (!error.stack) {\n    return;\n  }\n  const nextStack = error.stack.split(\"\\n\");\n  nextStack.splice(1, STACK_FRAMES_TO_IGNORE);\n  error.stack = nextStack.join(\"\\n\");\n}\nvar InvariantError = class extends Error {\n  constructor(message, ...positionals) {\n    super(message);\n    this.message = message;\n    this.name = \"Invariant Violation\";\n    this.message = format(message, ...positionals);\n    cleanErrorStack(this);\n  }\n};\nvar invariant = (predicate, message, ...positionals) => {\n  if (!predicate) {\n    throw new InvariantError(message, ...positionals);\n  }\n};\ninvariant.as = (ErrorConstructor, predicate, message, ...positionals) => {\n  if (!predicate) {\n    const isConstructor = ErrorConstructor.prototype.name != null;\n    const error = isConstructor ? new ErrorConstructor(format(message, positionals)) : ErrorConstructor(format(message, positionals));\n    throw error;\n  }\n};\nvar import_deferred_promise = __toESM(require_build());\nvar FLAG = undefined;\nvar DEFAULT = \"\\x1b[0m\";\nvar GREEN = \"\\x1b[32;1m\";\nvar RED = \"\\x1b[31m\";\nvar BLUE = \"\\x1b[34m\";\nvar YELLOW = \"\\x1b[33;1m\";\nvar MAGENTA = \"\\x1b[35;1m\";\nvar CYAN = \"\\x1b[36;1m\";\nvar COLOR_SCOPE = {\n  preview: YELLOW,\n  emulator: MAGENTA,\n  runtime: CYAN,\n  bridge: BLUE,\n  \"runtime:worker\": CYAN\n};\nfunction createDebug(scope) {\n  return function debug3(message, ...data) {\n    if (FLAG === \"true\") {\n      const direction = () => {\n        if (message.includes(\"sender\")) return `${GREEN}sender`;\n        if (message.includes(\"receiver\")) return `${RED}receiver`;\n        return \"\";\n      };\n      const cleanMessage = message.replace(/\\[.+\\]:/, \"\");\n      console.debug(`${COLOR_SCOPE[scope]}${scope}:${direction()}${DEFAULT}:${cleanMessage}`, ...data);\n    }\n  };\n}\nvar debug = createDebug(\"emulator\");\nvar MessageReceiver = class {\n  waitForHandshake() {\n    const handshakePromise = new import_deferred_promise.DeferredPromise();\n    const handshakeListener = message => {\n      const {\n        data\n      } = message;\n      debug(\"[message-receiver]: incoming\", message);\n      if (data.type === \"internal/handshake\") {\n        invariant(message.ports.length > 0, \"Failed to confirm a MessageReceiver handshake: received event has no ports\");\n        this.senderPort = message.ports[0];\n        this.addMessageListener();\n        debug(\"[message-receiver]: handshake received!\", this.senderPort);\n        this.send(\"internal/handshake/done\");\n        debug(\"[message-receiver]: finish handshake\");\n      }\n    };\n    window.addEventListener(\"message\", handshakeListener);\n    handshakePromise.then(() => {\n      window.removeEventListener(\"message\", handshakeListener);\n    });\n    window.parent.postMessage({\n      type: \"internal/ready\"\n    }, \"*\");\n    return handshakePromise;\n  }\n  addMessageListener() {\n    invariant(this.senderPort, \"[MessageReceiver] Failed to add a message listener: sender port is not defined. Did you forget to await a handshake?\");\n    this.senderPort.onmessage = evt => {\n      const data = evt.data;\n      if (data.type == null) {\n        return;\n      }\n      this.emitter.dispatchEvent(new MessageEvent(data.type, {\n        data: data.payload\n      }));\n    };\n  }\n  on(event, listener, options) {\n    this.emitter.addEventListener(event, async message => {\n      if (!(message instanceof MessageEvent)) {\n        return;\n      }\n      const {\n        operationId,\n        payload\n      } = message.data;\n      try {\n        const listenerPayload = await listener(payload);\n        this.send(\"internal/operation/done\", {\n          operationId,\n          listenerPayload\n        });\n      } catch (error) {\n        if (error instanceof Error) {\n          this.send(\"internal/operation/failed\", {\n            operationId,\n            error\n          });\n        }\n      }\n    }, options);\n  }\n  send(event, ...data) {\n    invariant(this.senderPort, '[MessageReceiver] Failed to send a message \"%j\": sender port is not defined. Did you forget to await a handshake?', event);\n    const payload = data[0] || {};\n    debug('[message-receiver]: send \"%s\"', event, payload);\n    this.senderPort.postMessage({\n      type: event,\n      payload\n    });\n  }\n  constructor() {\n    _defineProperty(this, \"senderPort\", null);\n    this.emitter = new EventTarget();\n    this.waitForHandshake();\n  }\n};\nvar MessageSender = class {\n  async handshake() {\n    const handshakePromise = new import_deferred_promise.DeferredPromise();\n    await this.receiverReadyPromise;\n    debug(\"[message-sender]: sending handshake\");\n    this.target.postMessage({\n      type: \"internal/handshake\"\n    }, \"*\", [this.channel.port2]);\n    this.on(\"internal/handshake/done\", () => {\n      handshakePromise.resolve();\n      clearTimeout(rejectionTimeout);\n    });\n    const rejectionTimeout = setTimeout(() => {\n      handshakePromise.reject(new Error(\"MessageSender: Handshake timeout\"));\n    }, 5e3);\n    return handshakePromise;\n  }\n  on(event, listener, options) {\n    debug('[message-sender]: add listener \"%s\"', event);\n    this.emitter.addEventListener(event, message => {\n      if (message instanceof MessageEvent) {\n        listener(message);\n      }\n    }, options);\n  }\n  off(event, listener, options) {\n    this.emitter.removeEventListener(event, listener, options);\n  }\n  async send(event, ...data) {\n    const operationPromise = new import_deferred_promise.DeferredPromise();\n    const operationId = (0, import_cuid.default)();\n    const payload = data[0] || {};\n    debug('[message-sender]: send \"%s\" (%s)', event, operationId, payload);\n    this.receiverPort.postMessage({\n      type: event,\n      payload: {\n        operationId,\n        payload\n      }\n    });\n    debug('[message-sender]: adding done listener for \"%s\" (%s)', event, operationId);\n    const handleOperationDone = doneEvent => {\n      const {\n        data: data2\n      } = doneEvent;\n      if (data2.operationId === operationId) {\n        const listenerPayload = data2.listenerPayload || {};\n        debug('[message-sender]: resolving \"%s (%s) promise!', event, operationId);\n        operationPromise.resolve({\n          ...listenerPayload,\n          operationId: data2.operationId\n        });\n      }\n    };\n    const handleOperationFailed = failEvent => {\n      const {\n        data: data2\n      } = failEvent;\n      if (data2.operationId === operationId) {\n        debug('[message-sender]: rejecting \"%s (%s) promise!', event, operationId);\n        operationPromise.reject(data2.error);\n      }\n    };\n    this.on(\"internal/operation/done\", handleOperationDone);\n    this.on(\"internal/operation/failed\", handleOperationFailed);\n    return operationPromise.finally(() => {\n      this.emitter.removeEventListener(\"internal/operation/done\", handleOperationDone);\n      this.emitter.removeEventListener(\"internal/operation/failed\", handleOperationFailed);\n    });\n  }\n  constructor(target) {\n    this.target = target;\n    this.emitter = new EventTarget();\n    this.channel = new MessageChannel();\n    this.receiverPort = this.channel.port1;\n    const receiverReadyPromise = new import_deferred_promise.DeferredPromise();\n    const handshakeListener = message => {\n      if (message.data.type === \"internal/ready\") {\n        debug(\"[message-sender]: runtime is ready\");\n        receiverReadyPromise.resolve();\n      }\n    };\n    window.addEventListener(\"message\", handshakeListener);\n    receiverReadyPromise.then(() => {\n      window.removeEventListener(\"message\", handshakeListener);\n    });\n    this.receiverReadyPromise = receiverReadyPromise;\n    this.receiverPort.onmessage = evt => {\n      const data = evt.data;\n      if (data.type != null) {\n        debug('[message-sender]: emitting \"%s\" event...', data.type, data.payload);\n        this.emitter.dispatchEvent(new MessageEvent(data.type, {\n          data: data.payload\n        }));\n      }\n    };\n  }\n};\nvar import_deferred_promise3 = __toESM(require_build());\nvar import_cuid2 = __toESM(require_cuid());\nvar FileSystemApi = class {\n  async init(files) {\n    await this.channel.send(\"fs/init\", {\n      files\n    });\n  }\n  async readFile(path, encoding) {\n    const response = await this.channel.send(\"fs/readFile\", {\n      path,\n      encoding\n    }).catch(error => {\n      throw new Error(format('Failed to read file at path \"%s\"', path), {\n        cause: error\n      });\n    });\n    if (!response) {\n      throw new Error(\"File not found\");\n    }\n    return response.data;\n  }\n  async writeFile(path, content, options) {\n    let encoding = void 0;\n    let recursive = false;\n    if (typeof options === \"object\") {\n      encoding = options.encoding;\n      recursive = !!options.recursive;\n    } else if (typeof options === \"string\") {\n      encoding = options;\n    }\n    await this.channel.send(\"fs/writeFile\", {\n      path,\n      content,\n      encoding,\n      recursive\n    }).catch(error => {\n      throw new Error(format('Failed to write file at path \"%s\"', path), {\n        cause: error\n      });\n    });\n  }\n  async readdir(path) {\n    const response = await this.channel.send(\"fs/readdir\", {\n      path\n    }).catch(error => {\n      throw new Error(format('Failed to read directory at path \"%s\"', path), {\n        cause: error\n      });\n    });\n    if (!response) {\n      throw new Error(\"Directory not found\");\n    }\n    return response.data;\n  }\n  async mkdir(path, options) {\n    const recursive = !!(options === null || options === void 0 ? void 0 : options.recursive);\n    await this.channel.send(\"fs/mkdir\", {\n      path,\n      recursive\n    }).catch(error => {\n      throw new Error(format('Failed to make directory at path \"%s\"', path), {\n        cause: error\n      });\n    });\n  }\n  async stat(path) {\n    const response = await this.channel.send(\"fs/stat\", {\n      path\n    }).catch(error => {\n      throw new Error(format('Failed to stat file at path \"%s\"', path), {\n        cause: error\n      });\n    });\n    if (!response) {\n      throw new Error(\"File not found\");\n    }\n    return response.data;\n  }\n  async rm(path, options) {\n    const {\n      force,\n      recursive\n    } = options || {};\n    await this.channel.send(\"fs/rm\", {\n      path,\n      force,\n      recursive\n    }).catch(error => {\n      throw new Error(format('Failed to remove file at path \"%s\"', path), {\n        cause: error\n      });\n    });\n  }\n  async watch(includes, excludes, listener) {\n    const watcherId = (0, import_cuid2.default)();\n    await this.channel.send(\"fs/watch\", {\n      watcherId,\n      includes,\n      excludes\n    });\n    this.channel.on(\"fs/watch-event\", ({\n      data\n    }) => {\n      if (data.watcherId === watcherId && listener) {\n        const evt = {\n          ...data\n        };\n        delete evt.watcherId;\n        listener(evt);\n      }\n    });\n    return {\n      dispose: () => this.channel.send(\"fs/unwatch\", {\n        watcherId\n      })\n    };\n  }\n  constructor(channel) {\n    this.channel = channel;\n  }\n};\nvar import_strict_event_emitter = __toESM(require_lib());\nvar ShellApi = class {\n  create() {\n    return new ShellProcess(this.channel);\n  }\n  constructor(channel) {\n    this.channel = channel;\n  }\n};\nvar ShellProcess = class {\n  forwardStdEvents() {\n    this.channel.on(\"worker/tty\", message => {\n      const {\n        data\n      } = message;\n      if (data.workerId !== this.id) {\n        return;\n      }\n      switch (data.payload.type) {\n        case \"out\":\n          {\n            this.stdout.emit(\"data\", data.payload.data);\n            break;\n          }\n        case \"err\":\n          {\n            this.stderr.emit(\"data\", data.payload.data);\n            break;\n          }\n      }\n    });\n  }\n  async runCommand(command, args, options = {}) {\n    invariant(!this.id, 'Failed to run \"runCommand\" on a ShellProcess: there is already a process running.');\n    const shellInfo = await this.channel.send(\"shell/runCommand\", {\n      command,\n      args,\n      options\n    });\n    invariant(shellInfo, 'Failed to run \"runCommand\" on a ShellProcess: was not able to retrieve a running process.');\n    this.id = shellInfo.id;\n    this.state = \"running\";\n    return shellInfo;\n  }\n  async on(message, listener) {\n    switch (message) {\n      case \"progress\":\n        {\n          this.channel.on(\"worker/progress\", ({\n            data\n          }) => {\n            listener(data.status);\n          });\n          return;\n        }\n      case \"exit\":\n        {\n          this.channel.on(\"worker/exit\", ({\n            data\n          }) => {\n            if (data.workerId === this.id) {\n              listener(data.exitCode, data.error);\n            }\n          });\n          return;\n        }\n    }\n  }\n  async kill() {\n    invariant(this.id, 'Failed to run \"kill\" on a ShellProcess: there is no process running. Did you forget to run it?');\n    this.state = \"idle\";\n    await this.channel.send(\"shell/exit\", {\n      id: this.id\n    }).catch(error => {\n      throw new Error(format('Failed to kill shell with ID \"%s\"', this.id), {\n        cause: error\n      });\n    });\n    this.id = void 0;\n  }\n  constructor(channel) {\n    this.channel = channel;\n    this.state = \"running\";\n    this.stdout = new import_strict_event_emitter.Emitter();\n    this.stderr = new import_strict_event_emitter.Emitter();\n    this.stdin = {\n      write: data => {\n        if (!this.id) {\n          throw new Error(\"Failed to write to stdin, no process is currently running\");\n        }\n        return this.channel.send(\"shell/stdin\", {\n          data,\n          workerId: this.id\n        });\n      }\n    };\n    this.forwardStdEvents();\n  }\n};\nvar import_deferred_promise2 = __toESM(require_build());\nvar TIMEOUT = 2e4;\nvar PreviewApi = class {\n  async waitFor(payload, predicate, timeout = TIMEOUT) {\n    const readyPromise = new import_deferred_promise2.DeferredPromise();\n    const rejectTimeout = setTimeout(() => {\n      readyPromise.reject();\n    }, timeout);\n    const previewInformation = await this.channel.send(\"preview/get/info\", payload).catch(error => {\n      readyPromise.reject(new Error(format('Failed to look up preview information for shell ID \"%s\" (port: %d)', payload.sourceShellId, payload.port)));\n    });\n    const foundPreview = previewInformation && predicate(previewInformation);\n    if (foundPreview) {\n      readyPromise.resolve({\n        url: previewInformation.url,\n        port: previewInformation.port,\n        sourceShellId: previewInformation.sourceShellId\n      });\n    }\n    this.channel.on(\"preview/port/ready\", ({\n      data\n    }) => {\n      if (!foundPreview && predicate(data)) {\n        readyPromise.resolve({\n          url: data.url,\n          port: data.port,\n          sourceShellId: data.sourceShellId\n        });\n      }\n    });\n    return readyPromise.finally(() => {\n      clearTimeout(rejectTimeout);\n    });\n  }\n  async getByShellId(sourceShellId, timeout) {\n    return this.waitFor({\n      sourceShellId\n    }, data => data.sourceShellId === sourceShellId, timeout).catch(error => {\n      throw new Error(format('Failed to get shell by ID \"%s\"', sourceShellId), {\n        cause: error\n      });\n    });\n  }\n  async waitForPort(port, timeout) {\n    return this.waitFor({\n      port\n    }, data => data.port === port, timeout).catch(error => {\n      throw new Error(format(\"Failed to await port %d\", port), {\n        cause: error\n      });\n    });\n  }\n  constructor(channel) {\n    this.channel = channel;\n  }\n};\nvar DEFAULT_RUNTIME_URL = \"https://nodebox-runtime.codesandbox.io\";\nvar debug2 = createDebug(\"emulator\");\nvar Nodebox = class {\n  async connect() {\n    const {\n      iframe,\n      cdnUrl\n    } = this.options;\n    debug2(\"[message-sender]: Connecting to node emulator...\");\n    const connectionPromise = new import_deferred_promise3.DeferredPromise();\n    if (!this.url) {\n      connectionPromise.reject(new Error(\"Nodebox URL is missing. Did you forget to provide it when creating this Nodebox instance?\"));\n    }\n    invariant(iframe.contentWindow, \"Failed to create a MessageChannel with the Nodebox iframe: no content window found\");\n    this.channel = new MessageSender(iframe.contentWindow);\n    const frameLoadPromise = new import_deferred_promise3.DeferredPromise();\n    iframe.setAttribute(\"src\", this.url);\n    iframe.addEventListener(\"load\", () => {\n      frameLoadPromise.resolve();\n    }, {\n      once: true\n    });\n    iframe.addEventListener(\"error\", event => {\n      frameLoadPromise.reject(event.error);\n    }, {\n      once: true\n    });\n    await frameLoadPromise;\n    debug2(\"[message-sender]: IFrame loaded...\");\n    await this.channel.handshake();\n    debug2(\"[message-sender]: Handshake completed...\");\n    this.channel.send(\"connect\", {\n      cdnUrl\n    });\n    this.channel.on(\"runtime/ready\", () => {\n      connectionPromise.resolve();\n    });\n    return connectionPromise.then(() => {\n      debug2(\"[message-sender]: Connected to runtime...\");\n      this.isConnected = true;\n    });\n  }\n  get fs() {\n    invariant(this.isConnected, 'Failed to access the File System API: consumer is not connected. Did you forget to run \"connect()\"?');\n    if (this.fileSystemApi) {\n      return this.fileSystemApi;\n    }\n    this.fileSystemApi = new FileSystemApi(this.channel);\n    return this.fileSystemApi;\n  }\n  get shell() {\n    invariant(this.isConnected, 'Failed to access the Shell API: consumer is not connected. Did you forget to run \"connect()\"?');\n    if (this.shellApi) {\n      return this.shellApi;\n    }\n    this.shellApi = new ShellApi(this.channel);\n    return this.shellApi;\n  }\n  get preview() {\n    invariant(this.isConnected, 'Failed to access the Preview API: consumer is not connected. Did you forget to run \"connect()\"?');\n    if (this.previewApi) {\n      return this.previewApi;\n    }\n    this.previewApi = new PreviewApi(this.channel);\n    return this.previewApi;\n  }\n  constructor(options) {\n    _defineProperty(this, \"channel\", null);\n    _defineProperty(this, \"fileSystemApi\", null);\n    _defineProperty(this, \"shellApi\", null);\n    _defineProperty(this, \"previewApi\", null);\n    this.options = options;\n    invariant(this.options.iframe, 'Failed to create a Nodebox: expected \"iframe\" argument to be a reference to an <iframe> element but got %j', this.options.iframe);\n    this.url = this.options.runtimeUrl || DEFAULT_RUNTIME_URL;\n    this.isConnected = false;\n  }\n};\nvar INJECT_MESSAGE_TYPE = \"INJECT_AND_INVOKE\";\nvar PREVIEW_LOADED_MESSAGE_TYPE = \"PREVIEW_LOADED\";\nexport { INJECT_MESSAGE_TYPE, MessageReceiver, MessageSender, Nodebox, PREVIEW_LOADED_MESSAGE_TYPE };\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"Nodebox\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"PREVIEW_LOADED_MESSAGE_TYPE\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"MessageReceiver\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"MessageSender\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"INJECT_MESSAGE_TYPE\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};\n//# sourceMappingURL=./codesandbox_nodebox.map", "// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./build\".\n */var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n  return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = {\n    exports: {}\n  }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n  for (var name in all) __defProp(target, name, {\n    get: all[name],\n    enumerable: true\n  });\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n      get: () => from[key],\n      enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n    });\n  }\n  return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n// If the importer is in node compatibility mode or this is not an ESM\n// file that has been converted to a CommonJS file using a Babel-\n// compatible transform (i.e. \"__esModule\" has not been set), then set\n// \"default\" to the CommonJS \"module.exports\" for node compatibility.\nisNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", {\n  value: mod,\n  enumerable: true\n}) : target, mod)); // ../../node_modules/outvariant/lib/index.mjs\nfunction serializePositional(positional, flag) {\n  switch (flag) {\n    case \"s\":\n      return positional;\n    case \"d\":\n    case \"i\":\n      return Number(positional);\n    case \"j\":\n      return JSON.stringify(positional);\n    case \"o\":\n      {\n        if (typeof positional === \"string\") {\n          return positional;\n        }\n        const json = JSON.stringify(positional);\n        if (json === \"{}\" || json === \"[]\" || /^\\[object .+?\\]$/.test(json)) {\n          return positional;\n        }\n        return json;\n      }\n  }\n}\nfunction format(message, ...positionals) {\n  if (positionals.length === 0) {\n    return message;\n  }\n  let positionalIndex = 0;\n  let formattedMessage = message.replace(POSITIONALS_EXP, (match, isEscaped, _, flag) => {\n    const positional = positionals[positionalIndex];\n    const value = serializePositional(positional, flag);\n    if (!isEscaped) {\n      positionalIndex++;\n      return value;\n    }\n    return match;\n  });\n  if (positionalIndex < positionals.length) {\n    formattedMessage += ` ${positionals.slice(positionalIndex).join(\" \")}`;\n  }\n  formattedMessage = formattedMessage.replace(/%{2,2}/g, \"%\");\n  return formattedMessage;\n}\nfunction cleanErrorStack(error) {\n  if (!error.stack) {\n    return;\n  }\n  const nextStack = error.stack.split(\"\\n\");\n  nextStack.splice(1, STACK_FRAMES_TO_IGNORE);\n  error.stack = nextStack.join(\"\\n\");\n}\nvar POSITIONALS_EXP, STACK_FRAMES_TO_IGNORE, InvariantError, invariant;\nvar init_lib = __esm({\n  \"../../node_modules/outvariant/lib/index.mjs\"() {\n    POSITIONALS_EXP = /(%?)(%([sdjo]))/g;\n    STACK_FRAMES_TO_IGNORE = 2;\n    InvariantError = class extends Error {\n      constructor(message, ...positionals) {\n        super(message);\n        this.message = message;\n        this.name = \"Invariant Violation\";\n        this.message = format(message, ...positionals);\n        cleanErrorStack(this);\n      }\n    };\n    invariant = (predicate, message, ...positionals) => {\n      if (!predicate) {\n        throw new InvariantError(message, ...positionals);\n      }\n    };\n    invariant.as = (ErrorConstructor, predicate, message, ...positionals) => {\n      if (!predicate) {\n        const isConstructor = ErrorConstructor.prototype.name != null;\n        const error = isConstructor ? new ErrorConstructor(format(message, positionals)) : ErrorConstructor(format(message, positionals));\n        throw error;\n      }\n    };\n  }\n}); // ../../node_modules/@codesandbox/sandpack-client/dist/types-36e5ec0d.mjs\nfunction __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() {\n    this.constructor = d;\n  }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\nfunction __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) {\n    return value instanceof P ? value : new P(function (resolve) {\n      resolve(value);\n    });\n  }\n  return new (P || (P = Promise))(function (resolve, reject) {\n    function fulfilled(value) {\n      try {\n        step(generator.next(value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function rejected(value) {\n      try {\n        step(generator[\"throw\"](value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function step(result) {\n      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n    }\n    step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\nfunction __generator(thisArg, body) {\n  var _ = {\n      label: 0,\n      sent: function () {\n        if (t[0] & 1) throw t[1];\n        return t[1];\n      },\n      trys: [],\n      ops: []\n    },\n    f,\n    y,\n    t,\n    g;\n  return g = {\n    next: verb(0),\n    throw: verb(1),\n    return: verb(2)\n  }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n    return this;\n  }), g;\n  function verb(n) {\n    return function (v) {\n      return step([n, v]);\n    };\n  }\n  function step(op) {\n    if (f) throw new TypeError(\"Generator is already executing.\");\n    while (_) try {\n      if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n      if (y = 0, t) op = [op[0] & 2, t.value];\n      switch (op[0]) {\n        case 0:\n        case 1:\n          t = op;\n          break;\n        case 4:\n          _.label++;\n          return {\n            value: op[1],\n            done: false\n          };\n        case 5:\n          _.label++;\n          y = op[1];\n          op = [0];\n          continue;\n        case 7:\n          op = _.ops.pop();\n          _.trys.pop();\n          continue;\n        default:\n          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n            _ = 0;\n            continue;\n          }\n          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n            _.label = op[1];\n            break;\n          }\n          if (op[0] === 6 && _.label < t[1]) {\n            _.label = t[1];\n            t = op;\n            break;\n          }\n          if (t && _.label < t[2]) {\n            _.label = t[2];\n            _.ops.push(op);\n            break;\n          }\n          if (t[2]) _.ops.pop();\n          _.trys.pop();\n          continue;\n      }\n      op = body.call(thisArg, _);\n    } catch (e) {\n      op = [6, e];\n      y = 0;\n    } finally {\n      f = t = 0;\n    }\n    if (op[0] & 5) throw op[1];\n    return {\n      value: op[0] ? op[1] : void 0,\n      done: true\n    };\n  }\n}\nfunction __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n    if (ar || !(i in from)) {\n      if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n      ar[i] = from[i];\n    }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\nfunction nullthrows(value, err) {\n  if (err === void 0) {\n    err = \"Value is nullish\";\n  }\n  invariant(value != null, createError(err));\n  return value;\n}\nfunction createPackageJSON(dependencies, devDependencies, entry) {\n  if (dependencies === void 0) {\n    dependencies = {};\n  }\n  if (devDependencies === void 0) {\n    devDependencies = {};\n  }\n  if (entry === void 0) {\n    entry = \"/index.js\";\n  }\n  return JSON.stringify({\n    name: \"sandpack-project\",\n    main: entry,\n    dependencies,\n    devDependencies\n  }, null, 2);\n}\nfunction addPackageJSONIfNeeded(files, dependencies, devDependencies, entry) {\n  var _a2, _b;\n  var normalizedFilesPath = normalizePath(files);\n  var packageJsonFile = normalizedFilesPath[\"/package.json\"];\n  if (!packageJsonFile) {\n    nullthrows(dependencies, DEPENDENCY_ERROR_MESSAGE);\n    nullthrows(entry, ENTRY_ERROR_MESSAGE);\n    normalizedFilesPath[\"/package.json\"] = {\n      code: createPackageJSON(dependencies, devDependencies, entry)\n    };\n    return normalizedFilesPath;\n  }\n  if (packageJsonFile) {\n    var packageJsonContent = JSON.parse(packageJsonFile.code);\n    nullthrows(!(!dependencies && !packageJsonContent.dependencies), ENTRY_ERROR_MESSAGE);\n    if (dependencies) {\n      packageJsonContent.dependencies = __assign(__assign({}, (_a2 = packageJsonContent.dependencies) !== null && _a2 !== void 0 ? _a2 : {}), dependencies !== null && dependencies !== void 0 ? dependencies : {});\n    }\n    if (devDependencies) {\n      packageJsonContent.devDependencies = __assign(__assign({}, (_b = packageJsonContent.devDependencies) !== null && _b !== void 0 ? _b : {}), devDependencies !== null && devDependencies !== void 0 ? devDependencies : {});\n    }\n    if (entry) {\n      packageJsonContent.main = entry;\n    }\n    normalizedFilesPath[\"/package.json\"] = {\n      code: JSON.stringify(packageJsonContent, null, 2)\n    };\n  }\n  return normalizedFilesPath;\n}\nfunction extractErrorDetails(msg) {\n  var _a2;\n  if (msg.title === \"SyntaxError\") {\n    var title = msg.title,\n      path = msg.path,\n      message = msg.message,\n      line = msg.line,\n      column = msg.column;\n    return {\n      title,\n      path,\n      message,\n      line,\n      column\n    };\n  }\n  var relevantStackFrame = getRelevantStackFrame((_a2 = msg.payload) === null || _a2 === void 0 ? void 0 : _a2.frames);\n  if (!relevantStackFrame) {\n    return {\n      message: msg.message\n    };\n  }\n  var errorInCode = getErrorInOriginalCode(relevantStackFrame);\n  var errorLocation = getErrorLocation(relevantStackFrame);\n  var errorMessage = formatErrorMessage(relevantStackFrame._originalFileName, msg.message, errorLocation, errorInCode);\n  return {\n    message: errorMessage,\n    title: msg.title,\n    path: relevantStackFrame._originalFileName,\n    line: relevantStackFrame._originalLineNumber,\n    column: relevantStackFrame._originalColumnNumber\n  };\n}\nfunction getRelevantStackFrame(frames) {\n  if (!frames) {\n    return;\n  }\n  return frames.find(function (frame) {\n    return !!frame._originalFileName;\n  });\n}\nfunction getErrorLocation(errorFrame) {\n  return errorFrame ? \" (\" + errorFrame._originalLineNumber + \":\" + errorFrame._originalColumnNumber + \")\" : \"\";\n}\nfunction getErrorInOriginalCode(errorFrame) {\n  var lastScriptLine = errorFrame._originalScriptCode[errorFrame._originalScriptCode.length - 1];\n  var numberOfLineNumberCharacters = lastScriptLine.lineNumber.toString().length;\n  var leadingCharacterOffset = 2;\n  var barSeparatorCharacterOffset = 3;\n  var extraLineLeadingSpaces = leadingCharacterOffset + numberOfLineNumberCharacters + barSeparatorCharacterOffset + errorFrame._originalColumnNumber;\n  return errorFrame._originalScriptCode.reduce(function (result, scriptLine) {\n    var leadingChar = scriptLine.highlight ? \">\" : \" \";\n    var lineNumber = scriptLine.lineNumber.toString().length === numberOfLineNumberCharacters ? \"\" + scriptLine.lineNumber : \" \" + scriptLine.lineNumber;\n    var extraLine = scriptLine.highlight ? \"\\n\" + \" \".repeat(extraLineLeadingSpaces) + \"^\" : \"\";\n    return result + \"\\n\" + leadingChar + \" \" + lineNumber + \" | \" + scriptLine.content + extraLine;\n  }, \"\");\n}\nfunction formatErrorMessage(filePath, message, location, errorInCode) {\n  return filePath + \": \" + message + location + \"\\n\" + errorInCode;\n}\nvar extendStatics, __assign, createError, DEPENDENCY_ERROR_MESSAGE, ENTRY_ERROR_MESSAGE, normalizePath, SandpackLogLevel;\nvar init_types_36e5ec0d = __esm({\n  \"../../node_modules/@codesandbox/sandpack-client/dist/types-36e5ec0d.mjs\"() {\n    init_lib();\n    extendStatics = function (d, b) {\n      extendStatics = Object.setPrototypeOf || {\n        __proto__: []\n      } instanceof Array && function (d2, b2) {\n        d2.__proto__ = b2;\n      } || function (d2, b2) {\n        for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p];\n      };\n      return extendStatics(d, b);\n    };\n    __assign = function () {\n      __assign = Object.assign || function __assign2(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n        }\n        return t;\n      };\n      return __assign.apply(this, arguments);\n    };\n    createError = function (message) {\n      return \"[sandpack-client]: \" + message;\n    };\n    DEPENDENCY_ERROR_MESSAGE = '\"dependencies\" was not specified - provide either a package.json or a \"dependencies\" value';\n    ENTRY_ERROR_MESSAGE = '\"entry\" was not specified - provide either a package.json with the \"main\" field or an \"entry\" value';\n    normalizePath = function (path) {\n      if (typeof path === \"string\") {\n        return path.startsWith(\"/\") ? path : \"/\" + path;\n      }\n      if (Array.isArray(path)) {\n        return path.map(function (p) {\n          return p.startsWith(\"/\") ? p : \"/\" + p;\n        });\n      }\n      if (typeof path === \"object\" && path !== null) {\n        return Object.entries(path).reduce(function (acc, _a2) {\n          var key = _a2[0],\n            content = _a2[1];\n          var fileName = key.startsWith(\"/\") ? key : \"/\" + key;\n          acc[fileName] = content;\n          return acc;\n        }, {});\n      }\n      return null;\n    };\n    (function (SandpackLogLevel2) {\n      SandpackLogLevel2[SandpackLogLevel2[\"None\"] = 0] = \"None\";\n      SandpackLogLevel2[SandpackLogLevel2[\"Error\"] = 10] = \"Error\";\n      SandpackLogLevel2[SandpackLogLevel2[\"Warning\"] = 20] = \"Warning\";\n      SandpackLogLevel2[SandpackLogLevel2[\"Info\"] = 30] = \"Info\";\n      SandpackLogLevel2[SandpackLogLevel2[\"Debug\"] = 40] = \"Debug\";\n    })(SandpackLogLevel || (SandpackLogLevel = {}));\n  }\n}); // ../../node_modules/dequal/dist/index.mjs\nfunction find(iter, tar, key) {\n  for (key of iter.keys()) {\n    if (dequal(key, tar)) return key;\n  }\n}\nfunction dequal(foo, bar) {\n  var ctor, len, tmp;\n  if (foo === bar) return true;\n  if (foo && bar && (ctor = foo.constructor) === bar.constructor) {\n    if (ctor === Date) return foo.getTime() === bar.getTime();\n    if (ctor === RegExp) return foo.toString() === bar.toString();\n    if (ctor === Array) {\n      if ((len = foo.length) === bar.length) {\n        while (len-- && dequal(foo[len], bar[len]));\n      }\n      return len === -1;\n    }\n    if (ctor === Set) {\n      if (foo.size !== bar.size) {\n        return false;\n      }\n      for (len of foo) {\n        tmp = len;\n        if (tmp && typeof tmp === \"object\") {\n          tmp = find(bar, tmp);\n          if (!tmp) return false;\n        }\n        if (!bar.has(tmp)) return false;\n      }\n      return true;\n    }\n    if (ctor === Map) {\n      if (foo.size !== bar.size) {\n        return false;\n      }\n      for (len of foo) {\n        tmp = len[0];\n        if (tmp && typeof tmp === \"object\") {\n          tmp = find(bar, tmp);\n          if (!tmp) return false;\n        }\n        if (!dequal(len[1], bar.get(tmp))) {\n          return false;\n        }\n      }\n      return true;\n    }\n    if (ctor === ArrayBuffer) {\n      foo = new Uint8Array(foo);\n      bar = new Uint8Array(bar);\n    } else if (ctor === DataView) {\n      if ((len = foo.byteLength) === bar.byteLength) {\n        while (len-- && foo.getInt8(len) === bar.getInt8(len));\n      }\n      return len === -1;\n    }\n    if (ArrayBuffer.isView(foo)) {\n      if ((len = foo.byteLength) === bar.byteLength) {\n        while (len-- && foo[len] === bar[len]);\n      }\n      return len === -1;\n    }\n    if (!ctor || typeof foo === \"object\") {\n      len = 0;\n      for (ctor in foo) {\n        if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n        if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n      }\n      return Object.keys(bar).length === len;\n    }\n  }\n  return foo !== foo && bar !== bar;\n}\nvar has;\nvar init_dist = __esm({\n  \"../../node_modules/dequal/dist/index.mjs\"() {\n    has = Object.prototype.hasOwnProperty;\n  }\n}); // ../../node_modules/@codesandbox/sandpack-client/dist/base-80a1f760.mjs\nvar SandpackClient;\nvar init_base_80a1f760 = __esm({\n  \"../../node_modules/@codesandbox/sandpack-client/dist/base-80a1f760.mjs\"() {\n    init_dist();\n    SandpackClient = /** @class */function () {\n      function SandpackClient2(iframeSelector, sandboxSetup, options) {\n        if (options === void 0) {\n          options = {};\n        }\n        this.status = \"idle\";\n        this.options = options;\n        this.sandboxSetup = sandboxSetup;\n        this.iframeSelector = iframeSelector;\n      }\n      SandpackClient2.prototype.updateOptions = function (options) {\n        if (!dequal(this.options, options)) {\n          this.options = options;\n          this.updateSandbox();\n        }\n      };\n      SandpackClient2.prototype.updateSandbox = function (_sandboxSetup, _isInitializationCompile) {\n        if (_sandboxSetup === void 0) {\n          _sandboxSetup = this.sandboxSetup;\n        }\n        throw Error(\"Method not implemented\");\n      };\n      SandpackClient2.prototype.destroy = function () {\n        throw Error(\"Method not implemented\");\n      };\n      SandpackClient2.prototype.dispatch = function (_message) {\n        throw Error(\"Method not implemented\");\n      };\n      SandpackClient2.prototype.listen = function (_listener) {\n        throw Error(\"Method not implemented\");\n      };\n      return SandpackClient2;\n    }();\n  }\n}); // ../../node_modules/@codesandbox/sandpack-client/dist/client.utils-7a723432.mjs\nfunction isCommand(char) {\n  return /[a-zA-Z.]/.test(char);\n}\nfunction isAlpha(char) {\n  return /[a-zA-Z]/.test(char);\n}\nfunction isWhitespace(char) {\n  return /\\s/.test(char);\n}\nfunction isOperator(char) {\n  return /[&|]/.test(char);\n}\nfunction isArgument(char) {\n  return /-/.test(char);\n}\nfunction isString(char) {\n  return /[\"']/.test(char);\n}\nfunction isEnvVar(char) {\n  return isAlpha(char) && char === char.toUpperCase();\n}\nfunction tokenize(input) {\n  var current = 0;\n  var tokens = [];\n  function parseCommand() {\n    var value = \"\";\n    while (isCommand(input[current]) && current < input.length) {\n      value += input[current];\n      current++;\n    }\n    return {\n      type: TokenType.Command,\n      value\n    };\n  }\n  function parseOperator() {\n    var value = \"\";\n    while (isOperator(input[current]) && current < input.length) {\n      value += input[current];\n      current++;\n    }\n    return operators.get(value);\n  }\n  function parseArgument() {\n    var value = \"\";\n    while ((isArgument(input[current]) || isAlpha(input[current])) && current < input.length) {\n      value += input[current];\n      current++;\n    }\n    return {\n      type: TokenType.Argument,\n      value\n    };\n  }\n  function parseString() {\n    var openCloseQuote = input[current];\n    var value = input[current];\n    current++;\n    while (input[current] !== openCloseQuote && current < input.length) {\n      value += input[current];\n      current++;\n    }\n    value += input[current];\n    current++;\n    return {\n      type: TokenType.String,\n      value\n    };\n  }\n  function parseEnvVars() {\n    var value = {};\n    var parseSingleEnv = function () {\n      var key = \"\";\n      var pair = \"\";\n      while (input[current] !== \"=\" && current < input.length) {\n        key += input[current];\n        current++;\n      }\n      if (input[current] === \"=\") {\n        current++;\n      }\n      while (input[current] !== \" \" && current < input.length) {\n        pair += input[current];\n        current++;\n      }\n      value[key] = pair;\n    };\n    while (isEnvVar(input[current]) && current < input.length) {\n      parseSingleEnv();\n      current++;\n    }\n    return {\n      type: TokenType.EnvVar,\n      value\n    };\n  }\n  while (current < input.length) {\n    var currentChar = input[current];\n    if (isWhitespace(currentChar)) {\n      current++;\n      continue;\n    }\n    switch (true) {\n      case isEnvVar(currentChar):\n        tokens.push(parseEnvVars());\n        break;\n      case isCommand(currentChar):\n        tokens.push(parseCommand());\n        break;\n      case isOperator(currentChar):\n        tokens.push(parseOperator());\n        break;\n      case isArgument(currentChar):\n        tokens.push(parseArgument());\n        break;\n      case isString(currentChar):\n        tokens.push(parseString());\n        break;\n      default:\n        throw new Error(\"Unknown character: \" + currentChar);\n    }\n  }\n  return tokens;\n}\nfunction generateRandomId() {\n  var now = Date.now();\n  var randomNumber = Math.round(Math.random() * 1e4);\n  var count = counter += 1;\n  return (+(\"\" + now + randomNumber + count)).toString(16);\n}\nvar EventEmitter, TokenType, operators, counter, writeBuffer, readBuffer, fromBundlerFilesToFS, findStartScriptPackageJson, getMessageFromError;\nvar init_client_utils_7a723432 = __esm({\n  \"../../node_modules/@codesandbox/sandpack-client/dist/client.utils-7a723432.mjs\"() {\n    init_lib();\n    init_types_36e5ec0d();\n    EventEmitter = /** @class */function () {\n      function EventEmitter2() {\n        this.listeners = {};\n        this.listenersCount = 0;\n        this.channelId = Math.floor(Math.random() * 1e6);\n        this.listeners = [];\n      }\n      EventEmitter2.prototype.cleanup = function () {\n        this.listeners = {};\n        this.listenersCount = 0;\n      };\n      EventEmitter2.prototype.dispatch = function (message) {\n        Object.values(this.listeners).forEach(function (listener) {\n          return listener(message);\n        });\n      };\n      EventEmitter2.prototype.listener = function (listener) {\n        var _this = this;\n        if (typeof listener !== \"function\") {\n          return function () {\n            return;\n          };\n        }\n        var listenerId = this.listenersCount;\n        this.listeners[listenerId] = listener;\n        this.listenersCount++;\n        return function () {\n          delete _this.listeners[listenerId];\n        };\n      };\n      return EventEmitter2;\n    }();\n    (function (TokenType2) {\n      TokenType2[\"OR\"] = \"OR\";\n      TokenType2[\"AND\"] = \"AND\";\n      TokenType2[\"PIPE\"] = \"PIPE\";\n      TokenType2[\"Command\"] = \"Command\";\n      TokenType2[\"Argument\"] = \"Argument\";\n      TokenType2[\"String\"] = \"String\";\n      TokenType2[\"EnvVar\"] = \"EnvVar\";\n    })(TokenType || (TokenType = {}));\n    operators = /* @__PURE__ */new Map([[\"&&\", {\n      type: TokenType.AND\n    }], [\"||\", {\n      type: TokenType.OR\n    }], [\"|\", {\n      type: TokenType.PIPE\n    }], [\"-\", {\n      type: TokenType.Argument\n    }]]);\n    counter = 0;\n    writeBuffer = function (content) {\n      if (typeof content === \"string\") {\n        return new TextEncoder().encode(content);\n      } else {\n        return content;\n      }\n    };\n    readBuffer = function (content) {\n      if (typeof content === \"string\") {\n        return content;\n      } else {\n        return new TextDecoder().decode(content);\n      }\n    };\n    fromBundlerFilesToFS = function (files) {\n      return Object.entries(files).reduce(function (acc, _a2) {\n        var key = _a2[0],\n          value = _a2[1];\n        acc[key] = writeBuffer(value.code);\n        return acc;\n      }, {});\n    };\n    findStartScriptPackageJson = function (packageJson) {\n      var scripts2 = {};\n      var possibleKeys = [\"dev\", \"start\"];\n      try {\n        scripts2 = JSON.parse(packageJson).scripts;\n      } catch (e) {\n        throw createError(\"Could not parse package.json file: \" + e.message);\n      }\n      invariant(scripts2, \"Failed to start. Please provide a `start` or `dev` script on the package.json\");\n      var _loop_1 = function (index2) {\n        if (possibleKeys[index2] in scripts2) {\n          var script = possibleKeys[index2];\n          var candidate = scripts2[script];\n          var env_1 = {};\n          var command_1 = \"\";\n          var args_1 = [];\n          tokenize(candidate).forEach(function (item) {\n            var commandNotFoundYet = command_1 === \"\";\n            if (item.type === TokenType.EnvVar) {\n              env_1 = item.value;\n            }\n            if (item.type === TokenType.Command && commandNotFoundYet) {\n              command_1 = item.value;\n            }\n            if (item.type === TokenType.Argument || !commandNotFoundYet && item.type === TokenType.Command) {\n              args_1.push(item.value);\n            }\n          });\n          return {\n            value: [command_1, args_1, {\n              env: env_1\n            }]\n          };\n        }\n      };\n      for (var index = 0; index < possibleKeys.length; index++) {\n        var state_1 = _loop_1(index);\n        if (typeof state_1 === \"object\") return state_1.value;\n      }\n      throw createError(\"Failed to start. Please provide a `start` or `dev` script on the package.json\");\n    };\n    getMessageFromError = function (error) {\n      if (typeof error === \"string\") return error;\n      if (typeof error === \"object\" && \"message\" in error) {\n        return error.message;\n      }\n      return createError(\"The server could not be reached. Make sure that the node script is running and that a port has been started.\");\n    };\n  }\n}); // ../../node_modules/@codesandbox/sandpack-client/dist/clients/node/index.mjs\nvar node_exports = {};\n__export(node_exports, {\n  SandpackNode: () => SandpackNode\n});\nimport { INJECT_MESSAGE_TYPE, Nodebox, PREVIEW_LOADED_MESSAGE_TYPE } from \"https://framerusercontent.com/modules/aYGJCvSFoantRUzfEvdJ/R3HzaXN99zpIst2zJwMZ/codesandbox_nodebox.js\";\nfunction loadPreviewIframe(iframe, url) {\n  return __awaiter(this, void 0, void 0, function () {\n    var contentWindow, TIME_OUT, MAX_MANY_TIRES, tries, timeout;\n    return __generator(this, function (_a2) {\n      contentWindow = iframe.contentWindow;\n      nullthrows(contentWindow, \"Failed to await preview iframe: no content window found\");\n      TIME_OUT = 9e4;\n      MAX_MANY_TIRES = 20;\n      tries = 0;\n      return [2, new Promise(function (resolve, reject) {\n        var triesToSetUrl = function () {\n          var onLoadPage = function () {\n            clearTimeout(timeout);\n            tries = MAX_MANY_TIRES;\n            resolve();\n            iframe.removeEventListener(\"load\", onLoadPage);\n          };\n          if (tries >= MAX_MANY_TIRES) {\n            reject(createError(\"Could not able to connect to preview.\"));\n            return;\n          }\n          iframe.setAttribute(\"src\", url);\n          timeout = setTimeout(function () {\n            triesToSetUrl();\n            iframe.removeEventListener(\"load\", onLoadPage);\n          }, TIME_OUT);\n          tries = tries + 1;\n          iframe.addEventListener(\"load\", onLoadPage);\n        };\n        iframe.addEventListener(\"error\", function () {\n          return reject(new Error(\"Iframe error\"));\n        });\n        iframe.addEventListener(\"abort\", function () {\n          return reject(new Error(\"Aborted\"));\n        });\n        triesToSetUrl();\n      })];\n    });\n  });\n}\nfunction setupHistoryListeners(_a2) {\n  var scope = _a2.scope;\n  var origHistoryProto = window.history.__proto__;\n  var historyList = [];\n  var historyPosition = 0;\n  var dispatchMessage = function (url) {\n    parent.postMessage({\n      type: \"urlchange\",\n      url,\n      back: historyPosition > 0,\n      forward: historyPosition < historyList.length - 1,\n      channelId: scope.channelId\n    }, \"*\");\n  };\n  function pushHistory(url, state) {\n    historyList.splice(historyPosition + 1);\n    historyList.push({\n      url,\n      state\n    });\n    historyPosition = historyList.length - 1;\n  }\n  Object.assign(window.history, {\n    go: function (delta) {\n      var newPos = historyPosition + delta;\n      if (newPos >= 0 && newPos <= historyList.length - 1) {\n        historyPosition = newPos;\n        var _a3 = historyList[historyPosition],\n          url = _a3.url,\n          state = _a3.state;\n        origHistoryProto.replaceState.call(window.history, state, \"\", url);\n        var newURL = document.location.href;\n        dispatchMessage(newURL);\n        window.dispatchEvent(new PopStateEvent(\"popstate\", {\n          state\n        }));\n      }\n    },\n    back: function () {\n      window.history.go(-1);\n    },\n    forward: function () {\n      window.history.go(1);\n    },\n    pushState: function (state, title, url) {\n      origHistoryProto.replaceState.call(window.history, state, title, url);\n      pushHistory(url, state);\n      dispatchMessage(document.location.href);\n    },\n    replaceState: function (state, title, url) {\n      origHistoryProto.replaceState.call(window.history, state, title, url);\n      historyList[historyPosition] = {\n        state,\n        url\n      };\n      dispatchMessage(document.location.href);\n    }\n  });\n  function handleMessage(_a3) {\n    var data = _a3.data;\n    if (data.type === \"urlback\") {\n      history.back();\n    } else if (data.type === \"urlforward\") {\n      history.forward();\n    } else if (data.type === \"refresh\") {\n      document.location.reload();\n    }\n  }\n  window.addEventListener(\"message\", handleMessage);\n}\nvar setPreviewIframeProperties, consoleHook, scripts, injectScriptToIframe, SandpackNode;\nvar init_node = __esm({\n  \"../../node_modules/@codesandbox/sandpack-client/dist/clients/node/index.mjs\"() {\n    init_types_36e5ec0d();\n    init_base_80a1f760();\n    init_client_utils_7a723432();\n    init_lib();\n    init_dist();\n    setPreviewIframeProperties = function (iframe, options) {\n      iframe.style.border = \"0\";\n      iframe.style.width = options.width || \"100%\";\n      iframe.style.height = options.height || \"100%\";\n      iframe.style.overflow = \"hidden\";\n      iframe.allow = \"cross-origin-isolated\";\n    };\n    consoleHook = `var t=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:{};function r(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}var e={},n={};!function(t){t.__esModule=!0,t.default=[\"log\",\"debug\",\"info\",\"warn\",\"error\",\"table\",\"clear\",\"time\",\"timeEnd\",\"count\",\"assert\",\"command\",\"result\"]}(n);var a,o={},i={};(a=i).__esModule=!0,a.default=function(){var t=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return t()+t()+\"-\"+t()+\"-\"+t()+\"-\"+t()+\"-\"+t()+\"-\"+Date.now()};var u={},s={__esModule:!0};s.update=s.state=void 0,s.update=function(t){s.state=t};var f={},c={};!function(r){var e=t&&t.__assign||function(){return e=Object.assign||function(t){for(var r,e=1,n=arguments.length;e<n;e++)for(var a in r=arguments[e])Object.prototype.hasOwnProperty.call(r,a)&&(t[a]=r[a]);return t},e.apply(this,arguments)};r.__esModule=!0,r.initialState=void 0,r.initialState={timings:{},count:{}};var n=function(){return\"undefined\"!=typeof performance&&performance.now?performance.now():Date.now()};r.default=function(t,a){var o,i,u;switch(void 0===t&&(t=r.initialState),a.type){case\"COUNT\":var s=t.count[a.name]||0;return e(e({},t),{count:e(e({},t.count),(o={},o[a.name]=s+1,o))});case\"TIME_START\":return e(e({},t),{timings:e(e({},t.timings),(i={},i[a.name]={start:n()},i))});case\"TIME_END\":var f=t.timings[a.name],c=n(),l=c-f.start;return e(e({},t),{timings:e(e({},t.timings),(u={},u[a.name]=e(e({},f),{end:c,time:l}),u))});default:return t}}}(c),function(r){var e=t&&t.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};r.__esModule=!0;var n=e(c),a=s;r.default=function(t){a.update(n.default(a.state,t))}}(f);var l={__esModule:!0};l.timeEnd=l.timeStart=l.count=void 0,l.count=function(t){return{type:\"COUNT\",name:t}},l.timeStart=function(t){return{type:\"TIME_START\",name:t}},l.timeEnd=function(t){return{type:\"TIME_END\",name:t}};var d=t&&t.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};u.__esModule=!0,u.stop=u.start=void 0;var p=s,h=d(f),m=l;u.start=function(t){h.default(m.timeStart(t))},u.stop=function(t){var r=null===p.state||void 0===p.state?void 0:p.state.timings[t];return r&&!r.end?(h.default(m.timeEnd(t)),{method:\"log\",data:[t+\": \"+p.state.timings[t].time+\"ms\"]}):{method:\"warn\",data:[\"Timer '\"+t+\"' does not exist\"]}};var y={},v=t&&t.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};y.__esModule=!0,y.increment=void 0;var _=s,b=v(f),g=l;y.increment=function(t){return b.default(g.count(t)),{method:\"log\",data:[t+\": \"+_.state.count[t]]}};var M={},T=t&&t.__spreadArrays||function(){for(var t=0,r=0,e=arguments.length;r<e;r++)t+=arguments[r].length;var n=Array(t),a=0;for(r=0;r<e;r++)for(var o=arguments[r],i=0,u=o.length;i<u;i++,a++)n[a]=o[i];return n};M.__esModule=!0,M.test=void 0,M.test=function(t){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return!t&&(0===r.length&&r.push(\"console.assert\"),{method:\"error\",data:T([\"Assertion failed:\"],r)})},function(r){var e=t&&t.__assign||function(){return e=Object.assign||function(t){for(var r,e=1,n=arguments.length;e<n;e++)for(var a in r=arguments[e])Object.prototype.hasOwnProperty.call(r,a)&&(t[a]=r[a]);return t},e.apply(this,arguments)},n=t&&t.__createBinding||(Object.create?function(t,r,e,n){void 0===n&&(n=e),Object.defineProperty(t,n,{enumerable:!0,get:function(){return r[e]}})}:function(t,r,e,n){void 0===n&&(n=e),t[n]=r[e]}),a=t&&t.__setModuleDefault||(Object.create?function(t,r){Object.defineProperty(t,\"default\",{enumerable:!0,value:r})}:function(t,r){t.default=r}),o=t&&t.__importStar||function(t){if(t&&t.__esModule)return t;var r={};if(null!=t)for(var e in t)\"default\"!==e&&Object.prototype.hasOwnProperty.call(t,e)&&n(r,t,e);return a(r,t),r},s=t&&t.__spreadArrays||function(){for(var t=0,r=0,e=arguments.length;r<e;r++)t+=arguments[r].length;var n=Array(t),a=0;for(r=0;r<e;r++)for(var o=arguments[r],i=0,u=o.length;i<u;i++,a++)n[a]=o[i];return n},f=t&&t.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};r.__esModule=!0;var c=f(i),l=o(u),d=o(y),p=o(M);r.default=function(t,r,n){var a=n||c.default();switch(t){case\"clear\":return{method:t,id:a};case\"count\":return!!(o=\"string\"==typeof r[0]?r[0]:\"default\")&&e(e({},d.increment(o)),{id:a});case\"time\":case\"timeEnd\":var o;return!!(o=\"string\"==typeof r[0]?r[0]:\"default\")&&(\"time\"===t?(l.start(o),!1):e(e({},l.stop(o)),{id:a}));case\"assert\":if(0!==r.length){var i=p.test.apply(p,s([r[0]],r.slice(1)));if(i)return e(e({},i),{id:a})}return!1;case\"error\":return{method:t,id:a,data:r.map((function(t){try{return t.stack||t}catch(r){return t}}))};default:return{method:t,id:a,data:r}}}}(o);var S={},O={};!function(t){var r;t.__esModule=!0,function(t){t[t.infinity=0]=\"infinity\",t[t.minusInfinity=1]=\"minusInfinity\",t[t.minusZero=2]=\"minusZero\"}(r||(r={})),t.default={type:\"Arithmetic\",lookup:Number,shouldTransform:function(t,r){return\"number\"===t&&(r===1/0||r===-1/0||function(t){return 1/t==-1/0}(r))},toSerializable:function(t){return t===1/0?r.infinity:t===-1/0?r.minusInfinity:r.minusZero},fromSerializable:function(t){return t===r.infinity?1/0:t===r.minusInfinity?-1/0:t===r.minusZero?-0:t}}}(O);var w={};!function(t){t.__esModule=!0,t.default={type:\"Function\",lookup:Function,shouldTransform:function(t,r){return\"function\"==typeof r},toSerializable:function(t){var r=\"\";try{r=t.toString().substring(r.indexOf(\"{\")+1,r.lastIndexOf(\"}\"))}catch(t){}return{name:t.name,body:r,proto:Object.getPrototypeOf(t).constructor.name}},fromSerializable:function(t){try{var r=function(){};return\"string\"==typeof t.name&&Object.defineProperty(r,\"name\",{value:t.name,writable:!1}),\"string\"==typeof t.body&&Object.defineProperty(r,\"body\",{value:t.body,writable:!1}),\"string\"==typeof t.proto&&(r.constructor={name:t.proto}),r}catch(r){return t}}}}(w);var A={};!function(t){var r;function e(t){for(var r={},e=0,n=t.attributes;e<n.length;e++){var a=n[e];r[a.name]=a.value}return r}t.__esModule=!0,t.default={type:\"HTMLElement\",shouldTransform:function(t,r){return r&&r.children&&\"string\"==typeof r.innerHTML&&\"string\"==typeof r.tagName},toSerializable:function(t){return{tagName:t.tagName.toLowerCase(),attributes:e(t),innerHTML:t.innerHTML}},fromSerializable:function(t){try{var e=(r||(r=document.implementation.createHTMLDocument(\"sandbox\"))).createElement(t.tagName);e.innerHTML=t.innerHTML;for(var n=0,a=Object.keys(t.attributes);n<a.length;n++){var o=a[n];try{e.setAttribute(o,t.attributes[o])}catch(t){}}return e}catch(r){return t}}}}(A);var j={};!function(r){var e=t&&t.__assign||function(){return e=Object.assign||function(t){for(var r,e=1,n=arguments.length;e<n;e++)for(var a in r=arguments[e])Object.prototype.hasOwnProperty.call(r,a)&&(t[a]=r[a]);return t},e.apply(this,arguments)};r.__esModule=!0,r.default={type:\"Map\",shouldTransform:function(t,r){return r&&r.constructor&&\"Map\"===r.constructor.name},toSerializable:function(t){var r={};return t.forEach((function(t,e){var n=\"object\"==typeof e?JSON.stringify(e):e;r[n]=t})),{name:\"Map\",body:r,proto:Object.getPrototypeOf(t).constructor.name}},fromSerializable:function(t){var r=t.body,n=e({},r);return\"string\"==typeof t.proto&&(n.constructor={name:t.proto}),n}}}(j);var z={};!function(t){t.__esModule=!0;var r=\"@t\",e=/^#*@(t|r)$/,n=(0,eval)(\"this\"),a=\"function\"==typeof ArrayBuffer,o=\"function\"==typeof Map,i=\"function\"==typeof Set,u=[\"Int8Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"Int16Array\",\"Uint16Array\",\"Int32Array\",\"Uint32Array\",\"Float32Array\",\"Float64Array\"],s=Array.prototype.slice,f={serialize:function(t){return JSON.stringify(t)},deserialize:function(t){return JSON.parse(t)}},c=function(){function t(t,r){this.references=t,this.transforms=r,this.transformsMap=this._makeTransformsMap(),this.circularCandidates=[],this.circularCandidatesDescrs=[],this.circularRefCount=0}return t._createRefMark=function(t){var r=Object.create(null);return r[\"@r\"]=t,r},t.prototype._createCircularCandidate=function(t,r,e){this.circularCandidates.push(t),this.circularCandidatesDescrs.push({parent:r,key:e,refIdx:-1})},t.prototype._applyTransform=function(t,e,n,a){var o=Object.create(null),i=a.toSerializable(t);return\"object\"==typeof i&&this._createCircularCandidate(t,e,n),o[r]=a.type,o.data=this._handleValue((function(){return i}),e,n),o},t.prototype._handleArray=function(t){for(var r=[],e=function(e){r[e]=n._handleValue((function(){return t[e]}),r,e)},n=this,a=0;a<t.length;a++)e(a);return r},t.prototype._handlePlainObject=function(t){var r,n,a=Object.create(null),o=function(r){if(Reflect.has(t,r)){var n=e.test(r)?\"#\"+r:r;a[n]=i._handleValue((function(){return t[r]}),a,n)}},i=this;for(var u in t)o(u);var s=null===(n=null===(r=null==t?void 0:t.__proto__)||void 0===r?void 0:r.constructor)||void 0===n?void 0:n.name;return s&&\"Object\"!==s&&(a.constructor={name:s}),a},t.prototype._handleObject=function(t,r,e){return this._createCircularCandidate(t,r,e),Array.isArray(t)?this._handleArray(t):this._handlePlainObject(t)},t.prototype._ensureCircularReference=function(r){var e=this.circularCandidates.indexOf(r);if(e>-1){var n=this.circularCandidatesDescrs[e];return-1===n.refIdx&&(n.refIdx=n.parent?++this.circularRefCount:0),t._createRefMark(n.refIdx)}return null},t.prototype._handleValue=function(t,r,e){try{var n=t(),a=typeof n,o=\"object\"===a&&null!==n;if(o){var i=this._ensureCircularReference(n);if(i)return i}var u=this._findTransform(a,n);return u?this._applyTransform(n,r,e,u):o?this._handleObject(n,r,e):n}catch(t){try{return this._handleValue((function(){return t instanceof Error?t:new Error(t)}),r,e)}catch(t){return null}}},t.prototype._makeTransformsMap=function(){if(o){var t=new Map;return this.transforms.forEach((function(r){r.lookup&&t.set(r.lookup,r)})),t}},t.prototype._findTransform=function(t,r){if(o&&r&&r.constructor&&(null==(a=this.transformsMap.get(r.constructor))?void 0:a.shouldTransform(t,r)))return a;for(var e=0,n=this.transforms;e<n.length;e++){var a;if((a=n[e]).shouldTransform(t,r))return a}},t.prototype.transform=function(){for(var r=this,e=[this._handleValue((function(){return r.references}),null,null)],n=0,a=this.circularCandidatesDescrs;n<a.length;n++){var o=a[n];o.refIdx>0&&(e[o.refIdx]=o.parent[o.key],o.parent[o.key]=t._createRefMark(o.refIdx))}return e},t}(),l=function(){function t(t,r){this.activeTransformsStack=[],this.visitedRefs=Object.create(null),this.references=t,this.transformMap=r}return t.prototype._handlePlainObject=function(t){var r=Object.create(null);for(var n in\"constructor\"in t&&(t.constructor&&\"string\"==typeof t.constructor.name||(t.constructor={name:\"Object\"})),t)t.hasOwnProperty(n)&&(this._handleValue(t[n],t,n),e.test(n)&&(r[n.substring(1)]=t[n],delete t[n]));for(var a in r)t[a]=r[a]},t.prototype._handleTransformedObject=function(t,e,n){var a=t[r],o=this.transformMap[a];if(!o)throw new Error(\"Can't find transform for \\\\\"\"+a+'\" type.');this.activeTransformsStack.push(t),this._handleValue(t.data,t,\"data\"),this.activeTransformsStack.pop(),e[n]=o.fromSerializable(t.data)},t.prototype._handleCircularSelfRefDuringTransform=function(t,r,e){var n=this.references;Object.defineProperty(r,e,{val:void 0,configurable:!0,enumerable:!0,get:function(){return void 0===this.val&&(this.val=n[t]),this.val},set:function(t){this.val=t}})},t.prototype._handleCircularRef=function(t,r,e){this.activeTransformsStack.includes(this.references[t])?this._handleCircularSelfRefDuringTransform(t,r,e):(this.visitedRefs[t]||(this.visitedRefs[t]=!0,this._handleValue(this.references[t],this.references,t)),r[e]=this.references[t])},t.prototype._handleValue=function(t,e,n){if(\"object\"==typeof t&&null!==t){var a=t[\"@r\"];if(void 0!==a)this._handleCircularRef(a,e,n);else if(t[r])this._handleTransformedObject(t,e,n);else if(Array.isArray(t))for(var o=0;o<t.length;o++)this._handleValue(t[o],t,o);else this._handlePlainObject(t)}},t.prototype.transform=function(){return this.visitedRefs[0]=!0,this._handleValue(this.references[0],this.references,0),this.references[0]},t}(),d=[{type:\"[[NaN]]\",shouldTransform:function(t,r){return\"number\"===t&&isNaN(r)},toSerializable:function(){return\"\"},fromSerializable:function(){return NaN}},{type:\"[[undefined]]\",shouldTransform:function(t){return\"undefined\"===t},toSerializable:function(){return\"\"},fromSerializable:function(){}},{type:\"[[Date]]\",lookup:Date,shouldTransform:function(t,r){return r instanceof Date},toSerializable:function(t){return t.getTime()},fromSerializable:function(t){var r=new Date;return r.setTime(t),r}},{type:\"[[RegExp]]\",lookup:RegExp,shouldTransform:function(t,r){return r instanceof RegExp},toSerializable:function(t){var r={src:t.source,flags:\"\"};return t.globalThis&&(r.flags+=\"g\"),t.ignoreCase&&(r.flags+=\"i\"),t.multiline&&(r.flags+=\"m\"),r},fromSerializable:function(t){return new RegExp(t.src,t.flags)}},{type:\"[[Error]]\",lookup:Error,shouldTransform:function(t,r){return r instanceof Error},toSerializable:function(t){var r,e;return t.stack||null===(e=(r=Error).captureStackTrace)||void 0===e||e.call(r,t),{name:t.name,message:t.message,stack:t.stack}},fromSerializable:function(t){var r=new(n[t.name]||Error)(t.message);return r.stack=t.stack,r}},{type:\"[[ArrayBuffer]]\",lookup:a&&ArrayBuffer,shouldTransform:function(t,r){return a&&r instanceof ArrayBuffer},toSerializable:function(t){var r=new Int8Array(t);return s.call(r)},fromSerializable:function(t){if(a){var r=new ArrayBuffer(t.length);return new Int8Array(r).set(t),r}return t}},{type:\"[[TypedArray]]\",shouldTransform:function(t,r){if(a)return ArrayBuffer.isView(r)&&!(r instanceof DataView);for(var e=0,o=u;e<o.length;e++){var i=o[e];if(\"function\"==typeof n[i]&&r instanceof n[i])return!0}return!1},toSerializable:function(t){return{ctorName:t.constructor.name,arr:s.call(t)}},fromSerializable:function(t){return\"function\"==typeof n[t.ctorName]?new n[t.ctorName](t.arr):t.arr}},{type:\"[[Map]]\",lookup:o&&Map,shouldTransform:function(t,r){return o&&r instanceof Map},toSerializable:function(t){var r=[];return t.forEach((function(t,e){r.push(e),r.push(t)})),r},fromSerializable:function(t){if(o){for(var r=new Map,e=0;e<t.length;e+=2)r.set(t[e],t[e+1]);return r}for(var n=[],a=0;a<t.length;a+=2)n.push([t[e],t[e+1]]);return n}},{type:\"[[Set]]\",lookup:i&&Set,shouldTransform:function(t,r){return i&&r instanceof Set},toSerializable:function(t){var r=[];return t.forEach((function(t){r.push(t)})),r},fromSerializable:function(t){if(i){for(var r=new Set,e=0;e<t.length;e++)r.add(t[e]);return r}return t}}],p=function(){function t(t){this.transforms=[],this.transformsMap=Object.create(null),this.serializer=t||f,this.addTransforms(d)}return t.prototype.addTransforms=function(t){for(var r=0,e=t=Array.isArray(t)?t:[t];r<e.length;r++){var n=e[r];if(this.transformsMap[n.type])throw new Error('Transform with type \"'+n.type+'\" was already added.');this.transforms.push(n),this.transformsMap[n.type]=n}return this},t.prototype.removeTransforms=function(t){for(var r=0,e=t=Array.isArray(t)?t:[t];r<e.length;r++){var n=e[r],a=this.transforms.indexOf(n);a>-1&&this.transforms.splice(a,1),delete this.transformsMap[n.type]}return this},t.prototype.encode=function(t){var r=new c(t,this.transforms).transform();return this.serializer.serialize(r)},t.prototype.decode=function(t){var r=this.serializer.deserialize(t);return new l(r,this.transformsMap).transform()},t}();t.default=p}(z);var E=t&&t.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};S.__esModule=!0,S.Decode=P=S.Encode=void 0;var k=E(O),C=E(w),D=E(A),I=E(j),N=E(z),R=[D.default,C.default,k.default,I.default],x=new N.default;x.addTransforms(R);var P=S.Encode=function(t){return JSON.parse(x.encode(t))};S.Decode=function(t){return x.decode(JSON.stringify(t))},function(r){var e=t&&t.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};r.__esModule=!0;var a=e(n),i=e(o),u=S;r.default=function(t,r,e){void 0===e&&(e=!0);for(var n=t,o={pointers:{},src:{npm:\"https://npmjs.com/package/console-feed\",github:\"https://github.com/samdenty99/console-feed\"}},s=function(t){var a=n[t];n[t]=function(){a.apply(this,arguments);var n=[].slice.call(arguments);setTimeout((function(){var a=i.default(t,n);if(a){var o=a;e&&(o=u.Encode(a)),r(o,a)}}))},o.pointers[t]=a},f=0,c=a.default;f<c.length;f++)s(c[f]);return n.feed=o,n}}(e),r(e)(window.console,(function(t){var r=P(t);parent.postMessage({type:\"console\",codesandbox:!0,log:Array.isArray(r)?r[0]:r,channelId:scope.channelId},\"*\")}));\n`;\n    scripts = [{\n      code: setupHistoryListeners.toString(),\n      id: \"historyListener\"\n    }, {\n      code: \"function consoleHook({ scope }) {\" + consoleHook + \"\\n};\",\n      id: \"consoleHook\"\n    }];\n    injectScriptToIframe = function (iframe, channelId) {\n      scripts.forEach(function (_a2) {\n        var _b;\n        var code = _a2.code,\n          id = _a2.id;\n        var message = {\n          uid: id,\n          type: INJECT_MESSAGE_TYPE,\n          code: \"exports.activate = \" + code,\n          scope: {\n            channelId\n          }\n        };\n        (_b = iframe.contentWindow) === null || _b === void 0 ? void 0 : _b.postMessage(message, \"*\");\n      });\n    };\n    SandpackNode = /** @class */function (_super) {\n      __extends(SandpackNode2, _super);\n      function SandpackNode2(selector, sandboxInfo, options) {\n        if (options === void 0) {\n          options = {};\n        }\n        var _this = _super.call(this, selector, sandboxInfo, __assign(__assign({}, options), {\n          bundlerURL: options.bundlerURL\n        })) || this;\n        _this._modulesCache = /* @__PURE__ */new Map();\n        _this.messageChannelId = generateRandomId();\n        _this._initPromise = null;\n        _this.emitter = new EventEmitter();\n        _this.manageIframes(selector);\n        _this.emulator = new Nodebox({\n          iframe: _this.emulatorIframe,\n          runtimeUrl: _this.options.bundlerURL\n        });\n        _this.updateSandbox(sandboxInfo);\n        return _this;\n      }\n      SandpackNode2.prototype._init = function (files) {\n        return __awaiter(this, void 0, void 0, function () {\n          return __generator(this, function (_a2) {\n            switch (_a2.label) {\n              case 0:\n                return [4, this.emulator.connect()];\n              case 1:\n                _a2.sent();\n                return [4, this.emulator.fs.init(files)];\n              case 2:\n                _a2.sent();\n                return [4, this.globalListeners()];\n              case 3:\n                _a2.sent();\n                return [2];\n            }\n          });\n        });\n      };\n      SandpackNode2.prototype.compile = function (files) {\n        return __awaiter(this, void 0, void 0, function () {\n          var shellId, err_1;\n          return __generator(this, function (_a2) {\n            switch (_a2.label) {\n              case 0:\n                _a2.trys.push([0, 5,, 6]);\n                this.status = \"initializing\";\n                this.dispatch({\n                  type: \"start\",\n                  firstLoad: true\n                });\n                if (!this._initPromise) {\n                  this._initPromise = this._init(files);\n                }\n                return [4, this._initPromise];\n              case 1:\n                _a2.sent();\n                this.dispatch({\n                  type: \"connected\"\n                });\n                return [4, this.createShellProcessFromTask(files)];\n              case 2:\n                shellId = _a2.sent().id;\n                return [4, this.createPreviewURLFromId(shellId)];\n              case 3:\n                _a2.sent();\n                return [4, this.setLocationURLIntoIFrame()];\n              case 4:\n                _a2.sent();\n                this.dispatchDoneMessage();\n                return [3, 6];\n              case 5:\n                err_1 = _a2.sent();\n                this.dispatch({\n                  type: \"action\",\n                  action: \"notification\",\n                  notificationType: \"error\",\n                  title: getMessageFromError(err_1)\n                });\n                this.dispatch({\n                  type: \"done\",\n                  compilatonError: true\n                });\n                return [3, 6];\n              case 6:\n                return [2];\n            }\n          });\n        });\n      };\n      SandpackNode2.prototype.createShellProcessFromTask = function (files) {\n        return __awaiter(this, void 0, void 0, function () {\n          var packageJsonContent;\n          var _a2;\n          var _this = this;\n          return __generator(this, function (_b) {\n            switch (_b.label) {\n              case 0:\n                packageJsonContent = readBuffer(files[\"/package.json\"]);\n                this.emulatorCommand = findStartScriptPackageJson(packageJsonContent);\n                this.emulatorShellProcess = this.emulator.shell.create();\n                return [4, this.emulatorShellProcess.on(\"exit\", function (exitCode) {\n                  _this.dispatch({\n                    type: \"action\",\n                    action: \"notification\",\n                    notificationType: \"error\",\n                    title: createError(\"Error: process.exit(\" + exitCode + \") called.\")\n                  });\n                })];\n              case 1:\n                _b.sent();\n                return [4, this.emulatorShellProcess.on(\"progress\", function (data) {\n                  var _a3, _b2;\n                  if (data.state === \"command_running\" || data.state === \"starting_command\") {\n                    _this.dispatch({\n                      type: \"shell/progress\",\n                      data: __assign(__assign({}, data), {\n                        command: [(_a3 = _this.emulatorCommand) === null || _a3 === void 0 ? void 0 : _a3[0], (_b2 = _this.emulatorCommand) === null || _b2 === void 0 ? void 0 : _b2[1].join(\" \")].join(\" \")\n                      })\n                    });\n                    _this.status = \"installing-dependencies\";\n                    return;\n                  }\n                  _this.dispatch({\n                    type: \"shell/progress\",\n                    data\n                  });\n                })];\n              case 2:\n                _b.sent();\n                this.emulatorShellProcess.stdout.on(\"data\", function (data) {\n                  _this.dispatch({\n                    type: \"stdout\",\n                    payload: {\n                      data,\n                      type: \"out\"\n                    }\n                  });\n                });\n                this.emulatorShellProcess.stderr.on(\"data\", function (data) {\n                  _this.dispatch({\n                    type: \"stdout\",\n                    payload: {\n                      data,\n                      type: \"err\"\n                    }\n                  });\n                });\n                return [4, (_a2 = this.emulatorShellProcess).runCommand.apply(_a2, this.emulatorCommand)];\n              case 3:\n                return [2, _b.sent()];\n            }\n          });\n        });\n      };\n      SandpackNode2.prototype.createPreviewURLFromId = function (id) {\n        return __awaiter(this, void 0, void 0, function () {\n          var url;\n          return __generator(this, function (_a2) {\n            switch (_a2.label) {\n              case 0:\n                this.iframePreviewUrl = void 0;\n                return [4, this.emulator.preview.getByShellId(id)];\n              case 1:\n                url = _a2.sent().url;\n                this.iframePreviewUrl = url + this.options.startRoute;\n                return [2];\n            }\n          });\n        });\n      };\n      SandpackNode2.prototype.manageIframes = function (selector) {\n        var _a2;\n        if (typeof selector === \"string\") {\n          var element = document.querySelector(selector);\n          nullthrows(element, \"The element '\" + selector + \"' was not found\");\n          this.iframe = document.createElement(\"iframe\");\n        } else {\n          this.iframe = selector;\n        }\n        setPreviewIframeProperties(this.iframe, this.options);\n        nullthrows(this.iframe.parentNode, \"The given iframe does not have a parent.\");\n        this.emulatorIframe = document.createElement(\"iframe\");\n        this.emulatorIframe.classList.add(\"sp-bridge-frame\");\n        (_a2 = this.iframe.parentNode) === null || _a2 === void 0 ? void 0 : _a2.appendChild(this.emulatorIframe);\n      };\n      SandpackNode2.prototype.setLocationURLIntoIFrame = function () {\n        return __awaiter(this, void 0, void 0, function () {\n          return __generator(this, function (_a2) {\n            switch (_a2.label) {\n              case 0:\n                if (!this.iframePreviewUrl) return [3, 2];\n                return [4, loadPreviewIframe(this.iframe, this.iframePreviewUrl)];\n              case 1:\n                _a2.sent();\n                _a2.label = 2;\n              case 2:\n                return [2];\n            }\n          });\n        });\n      };\n      SandpackNode2.prototype.dispatchDoneMessage = function () {\n        this.status = \"done\";\n        this.dispatch({\n          type: \"done\",\n          compilatonError: false\n        });\n        if (this.iframePreviewUrl) {\n          this.dispatch({\n            type: \"urlchange\",\n            url: this.iframePreviewUrl,\n            back: false,\n            forward: false\n          });\n        }\n      };\n      SandpackNode2.prototype.globalListeners = function () {\n        return __awaiter(this, void 0, void 0, function () {\n          var _this = this;\n          return __generator(this, function (_a2) {\n            switch (_a2.label) {\n              case 0:\n                window.addEventListener(\"message\", function (event) {\n                  if (event.data.type === PREVIEW_LOADED_MESSAGE_TYPE) {\n                    injectScriptToIframe(_this.iframe, _this.messageChannelId);\n                  }\n                  if (event.data.type === \"urlchange\" && event.data.channelId === _this.messageChannelId) {\n                    _this.dispatch({\n                      type: \"urlchange\",\n                      url: event.data.url,\n                      back: event.data.back,\n                      forward: event.data.forward\n                    });\n                  } else if (event.data.channelId === _this.messageChannelId) {\n                    _this.dispatch(event.data);\n                  }\n                });\n                return [4, this.emulator.fs.watch([\"*\"], [\".next\", \"node_modules\", \"build\", \"dist\", \"vendor\", \".config\", \".vuepress\"], function (message) {\n                  return __awaiter(_this, void 0, void 0, function () {\n                    var event, path, type, _a3, content, newContent, err_2;\n                    return __generator(this, function (_b) {\n                      switch (_b.label) {\n                        case 0:\n                          if (!message) return [2];\n                          event = message;\n                          path = \"newPath\" in event ? event.newPath : \"path\" in event ? event.path : \"\";\n                          return [4, this.emulator.fs.stat(path)];\n                        case 1:\n                          type = _b.sent().type;\n                          if (type !== \"file\") return [2, null];\n                          _b.label = 2;\n                        case 2:\n                          _b.trys.push([2, 10,, 11]);\n                          _a3 = event.type;\n                          switch (_a3) {\n                            case \"change\":\n                              return [3, 3];\n                            case \"create\":\n                              return [3, 3];\n                            case \"remove\":\n                              return [3, 5];\n                            case \"rename\":\n                              return [3, 6];\n                            case \"close\":\n                              return [3, 8];\n                          }\n                          return [3, 9];\n                        case 3:\n                          return [4, this.emulator.fs.readFile(event.path, \"utf8\")];\n                        case 4:\n                          content = _b.sent();\n                          this.dispatch({\n                            type: \"fs/change\",\n                            path: event.path,\n                            content\n                          });\n                          this._modulesCache.set(event.path, writeBuffer(content));\n                          return [3, 9];\n                        case 5:\n                          this.dispatch({\n                            type: \"fs/remove\",\n                            path: event.path\n                          });\n                          this._modulesCache[\"delete\"](event.path);\n                          return [3, 9];\n                        case 6:\n                          this.dispatch({\n                            type: \"fs/remove\",\n                            path: event.oldPath\n                          });\n                          this._modulesCache[\"delete\"](event.oldPath);\n                          return [4, this.emulator.fs.readFile(event.newPath, \"utf8\")];\n                        case 7:\n                          newContent = _b.sent();\n                          this.dispatch({\n                            type: \"fs/change\",\n                            path: event.newPath,\n                            content: newContent\n                          });\n                          this._modulesCache.set(event.newPath, writeBuffer(newContent));\n                          return [3, 9];\n                        case 8:\n                          return [3, 9];\n                        case 9:\n                          return [3, 11];\n                        case 10:\n                          err_2 = _b.sent();\n                          this.dispatch({\n                            type: \"action\",\n                            action: \"notification\",\n                            notificationType: \"error\",\n                            title: getMessageFromError(err_2)\n                          });\n                          return [3, 11];\n                        case 11:\n                          return [2];\n                      }\n                    });\n                  });\n                })];\n              case 1:\n                _a2.sent();\n                return [2];\n            }\n          });\n        });\n      };\n      SandpackNode2.prototype.restartShellProcess = function () {\n        var _a2;\n        return __awaiter(this, void 0, void 0, function () {\n          return __generator(this, function (_b) {\n            switch (_b.label) {\n              case 0:\n                if (!(this.emulatorShellProcess && this.emulatorCommand)) return [3, 3];\n                this.dispatch({\n                  type: \"start\",\n                  firstLoad: true\n                });\n                this.status = \"initializing\";\n                return [4, this.emulatorShellProcess.kill()];\n              case 1:\n                _b.sent();\n                (_a2 = this.iframe) === null || _a2 === void 0 ? void 0 : _a2.removeAttribute(\"attr\");\n                this.emulator.fs.rm(\"/node_modules/.vite\", {\n                  recursive: true,\n                  force: true\n                });\n                return [4, this.compile(Object.fromEntries(this._modulesCache))];\n              case 2:\n                _b.sent();\n                _b.label = 3;\n              case 3:\n                return [2];\n            }\n          });\n        });\n      };\n      SandpackNode2.prototype.updateSandbox = function (setup) {\n        var _this = this;\n        var _a2;\n        var modules = fromBundlerFilesToFS(setup.files);\n        if (((_a2 = this.emulatorShellProcess) === null || _a2 === void 0 ? void 0 : _a2.state) === \"running\") {\n          Object.entries(modules).forEach(function (_a3) {\n            var key = _a3[0],\n              value = _a3[1];\n            if (!_this._modulesCache.get(key) || readBuffer(value) !== readBuffer(_this._modulesCache.get(key))) {\n              _this.emulator.fs.writeFile(key, value, {\n                recursive: true\n              });\n            }\n          });\n          return;\n        }\n        this.dispatch({\n          codesandbox: true,\n          modules,\n          template: setup.template,\n          type: \"compile\"\n        });\n        Object.entries(modules).forEach(function (_a3) {\n          var key = _a3[0],\n            value = _a3[1];\n          _this._modulesCache.set(key, writeBuffer(value));\n        });\n      };\n      SandpackNode2.prototype.dispatch = function (message) {\n        var _a2, _b;\n        return __awaiter(this, void 0, void 0, function () {\n          var _c;\n          return __generator(this, function (_d) {\n            switch (_d.label) {\n              case 0:\n                _c = message.type;\n                switch (_c) {\n                  case \"compile\":\n                    return [3, 1];\n                  case \"refresh\":\n                    return [3, 2];\n                  case \"urlback\":\n                    return [3, 4];\n                  case \"urlforward\":\n                    return [3, 4];\n                  case \"shell/restart\":\n                    return [3, 5];\n                  case \"shell/openPreview\":\n                    return [3, 6];\n                }\n                return [3, 7];\n              case 1:\n                this.compile(message.modules);\n                return [3, 8];\n              case 2:\n                return [4, this.setLocationURLIntoIFrame()];\n              case 3:\n                _d.sent();\n                return [3, 8];\n              case 4:\n                (_b = (_a2 = this.iframe) === null || _a2 === void 0 ? void 0 : _a2.contentWindow) === null || _b === void 0 ? void 0 : _b.postMessage(message, \"*\");\n                return [3, 8];\n              case 5:\n                this.restartShellProcess();\n                return [3, 8];\n              case 6:\n                window.open(this.iframePreviewUrl, \"_blank\");\n                return [3, 8];\n              case 7:\n                this.emitter.dispatch(message);\n                _d.label = 8;\n              case 8:\n                return [2];\n            }\n          });\n        });\n      };\n      SandpackNode2.prototype.listen = function (listener) {\n        return this.emitter.listener(listener);\n      };\n      SandpackNode2.prototype.destroy = function () {\n        this.emulatorIframe.remove();\n        this.emitter.cleanup();\n      };\n      return SandpackNode2;\n    }(SandpackClient);\n  }\n}); // ../../node_modules/static-browser-server/out/lib/main.js\nvar require_main = __commonJS({\n  \"../../node_modules/static-browser-server/out/lib/main.js\"(exports, module) {\n    \"use strict\";\n\n    var __create2 = Object.create;\n    var __defProp2 = Object.defineProperty;\n    var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;\n    var __getOwnPropNames2 = Object.getOwnPropertyNames;\n    var __getProtoOf2 = Object.getPrototypeOf;\n    var __hasOwnProp2 = Object.prototype.hasOwnProperty;\n    var __commonJS2 = (cb, mod) => function __require() {\n      return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = {\n        exports: {}\n      }).exports, mod), mod.exports;\n    };\n    var __export2 = (target, all) => {\n      for (var name in all) __defProp2(target, name, {\n        get: all[name],\n        enumerable: true\n      });\n    };\n    var __copyProps2 = (to, from, except, desc) => {\n      if (from && typeof from === \"object\" || typeof from === \"function\") {\n        for (let key of __getOwnPropNames2(from)) if (!__hasOwnProp2.call(to, key) && key !== except) __defProp2(to, key, {\n          get: () => from[key],\n          enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable\n        });\n      }\n      return to;\n    };\n    var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(\n    // If the importer is in node compatibility mode or this is not an ESM\n    // file that has been converted to a CommonJS file using a Babel-\n    // compatible transform (i.e. \"__esModule\" has not been set), then set\n    // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n    isNodeMode || !mod || !mod.__esModule ? __defProp2(target, \"default\", {\n      value: mod,\n      enumerable: true\n    }) : target, mod));\n    var __toCommonJS = mod => __copyProps2(__defProp2({}, \"__esModule\", {\n      value: true\n    }), mod);\n    var require_db = __commonJS2({\n      \"node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/db.json\"(exports2, module2) {\n        module2.exports = {\n          \"application/1d-interleaved-parityfec\": {\n            source: \"iana\"\n          },\n          \"application/3gpdash-qoe-report+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true\n          },\n          \"application/3gpp-ims+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/3gpphal+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/3gpphalforms+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/a2l\": {\n            source: \"iana\"\n          },\n          \"application/ace+cbor\": {\n            source: \"iana\"\n          },\n          \"application/activemessage\": {\n            source: \"iana\"\n          },\n          \"application/activity+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/alto-costmap+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/alto-costmapfilter+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/alto-directory+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/alto-endpointcost+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/alto-endpointcostparams+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/alto-endpointprop+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/alto-endpointpropparams+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/alto-error+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/alto-networkmap+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/alto-networkmapfilter+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/alto-updatestreamcontrol+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/alto-updatestreamparams+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/aml\": {\n            source: \"iana\"\n          },\n          \"application/andrew-inset\": {\n            source: \"iana\",\n            extensions: [\"ez\"]\n          },\n          \"application/applefile\": {\n            source: \"iana\"\n          },\n          \"application/applixware\": {\n            source: \"apache\",\n            extensions: [\"aw\"]\n          },\n          \"application/at+jwt\": {\n            source: \"iana\"\n          },\n          \"application/atf\": {\n            source: \"iana\"\n          },\n          \"application/atfx\": {\n            source: \"iana\"\n          },\n          \"application/atom+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"atom\"]\n          },\n          \"application/atomcat+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"atomcat\"]\n          },\n          \"application/atomdeleted+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"atomdeleted\"]\n          },\n          \"application/atomicmail\": {\n            source: \"iana\"\n          },\n          \"application/atomsvc+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"atomsvc\"]\n          },\n          \"application/atsc-dwd+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"dwd\"]\n          },\n          \"application/atsc-dynamic-event-message\": {\n            source: \"iana\"\n          },\n          \"application/atsc-held+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"held\"]\n          },\n          \"application/atsc-rdt+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/atsc-rsat+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"rsat\"]\n          },\n          \"application/atxml\": {\n            source: \"iana\"\n          },\n          \"application/auth-policy+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/bacnet-xdd+zip\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/batch-smtp\": {\n            source: \"iana\"\n          },\n          \"application/bdoc\": {\n            compressible: false,\n            extensions: [\"bdoc\"]\n          },\n          \"application/beep+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true\n          },\n          \"application/calendar+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/calendar+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"xcs\"]\n          },\n          \"application/call-completion\": {\n            source: \"iana\"\n          },\n          \"application/cals-1840\": {\n            source: \"iana\"\n          },\n          \"application/captive+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/cbor\": {\n            source: \"iana\"\n          },\n          \"application/cbor-seq\": {\n            source: \"iana\"\n          },\n          \"application/cccex\": {\n            source: \"iana\"\n          },\n          \"application/ccmp+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/ccxml+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"ccxml\"]\n          },\n          \"application/cdfx+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"cdfx\"]\n          },\n          \"application/cdmi-capability\": {\n            source: \"iana\",\n            extensions: [\"cdmia\"]\n          },\n          \"application/cdmi-container\": {\n            source: \"iana\",\n            extensions: [\"cdmic\"]\n          },\n          \"application/cdmi-domain\": {\n            source: \"iana\",\n            extensions: [\"cdmid\"]\n          },\n          \"application/cdmi-object\": {\n            source: \"iana\",\n            extensions: [\"cdmio\"]\n          },\n          \"application/cdmi-queue\": {\n            source: \"iana\",\n            extensions: [\"cdmiq\"]\n          },\n          \"application/cdni\": {\n            source: \"iana\"\n          },\n          \"application/cea\": {\n            source: \"iana\"\n          },\n          \"application/cea-2018+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/cellml+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/cfw\": {\n            source: \"iana\"\n          },\n          \"application/city+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/clr\": {\n            source: \"iana\"\n          },\n          \"application/clue+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/clue_info+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/cms\": {\n            source: \"iana\"\n          },\n          \"application/cnrp+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/coap-group+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/coap-payload\": {\n            source: \"iana\"\n          },\n          \"application/commonground\": {\n            source: \"iana\"\n          },\n          \"application/conference-info+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/cose\": {\n            source: \"iana\"\n          },\n          \"application/cose-key\": {\n            source: \"iana\"\n          },\n          \"application/cose-key-set\": {\n            source: \"iana\"\n          },\n          \"application/cpl+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"cpl\"]\n          },\n          \"application/csrattrs\": {\n            source: \"iana\"\n          },\n          \"application/csta+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/cstadata+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/csvm+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/cu-seeme\": {\n            source: \"apache\",\n            extensions: [\"cu\"]\n          },\n          \"application/cwt\": {\n            source: \"iana\"\n          },\n          \"application/cybercash\": {\n            source: \"iana\"\n          },\n          \"application/dart\": {\n            compressible: true\n          },\n          \"application/dash+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"mpd\"]\n          },\n          \"application/dash-patch+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"mpp\"]\n          },\n          \"application/dashdelta\": {\n            source: \"iana\"\n          },\n          \"application/davmount+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"davmount\"]\n          },\n          \"application/dca-rft\": {\n            source: \"iana\"\n          },\n          \"application/dcd\": {\n            source: \"iana\"\n          },\n          \"application/dec-dx\": {\n            source: \"iana\"\n          },\n          \"application/dialog-info+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/dicom\": {\n            source: \"iana\"\n          },\n          \"application/dicom+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/dicom+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/dii\": {\n            source: \"iana\"\n          },\n          \"application/dit\": {\n            source: \"iana\"\n          },\n          \"application/dns\": {\n            source: \"iana\"\n          },\n          \"application/dns+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/dns-message\": {\n            source: \"iana\"\n          },\n          \"application/docbook+xml\": {\n            source: \"apache\",\n            compressible: true,\n            extensions: [\"dbk\"]\n          },\n          \"application/dots+cbor\": {\n            source: \"iana\"\n          },\n          \"application/dskpp+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/dssc+der\": {\n            source: \"iana\",\n            extensions: [\"dssc\"]\n          },\n          \"application/dssc+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"xdssc\"]\n          },\n          \"application/dvcs\": {\n            source: \"iana\"\n          },\n          \"application/ecmascript\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"es\", \"ecma\"]\n          },\n          \"application/edi-consent\": {\n            source: \"iana\"\n          },\n          \"application/edi-x12\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/edifact\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/efi\": {\n            source: \"iana\"\n          },\n          \"application/elm+json\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true\n          },\n          \"application/elm+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/emergencycalldata.cap+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true\n          },\n          \"application/emergencycalldata.comment+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/emergencycalldata.control+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/emergencycalldata.deviceinfo+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/emergencycalldata.ecall.msd\": {\n            source: \"iana\"\n          },\n          \"application/emergencycalldata.providerinfo+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/emergencycalldata.serviceinfo+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/emergencycalldata.subscriberinfo+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/emergencycalldata.veds+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/emma+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"emma\"]\n          },\n          \"application/emotionml+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"emotionml\"]\n          },\n          \"application/encaprtp\": {\n            source: \"iana\"\n          },\n          \"application/epp+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/epub+zip\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"epub\"]\n          },\n          \"application/eshop\": {\n            source: \"iana\"\n          },\n          \"application/exi\": {\n            source: \"iana\",\n            extensions: [\"exi\"]\n          },\n          \"application/expect-ct-report+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/express\": {\n            source: \"iana\",\n            extensions: [\"exp\"]\n          },\n          \"application/fastinfoset\": {\n            source: \"iana\"\n          },\n          \"application/fastsoap\": {\n            source: \"iana\"\n          },\n          \"application/fdt+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"fdt\"]\n          },\n          \"application/fhir+json\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true\n          },\n          \"application/fhir+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true\n          },\n          \"application/fido.trusted-apps+json\": {\n            compressible: true\n          },\n          \"application/fits\": {\n            source: \"iana\"\n          },\n          \"application/flexfec\": {\n            source: \"iana\"\n          },\n          \"application/font-sfnt\": {\n            source: \"iana\"\n          },\n          \"application/font-tdpfr\": {\n            source: \"iana\",\n            extensions: [\"pfr\"]\n          },\n          \"application/font-woff\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/framework-attributes+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/geo+json\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"geojson\"]\n          },\n          \"application/geo+json-seq\": {\n            source: \"iana\"\n          },\n          \"application/geopackage+sqlite3\": {\n            source: \"iana\"\n          },\n          \"application/geoxacml+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/gltf-buffer\": {\n            source: \"iana\"\n          },\n          \"application/gml+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"gml\"]\n          },\n          \"application/gpx+xml\": {\n            source: \"apache\",\n            compressible: true,\n            extensions: [\"gpx\"]\n          },\n          \"application/gxf\": {\n            source: \"apache\",\n            extensions: [\"gxf\"]\n          },\n          \"application/gzip\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"gz\"]\n          },\n          \"application/h224\": {\n            source: \"iana\"\n          },\n          \"application/held+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/hjson\": {\n            extensions: [\"hjson\"]\n          },\n          \"application/http\": {\n            source: \"iana\"\n          },\n          \"application/hyperstudio\": {\n            source: \"iana\",\n            extensions: [\"stk\"]\n          },\n          \"application/ibe-key-request+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/ibe-pkg-reply+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/ibe-pp-data\": {\n            source: \"iana\"\n          },\n          \"application/iges\": {\n            source: \"iana\"\n          },\n          \"application/im-iscomposing+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true\n          },\n          \"application/index\": {\n            source: \"iana\"\n          },\n          \"application/index.cmd\": {\n            source: \"iana\"\n          },\n          \"application/index.obj\": {\n            source: \"iana\"\n          },\n          \"application/index.response\": {\n            source: \"iana\"\n          },\n          \"application/index.vnd\": {\n            source: \"iana\"\n          },\n          \"application/inkml+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"ink\", \"inkml\"]\n          },\n          \"application/iotp\": {\n            source: \"iana\"\n          },\n          \"application/ipfix\": {\n            source: \"iana\",\n            extensions: [\"ipfix\"]\n          },\n          \"application/ipp\": {\n            source: \"iana\"\n          },\n          \"application/isup\": {\n            source: \"iana\"\n          },\n          \"application/its+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"its\"]\n          },\n          \"application/java-archive\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"jar\", \"war\", \"ear\"]\n          },\n          \"application/java-serialized-object\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"ser\"]\n          },\n          \"application/java-vm\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"class\"]\n          },\n          \"application/javascript\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true,\n            extensions: [\"js\", \"mjs\"]\n          },\n          \"application/jf2feed+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/jose\": {\n            source: \"iana\"\n          },\n          \"application/jose+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/jrd+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/jscalendar+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/json\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true,\n            extensions: [\"json\", \"map\"]\n          },\n          \"application/json-patch+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/json-seq\": {\n            source: \"iana\"\n          },\n          \"application/json5\": {\n            extensions: [\"json5\"]\n          },\n          \"application/jsonml+json\": {\n            source: \"apache\",\n            compressible: true,\n            extensions: [\"jsonml\"]\n          },\n          \"application/jwk+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/jwk-set+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/jwt\": {\n            source: \"iana\"\n          },\n          \"application/kpml-request+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/kpml-response+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/ld+json\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"jsonld\"]\n          },\n          \"application/lgr+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"lgr\"]\n          },\n          \"application/link-format\": {\n            source: \"iana\"\n          },\n          \"application/load-control+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/lost+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"lostxml\"]\n          },\n          \"application/lostsync+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/lpf+zip\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/lxf\": {\n            source: \"iana\"\n          },\n          \"application/mac-binhex40\": {\n            source: \"iana\",\n            extensions: [\"hqx\"]\n          },\n          \"application/mac-compactpro\": {\n            source: \"apache\",\n            extensions: [\"cpt\"]\n          },\n          \"application/macwriteii\": {\n            source: \"iana\"\n          },\n          \"application/mads+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"mads\"]\n          },\n          \"application/manifest+json\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true,\n            extensions: [\"webmanifest\"]\n          },\n          \"application/marc\": {\n            source: \"iana\",\n            extensions: [\"mrc\"]\n          },\n          \"application/marcxml+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"mrcx\"]\n          },\n          \"application/mathematica\": {\n            source: \"iana\",\n            extensions: [\"ma\", \"nb\", \"mb\"]\n          },\n          \"application/mathml+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"mathml\"]\n          },\n          \"application/mathml-content+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/mathml-presentation+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/mbms-associated-procedure-description+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/mbms-deregister+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/mbms-envelope+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/mbms-msk+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/mbms-msk-response+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/mbms-protection-description+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/mbms-reception-report+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/mbms-register+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/mbms-register-response+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/mbms-schedule+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/mbms-user-service-description+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/mbox\": {\n            source: \"iana\",\n            extensions: [\"mbox\"]\n          },\n          \"application/media-policy-dataset+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"mpf\"]\n          },\n          \"application/media_control+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/mediaservercontrol+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"mscml\"]\n          },\n          \"application/merge-patch+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/metalink+xml\": {\n            source: \"apache\",\n            compressible: true,\n            extensions: [\"metalink\"]\n          },\n          \"application/metalink4+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"meta4\"]\n          },\n          \"application/mets+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"mets\"]\n          },\n          \"application/mf4\": {\n            source: \"iana\"\n          },\n          \"application/mikey\": {\n            source: \"iana\"\n          },\n          \"application/mipc\": {\n            source: \"iana\"\n          },\n          \"application/missing-blocks+cbor-seq\": {\n            source: \"iana\"\n          },\n          \"application/mmt-aei+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"maei\"]\n          },\n          \"application/mmt-usd+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"musd\"]\n          },\n          \"application/mods+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"mods\"]\n          },\n          \"application/moss-keys\": {\n            source: \"iana\"\n          },\n          \"application/moss-signature\": {\n            source: \"iana\"\n          },\n          \"application/mosskey-data\": {\n            source: \"iana\"\n          },\n          \"application/mosskey-request\": {\n            source: \"iana\"\n          },\n          \"application/mp21\": {\n            source: \"iana\",\n            extensions: [\"m21\", \"mp21\"]\n          },\n          \"application/mp4\": {\n            source: \"iana\",\n            extensions: [\"mp4s\", \"m4p\"]\n          },\n          \"application/mpeg4-generic\": {\n            source: \"iana\"\n          },\n          \"application/mpeg4-iod\": {\n            source: \"iana\"\n          },\n          \"application/mpeg4-iod-xmt\": {\n            source: \"iana\"\n          },\n          \"application/mrb-consumer+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/mrb-publish+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/msc-ivr+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true\n          },\n          \"application/msc-mixer+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true\n          },\n          \"application/msword\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"doc\", \"dot\"]\n          },\n          \"application/mud+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/multipart-core\": {\n            source: \"iana\"\n          },\n          \"application/mxf\": {\n            source: \"iana\",\n            extensions: [\"mxf\"]\n          },\n          \"application/n-quads\": {\n            source: \"iana\",\n            extensions: [\"nq\"]\n          },\n          \"application/n-triples\": {\n            source: \"iana\",\n            extensions: [\"nt\"]\n          },\n          \"application/nasdata\": {\n            source: \"iana\"\n          },\n          \"application/news-checkgroups\": {\n            source: \"iana\",\n            charset: \"US-ASCII\"\n          },\n          \"application/news-groupinfo\": {\n            source: \"iana\",\n            charset: \"US-ASCII\"\n          },\n          \"application/news-transmission\": {\n            source: \"iana\"\n          },\n          \"application/nlsml+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/node\": {\n            source: \"iana\",\n            extensions: [\"cjs\"]\n          },\n          \"application/nss\": {\n            source: \"iana\"\n          },\n          \"application/oauth-authz-req+jwt\": {\n            source: \"iana\"\n          },\n          \"application/oblivious-dns-message\": {\n            source: \"iana\"\n          },\n          \"application/ocsp-request\": {\n            source: \"iana\"\n          },\n          \"application/ocsp-response\": {\n            source: \"iana\"\n          },\n          \"application/octet-stream\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"bin\", \"dms\", \"lrf\", \"mar\", \"so\", \"dist\", \"distz\", \"pkg\", \"bpk\", \"dump\", \"elc\", \"deploy\", \"exe\", \"dll\", \"deb\", \"dmg\", \"iso\", \"img\", \"msi\", \"msp\", \"msm\", \"buffer\"]\n          },\n          \"application/oda\": {\n            source: \"iana\",\n            extensions: [\"oda\"]\n          },\n          \"application/odm+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/odx\": {\n            source: \"iana\"\n          },\n          \"application/oebps-package+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"opf\"]\n          },\n          \"application/ogg\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"ogx\"]\n          },\n          \"application/omdoc+xml\": {\n            source: \"apache\",\n            compressible: true,\n            extensions: [\"omdoc\"]\n          },\n          \"application/onenote\": {\n            source: \"apache\",\n            extensions: [\"onetoc\", \"onetoc2\", \"onetmp\", \"onepkg\"]\n          },\n          \"application/opc-nodeset+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/oscore\": {\n            source: \"iana\"\n          },\n          \"application/oxps\": {\n            source: \"iana\",\n            extensions: [\"oxps\"]\n          },\n          \"application/p21\": {\n            source: \"iana\"\n          },\n          \"application/p21+zip\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/p2p-overlay+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"relo\"]\n          },\n          \"application/parityfec\": {\n            source: \"iana\"\n          },\n          \"application/passport\": {\n            source: \"iana\"\n          },\n          \"application/patch-ops-error+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"xer\"]\n          },\n          \"application/pdf\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"pdf\"]\n          },\n          \"application/pdx\": {\n            source: \"iana\"\n          },\n          \"application/pem-certificate-chain\": {\n            source: \"iana\"\n          },\n          \"application/pgp-encrypted\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"pgp\"]\n          },\n          \"application/pgp-keys\": {\n            source: \"iana\",\n            extensions: [\"asc\"]\n          },\n          \"application/pgp-signature\": {\n            source: \"iana\",\n            extensions: [\"asc\", \"sig\"]\n          },\n          \"application/pics-rules\": {\n            source: \"apache\",\n            extensions: [\"prf\"]\n          },\n          \"application/pidf+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true\n          },\n          \"application/pidf-diff+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true\n          },\n          \"application/pkcs10\": {\n            source: \"iana\",\n            extensions: [\"p10\"]\n          },\n          \"application/pkcs12\": {\n            source: \"iana\"\n          },\n          \"application/pkcs7-mime\": {\n            source: \"iana\",\n            extensions: [\"p7m\", \"p7c\"]\n          },\n          \"application/pkcs7-signature\": {\n            source: \"iana\",\n            extensions: [\"p7s\"]\n          },\n          \"application/pkcs8\": {\n            source: \"iana\",\n            extensions: [\"p8\"]\n          },\n          \"application/pkcs8-encrypted\": {\n            source: \"iana\"\n          },\n          \"application/pkix-attr-cert\": {\n            source: \"iana\",\n            extensions: [\"ac\"]\n          },\n          \"application/pkix-cert\": {\n            source: \"iana\",\n            extensions: [\"cer\"]\n          },\n          \"application/pkix-crl\": {\n            source: \"iana\",\n            extensions: [\"crl\"]\n          },\n          \"application/pkix-pkipath\": {\n            source: \"iana\",\n            extensions: [\"pkipath\"]\n          },\n          \"application/pkixcmp\": {\n            source: \"iana\",\n            extensions: [\"pki\"]\n          },\n          \"application/pls+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"pls\"]\n          },\n          \"application/poc-settings+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true\n          },\n          \"application/postscript\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"ai\", \"eps\", \"ps\"]\n          },\n          \"application/ppsp-tracker+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/problem+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/problem+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/provenance+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"provx\"]\n          },\n          \"application/prs.alvestrand.titrax-sheet\": {\n            source: \"iana\"\n          },\n          \"application/prs.cww\": {\n            source: \"iana\",\n            extensions: [\"cww\"]\n          },\n          \"application/prs.cyn\": {\n            source: \"iana\",\n            charset: \"7-BIT\"\n          },\n          \"application/prs.hpub+zip\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/prs.nprend\": {\n            source: \"iana\"\n          },\n          \"application/prs.plucker\": {\n            source: \"iana\"\n          },\n          \"application/prs.rdf-xml-crypt\": {\n            source: \"iana\"\n          },\n          \"application/prs.xsf+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/pskc+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"pskcxml\"]\n          },\n          \"application/pvd+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/qsig\": {\n            source: \"iana\"\n          },\n          \"application/raml+yaml\": {\n            compressible: true,\n            extensions: [\"raml\"]\n          },\n          \"application/raptorfec\": {\n            source: \"iana\"\n          },\n          \"application/rdap+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/rdf+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"rdf\", \"owl\"]\n          },\n          \"application/reginfo+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"rif\"]\n          },\n          \"application/relax-ng-compact-syntax\": {\n            source: \"iana\",\n            extensions: [\"rnc\"]\n          },\n          \"application/remote-printing\": {\n            source: \"iana\"\n          },\n          \"application/reputon+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/resource-lists+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"rl\"]\n          },\n          \"application/resource-lists-diff+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"rld\"]\n          },\n          \"application/rfc+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/riscos\": {\n            source: \"iana\"\n          },\n          \"application/rlmi+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/rls-services+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"rs\"]\n          },\n          \"application/route-apd+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"rapd\"]\n          },\n          \"application/route-s-tsid+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"sls\"]\n          },\n          \"application/route-usd+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"rusd\"]\n          },\n          \"application/rpki-ghostbusters\": {\n            source: \"iana\",\n            extensions: [\"gbr\"]\n          },\n          \"application/rpki-manifest\": {\n            source: \"iana\",\n            extensions: [\"mft\"]\n          },\n          \"application/rpki-publication\": {\n            source: \"iana\"\n          },\n          \"application/rpki-roa\": {\n            source: \"iana\",\n            extensions: [\"roa\"]\n          },\n          \"application/rpki-updown\": {\n            source: \"iana\"\n          },\n          \"application/rsd+xml\": {\n            source: \"apache\",\n            compressible: true,\n            extensions: [\"rsd\"]\n          },\n          \"application/rss+xml\": {\n            source: \"apache\",\n            compressible: true,\n            extensions: [\"rss\"]\n          },\n          \"application/rtf\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"rtf\"]\n          },\n          \"application/rtploopback\": {\n            source: \"iana\"\n          },\n          \"application/rtx\": {\n            source: \"iana\"\n          },\n          \"application/samlassertion+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/samlmetadata+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/sarif+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/sarif-external-properties+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/sbe\": {\n            source: \"iana\"\n          },\n          \"application/sbml+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"sbml\"]\n          },\n          \"application/scaip+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/scim+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/scvp-cv-request\": {\n            source: \"iana\",\n            extensions: [\"scq\"]\n          },\n          \"application/scvp-cv-response\": {\n            source: \"iana\",\n            extensions: [\"scs\"]\n          },\n          \"application/scvp-vp-request\": {\n            source: \"iana\",\n            extensions: [\"spq\"]\n          },\n          \"application/scvp-vp-response\": {\n            source: \"iana\",\n            extensions: [\"spp\"]\n          },\n          \"application/sdp\": {\n            source: \"iana\",\n            extensions: [\"sdp\"]\n          },\n          \"application/secevent+jwt\": {\n            source: \"iana\"\n          },\n          \"application/senml+cbor\": {\n            source: \"iana\"\n          },\n          \"application/senml+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/senml+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"senmlx\"]\n          },\n          \"application/senml-etch+cbor\": {\n            source: \"iana\"\n          },\n          \"application/senml-etch+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/senml-exi\": {\n            source: \"iana\"\n          },\n          \"application/sensml+cbor\": {\n            source: \"iana\"\n          },\n          \"application/sensml+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/sensml+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"sensmlx\"]\n          },\n          \"application/sensml-exi\": {\n            source: \"iana\"\n          },\n          \"application/sep+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/sep-exi\": {\n            source: \"iana\"\n          },\n          \"application/session-info\": {\n            source: \"iana\"\n          },\n          \"application/set-payment\": {\n            source: \"iana\"\n          },\n          \"application/set-payment-initiation\": {\n            source: \"iana\",\n            extensions: [\"setpay\"]\n          },\n          \"application/set-registration\": {\n            source: \"iana\"\n          },\n          \"application/set-registration-initiation\": {\n            source: \"iana\",\n            extensions: [\"setreg\"]\n          },\n          \"application/sgml\": {\n            source: \"iana\"\n          },\n          \"application/sgml-open-catalog\": {\n            source: \"iana\"\n          },\n          \"application/shf+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"shf\"]\n          },\n          \"application/sieve\": {\n            source: \"iana\",\n            extensions: [\"siv\", \"sieve\"]\n          },\n          \"application/simple-filter+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/simple-message-summary\": {\n            source: \"iana\"\n          },\n          \"application/simplesymbolcontainer\": {\n            source: \"iana\"\n          },\n          \"application/sipc\": {\n            source: \"iana\"\n          },\n          \"application/slate\": {\n            source: \"iana\"\n          },\n          \"application/smil\": {\n            source: \"iana\"\n          },\n          \"application/smil+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"smi\", \"smil\"]\n          },\n          \"application/smpte336m\": {\n            source: \"iana\"\n          },\n          \"application/soap+fastinfoset\": {\n            source: \"iana\"\n          },\n          \"application/soap+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/sparql-query\": {\n            source: \"iana\",\n            extensions: [\"rq\"]\n          },\n          \"application/sparql-results+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"srx\"]\n          },\n          \"application/spdx+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/spirits-event+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/sql\": {\n            source: \"iana\"\n          },\n          \"application/srgs\": {\n            source: \"iana\",\n            extensions: [\"gram\"]\n          },\n          \"application/srgs+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"grxml\"]\n          },\n          \"application/sru+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"sru\"]\n          },\n          \"application/ssdl+xml\": {\n            source: \"apache\",\n            compressible: true,\n            extensions: [\"ssdl\"]\n          },\n          \"application/ssml+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"ssml\"]\n          },\n          \"application/stix+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/swid+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"swidtag\"]\n          },\n          \"application/tamp-apex-update\": {\n            source: \"iana\"\n          },\n          \"application/tamp-apex-update-confirm\": {\n            source: \"iana\"\n          },\n          \"application/tamp-community-update\": {\n            source: \"iana\"\n          },\n          \"application/tamp-community-update-confirm\": {\n            source: \"iana\"\n          },\n          \"application/tamp-error\": {\n            source: \"iana\"\n          },\n          \"application/tamp-sequence-adjust\": {\n            source: \"iana\"\n          },\n          \"application/tamp-sequence-adjust-confirm\": {\n            source: \"iana\"\n          },\n          \"application/tamp-status-query\": {\n            source: \"iana\"\n          },\n          \"application/tamp-status-response\": {\n            source: \"iana\"\n          },\n          \"application/tamp-update\": {\n            source: \"iana\"\n          },\n          \"application/tamp-update-confirm\": {\n            source: \"iana\"\n          },\n          \"application/tar\": {\n            compressible: true\n          },\n          \"application/taxii+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/td+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/tei+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"tei\", \"teicorpus\"]\n          },\n          \"application/tetra_isi\": {\n            source: \"iana\"\n          },\n          \"application/thraud+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"tfi\"]\n          },\n          \"application/timestamp-query\": {\n            source: \"iana\"\n          },\n          \"application/timestamp-reply\": {\n            source: \"iana\"\n          },\n          \"application/timestamped-data\": {\n            source: \"iana\",\n            extensions: [\"tsd\"]\n          },\n          \"application/tlsrpt+gzip\": {\n            source: \"iana\"\n          },\n          \"application/tlsrpt+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/tnauthlist\": {\n            source: \"iana\"\n          },\n          \"application/token-introspection+jwt\": {\n            source: \"iana\"\n          },\n          \"application/toml\": {\n            compressible: true,\n            extensions: [\"toml\"]\n          },\n          \"application/trickle-ice-sdpfrag\": {\n            source: \"iana\"\n          },\n          \"application/trig\": {\n            source: \"iana\",\n            extensions: [\"trig\"]\n          },\n          \"application/ttml+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"ttml\"]\n          },\n          \"application/tve-trigger\": {\n            source: \"iana\"\n          },\n          \"application/tzif\": {\n            source: \"iana\"\n          },\n          \"application/tzif-leap\": {\n            source: \"iana\"\n          },\n          \"application/ubjson\": {\n            compressible: false,\n            extensions: [\"ubj\"]\n          },\n          \"application/ulpfec\": {\n            source: \"iana\"\n          },\n          \"application/urc-grpsheet+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/urc-ressheet+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"rsheet\"]\n          },\n          \"application/urc-targetdesc+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"td\"]\n          },\n          \"application/urc-uisocketdesc+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vcard+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vcard+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vemmi\": {\n            source: \"iana\"\n          },\n          \"application/vividence.scriptfile\": {\n            source: \"apache\"\n          },\n          \"application/vnd.1000minds.decision-model+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"1km\"]\n          },\n          \"application/vnd.3gpp-prose+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp-prose-pc3ch+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp-v2x-local-service-information\": {\n            source: \"iana\"\n          },\n          \"application/vnd.3gpp.5gnas\": {\n            source: \"iana\"\n          },\n          \"application/vnd.3gpp.access-transfer-events+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.bsf+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.gmop+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.gtpc\": {\n            source: \"iana\"\n          },\n          \"application/vnd.3gpp.interworking-data\": {\n            source: \"iana\"\n          },\n          \"application/vnd.3gpp.lpp\": {\n            source: \"iana\"\n          },\n          \"application/vnd.3gpp.mc-signalling-ear\": {\n            source: \"iana\"\n          },\n          \"application/vnd.3gpp.mcdata-affiliation-command+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcdata-info+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcdata-payload\": {\n            source: \"iana\"\n          },\n          \"application/vnd.3gpp.mcdata-service-config+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcdata-signalling\": {\n            source: \"iana\"\n          },\n          \"application/vnd.3gpp.mcdata-ue-config+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcdata-user-profile+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcptt-affiliation-command+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcptt-floor-request+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcptt-info+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcptt-location-info+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcptt-mbms-usage-info+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcptt-service-config+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcptt-signed+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcptt-ue-config+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcptt-ue-init-config+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcptt-user-profile+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcvideo-affiliation-command+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcvideo-affiliation-info+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcvideo-info+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcvideo-location-info+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcvideo-mbms-usage-info+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcvideo-service-config+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcvideo-transmission-request+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcvideo-ue-config+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mcvideo-user-profile+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.mid-call+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.ngap\": {\n            source: \"iana\"\n          },\n          \"application/vnd.3gpp.pfcp\": {\n            source: \"iana\"\n          },\n          \"application/vnd.3gpp.pic-bw-large\": {\n            source: \"iana\",\n            extensions: [\"plb\"]\n          },\n          \"application/vnd.3gpp.pic-bw-small\": {\n            source: \"iana\",\n            extensions: [\"psb\"]\n          },\n          \"application/vnd.3gpp.pic-bw-var\": {\n            source: \"iana\",\n            extensions: [\"pvb\"]\n          },\n          \"application/vnd.3gpp.s1ap\": {\n            source: \"iana\"\n          },\n          \"application/vnd.3gpp.sms\": {\n            source: \"iana\"\n          },\n          \"application/vnd.3gpp.sms+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.srvcc-ext+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.srvcc-info+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.state-and-event-info+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp.ussd+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp2.bcmcsinfo+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.3gpp2.sms\": {\n            source: \"iana\"\n          },\n          \"application/vnd.3gpp2.tcap\": {\n            source: \"iana\",\n            extensions: [\"tcap\"]\n          },\n          \"application/vnd.3lightssoftware.imagescal\": {\n            source: \"iana\"\n          },\n          \"application/vnd.3m.post-it-notes\": {\n            source: \"iana\",\n            extensions: [\"pwn\"]\n          },\n          \"application/vnd.accpac.simply.aso\": {\n            source: \"iana\",\n            extensions: [\"aso\"]\n          },\n          \"application/vnd.accpac.simply.imp\": {\n            source: \"iana\",\n            extensions: [\"imp\"]\n          },\n          \"application/vnd.acucobol\": {\n            source: \"iana\",\n            extensions: [\"acu\"]\n          },\n          \"application/vnd.acucorp\": {\n            source: \"iana\",\n            extensions: [\"atc\", \"acutc\"]\n          },\n          \"application/vnd.adobe.air-application-installer-package+zip\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"air\"]\n          },\n          \"application/vnd.adobe.flash.movie\": {\n            source: \"iana\"\n          },\n          \"application/vnd.adobe.formscentral.fcdt\": {\n            source: \"iana\",\n            extensions: [\"fcdt\"]\n          },\n          \"application/vnd.adobe.fxp\": {\n            source: \"iana\",\n            extensions: [\"fxp\", \"fxpl\"]\n          },\n          \"application/vnd.adobe.partial-upload\": {\n            source: \"iana\"\n          },\n          \"application/vnd.adobe.xdp+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"xdp\"]\n          },\n          \"application/vnd.adobe.xfdf\": {\n            source: \"iana\",\n            extensions: [\"xfdf\"]\n          },\n          \"application/vnd.aether.imp\": {\n            source: \"iana\"\n          },\n          \"application/vnd.afpc.afplinedata\": {\n            source: \"iana\"\n          },\n          \"application/vnd.afpc.afplinedata-pagedef\": {\n            source: \"iana\"\n          },\n          \"application/vnd.afpc.cmoca-cmresource\": {\n            source: \"iana\"\n          },\n          \"application/vnd.afpc.foca-charset\": {\n            source: \"iana\"\n          },\n          \"application/vnd.afpc.foca-codedfont\": {\n            source: \"iana\"\n          },\n          \"application/vnd.afpc.foca-codepage\": {\n            source: \"iana\"\n          },\n          \"application/vnd.afpc.modca\": {\n            source: \"iana\"\n          },\n          \"application/vnd.afpc.modca-cmtable\": {\n            source: \"iana\"\n          },\n          \"application/vnd.afpc.modca-formdef\": {\n            source: \"iana\"\n          },\n          \"application/vnd.afpc.modca-mediummap\": {\n            source: \"iana\"\n          },\n          \"application/vnd.afpc.modca-objectcontainer\": {\n            source: \"iana\"\n          },\n          \"application/vnd.afpc.modca-overlay\": {\n            source: \"iana\"\n          },\n          \"application/vnd.afpc.modca-pagesegment\": {\n            source: \"iana\"\n          },\n          \"application/vnd.age\": {\n            source: \"iana\",\n            extensions: [\"age\"]\n          },\n          \"application/vnd.ah-barcode\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ahead.space\": {\n            source: \"iana\",\n            extensions: [\"ahead\"]\n          },\n          \"application/vnd.airzip.filesecure.azf\": {\n            source: \"iana\",\n            extensions: [\"azf\"]\n          },\n          \"application/vnd.airzip.filesecure.azs\": {\n            source: \"iana\",\n            extensions: [\"azs\"]\n          },\n          \"application/vnd.amadeus+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.amazon.ebook\": {\n            source: \"apache\",\n            extensions: [\"azw\"]\n          },\n          \"application/vnd.amazon.mobi8-ebook\": {\n            source: \"iana\"\n          },\n          \"application/vnd.americandynamics.acc\": {\n            source: \"iana\",\n            extensions: [\"acc\"]\n          },\n          \"application/vnd.amiga.ami\": {\n            source: \"iana\",\n            extensions: [\"ami\"]\n          },\n          \"application/vnd.amundsen.maze+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.android.ota\": {\n            source: \"iana\"\n          },\n          \"application/vnd.android.package-archive\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"apk\"]\n          },\n          \"application/vnd.anki\": {\n            source: \"iana\"\n          },\n          \"application/vnd.anser-web-certificate-issue-initiation\": {\n            source: \"iana\",\n            extensions: [\"cii\"]\n          },\n          \"application/vnd.anser-web-funds-transfer-initiation\": {\n            source: \"apache\",\n            extensions: [\"fti\"]\n          },\n          \"application/vnd.antix.game-component\": {\n            source: \"iana\",\n            extensions: [\"atx\"]\n          },\n          \"application/vnd.apache.arrow.file\": {\n            source: \"iana\"\n          },\n          \"application/vnd.apache.arrow.stream\": {\n            source: \"iana\"\n          },\n          \"application/vnd.apache.thrift.binary\": {\n            source: \"iana\"\n          },\n          \"application/vnd.apache.thrift.compact\": {\n            source: \"iana\"\n          },\n          \"application/vnd.apache.thrift.json\": {\n            source: \"iana\"\n          },\n          \"application/vnd.api+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.aplextor.warrp+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.apothekende.reservation+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.apple.installer+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"mpkg\"]\n          },\n          \"application/vnd.apple.keynote\": {\n            source: \"iana\",\n            extensions: [\"key\"]\n          },\n          \"application/vnd.apple.mpegurl\": {\n            source: \"iana\",\n            extensions: [\"m3u8\"]\n          },\n          \"application/vnd.apple.numbers\": {\n            source: \"iana\",\n            extensions: [\"numbers\"]\n          },\n          \"application/vnd.apple.pages\": {\n            source: \"iana\",\n            extensions: [\"pages\"]\n          },\n          \"application/vnd.apple.pkpass\": {\n            compressible: false,\n            extensions: [\"pkpass\"]\n          },\n          \"application/vnd.arastra.swi\": {\n            source: \"iana\"\n          },\n          \"application/vnd.aristanetworks.swi\": {\n            source: \"iana\",\n            extensions: [\"swi\"]\n          },\n          \"application/vnd.artisan+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.artsquare\": {\n            source: \"iana\"\n          },\n          \"application/vnd.astraea-software.iota\": {\n            source: \"iana\",\n            extensions: [\"iota\"]\n          },\n          \"application/vnd.audiograph\": {\n            source: \"iana\",\n            extensions: [\"aep\"]\n          },\n          \"application/vnd.autopackage\": {\n            source: \"iana\"\n          },\n          \"application/vnd.avalon+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.avistar+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.balsamiq.bmml+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"bmml\"]\n          },\n          \"application/vnd.balsamiq.bmpr\": {\n            source: \"iana\"\n          },\n          \"application/vnd.banana-accounting\": {\n            source: \"iana\"\n          },\n          \"application/vnd.bbf.usp.error\": {\n            source: \"iana\"\n          },\n          \"application/vnd.bbf.usp.msg\": {\n            source: \"iana\"\n          },\n          \"application/vnd.bbf.usp.msg+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.bekitzur-stech+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.bint.med-content\": {\n            source: \"iana\"\n          },\n          \"application/vnd.biopax.rdf+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.blink-idb-value-wrapper\": {\n            source: \"iana\"\n          },\n          \"application/vnd.blueice.multipass\": {\n            source: \"iana\",\n            extensions: [\"mpm\"]\n          },\n          \"application/vnd.bluetooth.ep.oob\": {\n            source: \"iana\"\n          },\n          \"application/vnd.bluetooth.le.oob\": {\n            source: \"iana\"\n          },\n          \"application/vnd.bmi\": {\n            source: \"iana\",\n            extensions: [\"bmi\"]\n          },\n          \"application/vnd.bpf\": {\n            source: \"iana\"\n          },\n          \"application/vnd.bpf3\": {\n            source: \"iana\"\n          },\n          \"application/vnd.businessobjects\": {\n            source: \"iana\",\n            extensions: [\"rep\"]\n          },\n          \"application/vnd.byu.uapi+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.cab-jscript\": {\n            source: \"iana\"\n          },\n          \"application/vnd.canon-cpdl\": {\n            source: \"iana\"\n          },\n          \"application/vnd.canon-lips\": {\n            source: \"iana\"\n          },\n          \"application/vnd.capasystems-pg+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.cendio.thinlinc.clientconf\": {\n            source: \"iana\"\n          },\n          \"application/vnd.century-systems.tcp_stream\": {\n            source: \"iana\"\n          },\n          \"application/vnd.chemdraw+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"cdxml\"]\n          },\n          \"application/vnd.chess-pgn\": {\n            source: \"iana\"\n          },\n          \"application/vnd.chipnuts.karaoke-mmd\": {\n            source: \"iana\",\n            extensions: [\"mmd\"]\n          },\n          \"application/vnd.ciedi\": {\n            source: \"iana\"\n          },\n          \"application/vnd.cinderella\": {\n            source: \"iana\",\n            extensions: [\"cdy\"]\n          },\n          \"application/vnd.cirpack.isdn-ext\": {\n            source: \"iana\"\n          },\n          \"application/vnd.citationstyles.style+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"csl\"]\n          },\n          \"application/vnd.claymore\": {\n            source: \"iana\",\n            extensions: [\"cla\"]\n          },\n          \"application/vnd.cloanto.rp9\": {\n            source: \"iana\",\n            extensions: [\"rp9\"]\n          },\n          \"application/vnd.clonk.c4group\": {\n            source: \"iana\",\n            extensions: [\"c4g\", \"c4d\", \"c4f\", \"c4p\", \"c4u\"]\n          },\n          \"application/vnd.cluetrust.cartomobile-config\": {\n            source: \"iana\",\n            extensions: [\"c11amc\"]\n          },\n          \"application/vnd.cluetrust.cartomobile-config-pkg\": {\n            source: \"iana\",\n            extensions: [\"c11amz\"]\n          },\n          \"application/vnd.coffeescript\": {\n            source: \"iana\"\n          },\n          \"application/vnd.collabio.xodocuments.document\": {\n            source: \"iana\"\n          },\n          \"application/vnd.collabio.xodocuments.document-template\": {\n            source: \"iana\"\n          },\n          \"application/vnd.collabio.xodocuments.presentation\": {\n            source: \"iana\"\n          },\n          \"application/vnd.collabio.xodocuments.presentation-template\": {\n            source: \"iana\"\n          },\n          \"application/vnd.collabio.xodocuments.spreadsheet\": {\n            source: \"iana\"\n          },\n          \"application/vnd.collabio.xodocuments.spreadsheet-template\": {\n            source: \"iana\"\n          },\n          \"application/vnd.collection+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.collection.doc+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.collection.next+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.comicbook+zip\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/vnd.comicbook-rar\": {\n            source: \"iana\"\n          },\n          \"application/vnd.commerce-battelle\": {\n            source: \"iana\"\n          },\n          \"application/vnd.commonspace\": {\n            source: \"iana\",\n            extensions: [\"csp\"]\n          },\n          \"application/vnd.contact.cmsg\": {\n            source: \"iana\",\n            extensions: [\"cdbcmsg\"]\n          },\n          \"application/vnd.coreos.ignition+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.cosmocaller\": {\n            source: \"iana\",\n            extensions: [\"cmc\"]\n          },\n          \"application/vnd.crick.clicker\": {\n            source: \"iana\",\n            extensions: [\"clkx\"]\n          },\n          \"application/vnd.crick.clicker.keyboard\": {\n            source: \"iana\",\n            extensions: [\"clkk\"]\n          },\n          \"application/vnd.crick.clicker.palette\": {\n            source: \"iana\",\n            extensions: [\"clkp\"]\n          },\n          \"application/vnd.crick.clicker.template\": {\n            source: \"iana\",\n            extensions: [\"clkt\"]\n          },\n          \"application/vnd.crick.clicker.wordbank\": {\n            source: \"iana\",\n            extensions: [\"clkw\"]\n          },\n          \"application/vnd.criticaltools.wbs+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"wbs\"]\n          },\n          \"application/vnd.cryptii.pipe+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.crypto-shade-file\": {\n            source: \"iana\"\n          },\n          \"application/vnd.cryptomator.encrypted\": {\n            source: \"iana\"\n          },\n          \"application/vnd.cryptomator.vault\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ctc-posml\": {\n            source: \"iana\",\n            extensions: [\"pml\"]\n          },\n          \"application/vnd.ctct.ws+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.cups-pdf\": {\n            source: \"iana\"\n          },\n          \"application/vnd.cups-postscript\": {\n            source: \"iana\"\n          },\n          \"application/vnd.cups-ppd\": {\n            source: \"iana\",\n            extensions: [\"ppd\"]\n          },\n          \"application/vnd.cups-raster\": {\n            source: \"iana\"\n          },\n          \"application/vnd.cups-raw\": {\n            source: \"iana\"\n          },\n          \"application/vnd.curl\": {\n            source: \"iana\"\n          },\n          \"application/vnd.curl.car\": {\n            source: \"apache\",\n            extensions: [\"car\"]\n          },\n          \"application/vnd.curl.pcurl\": {\n            source: \"apache\",\n            extensions: [\"pcurl\"]\n          },\n          \"application/vnd.cyan.dean.root+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.cybank\": {\n            source: \"iana\"\n          },\n          \"application/vnd.cyclonedx+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.cyclonedx+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.d2l.coursepackage1p0+zip\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/vnd.d3m-dataset\": {\n            source: \"iana\"\n          },\n          \"application/vnd.d3m-problem\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dart\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"dart\"]\n          },\n          \"application/vnd.data-vision.rdz\": {\n            source: \"iana\",\n            extensions: [\"rdz\"]\n          },\n          \"application/vnd.datapackage+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.dataresource+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.dbf\": {\n            source: \"iana\",\n            extensions: [\"dbf\"]\n          },\n          \"application/vnd.debian.binary-package\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dece.data\": {\n            source: \"iana\",\n            extensions: [\"uvf\", \"uvvf\", \"uvd\", \"uvvd\"]\n          },\n          \"application/vnd.dece.ttml+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"uvt\", \"uvvt\"]\n          },\n          \"application/vnd.dece.unspecified\": {\n            source: \"iana\",\n            extensions: [\"uvx\", \"uvvx\"]\n          },\n          \"application/vnd.dece.zip\": {\n            source: \"iana\",\n            extensions: [\"uvz\", \"uvvz\"]\n          },\n          \"application/vnd.denovo.fcselayout-link\": {\n            source: \"iana\",\n            extensions: [\"fe_launch\"]\n          },\n          \"application/vnd.desmume.movie\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dir-bi.plate-dl-nosuffix\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dm.delegation+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.dna\": {\n            source: \"iana\",\n            extensions: [\"dna\"]\n          },\n          \"application/vnd.document+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.dolby.mlp\": {\n            source: \"apache\",\n            extensions: [\"mlp\"]\n          },\n          \"application/vnd.dolby.mobile.1\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dolby.mobile.2\": {\n            source: \"iana\"\n          },\n          \"application/vnd.doremir.scorecloud-binary-document\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dpgraph\": {\n            source: \"iana\",\n            extensions: [\"dpg\"]\n          },\n          \"application/vnd.dreamfactory\": {\n            source: \"iana\",\n            extensions: [\"dfac\"]\n          },\n          \"application/vnd.drive+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.ds-keypoint\": {\n            source: \"apache\",\n            extensions: [\"kpxx\"]\n          },\n          \"application/vnd.dtg.local\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dtg.local.flash\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dtg.local.html\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dvb.ait\": {\n            source: \"iana\",\n            extensions: [\"ait\"]\n          },\n          \"application/vnd.dvb.dvbisl+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.dvb.dvbj\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dvb.esgcontainer\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dvb.ipdcdftnotifaccess\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dvb.ipdcesgaccess\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dvb.ipdcesgaccess2\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dvb.ipdcesgpdd\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dvb.ipdcroaming\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dvb.iptv.alfec-base\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dvb.iptv.alfec-enhancement\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dvb.notif-aggregate-root+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.dvb.notif-container+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.dvb.notif-generic+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.dvb.notif-ia-msglist+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.dvb.notif-ia-registration-request+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.dvb.notif-ia-registration-response+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.dvb.notif-init+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.dvb.pfr\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dvb.service\": {\n            source: \"iana\",\n            extensions: [\"svc\"]\n          },\n          \"application/vnd.dxr\": {\n            source: \"iana\"\n          },\n          \"application/vnd.dynageo\": {\n            source: \"iana\",\n            extensions: [\"geo\"]\n          },\n          \"application/vnd.dzr\": {\n            source: \"iana\"\n          },\n          \"application/vnd.easykaraoke.cdgdownload\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ecdis-update\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ecip.rlp\": {\n            source: \"iana\"\n          },\n          \"application/vnd.eclipse.ditto+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.ecowin.chart\": {\n            source: \"iana\",\n            extensions: [\"mag\"]\n          },\n          \"application/vnd.ecowin.filerequest\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ecowin.fileupdate\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ecowin.series\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ecowin.seriesrequest\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ecowin.seriesupdate\": {\n            source: \"iana\"\n          },\n          \"application/vnd.efi.img\": {\n            source: \"iana\"\n          },\n          \"application/vnd.efi.iso\": {\n            source: \"iana\"\n          },\n          \"application/vnd.emclient.accessrequest+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.enliven\": {\n            source: \"iana\",\n            extensions: [\"nml\"]\n          },\n          \"application/vnd.enphase.envoy\": {\n            source: \"iana\"\n          },\n          \"application/vnd.eprints.data+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.epson.esf\": {\n            source: \"iana\",\n            extensions: [\"esf\"]\n          },\n          \"application/vnd.epson.msf\": {\n            source: \"iana\",\n            extensions: [\"msf\"]\n          },\n          \"application/vnd.epson.quickanime\": {\n            source: \"iana\",\n            extensions: [\"qam\"]\n          },\n          \"application/vnd.epson.salt\": {\n            source: \"iana\",\n            extensions: [\"slt\"]\n          },\n          \"application/vnd.epson.ssf\": {\n            source: \"iana\",\n            extensions: [\"ssf\"]\n          },\n          \"application/vnd.ericsson.quickcall\": {\n            source: \"iana\"\n          },\n          \"application/vnd.espass-espass+zip\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/vnd.eszigno3+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"es3\", \"et3\"]\n          },\n          \"application/vnd.etsi.aoc+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.etsi.asic-e+zip\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/vnd.etsi.asic-s+zip\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/vnd.etsi.cug+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.etsi.iptvcommand+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.etsi.iptvdiscovery+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.etsi.iptvprofile+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.etsi.iptvsad-bc+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.etsi.iptvsad-cod+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.etsi.iptvsad-npvr+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.etsi.iptvservice+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.etsi.iptvsync+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.etsi.iptvueprofile+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.etsi.mcid+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.etsi.mheg5\": {\n            source: \"iana\"\n          },\n          \"application/vnd.etsi.overload-control-policy-dataset+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.etsi.pstn+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.etsi.sci+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.etsi.simservs+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.etsi.timestamp-token\": {\n            source: \"iana\"\n          },\n          \"application/vnd.etsi.tsl+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.etsi.tsl.der\": {\n            source: \"iana\"\n          },\n          \"application/vnd.eu.kasparian.car+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.eudora.data\": {\n            source: \"iana\"\n          },\n          \"application/vnd.evolv.ecig.profile\": {\n            source: \"iana\"\n          },\n          \"application/vnd.evolv.ecig.settings\": {\n            source: \"iana\"\n          },\n          \"application/vnd.evolv.ecig.theme\": {\n            source: \"iana\"\n          },\n          \"application/vnd.exstream-empower+zip\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/vnd.exstream-package\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ezpix-album\": {\n            source: \"iana\",\n            extensions: [\"ez2\"]\n          },\n          \"application/vnd.ezpix-package\": {\n            source: \"iana\",\n            extensions: [\"ez3\"]\n          },\n          \"application/vnd.f-secure.mobile\": {\n            source: \"iana\"\n          },\n          \"application/vnd.familysearch.gedcom+zip\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/vnd.fastcopy-disk-image\": {\n            source: \"iana\"\n          },\n          \"application/vnd.fdf\": {\n            source: \"iana\",\n            extensions: [\"fdf\"]\n          },\n          \"application/vnd.fdsn.mseed\": {\n            source: \"iana\",\n            extensions: [\"mseed\"]\n          },\n          \"application/vnd.fdsn.seed\": {\n            source: \"iana\",\n            extensions: [\"seed\", \"dataless\"]\n          },\n          \"application/vnd.ffsns\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ficlab.flb+zip\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/vnd.filmit.zfc\": {\n            source: \"iana\"\n          },\n          \"application/vnd.fints\": {\n            source: \"iana\"\n          },\n          \"application/vnd.firemonkeys.cloudcell\": {\n            source: \"iana\"\n          },\n          \"application/vnd.flographit\": {\n            source: \"iana\",\n            extensions: [\"gph\"]\n          },\n          \"application/vnd.fluxtime.clip\": {\n            source: \"iana\",\n            extensions: [\"ftc\"]\n          },\n          \"application/vnd.font-fontforge-sfd\": {\n            source: \"iana\"\n          },\n          \"application/vnd.framemaker\": {\n            source: \"iana\",\n            extensions: [\"fm\", \"frame\", \"maker\", \"book\"]\n          },\n          \"application/vnd.frogans.fnc\": {\n            source: \"iana\",\n            extensions: [\"fnc\"]\n          },\n          \"application/vnd.frogans.ltf\": {\n            source: \"iana\",\n            extensions: [\"ltf\"]\n          },\n          \"application/vnd.fsc.weblaunch\": {\n            source: \"iana\",\n            extensions: [\"fsc\"]\n          },\n          \"application/vnd.fujifilm.fb.docuworks\": {\n            source: \"iana\"\n          },\n          \"application/vnd.fujifilm.fb.docuworks.binder\": {\n            source: \"iana\"\n          },\n          \"application/vnd.fujifilm.fb.docuworks.container\": {\n            source: \"iana\"\n          },\n          \"application/vnd.fujifilm.fb.jfi+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.fujitsu.oasys\": {\n            source: \"iana\",\n            extensions: [\"oas\"]\n          },\n          \"application/vnd.fujitsu.oasys2\": {\n            source: \"iana\",\n            extensions: [\"oa2\"]\n          },\n          \"application/vnd.fujitsu.oasys3\": {\n            source: \"iana\",\n            extensions: [\"oa3\"]\n          },\n          \"application/vnd.fujitsu.oasysgp\": {\n            source: \"iana\",\n            extensions: [\"fg5\"]\n          },\n          \"application/vnd.fujitsu.oasysprs\": {\n            source: \"iana\",\n            extensions: [\"bh2\"]\n          },\n          \"application/vnd.fujixerox.art-ex\": {\n            source: \"iana\"\n          },\n          \"application/vnd.fujixerox.art4\": {\n            source: \"iana\"\n          },\n          \"application/vnd.fujixerox.ddd\": {\n            source: \"iana\",\n            extensions: [\"ddd\"]\n          },\n          \"application/vnd.fujixerox.docuworks\": {\n            source: \"iana\",\n            extensions: [\"xdw\"]\n          },\n          \"application/vnd.fujixerox.docuworks.binder\": {\n            source: \"iana\",\n            extensions: [\"xbd\"]\n          },\n          \"application/vnd.fujixerox.docuworks.container\": {\n            source: \"iana\"\n          },\n          \"application/vnd.fujixerox.hbpl\": {\n            source: \"iana\"\n          },\n          \"application/vnd.fut-misnet\": {\n            source: \"iana\"\n          },\n          \"application/vnd.futoin+cbor\": {\n            source: \"iana\"\n          },\n          \"application/vnd.futoin+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.fuzzysheet\": {\n            source: \"iana\",\n            extensions: [\"fzs\"]\n          },\n          \"application/vnd.genomatix.tuxedo\": {\n            source: \"iana\",\n            extensions: [\"txd\"]\n          },\n          \"application/vnd.gentics.grd+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.geo+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.geocube+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.geogebra.file\": {\n            source: \"iana\",\n            extensions: [\"ggb\"]\n          },\n          \"application/vnd.geogebra.slides\": {\n            source: \"iana\"\n          },\n          \"application/vnd.geogebra.tool\": {\n            source: \"iana\",\n            extensions: [\"ggt\"]\n          },\n          \"application/vnd.geometry-explorer\": {\n            source: \"iana\",\n            extensions: [\"gex\", \"gre\"]\n          },\n          \"application/vnd.geonext\": {\n            source: \"iana\",\n            extensions: [\"gxt\"]\n          },\n          \"application/vnd.geoplan\": {\n            source: \"iana\",\n            extensions: [\"g2w\"]\n          },\n          \"application/vnd.geospace\": {\n            source: \"iana\",\n            extensions: [\"g3w\"]\n          },\n          \"application/vnd.gerber\": {\n            source: \"iana\"\n          },\n          \"application/vnd.globalplatform.card-content-mgt\": {\n            source: \"iana\"\n          },\n          \"application/vnd.globalplatform.card-content-mgt-response\": {\n            source: \"iana\"\n          },\n          \"application/vnd.gmx\": {\n            source: \"iana\",\n            extensions: [\"gmx\"]\n          },\n          \"application/vnd.google-apps.document\": {\n            compressible: false,\n            extensions: [\"gdoc\"]\n          },\n          \"application/vnd.google-apps.presentation\": {\n            compressible: false,\n            extensions: [\"gslides\"]\n          },\n          \"application/vnd.google-apps.spreadsheet\": {\n            compressible: false,\n            extensions: [\"gsheet\"]\n          },\n          \"application/vnd.google-earth.kml+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"kml\"]\n          },\n          \"application/vnd.google-earth.kmz\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"kmz\"]\n          },\n          \"application/vnd.gov.sk.e-form+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.gov.sk.e-form+zip\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/vnd.gov.sk.xmldatacontainer+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.grafeq\": {\n            source: \"iana\",\n            extensions: [\"gqf\", \"gqs\"]\n          },\n          \"application/vnd.gridmp\": {\n            source: \"iana\"\n          },\n          \"application/vnd.groove-account\": {\n            source: \"iana\",\n            extensions: [\"gac\"]\n          },\n          \"application/vnd.groove-help\": {\n            source: \"iana\",\n            extensions: [\"ghf\"]\n          },\n          \"application/vnd.groove-identity-message\": {\n            source: \"iana\",\n            extensions: [\"gim\"]\n          },\n          \"application/vnd.groove-injector\": {\n            source: \"iana\",\n            extensions: [\"grv\"]\n          },\n          \"application/vnd.groove-tool-message\": {\n            source: \"iana\",\n            extensions: [\"gtm\"]\n          },\n          \"application/vnd.groove-tool-template\": {\n            source: \"iana\",\n            extensions: [\"tpl\"]\n          },\n          \"application/vnd.groove-vcard\": {\n            source: \"iana\",\n            extensions: [\"vcg\"]\n          },\n          \"application/vnd.hal+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.hal+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"hal\"]\n          },\n          \"application/vnd.handheld-entertainment+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"zmm\"]\n          },\n          \"application/vnd.hbci\": {\n            source: \"iana\",\n            extensions: [\"hbci\"]\n          },\n          \"application/vnd.hc+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.hcl-bireports\": {\n            source: \"iana\"\n          },\n          \"application/vnd.hdt\": {\n            source: \"iana\"\n          },\n          \"application/vnd.heroku+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.hhe.lesson-player\": {\n            source: \"iana\",\n            extensions: [\"les\"]\n          },\n          \"application/vnd.hl7cda+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true\n          },\n          \"application/vnd.hl7v2+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true\n          },\n          \"application/vnd.hp-hpgl\": {\n            source: \"iana\",\n            extensions: [\"hpgl\"]\n          },\n          \"application/vnd.hp-hpid\": {\n            source: \"iana\",\n            extensions: [\"hpid\"]\n          },\n          \"application/vnd.hp-hps\": {\n            source: \"iana\",\n            extensions: [\"hps\"]\n          },\n          \"application/vnd.hp-jlyt\": {\n            source: \"iana\",\n            extensions: [\"jlt\"]\n          },\n          \"application/vnd.hp-pcl\": {\n            source: \"iana\",\n            extensions: [\"pcl\"]\n          },\n          \"application/vnd.hp-pclxl\": {\n            source: \"iana\",\n            extensions: [\"pclxl\"]\n          },\n          \"application/vnd.httphone\": {\n            source: \"iana\"\n          },\n          \"application/vnd.hydrostatix.sof-data\": {\n            source: \"iana\",\n            extensions: [\"sfd-hdstx\"]\n          },\n          \"application/vnd.hyper+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.hyper-item+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.hyperdrive+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.hzn-3d-crossword\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ibm.afplinedata\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ibm.electronic-media\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ibm.minipay\": {\n            source: \"iana\",\n            extensions: [\"mpy\"]\n          },\n          \"application/vnd.ibm.modcap\": {\n            source: \"iana\",\n            extensions: [\"afp\", \"listafp\", \"list3820\"]\n          },\n          \"application/vnd.ibm.rights-management\": {\n            source: \"iana\",\n            extensions: [\"irm\"]\n          },\n          \"application/vnd.ibm.secure-container\": {\n            source: \"iana\",\n            extensions: [\"sc\"]\n          },\n          \"application/vnd.iccprofile\": {\n            source: \"iana\",\n            extensions: [\"icc\", \"icm\"]\n          },\n          \"application/vnd.ieee.1905\": {\n            source: \"iana\"\n          },\n          \"application/vnd.igloader\": {\n            source: \"iana\",\n            extensions: [\"igl\"]\n          },\n          \"application/vnd.imagemeter.folder+zip\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/vnd.imagemeter.image+zip\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/vnd.immervision-ivp\": {\n            source: \"iana\",\n            extensions: [\"ivp\"]\n          },\n          \"application/vnd.immervision-ivu\": {\n            source: \"iana\",\n            extensions: [\"ivu\"]\n          },\n          \"application/vnd.ims.imsccv1p1\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ims.imsccv1p2\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ims.imsccv1p3\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ims.lis.v2.result+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.ims.lti.v2.toolconsumerprofile+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.ims.lti.v2.toolproxy+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.ims.lti.v2.toolproxy.id+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.ims.lti.v2.toolsettings+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.ims.lti.v2.toolsettings.simple+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.informedcontrol.rms+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.informix-visionary\": {\n            source: \"iana\"\n          },\n          \"application/vnd.infotech.project\": {\n            source: \"iana\"\n          },\n          \"application/vnd.infotech.project+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.innopath.wamp.notification\": {\n            source: \"iana\"\n          },\n          \"application/vnd.insors.igm\": {\n            source: \"iana\",\n            extensions: [\"igm\"]\n          },\n          \"application/vnd.intercon.formnet\": {\n            source: \"iana\",\n            extensions: [\"xpw\", \"xpx\"]\n          },\n          \"application/vnd.intergeo\": {\n            source: \"iana\",\n            extensions: [\"i2g\"]\n          },\n          \"application/vnd.intertrust.digibox\": {\n            source: \"iana\"\n          },\n          \"application/vnd.intertrust.nncp\": {\n            source: \"iana\"\n          },\n          \"application/vnd.intu.qbo\": {\n            source: \"iana\",\n            extensions: [\"qbo\"]\n          },\n          \"application/vnd.intu.qfx\": {\n            source: \"iana\",\n            extensions: [\"qfx\"]\n          },\n          \"application/vnd.iptc.g2.catalogitem+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.iptc.g2.conceptitem+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.iptc.g2.knowledgeitem+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.iptc.g2.newsitem+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.iptc.g2.newsmessage+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.iptc.g2.packageitem+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.iptc.g2.planningitem+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.ipunplugged.rcprofile\": {\n            source: \"iana\",\n            extensions: [\"rcprofile\"]\n          },\n          \"application/vnd.irepository.package+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"irp\"]\n          },\n          \"application/vnd.is-xpr\": {\n            source: \"iana\",\n            extensions: [\"xpr\"]\n          },\n          \"application/vnd.isac.fcs\": {\n            source: \"iana\",\n            extensions: [\"fcs\"]\n          },\n          \"application/vnd.iso11783-10+zip\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/vnd.jam\": {\n            source: \"iana\",\n            extensions: [\"jam\"]\n          },\n          \"application/vnd.japannet-directory-service\": {\n            source: \"iana\"\n          },\n          \"application/vnd.japannet-jpnstore-wakeup\": {\n            source: \"iana\"\n          },\n          \"application/vnd.japannet-payment-wakeup\": {\n            source: \"iana\"\n          },\n          \"application/vnd.japannet-registration\": {\n            source: \"iana\"\n          },\n          \"application/vnd.japannet-registration-wakeup\": {\n            source: \"iana\"\n          },\n          \"application/vnd.japannet-setstore-wakeup\": {\n            source: \"iana\"\n          },\n          \"application/vnd.japannet-verification\": {\n            source: \"iana\"\n          },\n          \"application/vnd.japannet-verification-wakeup\": {\n            source: \"iana\"\n          },\n          \"application/vnd.jcp.javame.midlet-rms\": {\n            source: \"iana\",\n            extensions: [\"rms\"]\n          },\n          \"application/vnd.jisp\": {\n            source: \"iana\",\n            extensions: [\"jisp\"]\n          },\n          \"application/vnd.joost.joda-archive\": {\n            source: \"iana\",\n            extensions: [\"joda\"]\n          },\n          \"application/vnd.jsk.isdn-ngn\": {\n            source: \"iana\"\n          },\n          \"application/vnd.kahootz\": {\n            source: \"iana\",\n            extensions: [\"ktz\", \"ktr\"]\n          },\n          \"application/vnd.kde.karbon\": {\n            source: \"iana\",\n            extensions: [\"karbon\"]\n          },\n          \"application/vnd.kde.kchart\": {\n            source: \"iana\",\n            extensions: [\"chrt\"]\n          },\n          \"application/vnd.kde.kformula\": {\n            source: \"iana\",\n            extensions: [\"kfo\"]\n          },\n          \"application/vnd.kde.kivio\": {\n            source: \"iana\",\n            extensions: [\"flw\"]\n          },\n          \"application/vnd.kde.kontour\": {\n            source: \"iana\",\n            extensions: [\"kon\"]\n          },\n          \"application/vnd.kde.kpresenter\": {\n            source: \"iana\",\n            extensions: [\"kpr\", \"kpt\"]\n          },\n          \"application/vnd.kde.kspread\": {\n            source: \"iana\",\n            extensions: [\"ksp\"]\n          },\n          \"application/vnd.kde.kword\": {\n            source: \"iana\",\n            extensions: [\"kwd\", \"kwt\"]\n          },\n          \"application/vnd.kenameaapp\": {\n            source: \"iana\",\n            extensions: [\"htke\"]\n          },\n          \"application/vnd.kidspiration\": {\n            source: \"iana\",\n            extensions: [\"kia\"]\n          },\n          \"application/vnd.kinar\": {\n            source: \"iana\",\n            extensions: [\"kne\", \"knp\"]\n          },\n          \"application/vnd.koan\": {\n            source: \"iana\",\n            extensions: [\"skp\", \"skd\", \"skt\", \"skm\"]\n          },\n          \"application/vnd.kodak-descriptor\": {\n            source: \"iana\",\n            extensions: [\"sse\"]\n          },\n          \"application/vnd.las\": {\n            source: \"iana\"\n          },\n          \"application/vnd.las.las+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.las.las+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"lasxml\"]\n          },\n          \"application/vnd.laszip\": {\n            source: \"iana\"\n          },\n          \"application/vnd.leap+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.liberty-request+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.llamagraphics.life-balance.desktop\": {\n            source: \"iana\",\n            extensions: [\"lbd\"]\n          },\n          \"application/vnd.llamagraphics.life-balance.exchange+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"lbe\"]\n          },\n          \"application/vnd.logipipe.circuit+zip\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/vnd.loom\": {\n            source: \"iana\"\n          },\n          \"application/vnd.lotus-1-2-3\": {\n            source: \"iana\",\n            extensions: [\"123\"]\n          },\n          \"application/vnd.lotus-approach\": {\n            source: \"iana\",\n            extensions: [\"apr\"]\n          },\n          \"application/vnd.lotus-freelance\": {\n            source: \"iana\",\n            extensions: [\"pre\"]\n          },\n          \"application/vnd.lotus-notes\": {\n            source: \"iana\",\n            extensions: [\"nsf\"]\n          },\n          \"application/vnd.lotus-organizer\": {\n            source: \"iana\",\n            extensions: [\"org\"]\n          },\n          \"application/vnd.lotus-screencam\": {\n            source: \"iana\",\n            extensions: [\"scm\"]\n          },\n          \"application/vnd.lotus-wordpro\": {\n            source: \"iana\",\n            extensions: [\"lwp\"]\n          },\n          \"application/vnd.macports.portpkg\": {\n            source: \"iana\",\n            extensions: [\"portpkg\"]\n          },\n          \"application/vnd.mapbox-vector-tile\": {\n            source: \"iana\",\n            extensions: [\"mvt\"]\n          },\n          \"application/vnd.marlin.drm.actiontoken+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.marlin.drm.conftoken+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.marlin.drm.license+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.marlin.drm.mdcf\": {\n            source: \"iana\"\n          },\n          \"application/vnd.mason+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.maxar.archive.3tz+zip\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"application/vnd.maxmind.maxmind-db\": {\n            source: \"iana\"\n          },\n          \"application/vnd.mcd\": {\n            source: \"iana\",\n            extensions: [\"mcd\"]\n          },\n          \"application/vnd.medcalcdata\": {\n            source: \"iana\",\n            extensions: [\"mc1\"]\n          },\n          \"application/vnd.mediastation.cdkey\": {\n            source: \"iana\",\n            extensions: [\"cdkey\"]\n          },\n          \"application/vnd.meridian-slingshot\": {\n            source: \"iana\"\n          },\n          \"application/vnd.mfer\": {\n            source: \"iana\",\n            extensions: [\"mwf\"]\n          },\n          \"application/vnd.mfmp\": {\n            source: \"iana\",\n            extensions: [\"mfm\"]\n          },\n          \"application/vnd.micro+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.micrografx.flo\": {\n            source: \"iana\",\n            extensions: [\"flo\"]\n          },\n          \"application/vnd.micrografx.igx\": {\n            source: \"iana\",\n            extensions: [\"igx\"]\n          },\n          \"application/vnd.microsoft.portable-executable\": {\n            source: \"iana\"\n          },\n          \"application/vnd.microsoft.windows.thumbnail-cache\": {\n            source: \"iana\"\n          },\n          \"application/vnd.miele+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.mif\": {\n            source: \"iana\",\n            extensions: [\"mif\"]\n          },\n          \"application/vnd.minisoft-hp3000-save\": {\n            source: \"iana\"\n          },\n          \"application/vnd.mitsubishi.misty-guard.trustweb\": {\n            source: \"iana\"\n          },\n          \"application/vnd.mobius.daf\": {\n            source: \"iana\",\n            extensions: [\"daf\"]\n          },\n          \"application/vnd.mobius.dis\": {\n            source: \"iana\",\n            extensions: [\"dis\"]\n          },\n          \"application/vnd.mobius.mbk\": {\n            source: \"iana\",\n            extensions: [\"mbk\"]\n          },\n          \"application/vnd.mobius.mqy\": {\n            source: \"iana\",\n            extensions: [\"mqy\"]\n          },\n          \"application/vnd.mobius.msl\": {\n            source: \"iana\",\n            extensions: [\"msl\"]\n          },\n          \"application/vnd.mobius.plc\": {\n            source: \"iana\",\n            extensions: [\"plc\"]\n          },\n          \"application/vnd.mobius.txf\": {\n            source: \"iana\",\n            extensions: [\"txf\"]\n          },\n          \"application/vnd.mophun.application\": {\n            source: \"iana\",\n            extensions: [\"mpn\"]\n          },\n          \"application/vnd.mophun.certificate\": {\n            source: \"iana\",\n            extensions: [\"mpc\"]\n          },\n          \"application/vnd.motorola.flexsuite\": {\n            source: \"iana\"\n          },\n          \"application/vnd.motorola.flexsuite.adsi\": {\n            source: \"iana\"\n          },\n          \"application/vnd.motorola.flexsuite.fis\": {\n            source: \"iana\"\n          },\n          \"application/vnd.motorola.flexsuite.gotap\": {\n            source: \"iana\"\n          },\n          \"application/vnd.motorola.flexsuite.kmr\": {\n            source: \"iana\"\n          },\n          \"application/vnd.motorola.flexsuite.ttc\": {\n            source: \"iana\"\n          },\n          \"application/vnd.motorola.flexsuite.wem\": {\n            source: \"iana\"\n          },\n          \"application/vnd.motorola.iprm\": {\n            source: \"iana\"\n          },\n          \"application/vnd.mozilla.xul+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"xul\"]\n          },\n          \"application/vnd.ms-3mfdocument\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ms-artgalry\": {\n            source: \"iana\",\n            extensions: [\"cil\"]\n          },\n          \"application/vnd.ms-asf\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ms-cab-compressed\": {\n            source: \"iana\",\n            extensions: [\"cab\"]\n          },\n          \"application/vnd.ms-color.iccprofile\": {\n            source: \"apache\"\n          },\n          \"application/vnd.ms-excel\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"xls\", \"xlm\", \"xla\", \"xlc\", \"xlt\", \"xlw\"]\n          },\n          \"application/vnd.ms-excel.addin.macroenabled.12\": {\n            source: \"iana\",\n            extensions: [\"xlam\"]\n          },\n          \"application/vnd.ms-excel.sheet.binary.macroenabled.12\": {\n            source: \"iana\",\n            extensions: [\"xlsb\"]\n          },\n          \"application/vnd.ms-excel.sheet.macroenabled.12\": {\n            source: \"iana\",\n            extensions: [\"xlsm\"]\n          },\n          \"application/vnd.ms-excel.template.macroenabled.12\": {\n            source: \"iana\",\n            extensions: [\"xltm\"]\n          },\n          \"application/vnd.ms-fontobject\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"eot\"]\n          },\n          \"application/vnd.ms-htmlhelp\": {\n            source: \"iana\",\n            extensions: [\"chm\"]\n          },\n          \"application/vnd.ms-ims\": {\n            source: \"iana\",\n            extensions: [\"ims\"]\n          },\n          \"application/vnd.ms-lrm\": {\n            source: \"iana\",\n            extensions: [\"lrm\"]\n          },\n          \"application/vnd.ms-office.activex+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.ms-officetheme\": {\n            source: \"iana\",\n            extensions: [\"thmx\"]\n          },\n          \"application/vnd.ms-opentype\": {\n            source: \"apache\",\n            compressible: true\n          },\n          \"application/vnd.ms-outlook\": {\n            compressible: false,\n            extensions: [\"msg\"]\n          },\n          \"application/vnd.ms-package.obfuscated-opentype\": {\n            source: \"apache\"\n          },\n          \"application/vnd.ms-pki.seccat\": {\n            source: \"apache\",\n            extensions: [\"cat\"]\n          },\n          \"application/vnd.ms-pki.stl\": {\n            source: \"apache\",\n            extensions: [\"stl\"]\n          },\n          \"application/vnd.ms-playready.initiator+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.ms-powerpoint\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"ppt\", \"pps\", \"pot\"]\n          },\n          \"application/vnd.ms-powerpoint.addin.macroenabled.12\": {\n            source: \"iana\",\n            extensions: [\"ppam\"]\n          },\n          \"application/vnd.ms-powerpoint.presentation.macroenabled.12\": {\n            source: \"iana\",\n            extensions: [\"pptm\"]\n          },\n          \"application/vnd.ms-powerpoint.slide.macroenabled.12\": {\n            source: \"iana\",\n            extensions: [\"sldm\"]\n          },\n          \"application/vnd.ms-powerpoint.slideshow.macroenabled.12\": {\n            source: \"iana\",\n            extensions: [\"ppsm\"]\n          },\n          \"application/vnd.ms-powerpoint.template.macroenabled.12\": {\n            source: \"iana\",\n            extensions: [\"potm\"]\n          },\n          \"application/vnd.ms-printdevicecapabilities+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.ms-printing.printticket+xml\": {\n            source: \"apache\",\n            compressible: true\n          },\n          \"application/vnd.ms-printschematicket+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.ms-project\": {\n            source: \"iana\",\n            extensions: [\"mpp\", \"mpt\"]\n          },\n          \"application/vnd.ms-tnef\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ms-windows.devicepairing\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ms-windows.nwprinting.oob\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ms-windows.printerpairing\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ms-windows.wsd.oob\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ms-wmdrm.lic-chlg-req\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ms-wmdrm.lic-resp\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ms-wmdrm.meter-chlg-req\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ms-wmdrm.meter-resp\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ms-word.document.macroenabled.12\": {\n            source: \"iana\",\n            extensions: [\"docm\"]\n          },\n          \"application/vnd.ms-word.template.macroenabled.12\": {\n            source: \"iana\",\n            extensions: [\"dotm\"]\n          },\n          \"application/vnd.ms-works\": {\n            source: \"iana\",\n            extensions: [\"wps\", \"wks\", \"wcm\", \"wdb\"]\n          },\n          \"application/vnd.ms-wpl\": {\n            source: \"iana\",\n            extensions: [\"wpl\"]\n          },\n          \"application/vnd.ms-xpsdocument\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"xps\"]\n          },\n          \"application/vnd.msa-disk-image\": {\n            source: \"iana\"\n          },\n          \"application/vnd.mseq\": {\n            source: \"iana\",\n            extensions: [\"mseq\"]\n          },\n          \"application/vnd.msign\": {\n            source: \"iana\"\n          },\n          \"application/vnd.multiad.creator\": {\n            source: \"iana\"\n          },\n          \"application/vnd.multiad.creator.cif\": {\n            source: \"iana\"\n          },\n          \"application/vnd.music-niff\": {\n            source: \"iana\"\n          },\n          \"application/vnd.musician\": {\n            source: \"iana\",\n            extensions: [\"mus\"]\n          },\n          \"application/vnd.muvee.style\": {\n            source: \"iana\",\n            extensions: [\"msty\"]\n          },\n          \"application/vnd.mynfc\": {\n            source: \"iana\",\n            extensions: [\"taglet\"]\n          },\n          \"application/vnd.nacamar.ybrid+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.ncd.control\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ncd.reference\": {\n            source: \"iana\"\n          },\n          \"application/vnd.nearst.inv+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.nebumind.line\": {\n            source: \"iana\"\n          },\n          \"application/vnd.nervana\": {\n            source: \"iana\"\n          },\n          \"application/vnd.netfpx\": {\n            source: \"iana\"\n          },\n          \"application/vnd.neurolanguage.nlu\": {\n            source: \"iana\",\n            extensions: [\"nlu\"]\n          },\n          \"application/vnd.nimn\": {\n            source: \"iana\"\n          },\n          \"application/vnd.nintendo.nitro.rom\": {\n            source: \"iana\"\n          },\n          \"application/vnd.nintendo.snes.rom\": {\n            source: \"iana\"\n          },\n          \"application/vnd.nitf\": {\n            source: \"iana\",\n            extensions: [\"ntf\", \"nitf\"]\n          },\n          \"application/vnd.noblenet-directory\": {\n            source: \"iana\",\n            extensions: [\"nnd\"]\n          },\n          \"application/vnd.noblenet-sealer\": {\n            source: \"iana\",\n            extensions: [\"nns\"]\n          },\n          \"application/vnd.noblenet-web\": {\n            source: \"iana\",\n            extensions: [\"nnw\"]\n          },\n          \"application/vnd.nokia.catalogs\": {\n            source: \"iana\"\n          },\n          \"application/vnd.nokia.conml+wbxml\": {\n            source: \"iana\"\n          },\n          \"application/vnd.nokia.conml+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.nokia.iptv.config+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.nokia.isds-radio-presets\": {\n            source: \"iana\"\n          },\n          \"application/vnd.nokia.landmark+wbxml\": {\n            source: \"iana\"\n          },\n          \"application/vnd.nokia.landmark+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.nokia.landmarkcollection+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.nokia.n-gage.ac+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"ac\"]\n          },\n          \"application/vnd.nokia.n-gage.data\": {\n            source: \"iana\",\n            extensions: [\"ngdat\"]\n          },\n          \"application/vnd.nokia.n-gage.symbian.install\": {\n            source: \"iana\",\n            extensions: [\"n-gage\"]\n          },\n          \"application/vnd.nokia.ncd\": {\n            source: \"iana\"\n          },\n          \"application/vnd.nokia.pcd+wbxml\": {\n            source: \"iana\"\n          },\n          \"application/vnd.nokia.pcd+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.nokia.radio-preset\": {\n            source: \"iana\",\n            extensions: [\"rpst\"]\n          },\n          \"application/vnd.nokia.radio-presets\": {\n            source: \"iana\",\n            extensions: [\"rpss\"]\n          },\n          \"application/vnd.novadigm.edm\": {\n            source: \"iana\",\n            extensions: [\"edm\"]\n          },\n          \"application/vnd.novadigm.edx\": {\n            source: \"iana\",\n            extensions: [\"edx\"]\n          },\n          \"application/vnd.novadigm.ext\": {\n            source: \"iana\",\n            extensions: [\"ext\"]\n          },\n          \"application/vnd.ntt-local.content-share\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ntt-local.file-transfer\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ntt-local.ogw_remote-access\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ntt-local.sip-ta_remote\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ntt-local.sip-ta_tcp_stream\": {\n            source: \"iana\"\n          },\n          \"application/vnd.oasis.opendocument.chart\": {\n            source: \"iana\",\n            extensions: [\"odc\"]\n          },\n          \"application/vnd.oasis.opendocument.chart-template\": {\n            source: \"iana\",\n            extensions: [\"otc\"]\n          },\n          \"application/vnd.oasis.opendocument.database\": {\n            source: \"iana\",\n            extensions: [\"odb\"]\n          },\n          \"application/vnd.oasis.opendocument.formula\": {\n            source: \"iana\",\n            extensions: [\"odf\"]\n          },\n          \"application/vnd.oasis.opendocument.formula-template\": {\n            source: \"iana\",\n            extensions: [\"odft\"]\n          },\n          \"application/vnd.oasis.opendocument.graphics\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"odg\"]\n          },\n          \"application/vnd.oasis.opendocument.graphics-template\": {\n            source: \"iana\",\n            extensions: [\"otg\"]\n          },\n          \"application/vnd.oasis.opendocument.image\": {\n            source: \"iana\",\n            extensions: [\"odi\"]\n          },\n          \"application/vnd.oasis.opendocument.image-template\": {\n            source: \"iana\",\n            extensions: [\"oti\"]\n          },\n          \"application/vnd.oasis.opendocument.presentation\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"odp\"]\n          },\n          \"application/vnd.oasis.opendocument.presentation-template\": {\n            source: \"iana\",\n            extensions: [\"otp\"]\n          },\n          \"application/vnd.oasis.opendocument.spreadsheet\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"ods\"]\n          },\n          \"application/vnd.oasis.opendocument.spreadsheet-template\": {\n            source: \"iana\",\n            extensions: [\"ots\"]\n          },\n          \"application/vnd.oasis.opendocument.text\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"odt\"]\n          },\n          \"application/vnd.oasis.opendocument.text-master\": {\n            source: \"iana\",\n            extensions: [\"odm\"]\n          },\n          \"application/vnd.oasis.opendocument.text-template\": {\n            source: \"iana\",\n            extensions: [\"ott\"]\n          },\n          \"application/vnd.oasis.opendocument.text-web\": {\n            source: \"iana\",\n            extensions: [\"oth\"]\n          },\n          \"application/vnd.obn\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ocf+cbor\": {\n            source: \"iana\"\n          },\n          \"application/vnd.oci.image.manifest.v1+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oftn.l10n+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oipf.contentaccessdownload+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oipf.contentaccessstreaming+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oipf.cspg-hexbinary\": {\n            source: \"iana\"\n          },\n          \"application/vnd.oipf.dae.svg+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oipf.dae.xhtml+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oipf.mippvcontrolmessage+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oipf.pae.gem\": {\n            source: \"iana\"\n          },\n          \"application/vnd.oipf.spdiscovery+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oipf.spdlist+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oipf.ueprofile+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oipf.userprofile+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.olpc-sugar\": {\n            source: \"iana\",\n            extensions: [\"xo\"]\n          },\n          \"application/vnd.oma-scws-config\": {\n            source: \"iana\"\n          },\n          \"application/vnd.oma-scws-http-request\": {\n            source: \"iana\"\n          },\n          \"application/vnd.oma-scws-http-response\": {\n            source: \"iana\"\n          },\n          \"application/vnd.oma.bcast.associated-procedure-parameter+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.bcast.drm-trigger+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.bcast.imd+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.bcast.ltkm\": {\n            source: \"iana\"\n          },\n          \"application/vnd.oma.bcast.notification+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.bcast.provisioningtrigger\": {\n            source: \"iana\"\n          },\n          \"application/vnd.oma.bcast.sgboot\": {\n            source: \"iana\"\n          },\n          \"application/vnd.oma.bcast.sgdd+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.bcast.sgdu\": {\n            source: \"iana\"\n          },\n          \"application/vnd.oma.bcast.simple-symbol-container\": {\n            source: \"iana\"\n          },\n          \"application/vnd.oma.bcast.smartcard-trigger+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.bcast.sprov+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.bcast.stkm\": {\n            source: \"iana\"\n          },\n          \"application/vnd.oma.cab-address-book+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.cab-feature-handler+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.cab-pcc+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.cab-subs-invite+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.cab-user-prefs+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.dcd\": {\n            source: \"iana\"\n          },\n          \"application/vnd.oma.dcdc\": {\n            source: \"iana\"\n          },\n          \"application/vnd.oma.dd2+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"dd2\"]\n          },\n          \"application/vnd.oma.drm.risd+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.group-usage-list+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.lwm2m+cbor\": {\n            source: \"iana\"\n          },\n          \"application/vnd.oma.lwm2m+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.lwm2m+tlv\": {\n            source: \"iana\"\n          },\n          \"application/vnd.oma.pal+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.poc.detailed-progress-report+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.poc.final-report+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.poc.groups+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.poc.invocation-descriptor+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.poc.optimized-progress-report+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.push\": {\n            source: \"iana\"\n          },\n          \"application/vnd.oma.scidm.messages+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oma.xcap-directory+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.omads-email+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true\n          },\n          \"application/vnd.omads-file+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true\n          },\n          \"application/vnd.omads-folder+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true\n          },\n          \"application/vnd.omaloc-supl-init\": {\n            source: \"iana\"\n          },\n          \"application/vnd.onepager\": {\n            source: \"iana\"\n          },\n          \"application/vnd.onepagertamp\": {\n            source: \"iana\"\n          },\n          \"application/vnd.onepagertamx\": {\n            source: \"iana\"\n          },\n          \"application/vnd.onepagertat\": {\n            source: \"iana\"\n          },\n          \"application/vnd.onepagertatp\": {\n            source: \"iana\"\n          },\n          \"application/vnd.onepagertatx\": {\n            source: \"iana\"\n          },\n          \"application/vnd.openblox.game+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"obgx\"]\n          },\n          \"application/vnd.openblox.game-binary\": {\n            source: \"iana\"\n          },\n          \"application/vnd.openeye.oeb\": {\n            source: \"iana\"\n          },\n          \"application/vnd.openofficeorg.extension\": {\n            source: \"apache\",\n            extensions: [\"oxt\"]\n          },\n          \"application/vnd.openstreetmap.data+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"osm\"]\n          },\n          \"application/vnd.opentimestamps.ots\": {\n            source: \"iana\"\n          },\n          \"application/vnd.openxmlformats-officedocument.custom-properties+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.customxmlproperties+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.drawing+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.extended-properties+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.comments+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.presentation\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"pptx\"]\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.slide\": {\n            source: \"iana\",\n            extensions: [\"sldx\"]\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.slide+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.slideshow\": {\n            source: \"iana\",\n            extensions: [\"ppsx\"]\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.tags+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.template\": {\n            source: \"iana\",\n            extensions: [\"potx\"]\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"xlsx\"]\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.template\": {\n            source: \"iana\",\n            extensions: [\"xltx\"]\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.theme+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.themeoverride+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.vmldrawing\": {\n            source: \"iana\"\n          },\n          \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"docx\"]\n          },\n          \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.wordprocessingml.template\": {\n            source: \"iana\",\n            extensions: [\"dotx\"]\n          },\n          \"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-package.core-properties+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.openxmlformats-package.relationships+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oracle.resource+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.orange.indata\": {\n            source: \"iana\"\n          },\n          \"application/vnd.osa.netdeploy\": {\n            source: \"iana\"\n          },\n          \"application/vnd.osgeo.mapguide.package\": {\n            source: \"iana\",\n            extensions: [\"mgp\"]\n          },\n          \"application/vnd.osgi.bundle\": {\n            source: \"iana\"\n          },\n          \"application/vnd.osgi.dp\": {\n            source: \"iana\",\n            extensions: [\"dp\"]\n          },\n          \"application/vnd.osgi.subsystem\": {\n            source: \"iana\",\n            extensions: [\"esa\"]\n          },\n          \"application/vnd.otps.ct-kip+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.oxli.countgraph\": {\n            source: \"iana\"\n          },\n          \"application/vnd.pagerduty+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.palm\": {\n            source: \"iana\",\n            extensions: [\"pdb\", \"pqa\", \"oprc\"]\n          },\n          \"application/vnd.panoply\": {\n            source: \"iana\"\n          },\n          \"application/vnd.paos.xml\": {\n            source: \"iana\"\n          },\n          \"application/vnd.patentdive\": {\n            source: \"iana\"\n          },\n          \"application/vnd.patientecommsdoc\": {\n            source: \"iana\"\n          },\n          \"application/vnd.pawaafile\": {\n            source: \"iana\",\n            extensions: [\"paw\"]\n          },\n          \"application/vnd.pcos\": {\n            source: \"iana\"\n          },\n          \"application/vnd.pg.format\": {\n            source: \"iana\",\n            extensions: [\"str\"]\n          },\n          \"application/vnd.pg.osasli\": {\n            source: \"iana\",\n            extensions: [\"ei6\"]\n          },\n          \"application/vnd.piaccess.application-licence\": {\n            source: \"iana\"\n          },\n          \"application/vnd.picsel\": {\n            source: \"iana\",\n            extensions: [\"efif\"]\n          },\n          \"application/vnd.pmi.widget\": {\n            source: \"iana\",\n            extensions: [\"wg\"]\n          },\n          \"application/vnd.poc.group-advertisement+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.pocketlearn\": {\n            source: \"iana\",\n            extensions: [\"plf\"]\n          },\n          \"application/vnd.powerbuilder6\": {\n            source: \"iana\",\n            extensions: [\"pbd\"]\n          },\n          \"application/vnd.powerbuilder6-s\": {\n            source: \"iana\"\n          },\n          \"application/vnd.powerbuilder7\": {\n            source: \"iana\"\n          },\n          \"application/vnd.powerbuilder7-s\": {\n            source: \"iana\"\n          },\n          \"application/vnd.powerbuilder75\": {\n            source: \"iana\"\n          },\n          \"application/vnd.powerbuilder75-s\": {\n            source: \"iana\"\n          },\n          \"application/vnd.preminet\": {\n            source: \"iana\"\n          },\n          \"application/vnd.previewsystems.box\": {\n            source: \"iana\",\n            extensions: [\"box\"]\n          },\n          \"application/vnd.proteus.magazine\": {\n            source: \"iana\",\n            extensions: [\"mgz\"]\n          },\n          \"application/vnd.psfs\": {\n            source: \"iana\"\n          },\n          \"application/vnd.publishare-delta-tree\": {\n            source: \"iana\",\n            extensions: [\"qps\"]\n          },\n          \"application/vnd.pvi.ptid1\": {\n            source: \"iana\",\n            extensions: [\"ptid\"]\n          },\n          \"application/vnd.pwg-multiplexed\": {\n            source: \"iana\"\n          },\n          \"application/vnd.pwg-xhtml-print+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.qualcomm.brew-app-res\": {\n            source: \"iana\"\n          },\n          \"application/vnd.quarantainenet\": {\n            source: \"iana\"\n          },\n          \"application/vnd.quark.quarkxpress\": {\n            source: \"iana\",\n            extensions: [\"qxd\", \"qxt\", \"qwd\", \"qwt\", \"qxl\", \"qxb\"]\n          },\n          \"application/vnd.quobject-quoxdocument\": {\n            source: \"iana\"\n          },\n          \"application/vnd.radisys.moml+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.radisys.msml+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.radisys.msml-audit+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.radisys.msml-audit-conf+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.radisys.msml-audit-conn+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.radisys.msml-audit-dialog+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.radisys.msml-audit-stream+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.radisys.msml-conf+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.radisys.msml-dialog+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.radisys.msml-dialog-base+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.radisys.msml-dialog-fax-detect+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.radisys.msml-dialog-fax-sendrecv+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.radisys.msml-dialog-group+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.radisys.msml-dialog-speech+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.radisys.msml-dialog-transform+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.rainstor.data\": {\n            source: \"iana\"\n          },\n          \"application/vnd.rapid\": {\n            source: \"iana\"\n          },\n          \"application/vnd.rar\": {\n            source: \"iana\",\n            extensions: [\"rar\"]\n          },\n          \"application/vnd.realvnc.bed\": {\n            source: \"iana\",\n            extensions: [\"bed\"]\n          },\n          \"application/vnd.recordare.musicxml\": {\n            source: \"iana\",\n            extensions: [\"mxl\"]\n          },\n          \"application/vnd.recordare.musicxml+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"musicxml\"]\n          },\n          \"application/vnd.renlearn.rlprint\": {\n            source: \"iana\"\n          },\n          \"application/vnd.resilient.logic\": {\n            source: \"iana\"\n          },\n          \"application/vnd.restful+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.rig.cryptonote\": {\n            source: \"iana\",\n            extensions: [\"cryptonote\"]\n          },\n          \"application/vnd.rim.cod\": {\n            source: \"apache\",\n            extensions: [\"cod\"]\n          },\n          \"application/vnd.rn-realmedia\": {\n            source: \"apache\",\n            extensions: [\"rm\"]\n          },\n          \"application/vnd.rn-realmedia-vbr\": {\n            source: \"apache\",\n            extensions: [\"rmvb\"]\n          },\n          \"application/vnd.route66.link66+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"link66\"]\n          },\n          \"application/vnd.rs-274x\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ruckus.download\": {\n            source: \"iana\"\n          },\n          \"application/vnd.s3sms\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sailingtracker.track\": {\n            source: \"iana\",\n            extensions: [\"st\"]\n          },\n          \"application/vnd.sar\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sbm.cid\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sbm.mid2\": {\n            source: \"iana\"\n          },\n          \"application/vnd.scribus\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sealed.3df\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sealed.csf\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sealed.doc\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sealed.eml\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sealed.mht\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sealed.net\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sealed.ppt\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sealed.tiff\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sealed.xls\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sealedmedia.softseal.html\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sealedmedia.softseal.pdf\": {\n            source: \"iana\"\n          },\n          \"application/vnd.seemail\": {\n            source: \"iana\",\n            extensions: [\"see\"]\n          },\n          \"application/vnd.seis+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.sema\": {\n            source: \"iana\",\n            extensions: [\"sema\"]\n          },\n          \"application/vnd.semd\": {\n            source: \"iana\",\n            extensions: [\"semd\"]\n          },\n          \"application/vnd.semf\": {\n            source: \"iana\",\n            extensions: [\"semf\"]\n          },\n          \"application/vnd.shade-save-file\": {\n            source: \"iana\"\n          },\n          \"application/vnd.shana.informed.formdata\": {\n            source: \"iana\",\n            extensions: [\"ifm\"]\n          },\n          \"application/vnd.shana.informed.formtemplate\": {\n            source: \"iana\",\n            extensions: [\"itp\"]\n          },\n          \"application/vnd.shana.informed.interchange\": {\n            source: \"iana\",\n            extensions: [\"iif\"]\n          },\n          \"application/vnd.shana.informed.package\": {\n            source: \"iana\",\n            extensions: [\"ipk\"]\n          },\n          \"application/vnd.shootproof+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.shopkick+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.shp\": {\n            source: \"iana\"\n          },\n          \"application/vnd.shx\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sigrok.session\": {\n            source: \"iana\"\n          },\n          \"application/vnd.simtech-mindmapper\": {\n            source: \"iana\",\n            extensions: [\"twd\", \"twds\"]\n          },\n          \"application/vnd.siren+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.smaf\": {\n            source: \"iana\",\n            extensions: [\"mmf\"]\n          },\n          \"application/vnd.smart.notebook\": {\n            source: \"iana\"\n          },\n          \"application/vnd.smart.teacher\": {\n            source: \"iana\",\n            extensions: [\"teacher\"]\n          },\n          \"application/vnd.snesdev-page-table\": {\n            source: \"iana\"\n          },\n          \"application/vnd.software602.filler.form+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"fo\"]\n          },\n          \"application/vnd.software602.filler.form-xml-zip\": {\n            source: \"iana\"\n          },\n          \"application/vnd.solent.sdkm+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"sdkm\", \"sdkd\"]\n          },\n          \"application/vnd.spotfire.dxp\": {\n            source: \"iana\",\n            extensions: [\"dxp\"]\n          },\n          \"application/vnd.spotfire.sfs\": {\n            source: \"iana\",\n            extensions: [\"sfs\"]\n          },\n          \"application/vnd.sqlite3\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sss-cod\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sss-dtf\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sss-ntf\": {\n            source: \"iana\"\n          },\n          \"application/vnd.stardivision.calc\": {\n            source: \"apache\",\n            extensions: [\"sdc\"]\n          },\n          \"application/vnd.stardivision.draw\": {\n            source: \"apache\",\n            extensions: [\"sda\"]\n          },\n          \"application/vnd.stardivision.impress\": {\n            source: \"apache\",\n            extensions: [\"sdd\"]\n          },\n          \"application/vnd.stardivision.math\": {\n            source: \"apache\",\n            extensions: [\"smf\"]\n          },\n          \"application/vnd.stardivision.writer\": {\n            source: \"apache\",\n            extensions: [\"sdw\", \"vor\"]\n          },\n          \"application/vnd.stardivision.writer-global\": {\n            source: \"apache\",\n            extensions: [\"sgl\"]\n          },\n          \"application/vnd.stepmania.package\": {\n            source: \"iana\",\n            extensions: [\"smzip\"]\n          },\n          \"application/vnd.stepmania.stepchart\": {\n            source: \"iana\",\n            extensions: [\"sm\"]\n          },\n          \"application/vnd.street-stream\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sun.wadl+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"wadl\"]\n          },\n          \"application/vnd.sun.xml.calc\": {\n            source: \"apache\",\n            extensions: [\"sxc\"]\n          },\n          \"application/vnd.sun.xml.calc.template\": {\n            source: \"apache\",\n            extensions: [\"stc\"]\n          },\n          \"application/vnd.sun.xml.draw\": {\n            source: \"apache\",\n            extensions: [\"sxd\"]\n          },\n          \"application/vnd.sun.xml.draw.template\": {\n            source: \"apache\",\n            extensions: [\"std\"]\n          },\n          \"application/vnd.sun.xml.impress\": {\n            source: \"apache\",\n            extensions: [\"sxi\"]\n          },\n          \"application/vnd.sun.xml.impress.template\": {\n            source: \"apache\",\n            extensions: [\"sti\"]\n          },\n          \"application/vnd.sun.xml.math\": {\n            source: \"apache\",\n            extensions: [\"sxm\"]\n          },\n          \"application/vnd.sun.xml.writer\": {\n            source: \"apache\",\n            extensions: [\"sxw\"]\n          },\n          \"application/vnd.sun.xml.writer.global\": {\n            source: \"apache\",\n            extensions: [\"sxg\"]\n          },\n          \"application/vnd.sun.xml.writer.template\": {\n            source: \"apache\",\n            extensions: [\"stw\"]\n          },\n          \"application/vnd.sus-calendar\": {\n            source: \"iana\",\n            extensions: [\"sus\", \"susp\"]\n          },\n          \"application/vnd.svd\": {\n            source: \"iana\",\n            extensions: [\"svd\"]\n          },\n          \"application/vnd.swiftview-ics\": {\n            source: \"iana\"\n          },\n          \"application/vnd.sycle+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.syft+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.symbian.install\": {\n            source: \"apache\",\n            extensions: [\"sis\", \"sisx\"]\n          },\n          \"application/vnd.syncml+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true,\n            extensions: [\"xsm\"]\n          },\n          \"application/vnd.syncml.dm+wbxml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            extensions: [\"bdm\"]\n          },\n          \"application/vnd.syncml.dm+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true,\n            extensions: [\"xdm\"]\n          },\n          \"application/vnd.syncml.dm.notification\": {\n            source: \"iana\"\n          },\n          \"application/vnd.syncml.dmddf+wbxml\": {\n            source: \"iana\"\n          },\n          \"application/vnd.syncml.dmddf+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true,\n            extensions: [\"ddf\"]\n          },\n          \"application/vnd.syncml.dmtnds+wbxml\": {\n            source: \"iana\"\n          },\n          \"application/vnd.syncml.dmtnds+xml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true\n          },\n          \"application/vnd.syncml.ds.notification\": {\n            source: \"iana\"\n          },\n          \"application/vnd.tableschema+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.tao.intent-module-archive\": {\n            source: \"iana\",\n            extensions: [\"tao\"]\n          },\n          \"application/vnd.tcpdump.pcap\": {\n            source: \"iana\",\n            extensions: [\"pcap\", \"cap\", \"dmp\"]\n          },\n          \"application/vnd.think-cell.ppttc+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.tmd.mediaflex.api+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.tml\": {\n            source: \"iana\"\n          },\n          \"application/vnd.tmobile-livetv\": {\n            source: \"iana\",\n            extensions: [\"tmo\"]\n          },\n          \"application/vnd.tri.onesource\": {\n            source: \"iana\"\n          },\n          \"application/vnd.trid.tpt\": {\n            source: \"iana\",\n            extensions: [\"tpt\"]\n          },\n          \"application/vnd.triscape.mxs\": {\n            source: \"iana\",\n            extensions: [\"mxs\"]\n          },\n          \"application/vnd.trueapp\": {\n            source: \"iana\",\n            extensions: [\"tra\"]\n          },\n          \"application/vnd.truedoc\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ubisoft.webplayer\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ufdl\": {\n            source: \"iana\",\n            extensions: [\"ufd\", \"ufdl\"]\n          },\n          \"application/vnd.uiq.theme\": {\n            source: \"iana\",\n            extensions: [\"utz\"]\n          },\n          \"application/vnd.umajin\": {\n            source: \"iana\",\n            extensions: [\"umj\"]\n          },\n          \"application/vnd.unity\": {\n            source: \"iana\",\n            extensions: [\"unityweb\"]\n          },\n          \"application/vnd.uoml+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"uoml\"]\n          },\n          \"application/vnd.uplanet.alert\": {\n            source: \"iana\"\n          },\n          \"application/vnd.uplanet.alert-wbxml\": {\n            source: \"iana\"\n          },\n          \"application/vnd.uplanet.bearer-choice\": {\n            source: \"iana\"\n          },\n          \"application/vnd.uplanet.bearer-choice-wbxml\": {\n            source: \"iana\"\n          },\n          \"application/vnd.uplanet.cacheop\": {\n            source: \"iana\"\n          },\n          \"application/vnd.uplanet.cacheop-wbxml\": {\n            source: \"iana\"\n          },\n          \"application/vnd.uplanet.channel\": {\n            source: \"iana\"\n          },\n          \"application/vnd.uplanet.channel-wbxml\": {\n            source: \"iana\"\n          },\n          \"application/vnd.uplanet.list\": {\n            source: \"iana\"\n          },\n          \"application/vnd.uplanet.list-wbxml\": {\n            source: \"iana\"\n          },\n          \"application/vnd.uplanet.listcmd\": {\n            source: \"iana\"\n          },\n          \"application/vnd.uplanet.listcmd-wbxml\": {\n            source: \"iana\"\n          },\n          \"application/vnd.uplanet.signal\": {\n            source: \"iana\"\n          },\n          \"application/vnd.uri-map\": {\n            source: \"iana\"\n          },\n          \"application/vnd.valve.source.material\": {\n            source: \"iana\"\n          },\n          \"application/vnd.vcx\": {\n            source: \"iana\",\n            extensions: [\"vcx\"]\n          },\n          \"application/vnd.vd-study\": {\n            source: \"iana\"\n          },\n          \"application/vnd.vectorworks\": {\n            source: \"iana\"\n          },\n          \"application/vnd.vel+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.verimatrix.vcas\": {\n            source: \"iana\"\n          },\n          \"application/vnd.veritone.aion+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.veryant.thin\": {\n            source: \"iana\"\n          },\n          \"application/vnd.ves.encrypted\": {\n            source: \"iana\"\n          },\n          \"application/vnd.vidsoft.vidconference\": {\n            source: \"iana\"\n          },\n          \"application/vnd.visio\": {\n            source: \"iana\",\n            extensions: [\"vsd\", \"vst\", \"vss\", \"vsw\"]\n          },\n          \"application/vnd.visionary\": {\n            source: \"iana\",\n            extensions: [\"vis\"]\n          },\n          \"application/vnd.vividence.scriptfile\": {\n            source: \"iana\"\n          },\n          \"application/vnd.vsf\": {\n            source: \"iana\",\n            extensions: [\"vsf\"]\n          },\n          \"application/vnd.wap.sic\": {\n            source: \"iana\"\n          },\n          \"application/vnd.wap.slc\": {\n            source: \"iana\"\n          },\n          \"application/vnd.wap.wbxml\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            extensions: [\"wbxml\"]\n          },\n          \"application/vnd.wap.wmlc\": {\n            source: \"iana\",\n            extensions: [\"wmlc\"]\n          },\n          \"application/vnd.wap.wmlscriptc\": {\n            source: \"iana\",\n            extensions: [\"wmlsc\"]\n          },\n          \"application/vnd.webturbo\": {\n            source: \"iana\",\n            extensions: [\"wtb\"]\n          },\n          \"application/vnd.wfa.dpp\": {\n            source: \"iana\"\n          },\n          \"application/vnd.wfa.p2p\": {\n            source: \"iana\"\n          },\n          \"application/vnd.wfa.wsc\": {\n            source: \"iana\"\n          },\n          \"application/vnd.windows.devicepairing\": {\n            source: \"iana\"\n          },\n          \"application/vnd.wmc\": {\n            source: \"iana\"\n          },\n          \"application/vnd.wmf.bootstrap\": {\n            source: \"iana\"\n          },\n          \"application/vnd.wolfram.mathematica\": {\n            source: \"iana\"\n          },\n          \"application/vnd.wolfram.mathematica.package\": {\n            source: \"iana\"\n          },\n          \"application/vnd.wolfram.player\": {\n            source: \"iana\",\n            extensions: [\"nbp\"]\n          },\n          \"application/vnd.wordperfect\": {\n            source: \"iana\",\n            extensions: [\"wpd\"]\n          },\n          \"application/vnd.wqd\": {\n            source: \"iana\",\n            extensions: [\"wqd\"]\n          },\n          \"application/vnd.wrq-hp3000-labelled\": {\n            source: \"iana\"\n          },\n          \"application/vnd.wt.stf\": {\n            source: \"iana\",\n            extensions: [\"stf\"]\n          },\n          \"application/vnd.wv.csp+wbxml\": {\n            source: \"iana\"\n          },\n          \"application/vnd.wv.csp+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.wv.ssp+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.xacml+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.xara\": {\n            source: \"iana\",\n            extensions: [\"xar\"]\n          },\n          \"application/vnd.xfdl\": {\n            source: \"iana\",\n            extensions: [\"xfdl\"]\n          },\n          \"application/vnd.xfdl.webform\": {\n            source: \"iana\"\n          },\n          \"application/vnd.xmi+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vnd.xmpie.cpkg\": {\n            source: \"iana\"\n          },\n          \"application/vnd.xmpie.dpkg\": {\n            source: \"iana\"\n          },\n          \"application/vnd.xmpie.plan\": {\n            source: \"iana\"\n          },\n          \"application/vnd.xmpie.ppkg\": {\n            source: \"iana\"\n          },\n          \"application/vnd.xmpie.xlim\": {\n            source: \"iana\"\n          },\n          \"application/vnd.yamaha.hv-dic\": {\n            source: \"iana\",\n            extensions: [\"hvd\"]\n          },\n          \"application/vnd.yamaha.hv-script\": {\n            source: \"iana\",\n            extensions: [\"hvs\"]\n          },\n          \"application/vnd.yamaha.hv-voice\": {\n            source: \"iana\",\n            extensions: [\"hvp\"]\n          },\n          \"application/vnd.yamaha.openscoreformat\": {\n            source: \"iana\",\n            extensions: [\"osf\"]\n          },\n          \"application/vnd.yamaha.openscoreformat.osfpvg+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"osfpvg\"]\n          },\n          \"application/vnd.yamaha.remote-setup\": {\n            source: \"iana\"\n          },\n          \"application/vnd.yamaha.smaf-audio\": {\n            source: \"iana\",\n            extensions: [\"saf\"]\n          },\n          \"application/vnd.yamaha.smaf-phrase\": {\n            source: \"iana\",\n            extensions: [\"spf\"]\n          },\n          \"application/vnd.yamaha.through-ngn\": {\n            source: \"iana\"\n          },\n          \"application/vnd.yamaha.tunnel-udpencap\": {\n            source: \"iana\"\n          },\n          \"application/vnd.yaoweme\": {\n            source: \"iana\"\n          },\n          \"application/vnd.yellowriver-custom-menu\": {\n            source: \"iana\",\n            extensions: [\"cmp\"]\n          },\n          \"application/vnd.youtube.yt\": {\n            source: \"iana\"\n          },\n          \"application/vnd.zul\": {\n            source: \"iana\",\n            extensions: [\"zir\", \"zirz\"]\n          },\n          \"application/vnd.zzazz.deck+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"zaz\"]\n          },\n          \"application/voicexml+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"vxml\"]\n          },\n          \"application/voucher-cms+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/vq-rtcpxr\": {\n            source: \"iana\"\n          },\n          \"application/wasm\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"wasm\"]\n          },\n          \"application/watcherinfo+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"wif\"]\n          },\n          \"application/webpush-options+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/whoispp-query\": {\n            source: \"iana\"\n          },\n          \"application/whoispp-response\": {\n            source: \"iana\"\n          },\n          \"application/widget\": {\n            source: \"iana\",\n            extensions: [\"wgt\"]\n          },\n          \"application/winhlp\": {\n            source: \"apache\",\n            extensions: [\"hlp\"]\n          },\n          \"application/wita\": {\n            source: \"iana\"\n          },\n          \"application/wordperfect5.1\": {\n            source: \"iana\"\n          },\n          \"application/wsdl+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"wsdl\"]\n          },\n          \"application/wspolicy+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"wspolicy\"]\n          },\n          \"application/x-7z-compressed\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"7z\"]\n          },\n          \"application/x-abiword\": {\n            source: \"apache\",\n            extensions: [\"abw\"]\n          },\n          \"application/x-ace-compressed\": {\n            source: \"apache\",\n            extensions: [\"ace\"]\n          },\n          \"application/x-amf\": {\n            source: \"apache\"\n          },\n          \"application/x-apple-diskimage\": {\n            source: \"apache\",\n            extensions: [\"dmg\"]\n          },\n          \"application/x-arj\": {\n            compressible: false,\n            extensions: [\"arj\"]\n          },\n          \"application/x-authorware-bin\": {\n            source: \"apache\",\n            extensions: [\"aab\", \"x32\", \"u32\", \"vox\"]\n          },\n          \"application/x-authorware-map\": {\n            source: \"apache\",\n            extensions: [\"aam\"]\n          },\n          \"application/x-authorware-seg\": {\n            source: \"apache\",\n            extensions: [\"aas\"]\n          },\n          \"application/x-bcpio\": {\n            source: \"apache\",\n            extensions: [\"bcpio\"]\n          },\n          \"application/x-bdoc\": {\n            compressible: false,\n            extensions: [\"bdoc\"]\n          },\n          \"application/x-bittorrent\": {\n            source: \"apache\",\n            extensions: [\"torrent\"]\n          },\n          \"application/x-blorb\": {\n            source: \"apache\",\n            extensions: [\"blb\", \"blorb\"]\n          },\n          \"application/x-bzip\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"bz\"]\n          },\n          \"application/x-bzip2\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"bz2\", \"boz\"]\n          },\n          \"application/x-cbr\": {\n            source: \"apache\",\n            extensions: [\"cbr\", \"cba\", \"cbt\", \"cbz\", \"cb7\"]\n          },\n          \"application/x-cdlink\": {\n            source: \"apache\",\n            extensions: [\"vcd\"]\n          },\n          \"application/x-cfs-compressed\": {\n            source: \"apache\",\n            extensions: [\"cfs\"]\n          },\n          \"application/x-chat\": {\n            source: \"apache\",\n            extensions: [\"chat\"]\n          },\n          \"application/x-chess-pgn\": {\n            source: \"apache\",\n            extensions: [\"pgn\"]\n          },\n          \"application/x-chrome-extension\": {\n            extensions: [\"crx\"]\n          },\n          \"application/x-cocoa\": {\n            source: \"nginx\",\n            extensions: [\"cco\"]\n          },\n          \"application/x-compress\": {\n            source: \"apache\"\n          },\n          \"application/x-conference\": {\n            source: \"apache\",\n            extensions: [\"nsc\"]\n          },\n          \"application/x-cpio\": {\n            source: \"apache\",\n            extensions: [\"cpio\"]\n          },\n          \"application/x-csh\": {\n            source: \"apache\",\n            extensions: [\"csh\"]\n          },\n          \"application/x-deb\": {\n            compressible: false\n          },\n          \"application/x-debian-package\": {\n            source: \"apache\",\n            extensions: [\"deb\", \"udeb\"]\n          },\n          \"application/x-dgc-compressed\": {\n            source: \"apache\",\n            extensions: [\"dgc\"]\n          },\n          \"application/x-director\": {\n            source: \"apache\",\n            extensions: [\"dir\", \"dcr\", \"dxr\", \"cst\", \"cct\", \"cxt\", \"w3d\", \"fgd\", \"swa\"]\n          },\n          \"application/x-doom\": {\n            source: \"apache\",\n            extensions: [\"wad\"]\n          },\n          \"application/x-dtbncx+xml\": {\n            source: \"apache\",\n            compressible: true,\n            extensions: [\"ncx\"]\n          },\n          \"application/x-dtbook+xml\": {\n            source: \"apache\",\n            compressible: true,\n            extensions: [\"dtb\"]\n          },\n          \"application/x-dtbresource+xml\": {\n            source: \"apache\",\n            compressible: true,\n            extensions: [\"res\"]\n          },\n          \"application/x-dvi\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"dvi\"]\n          },\n          \"application/x-envoy\": {\n            source: \"apache\",\n            extensions: [\"evy\"]\n          },\n          \"application/x-eva\": {\n            source: \"apache\",\n            extensions: [\"eva\"]\n          },\n          \"application/x-font-bdf\": {\n            source: \"apache\",\n            extensions: [\"bdf\"]\n          },\n          \"application/x-font-dos\": {\n            source: \"apache\"\n          },\n          \"application/x-font-framemaker\": {\n            source: \"apache\"\n          },\n          \"application/x-font-ghostscript\": {\n            source: \"apache\",\n            extensions: [\"gsf\"]\n          },\n          \"application/x-font-libgrx\": {\n            source: \"apache\"\n          },\n          \"application/x-font-linux-psf\": {\n            source: \"apache\",\n            extensions: [\"psf\"]\n          },\n          \"application/x-font-pcf\": {\n            source: \"apache\",\n            extensions: [\"pcf\"]\n          },\n          \"application/x-font-snf\": {\n            source: \"apache\",\n            extensions: [\"snf\"]\n          },\n          \"application/x-font-speedo\": {\n            source: \"apache\"\n          },\n          \"application/x-font-sunos-news\": {\n            source: \"apache\"\n          },\n          \"application/x-font-type1\": {\n            source: \"apache\",\n            extensions: [\"pfa\", \"pfb\", \"pfm\", \"afm\"]\n          },\n          \"application/x-font-vfont\": {\n            source: \"apache\"\n          },\n          \"application/x-freearc\": {\n            source: \"apache\",\n            extensions: [\"arc\"]\n          },\n          \"application/x-futuresplash\": {\n            source: \"apache\",\n            extensions: [\"spl\"]\n          },\n          \"application/x-gca-compressed\": {\n            source: \"apache\",\n            extensions: [\"gca\"]\n          },\n          \"application/x-glulx\": {\n            source: \"apache\",\n            extensions: [\"ulx\"]\n          },\n          \"application/x-gnumeric\": {\n            source: \"apache\",\n            extensions: [\"gnumeric\"]\n          },\n          \"application/x-gramps-xml\": {\n            source: \"apache\",\n            extensions: [\"gramps\"]\n          },\n          \"application/x-gtar\": {\n            source: \"apache\",\n            extensions: [\"gtar\"]\n          },\n          \"application/x-gzip\": {\n            source: \"apache\"\n          },\n          \"application/x-hdf\": {\n            source: \"apache\",\n            extensions: [\"hdf\"]\n          },\n          \"application/x-httpd-php\": {\n            compressible: true,\n            extensions: [\"php\"]\n          },\n          \"application/x-install-instructions\": {\n            source: \"apache\",\n            extensions: [\"install\"]\n          },\n          \"application/x-iso9660-image\": {\n            source: \"apache\",\n            extensions: [\"iso\"]\n          },\n          \"application/x-iwork-keynote-sffkey\": {\n            extensions: [\"key\"]\n          },\n          \"application/x-iwork-numbers-sffnumbers\": {\n            extensions: [\"numbers\"]\n          },\n          \"application/x-iwork-pages-sffpages\": {\n            extensions: [\"pages\"]\n          },\n          \"application/x-java-archive-diff\": {\n            source: \"nginx\",\n            extensions: [\"jardiff\"]\n          },\n          \"application/x-java-jnlp-file\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"jnlp\"]\n          },\n          \"application/x-javascript\": {\n            compressible: true\n          },\n          \"application/x-keepass2\": {\n            extensions: [\"kdbx\"]\n          },\n          \"application/x-latex\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"latex\"]\n          },\n          \"application/x-lua-bytecode\": {\n            extensions: [\"luac\"]\n          },\n          \"application/x-lzh-compressed\": {\n            source: \"apache\",\n            extensions: [\"lzh\", \"lha\"]\n          },\n          \"application/x-makeself\": {\n            source: \"nginx\",\n            extensions: [\"run\"]\n          },\n          \"application/x-mie\": {\n            source: \"apache\",\n            extensions: [\"mie\"]\n          },\n          \"application/x-mobipocket-ebook\": {\n            source: \"apache\",\n            extensions: [\"prc\", \"mobi\"]\n          },\n          \"application/x-mpegurl\": {\n            compressible: false\n          },\n          \"application/x-ms-application\": {\n            source: \"apache\",\n            extensions: [\"application\"]\n          },\n          \"application/x-ms-shortcut\": {\n            source: \"apache\",\n            extensions: [\"lnk\"]\n          },\n          \"application/x-ms-wmd\": {\n            source: \"apache\",\n            extensions: [\"wmd\"]\n          },\n          \"application/x-ms-wmz\": {\n            source: \"apache\",\n            extensions: [\"wmz\"]\n          },\n          \"application/x-ms-xbap\": {\n            source: \"apache\",\n            extensions: [\"xbap\"]\n          },\n          \"application/x-msaccess\": {\n            source: \"apache\",\n            extensions: [\"mdb\"]\n          },\n          \"application/x-msbinder\": {\n            source: \"apache\",\n            extensions: [\"obd\"]\n          },\n          \"application/x-mscardfile\": {\n            source: \"apache\",\n            extensions: [\"crd\"]\n          },\n          \"application/x-msclip\": {\n            source: \"apache\",\n            extensions: [\"clp\"]\n          },\n          \"application/x-msdos-program\": {\n            extensions: [\"exe\"]\n          },\n          \"application/x-msdownload\": {\n            source: \"apache\",\n            extensions: [\"exe\", \"dll\", \"com\", \"bat\", \"msi\"]\n          },\n          \"application/x-msmediaview\": {\n            source: \"apache\",\n            extensions: [\"mvb\", \"m13\", \"m14\"]\n          },\n          \"application/x-msmetafile\": {\n            source: \"apache\",\n            extensions: [\"wmf\", \"wmz\", \"emf\", \"emz\"]\n          },\n          \"application/x-msmoney\": {\n            source: \"apache\",\n            extensions: [\"mny\"]\n          },\n          \"application/x-mspublisher\": {\n            source: \"apache\",\n            extensions: [\"pub\"]\n          },\n          \"application/x-msschedule\": {\n            source: \"apache\",\n            extensions: [\"scd\"]\n          },\n          \"application/x-msterminal\": {\n            source: \"apache\",\n            extensions: [\"trm\"]\n          },\n          \"application/x-mswrite\": {\n            source: \"apache\",\n            extensions: [\"wri\"]\n          },\n          \"application/x-netcdf\": {\n            source: \"apache\",\n            extensions: [\"nc\", \"cdf\"]\n          },\n          \"application/x-ns-proxy-autoconfig\": {\n            compressible: true,\n            extensions: [\"pac\"]\n          },\n          \"application/x-nzb\": {\n            source: \"apache\",\n            extensions: [\"nzb\"]\n          },\n          \"application/x-perl\": {\n            source: \"nginx\",\n            extensions: [\"pl\", \"pm\"]\n          },\n          \"application/x-pilot\": {\n            source: \"nginx\",\n            extensions: [\"prc\", \"pdb\"]\n          },\n          \"application/x-pkcs12\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"p12\", \"pfx\"]\n          },\n          \"application/x-pkcs7-certificates\": {\n            source: \"apache\",\n            extensions: [\"p7b\", \"spc\"]\n          },\n          \"application/x-pkcs7-certreqresp\": {\n            source: \"apache\",\n            extensions: [\"p7r\"]\n          },\n          \"application/x-pki-message\": {\n            source: \"iana\"\n          },\n          \"application/x-rar-compressed\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"rar\"]\n          },\n          \"application/x-redhat-package-manager\": {\n            source: \"nginx\",\n            extensions: [\"rpm\"]\n          },\n          \"application/x-research-info-systems\": {\n            source: \"apache\",\n            extensions: [\"ris\"]\n          },\n          \"application/x-sea\": {\n            source: \"nginx\",\n            extensions: [\"sea\"]\n          },\n          \"application/x-sh\": {\n            source: \"apache\",\n            compressible: true,\n            extensions: [\"sh\"]\n          },\n          \"application/x-shar\": {\n            source: \"apache\",\n            extensions: [\"shar\"]\n          },\n          \"application/x-shockwave-flash\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"swf\"]\n          },\n          \"application/x-silverlight-app\": {\n            source: \"apache\",\n            extensions: [\"xap\"]\n          },\n          \"application/x-sql\": {\n            source: \"apache\",\n            extensions: [\"sql\"]\n          },\n          \"application/x-stuffit\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"sit\"]\n          },\n          \"application/x-stuffitx\": {\n            source: \"apache\",\n            extensions: [\"sitx\"]\n          },\n          \"application/x-subrip\": {\n            source: \"apache\",\n            extensions: [\"srt\"]\n          },\n          \"application/x-sv4cpio\": {\n            source: \"apache\",\n            extensions: [\"sv4cpio\"]\n          },\n          \"application/x-sv4crc\": {\n            source: \"apache\",\n            extensions: [\"sv4crc\"]\n          },\n          \"application/x-t3vm-image\": {\n            source: \"apache\",\n            extensions: [\"t3\"]\n          },\n          \"application/x-tads\": {\n            source: \"apache\",\n            extensions: [\"gam\"]\n          },\n          \"application/x-tar\": {\n            source: \"apache\",\n            compressible: true,\n            extensions: [\"tar\"]\n          },\n          \"application/x-tcl\": {\n            source: \"apache\",\n            extensions: [\"tcl\", \"tk\"]\n          },\n          \"application/x-tex\": {\n            source: \"apache\",\n            extensions: [\"tex\"]\n          },\n          \"application/x-tex-tfm\": {\n            source: \"apache\",\n            extensions: [\"tfm\"]\n          },\n          \"application/x-texinfo\": {\n            source: \"apache\",\n            extensions: [\"texinfo\", \"texi\"]\n          },\n          \"application/x-tgif\": {\n            source: \"apache\",\n            extensions: [\"obj\"]\n          },\n          \"application/x-ustar\": {\n            source: \"apache\",\n            extensions: [\"ustar\"]\n          },\n          \"application/x-virtualbox-hdd\": {\n            compressible: true,\n            extensions: [\"hdd\"]\n          },\n          \"application/x-virtualbox-ova\": {\n            compressible: true,\n            extensions: [\"ova\"]\n          },\n          \"application/x-virtualbox-ovf\": {\n            compressible: true,\n            extensions: [\"ovf\"]\n          },\n          \"application/x-virtualbox-vbox\": {\n            compressible: true,\n            extensions: [\"vbox\"]\n          },\n          \"application/x-virtualbox-vbox-extpack\": {\n            compressible: false,\n            extensions: [\"vbox-extpack\"]\n          },\n          \"application/x-virtualbox-vdi\": {\n            compressible: true,\n            extensions: [\"vdi\"]\n          },\n          \"application/x-virtualbox-vhd\": {\n            compressible: true,\n            extensions: [\"vhd\"]\n          },\n          \"application/x-virtualbox-vmdk\": {\n            compressible: true,\n            extensions: [\"vmdk\"]\n          },\n          \"application/x-wais-source\": {\n            source: \"apache\",\n            extensions: [\"src\"]\n          },\n          \"application/x-web-app-manifest+json\": {\n            compressible: true,\n            extensions: [\"webapp\"]\n          },\n          \"application/x-www-form-urlencoded\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/x-x509-ca-cert\": {\n            source: \"iana\",\n            extensions: [\"der\", \"crt\", \"pem\"]\n          },\n          \"application/x-x509-ca-ra-cert\": {\n            source: \"iana\"\n          },\n          \"application/x-x509-next-ca-cert\": {\n            source: \"iana\"\n          },\n          \"application/x-xfig\": {\n            source: \"apache\",\n            extensions: [\"fig\"]\n          },\n          \"application/x-xliff+xml\": {\n            source: \"apache\",\n            compressible: true,\n            extensions: [\"xlf\"]\n          },\n          \"application/x-xpinstall\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"xpi\"]\n          },\n          \"application/x-xz\": {\n            source: \"apache\",\n            extensions: [\"xz\"]\n          },\n          \"application/x-zmachine\": {\n            source: \"apache\",\n            extensions: [\"z1\", \"z2\", \"z3\", \"z4\", \"z5\", \"z6\", \"z7\", \"z8\"]\n          },\n          \"application/x400-bp\": {\n            source: \"iana\"\n          },\n          \"application/xacml+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/xaml+xml\": {\n            source: \"apache\",\n            compressible: true,\n            extensions: [\"xaml\"]\n          },\n          \"application/xcap-att+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"xav\"]\n          },\n          \"application/xcap-caps+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"xca\"]\n          },\n          \"application/xcap-diff+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"xdf\"]\n          },\n          \"application/xcap-el+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"xel\"]\n          },\n          \"application/xcap-error+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/xcap-ns+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"xns\"]\n          },\n          \"application/xcon-conference-info+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/xcon-conference-info-diff+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/xenc+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"xenc\"]\n          },\n          \"application/xhtml+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"xhtml\", \"xht\"]\n          },\n          \"application/xhtml-voice+xml\": {\n            source: \"apache\",\n            compressible: true\n          },\n          \"application/xliff+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"xlf\"]\n          },\n          \"application/xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"xml\", \"xsl\", \"xsd\", \"rng\"]\n          },\n          \"application/xml-dtd\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"dtd\"]\n          },\n          \"application/xml-external-parsed-entity\": {\n            source: \"iana\"\n          },\n          \"application/xml-patch+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/xmpp+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/xop+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"xop\"]\n          },\n          \"application/xproc+xml\": {\n            source: \"apache\",\n            compressible: true,\n            extensions: [\"xpl\"]\n          },\n          \"application/xslt+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"xsl\", \"xslt\"]\n          },\n          \"application/xspf+xml\": {\n            source: \"apache\",\n            compressible: true,\n            extensions: [\"xspf\"]\n          },\n          \"application/xv+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"mxml\", \"xhvml\", \"xvml\", \"xvm\"]\n          },\n          \"application/yang\": {\n            source: \"iana\",\n            extensions: [\"yang\"]\n          },\n          \"application/yang-data+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/yang-data+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/yang-patch+json\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/yang-patch+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"application/yin+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"yin\"]\n          },\n          \"application/zip\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"zip\"]\n          },\n          \"application/zlib\": {\n            source: \"iana\"\n          },\n          \"application/zstd\": {\n            source: \"iana\"\n          },\n          \"audio/1d-interleaved-parityfec\": {\n            source: \"iana\"\n          },\n          \"audio/32kadpcm\": {\n            source: \"iana\"\n          },\n          \"audio/3gpp\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"3gpp\"]\n          },\n          \"audio/3gpp2\": {\n            source: \"iana\"\n          },\n          \"audio/aac\": {\n            source: \"iana\"\n          },\n          \"audio/ac3\": {\n            source: \"iana\"\n          },\n          \"audio/adpcm\": {\n            source: \"apache\",\n            extensions: [\"adp\"]\n          },\n          \"audio/amr\": {\n            source: \"iana\",\n            extensions: [\"amr\"]\n          },\n          \"audio/amr-wb\": {\n            source: \"iana\"\n          },\n          \"audio/amr-wb+\": {\n            source: \"iana\"\n          },\n          \"audio/aptx\": {\n            source: \"iana\"\n          },\n          \"audio/asc\": {\n            source: \"iana\"\n          },\n          \"audio/atrac-advanced-lossless\": {\n            source: \"iana\"\n          },\n          \"audio/atrac-x\": {\n            source: \"iana\"\n          },\n          \"audio/atrac3\": {\n            source: \"iana\"\n          },\n          \"audio/basic\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"au\", \"snd\"]\n          },\n          \"audio/bv16\": {\n            source: \"iana\"\n          },\n          \"audio/bv32\": {\n            source: \"iana\"\n          },\n          \"audio/clearmode\": {\n            source: \"iana\"\n          },\n          \"audio/cn\": {\n            source: \"iana\"\n          },\n          \"audio/dat12\": {\n            source: \"iana\"\n          },\n          \"audio/dls\": {\n            source: \"iana\"\n          },\n          \"audio/dsr-es201108\": {\n            source: \"iana\"\n          },\n          \"audio/dsr-es202050\": {\n            source: \"iana\"\n          },\n          \"audio/dsr-es202211\": {\n            source: \"iana\"\n          },\n          \"audio/dsr-es202212\": {\n            source: \"iana\"\n          },\n          \"audio/dv\": {\n            source: \"iana\"\n          },\n          \"audio/dvi4\": {\n            source: \"iana\"\n          },\n          \"audio/eac3\": {\n            source: \"iana\"\n          },\n          \"audio/encaprtp\": {\n            source: \"iana\"\n          },\n          \"audio/evrc\": {\n            source: \"iana\"\n          },\n          \"audio/evrc-qcp\": {\n            source: \"iana\"\n          },\n          \"audio/evrc0\": {\n            source: \"iana\"\n          },\n          \"audio/evrc1\": {\n            source: \"iana\"\n          },\n          \"audio/evrcb\": {\n            source: \"iana\"\n          },\n          \"audio/evrcb0\": {\n            source: \"iana\"\n          },\n          \"audio/evrcb1\": {\n            source: \"iana\"\n          },\n          \"audio/evrcnw\": {\n            source: \"iana\"\n          },\n          \"audio/evrcnw0\": {\n            source: \"iana\"\n          },\n          \"audio/evrcnw1\": {\n            source: \"iana\"\n          },\n          \"audio/evrcwb\": {\n            source: \"iana\"\n          },\n          \"audio/evrcwb0\": {\n            source: \"iana\"\n          },\n          \"audio/evrcwb1\": {\n            source: \"iana\"\n          },\n          \"audio/evs\": {\n            source: \"iana\"\n          },\n          \"audio/flexfec\": {\n            source: \"iana\"\n          },\n          \"audio/fwdred\": {\n            source: \"iana\"\n          },\n          \"audio/g711-0\": {\n            source: \"iana\"\n          },\n          \"audio/g719\": {\n            source: \"iana\"\n          },\n          \"audio/g722\": {\n            source: \"iana\"\n          },\n          \"audio/g7221\": {\n            source: \"iana\"\n          },\n          \"audio/g723\": {\n            source: \"iana\"\n          },\n          \"audio/g726-16\": {\n            source: \"iana\"\n          },\n          \"audio/g726-24\": {\n            source: \"iana\"\n          },\n          \"audio/g726-32\": {\n            source: \"iana\"\n          },\n          \"audio/g726-40\": {\n            source: \"iana\"\n          },\n          \"audio/g728\": {\n            source: \"iana\"\n          },\n          \"audio/g729\": {\n            source: \"iana\"\n          },\n          \"audio/g7291\": {\n            source: \"iana\"\n          },\n          \"audio/g729d\": {\n            source: \"iana\"\n          },\n          \"audio/g729e\": {\n            source: \"iana\"\n          },\n          \"audio/gsm\": {\n            source: \"iana\"\n          },\n          \"audio/gsm-efr\": {\n            source: \"iana\"\n          },\n          \"audio/gsm-hr-08\": {\n            source: \"iana\"\n          },\n          \"audio/ilbc\": {\n            source: \"iana\"\n          },\n          \"audio/ip-mr_v2.5\": {\n            source: \"iana\"\n          },\n          \"audio/isac\": {\n            source: \"apache\"\n          },\n          \"audio/l16\": {\n            source: \"iana\"\n          },\n          \"audio/l20\": {\n            source: \"iana\"\n          },\n          \"audio/l24\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"audio/l8\": {\n            source: \"iana\"\n          },\n          \"audio/lpc\": {\n            source: \"iana\"\n          },\n          \"audio/melp\": {\n            source: \"iana\"\n          },\n          \"audio/melp1200\": {\n            source: \"iana\"\n          },\n          \"audio/melp2400\": {\n            source: \"iana\"\n          },\n          \"audio/melp600\": {\n            source: \"iana\"\n          },\n          \"audio/mhas\": {\n            source: \"iana\"\n          },\n          \"audio/midi\": {\n            source: \"apache\",\n            extensions: [\"mid\", \"midi\", \"kar\", \"rmi\"]\n          },\n          \"audio/mobile-xmf\": {\n            source: \"iana\",\n            extensions: [\"mxmf\"]\n          },\n          \"audio/mp3\": {\n            compressible: false,\n            extensions: [\"mp3\"]\n          },\n          \"audio/mp4\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"m4a\", \"mp4a\"]\n          },\n          \"audio/mp4a-latm\": {\n            source: \"iana\"\n          },\n          \"audio/mpa\": {\n            source: \"iana\"\n          },\n          \"audio/mpa-robust\": {\n            source: \"iana\"\n          },\n          \"audio/mpeg\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"mpga\", \"mp2\", \"mp2a\", \"mp3\", \"m2a\", \"m3a\"]\n          },\n          \"audio/mpeg4-generic\": {\n            source: \"iana\"\n          },\n          \"audio/musepack\": {\n            source: \"apache\"\n          },\n          \"audio/ogg\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"oga\", \"ogg\", \"spx\", \"opus\"]\n          },\n          \"audio/opus\": {\n            source: \"iana\"\n          },\n          \"audio/parityfec\": {\n            source: \"iana\"\n          },\n          \"audio/pcma\": {\n            source: \"iana\"\n          },\n          \"audio/pcma-wb\": {\n            source: \"iana\"\n          },\n          \"audio/pcmu\": {\n            source: \"iana\"\n          },\n          \"audio/pcmu-wb\": {\n            source: \"iana\"\n          },\n          \"audio/prs.sid\": {\n            source: \"iana\"\n          },\n          \"audio/qcelp\": {\n            source: \"iana\"\n          },\n          \"audio/raptorfec\": {\n            source: \"iana\"\n          },\n          \"audio/red\": {\n            source: \"iana\"\n          },\n          \"audio/rtp-enc-aescm128\": {\n            source: \"iana\"\n          },\n          \"audio/rtp-midi\": {\n            source: \"iana\"\n          },\n          \"audio/rtploopback\": {\n            source: \"iana\"\n          },\n          \"audio/rtx\": {\n            source: \"iana\"\n          },\n          \"audio/s3m\": {\n            source: \"apache\",\n            extensions: [\"s3m\"]\n          },\n          \"audio/scip\": {\n            source: \"iana\"\n          },\n          \"audio/silk\": {\n            source: \"apache\",\n            extensions: [\"sil\"]\n          },\n          \"audio/smv\": {\n            source: \"iana\"\n          },\n          \"audio/smv-qcp\": {\n            source: \"iana\"\n          },\n          \"audio/smv0\": {\n            source: \"iana\"\n          },\n          \"audio/sofa\": {\n            source: \"iana\"\n          },\n          \"audio/sp-midi\": {\n            source: \"iana\"\n          },\n          \"audio/speex\": {\n            source: \"iana\"\n          },\n          \"audio/t140c\": {\n            source: \"iana\"\n          },\n          \"audio/t38\": {\n            source: \"iana\"\n          },\n          \"audio/telephone-event\": {\n            source: \"iana\"\n          },\n          \"audio/tetra_acelp\": {\n            source: \"iana\"\n          },\n          \"audio/tetra_acelp_bb\": {\n            source: \"iana\"\n          },\n          \"audio/tone\": {\n            source: \"iana\"\n          },\n          \"audio/tsvcis\": {\n            source: \"iana\"\n          },\n          \"audio/uemclip\": {\n            source: \"iana\"\n          },\n          \"audio/ulpfec\": {\n            source: \"iana\"\n          },\n          \"audio/usac\": {\n            source: \"iana\"\n          },\n          \"audio/vdvi\": {\n            source: \"iana\"\n          },\n          \"audio/vmr-wb\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.3gpp.iufp\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.4sb\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.audiokoz\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.celp\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.cisco.nse\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.cmles.radio-events\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.cns.anp1\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.cns.inf1\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.dece.audio\": {\n            source: \"iana\",\n            extensions: [\"uva\", \"uvva\"]\n          },\n          \"audio/vnd.digital-winds\": {\n            source: \"iana\",\n            extensions: [\"eol\"]\n          },\n          \"audio/vnd.dlna.adts\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.dolby.heaac.1\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.dolby.heaac.2\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.dolby.mlp\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.dolby.mps\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.dolby.pl2\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.dolby.pl2x\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.dolby.pl2z\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.dolby.pulse.1\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.dra\": {\n            source: \"iana\",\n            extensions: [\"dra\"]\n          },\n          \"audio/vnd.dts\": {\n            source: \"iana\",\n            extensions: [\"dts\"]\n          },\n          \"audio/vnd.dts.hd\": {\n            source: \"iana\",\n            extensions: [\"dtshd\"]\n          },\n          \"audio/vnd.dts.uhd\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.dvb.file\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.everad.plj\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.hns.audio\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.lucent.voice\": {\n            source: \"iana\",\n            extensions: [\"lvp\"]\n          },\n          \"audio/vnd.ms-playready.media.pya\": {\n            source: \"iana\",\n            extensions: [\"pya\"]\n          },\n          \"audio/vnd.nokia.mobile-xmf\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.nortel.vbk\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.nuera.ecelp4800\": {\n            source: \"iana\",\n            extensions: [\"ecelp4800\"]\n          },\n          \"audio/vnd.nuera.ecelp7470\": {\n            source: \"iana\",\n            extensions: [\"ecelp7470\"]\n          },\n          \"audio/vnd.nuera.ecelp9600\": {\n            source: \"iana\",\n            extensions: [\"ecelp9600\"]\n          },\n          \"audio/vnd.octel.sbc\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.presonus.multitrack\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.qcelp\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.rhetorex.32kadpcm\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.rip\": {\n            source: \"iana\",\n            extensions: [\"rip\"]\n          },\n          \"audio/vnd.rn-realaudio\": {\n            compressible: false\n          },\n          \"audio/vnd.sealedmedia.softseal.mpeg\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.vmx.cvsd\": {\n            source: \"iana\"\n          },\n          \"audio/vnd.wave\": {\n            compressible: false\n          },\n          \"audio/vorbis\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"audio/vorbis-config\": {\n            source: \"iana\"\n          },\n          \"audio/wav\": {\n            compressible: false,\n            extensions: [\"wav\"]\n          },\n          \"audio/wave\": {\n            compressible: false,\n            extensions: [\"wav\"]\n          },\n          \"audio/webm\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"weba\"]\n          },\n          \"audio/x-aac\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"aac\"]\n          },\n          \"audio/x-aiff\": {\n            source: \"apache\",\n            extensions: [\"aif\", \"aiff\", \"aifc\"]\n          },\n          \"audio/x-caf\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"caf\"]\n          },\n          \"audio/x-flac\": {\n            source: \"apache\",\n            extensions: [\"flac\"]\n          },\n          \"audio/x-m4a\": {\n            source: \"nginx\",\n            extensions: [\"m4a\"]\n          },\n          \"audio/x-matroska\": {\n            source: \"apache\",\n            extensions: [\"mka\"]\n          },\n          \"audio/x-mpegurl\": {\n            source: \"apache\",\n            extensions: [\"m3u\"]\n          },\n          \"audio/x-ms-wax\": {\n            source: \"apache\",\n            extensions: [\"wax\"]\n          },\n          \"audio/x-ms-wma\": {\n            source: \"apache\",\n            extensions: [\"wma\"]\n          },\n          \"audio/x-pn-realaudio\": {\n            source: \"apache\",\n            extensions: [\"ram\", \"ra\"]\n          },\n          \"audio/x-pn-realaudio-plugin\": {\n            source: \"apache\",\n            extensions: [\"rmp\"]\n          },\n          \"audio/x-realaudio\": {\n            source: \"nginx\",\n            extensions: [\"ra\"]\n          },\n          \"audio/x-tta\": {\n            source: \"apache\"\n          },\n          \"audio/x-wav\": {\n            source: \"apache\",\n            extensions: [\"wav\"]\n          },\n          \"audio/xm\": {\n            source: \"apache\",\n            extensions: [\"xm\"]\n          },\n          \"chemical/x-cdx\": {\n            source: \"apache\",\n            extensions: [\"cdx\"]\n          },\n          \"chemical/x-cif\": {\n            source: \"apache\",\n            extensions: [\"cif\"]\n          },\n          \"chemical/x-cmdf\": {\n            source: \"apache\",\n            extensions: [\"cmdf\"]\n          },\n          \"chemical/x-cml\": {\n            source: \"apache\",\n            extensions: [\"cml\"]\n          },\n          \"chemical/x-csml\": {\n            source: \"apache\",\n            extensions: [\"csml\"]\n          },\n          \"chemical/x-pdb\": {\n            source: \"apache\"\n          },\n          \"chemical/x-xyz\": {\n            source: \"apache\",\n            extensions: [\"xyz\"]\n          },\n          \"font/collection\": {\n            source: \"iana\",\n            extensions: [\"ttc\"]\n          },\n          \"font/otf\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"otf\"]\n          },\n          \"font/sfnt\": {\n            source: \"iana\"\n          },\n          \"font/ttf\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"ttf\"]\n          },\n          \"font/woff\": {\n            source: \"iana\",\n            extensions: [\"woff\"]\n          },\n          \"font/woff2\": {\n            source: \"iana\",\n            extensions: [\"woff2\"]\n          },\n          \"image/aces\": {\n            source: \"iana\",\n            extensions: [\"exr\"]\n          },\n          \"image/apng\": {\n            compressible: false,\n            extensions: [\"apng\"]\n          },\n          \"image/avci\": {\n            source: \"iana\",\n            extensions: [\"avci\"]\n          },\n          \"image/avcs\": {\n            source: \"iana\",\n            extensions: [\"avcs\"]\n          },\n          \"image/avif\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"avif\"]\n          },\n          \"image/bmp\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"bmp\"]\n          },\n          \"image/cgm\": {\n            source: \"iana\",\n            extensions: [\"cgm\"]\n          },\n          \"image/dicom-rle\": {\n            source: \"iana\",\n            extensions: [\"drle\"]\n          },\n          \"image/emf\": {\n            source: \"iana\",\n            extensions: [\"emf\"]\n          },\n          \"image/fits\": {\n            source: \"iana\",\n            extensions: [\"fits\"]\n          },\n          \"image/g3fax\": {\n            source: \"iana\",\n            extensions: [\"g3\"]\n          },\n          \"image/gif\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"gif\"]\n          },\n          \"image/heic\": {\n            source: \"iana\",\n            extensions: [\"heic\"]\n          },\n          \"image/heic-sequence\": {\n            source: \"iana\",\n            extensions: [\"heics\"]\n          },\n          \"image/heif\": {\n            source: \"iana\",\n            extensions: [\"heif\"]\n          },\n          \"image/heif-sequence\": {\n            source: \"iana\",\n            extensions: [\"heifs\"]\n          },\n          \"image/hej2k\": {\n            source: \"iana\",\n            extensions: [\"hej2\"]\n          },\n          \"image/hsj2\": {\n            source: \"iana\",\n            extensions: [\"hsj2\"]\n          },\n          \"image/ief\": {\n            source: \"iana\",\n            extensions: [\"ief\"]\n          },\n          \"image/jls\": {\n            source: \"iana\",\n            extensions: [\"jls\"]\n          },\n          \"image/jp2\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"jp2\", \"jpg2\"]\n          },\n          \"image/jpeg\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"jpeg\", \"jpg\", \"jpe\"]\n          },\n          \"image/jph\": {\n            source: \"iana\",\n            extensions: [\"jph\"]\n          },\n          \"image/jphc\": {\n            source: \"iana\",\n            extensions: [\"jhc\"]\n          },\n          \"image/jpm\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"jpm\"]\n          },\n          \"image/jpx\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"jpx\", \"jpf\"]\n          },\n          \"image/jxr\": {\n            source: \"iana\",\n            extensions: [\"jxr\"]\n          },\n          \"image/jxra\": {\n            source: \"iana\",\n            extensions: [\"jxra\"]\n          },\n          \"image/jxrs\": {\n            source: \"iana\",\n            extensions: [\"jxrs\"]\n          },\n          \"image/jxs\": {\n            source: \"iana\",\n            extensions: [\"jxs\"]\n          },\n          \"image/jxsc\": {\n            source: \"iana\",\n            extensions: [\"jxsc\"]\n          },\n          \"image/jxsi\": {\n            source: \"iana\",\n            extensions: [\"jxsi\"]\n          },\n          \"image/jxss\": {\n            source: \"iana\",\n            extensions: [\"jxss\"]\n          },\n          \"image/ktx\": {\n            source: \"iana\",\n            extensions: [\"ktx\"]\n          },\n          \"image/ktx2\": {\n            source: \"iana\",\n            extensions: [\"ktx2\"]\n          },\n          \"image/naplps\": {\n            source: \"iana\"\n          },\n          \"image/pjpeg\": {\n            compressible: false\n          },\n          \"image/png\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"png\"]\n          },\n          \"image/prs.btif\": {\n            source: \"iana\",\n            extensions: [\"btif\"]\n          },\n          \"image/prs.pti\": {\n            source: \"iana\",\n            extensions: [\"pti\"]\n          },\n          \"image/pwg-raster\": {\n            source: \"iana\"\n          },\n          \"image/sgi\": {\n            source: \"apache\",\n            extensions: [\"sgi\"]\n          },\n          \"image/svg+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"svg\", \"svgz\"]\n          },\n          \"image/t38\": {\n            source: \"iana\",\n            extensions: [\"t38\"]\n          },\n          \"image/tiff\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"tif\", \"tiff\"]\n          },\n          \"image/tiff-fx\": {\n            source: \"iana\",\n            extensions: [\"tfx\"]\n          },\n          \"image/vnd.adobe.photoshop\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"psd\"]\n          },\n          \"image/vnd.airzip.accelerator.azv\": {\n            source: \"iana\",\n            extensions: [\"azv\"]\n          },\n          \"image/vnd.cns.inf2\": {\n            source: \"iana\"\n          },\n          \"image/vnd.dece.graphic\": {\n            source: \"iana\",\n            extensions: [\"uvi\", \"uvvi\", \"uvg\", \"uvvg\"]\n          },\n          \"image/vnd.djvu\": {\n            source: \"iana\",\n            extensions: [\"djvu\", \"djv\"]\n          },\n          \"image/vnd.dvb.subtitle\": {\n            source: \"iana\",\n            extensions: [\"sub\"]\n          },\n          \"image/vnd.dwg\": {\n            source: \"iana\",\n            extensions: [\"dwg\"]\n          },\n          \"image/vnd.dxf\": {\n            source: \"iana\",\n            extensions: [\"dxf\"]\n          },\n          \"image/vnd.fastbidsheet\": {\n            source: \"iana\",\n            extensions: [\"fbs\"]\n          },\n          \"image/vnd.fpx\": {\n            source: \"iana\",\n            extensions: [\"fpx\"]\n          },\n          \"image/vnd.fst\": {\n            source: \"iana\",\n            extensions: [\"fst\"]\n          },\n          \"image/vnd.fujixerox.edmics-mmr\": {\n            source: \"iana\",\n            extensions: [\"mmr\"]\n          },\n          \"image/vnd.fujixerox.edmics-rlc\": {\n            source: \"iana\",\n            extensions: [\"rlc\"]\n          },\n          \"image/vnd.globalgraphics.pgb\": {\n            source: \"iana\"\n          },\n          \"image/vnd.microsoft.icon\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"ico\"]\n          },\n          \"image/vnd.mix\": {\n            source: \"iana\"\n          },\n          \"image/vnd.mozilla.apng\": {\n            source: \"iana\"\n          },\n          \"image/vnd.ms-dds\": {\n            compressible: true,\n            extensions: [\"dds\"]\n          },\n          \"image/vnd.ms-modi\": {\n            source: \"iana\",\n            extensions: [\"mdi\"]\n          },\n          \"image/vnd.ms-photo\": {\n            source: \"apache\",\n            extensions: [\"wdp\"]\n          },\n          \"image/vnd.net-fpx\": {\n            source: \"iana\",\n            extensions: [\"npx\"]\n          },\n          \"image/vnd.pco.b16\": {\n            source: \"iana\",\n            extensions: [\"b16\"]\n          },\n          \"image/vnd.radiance\": {\n            source: \"iana\"\n          },\n          \"image/vnd.sealed.png\": {\n            source: \"iana\"\n          },\n          \"image/vnd.sealedmedia.softseal.gif\": {\n            source: \"iana\"\n          },\n          \"image/vnd.sealedmedia.softseal.jpg\": {\n            source: \"iana\"\n          },\n          \"image/vnd.svf\": {\n            source: \"iana\"\n          },\n          \"image/vnd.tencent.tap\": {\n            source: \"iana\",\n            extensions: [\"tap\"]\n          },\n          \"image/vnd.valve.source.texture\": {\n            source: \"iana\",\n            extensions: [\"vtf\"]\n          },\n          \"image/vnd.wap.wbmp\": {\n            source: \"iana\",\n            extensions: [\"wbmp\"]\n          },\n          \"image/vnd.xiff\": {\n            source: \"iana\",\n            extensions: [\"xif\"]\n          },\n          \"image/vnd.zbrush.pcx\": {\n            source: \"iana\",\n            extensions: [\"pcx\"]\n          },\n          \"image/webp\": {\n            source: \"apache\",\n            extensions: [\"webp\"]\n          },\n          \"image/wmf\": {\n            source: \"iana\",\n            extensions: [\"wmf\"]\n          },\n          \"image/x-3ds\": {\n            source: \"apache\",\n            extensions: [\"3ds\"]\n          },\n          \"image/x-cmu-raster\": {\n            source: \"apache\",\n            extensions: [\"ras\"]\n          },\n          \"image/x-cmx\": {\n            source: \"apache\",\n            extensions: [\"cmx\"]\n          },\n          \"image/x-freehand\": {\n            source: \"apache\",\n            extensions: [\"fh\", \"fhc\", \"fh4\", \"fh5\", \"fh7\"]\n          },\n          \"image/x-icon\": {\n            source: \"apache\",\n            compressible: true,\n            extensions: [\"ico\"]\n          },\n          \"image/x-jng\": {\n            source: \"nginx\",\n            extensions: [\"jng\"]\n          },\n          \"image/x-mrsid-image\": {\n            source: \"apache\",\n            extensions: [\"sid\"]\n          },\n          \"image/x-ms-bmp\": {\n            source: \"nginx\",\n            compressible: true,\n            extensions: [\"bmp\"]\n          },\n          \"image/x-pcx\": {\n            source: \"apache\",\n            extensions: [\"pcx\"]\n          },\n          \"image/x-pict\": {\n            source: \"apache\",\n            extensions: [\"pic\", \"pct\"]\n          },\n          \"image/x-portable-anymap\": {\n            source: \"apache\",\n            extensions: [\"pnm\"]\n          },\n          \"image/x-portable-bitmap\": {\n            source: \"apache\",\n            extensions: [\"pbm\"]\n          },\n          \"image/x-portable-graymap\": {\n            source: \"apache\",\n            extensions: [\"pgm\"]\n          },\n          \"image/x-portable-pixmap\": {\n            source: \"apache\",\n            extensions: [\"ppm\"]\n          },\n          \"image/x-rgb\": {\n            source: \"apache\",\n            extensions: [\"rgb\"]\n          },\n          \"image/x-tga\": {\n            source: \"apache\",\n            extensions: [\"tga\"]\n          },\n          \"image/x-xbitmap\": {\n            source: \"apache\",\n            extensions: [\"xbm\"]\n          },\n          \"image/x-xcf\": {\n            compressible: false\n          },\n          \"image/x-xpixmap\": {\n            source: \"apache\",\n            extensions: [\"xpm\"]\n          },\n          \"image/x-xwindowdump\": {\n            source: \"apache\",\n            extensions: [\"xwd\"]\n          },\n          \"message/cpim\": {\n            source: \"iana\"\n          },\n          \"message/delivery-status\": {\n            source: \"iana\"\n          },\n          \"message/disposition-notification\": {\n            source: \"iana\",\n            extensions: [\"disposition-notification\"]\n          },\n          \"message/external-body\": {\n            source: \"iana\"\n          },\n          \"message/feedback-report\": {\n            source: \"iana\"\n          },\n          \"message/global\": {\n            source: \"iana\",\n            extensions: [\"u8msg\"]\n          },\n          \"message/global-delivery-status\": {\n            source: \"iana\",\n            extensions: [\"u8dsn\"]\n          },\n          \"message/global-disposition-notification\": {\n            source: \"iana\",\n            extensions: [\"u8mdn\"]\n          },\n          \"message/global-headers\": {\n            source: \"iana\",\n            extensions: [\"u8hdr\"]\n          },\n          \"message/http\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"message/imdn+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"message/news\": {\n            source: \"iana\"\n          },\n          \"message/partial\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"message/rfc822\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"eml\", \"mime\"]\n          },\n          \"message/s-http\": {\n            source: \"iana\"\n          },\n          \"message/sip\": {\n            source: \"iana\"\n          },\n          \"message/sipfrag\": {\n            source: \"iana\"\n          },\n          \"message/tracking-status\": {\n            source: \"iana\"\n          },\n          \"message/vnd.si.simp\": {\n            source: \"iana\"\n          },\n          \"message/vnd.wfa.wsc\": {\n            source: \"iana\",\n            extensions: [\"wsc\"]\n          },\n          \"model/3mf\": {\n            source: \"iana\",\n            extensions: [\"3mf\"]\n          },\n          \"model/e57\": {\n            source: \"iana\"\n          },\n          \"model/gltf+json\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"gltf\"]\n          },\n          \"model/gltf-binary\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"glb\"]\n          },\n          \"model/iges\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"igs\", \"iges\"]\n          },\n          \"model/mesh\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"msh\", \"mesh\", \"silo\"]\n          },\n          \"model/mtl\": {\n            source: \"iana\",\n            extensions: [\"mtl\"]\n          },\n          \"model/obj\": {\n            source: \"iana\",\n            extensions: [\"obj\"]\n          },\n          \"model/step\": {\n            source: \"iana\"\n          },\n          \"model/step+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"stpx\"]\n          },\n          \"model/step+zip\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"stpz\"]\n          },\n          \"model/step-xml+zip\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"stpxz\"]\n          },\n          \"model/stl\": {\n            source: \"iana\",\n            extensions: [\"stl\"]\n          },\n          \"model/vnd.collada+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"dae\"]\n          },\n          \"model/vnd.dwf\": {\n            source: \"iana\",\n            extensions: [\"dwf\"]\n          },\n          \"model/vnd.flatland.3dml\": {\n            source: \"iana\"\n          },\n          \"model/vnd.gdl\": {\n            source: \"iana\",\n            extensions: [\"gdl\"]\n          },\n          \"model/vnd.gs-gdl\": {\n            source: \"apache\"\n          },\n          \"model/vnd.gs.gdl\": {\n            source: \"iana\"\n          },\n          \"model/vnd.gtw\": {\n            source: \"iana\",\n            extensions: [\"gtw\"]\n          },\n          \"model/vnd.moml+xml\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"model/vnd.mts\": {\n            source: \"iana\",\n            extensions: [\"mts\"]\n          },\n          \"model/vnd.opengex\": {\n            source: \"iana\",\n            extensions: [\"ogex\"]\n          },\n          \"model/vnd.parasolid.transmit.binary\": {\n            source: \"iana\",\n            extensions: [\"x_b\"]\n          },\n          \"model/vnd.parasolid.transmit.text\": {\n            source: \"iana\",\n            extensions: [\"x_t\"]\n          },\n          \"model/vnd.pytha.pyox\": {\n            source: \"iana\"\n          },\n          \"model/vnd.rosette.annotated-data-model\": {\n            source: \"iana\"\n          },\n          \"model/vnd.sap.vds\": {\n            source: \"iana\",\n            extensions: [\"vds\"]\n          },\n          \"model/vnd.usdz+zip\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"usdz\"]\n          },\n          \"model/vnd.valve.source.compiled-map\": {\n            source: \"iana\",\n            extensions: [\"bsp\"]\n          },\n          \"model/vnd.vtu\": {\n            source: \"iana\",\n            extensions: [\"vtu\"]\n          },\n          \"model/vrml\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"wrl\", \"vrml\"]\n          },\n          \"model/x3d+binary\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"x3db\", \"x3dbz\"]\n          },\n          \"model/x3d+fastinfoset\": {\n            source: \"iana\",\n            extensions: [\"x3db\"]\n          },\n          \"model/x3d+vrml\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"x3dv\", \"x3dvz\"]\n          },\n          \"model/x3d+xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"x3d\", \"x3dz\"]\n          },\n          \"model/x3d-vrml\": {\n            source: \"iana\",\n            extensions: [\"x3dv\"]\n          },\n          \"multipart/alternative\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"multipart/appledouble\": {\n            source: \"iana\"\n          },\n          \"multipart/byteranges\": {\n            source: \"iana\"\n          },\n          \"multipart/digest\": {\n            source: \"iana\"\n          },\n          \"multipart/encrypted\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"multipart/form-data\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"multipart/header-set\": {\n            source: \"iana\"\n          },\n          \"multipart/mixed\": {\n            source: \"iana\"\n          },\n          \"multipart/multilingual\": {\n            source: \"iana\"\n          },\n          \"multipart/parallel\": {\n            source: \"iana\"\n          },\n          \"multipart/related\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"multipart/report\": {\n            source: \"iana\"\n          },\n          \"multipart/signed\": {\n            source: \"iana\",\n            compressible: false\n          },\n          \"multipart/vnd.bint.med-plus\": {\n            source: \"iana\"\n          },\n          \"multipart/voice-message\": {\n            source: \"iana\"\n          },\n          \"multipart/x-mixed-replace\": {\n            source: \"iana\"\n          },\n          \"text/1d-interleaved-parityfec\": {\n            source: \"iana\"\n          },\n          \"text/cache-manifest\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"appcache\", \"manifest\"]\n          },\n          \"text/calendar\": {\n            source: \"iana\",\n            extensions: [\"ics\", \"ifb\"]\n          },\n          \"text/calender\": {\n            compressible: true\n          },\n          \"text/cmd\": {\n            compressible: true\n          },\n          \"text/coffeescript\": {\n            extensions: [\"coffee\", \"litcoffee\"]\n          },\n          \"text/cql\": {\n            source: \"iana\"\n          },\n          \"text/cql-expression\": {\n            source: \"iana\"\n          },\n          \"text/cql-identifier\": {\n            source: \"iana\"\n          },\n          \"text/css\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true,\n            extensions: [\"css\"]\n          },\n          \"text/csv\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"csv\"]\n          },\n          \"text/csv-schema\": {\n            source: \"iana\"\n          },\n          \"text/directory\": {\n            source: \"iana\"\n          },\n          \"text/dns\": {\n            source: \"iana\"\n          },\n          \"text/ecmascript\": {\n            source: \"iana\"\n          },\n          \"text/encaprtp\": {\n            source: \"iana\"\n          },\n          \"text/enriched\": {\n            source: \"iana\"\n          },\n          \"text/fhirpath\": {\n            source: \"iana\"\n          },\n          \"text/flexfec\": {\n            source: \"iana\"\n          },\n          \"text/fwdred\": {\n            source: \"iana\"\n          },\n          \"text/gff3\": {\n            source: \"iana\"\n          },\n          \"text/grammar-ref-list\": {\n            source: \"iana\"\n          },\n          \"text/html\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"html\", \"htm\", \"shtml\"]\n          },\n          \"text/jade\": {\n            extensions: [\"jade\"]\n          },\n          \"text/javascript\": {\n            source: \"iana\",\n            compressible: true\n          },\n          \"text/jcr-cnd\": {\n            source: \"iana\"\n          },\n          \"text/jsx\": {\n            compressible: true,\n            extensions: [\"jsx\"]\n          },\n          \"text/less\": {\n            compressible: true,\n            extensions: [\"less\"]\n          },\n          \"text/markdown\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"markdown\", \"md\"]\n          },\n          \"text/mathml\": {\n            source: \"nginx\",\n            extensions: [\"mml\"]\n          },\n          \"text/mdx\": {\n            compressible: true,\n            extensions: [\"mdx\"]\n          },\n          \"text/mizar\": {\n            source: \"iana\"\n          },\n          \"text/n3\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true,\n            extensions: [\"n3\"]\n          },\n          \"text/parameters\": {\n            source: \"iana\",\n            charset: \"UTF-8\"\n          },\n          \"text/parityfec\": {\n            source: \"iana\"\n          },\n          \"text/plain\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"txt\", \"text\", \"conf\", \"def\", \"list\", \"log\", \"in\", \"ini\"]\n          },\n          \"text/provenance-notation\": {\n            source: \"iana\",\n            charset: \"UTF-8\"\n          },\n          \"text/prs.fallenstein.rst\": {\n            source: \"iana\"\n          },\n          \"text/prs.lines.tag\": {\n            source: \"iana\",\n            extensions: [\"dsc\"]\n          },\n          \"text/prs.prop.logic\": {\n            source: \"iana\"\n          },\n          \"text/raptorfec\": {\n            source: \"iana\"\n          },\n          \"text/red\": {\n            source: \"iana\"\n          },\n          \"text/rfc822-headers\": {\n            source: \"iana\"\n          },\n          \"text/richtext\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"rtx\"]\n          },\n          \"text/rtf\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"rtf\"]\n          },\n          \"text/rtp-enc-aescm128\": {\n            source: \"iana\"\n          },\n          \"text/rtploopback\": {\n            source: \"iana\"\n          },\n          \"text/rtx\": {\n            source: \"iana\"\n          },\n          \"text/sgml\": {\n            source: \"iana\",\n            extensions: [\"sgml\", \"sgm\"]\n          },\n          \"text/shaclc\": {\n            source: \"iana\"\n          },\n          \"text/shex\": {\n            source: \"iana\",\n            extensions: [\"shex\"]\n          },\n          \"text/slim\": {\n            extensions: [\"slim\", \"slm\"]\n          },\n          \"text/spdx\": {\n            source: \"iana\",\n            extensions: [\"spdx\"]\n          },\n          \"text/strings\": {\n            source: \"iana\"\n          },\n          \"text/stylus\": {\n            extensions: [\"stylus\", \"styl\"]\n          },\n          \"text/t140\": {\n            source: \"iana\"\n          },\n          \"text/tab-separated-values\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"tsv\"]\n          },\n          \"text/troff\": {\n            source: \"iana\",\n            extensions: [\"t\", \"tr\", \"roff\", \"man\", \"me\", \"ms\"]\n          },\n          \"text/turtle\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            extensions: [\"ttl\"]\n          },\n          \"text/ulpfec\": {\n            source: \"iana\"\n          },\n          \"text/uri-list\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"uri\", \"uris\", \"urls\"]\n          },\n          \"text/vcard\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"vcard\"]\n          },\n          \"text/vnd.a\": {\n            source: \"iana\"\n          },\n          \"text/vnd.abc\": {\n            source: \"iana\"\n          },\n          \"text/vnd.ascii-art\": {\n            source: \"iana\"\n          },\n          \"text/vnd.curl\": {\n            source: \"iana\",\n            extensions: [\"curl\"]\n          },\n          \"text/vnd.curl.dcurl\": {\n            source: \"apache\",\n            extensions: [\"dcurl\"]\n          },\n          \"text/vnd.curl.mcurl\": {\n            source: \"apache\",\n            extensions: [\"mcurl\"]\n          },\n          \"text/vnd.curl.scurl\": {\n            source: \"apache\",\n            extensions: [\"scurl\"]\n          },\n          \"text/vnd.debian.copyright\": {\n            source: \"iana\",\n            charset: \"UTF-8\"\n          },\n          \"text/vnd.dmclientscript\": {\n            source: \"iana\"\n          },\n          \"text/vnd.dvb.subtitle\": {\n            source: \"iana\",\n            extensions: [\"sub\"]\n          },\n          \"text/vnd.esmertec.theme-descriptor\": {\n            source: \"iana\",\n            charset: \"UTF-8\"\n          },\n          \"text/vnd.familysearch.gedcom\": {\n            source: \"iana\",\n            extensions: [\"ged\"]\n          },\n          \"text/vnd.ficlab.flt\": {\n            source: \"iana\"\n          },\n          \"text/vnd.fly\": {\n            source: \"iana\",\n            extensions: [\"fly\"]\n          },\n          \"text/vnd.fmi.flexstor\": {\n            source: \"iana\",\n            extensions: [\"flx\"]\n          },\n          \"text/vnd.gml\": {\n            source: \"iana\"\n          },\n          \"text/vnd.graphviz\": {\n            source: \"iana\",\n            extensions: [\"gv\"]\n          },\n          \"text/vnd.hans\": {\n            source: \"iana\"\n          },\n          \"text/vnd.hgl\": {\n            source: \"iana\"\n          },\n          \"text/vnd.in3d.3dml\": {\n            source: \"iana\",\n            extensions: [\"3dml\"]\n          },\n          \"text/vnd.in3d.spot\": {\n            source: \"iana\",\n            extensions: [\"spot\"]\n          },\n          \"text/vnd.iptc.newsml\": {\n            source: \"iana\"\n          },\n          \"text/vnd.iptc.nitf\": {\n            source: \"iana\"\n          },\n          \"text/vnd.latex-z\": {\n            source: \"iana\"\n          },\n          \"text/vnd.motorola.reflex\": {\n            source: \"iana\"\n          },\n          \"text/vnd.ms-mediapackage\": {\n            source: \"iana\"\n          },\n          \"text/vnd.net2phone.commcenter.command\": {\n            source: \"iana\"\n          },\n          \"text/vnd.radisys.msml-basic-layout\": {\n            source: \"iana\"\n          },\n          \"text/vnd.senx.warpscript\": {\n            source: \"iana\"\n          },\n          \"text/vnd.si.uricatalogue\": {\n            source: \"iana\"\n          },\n          \"text/vnd.sosi\": {\n            source: \"iana\"\n          },\n          \"text/vnd.sun.j2me.app-descriptor\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            extensions: [\"jad\"]\n          },\n          \"text/vnd.trolltech.linguist\": {\n            source: \"iana\",\n            charset: \"UTF-8\"\n          },\n          \"text/vnd.wap.si\": {\n            source: \"iana\"\n          },\n          \"text/vnd.wap.sl\": {\n            source: \"iana\"\n          },\n          \"text/vnd.wap.wml\": {\n            source: \"iana\",\n            extensions: [\"wml\"]\n          },\n          \"text/vnd.wap.wmlscript\": {\n            source: \"iana\",\n            extensions: [\"wmls\"]\n          },\n          \"text/vtt\": {\n            source: \"iana\",\n            charset: \"UTF-8\",\n            compressible: true,\n            extensions: [\"vtt\"]\n          },\n          \"text/x-asm\": {\n            source: \"apache\",\n            extensions: [\"s\", \"asm\"]\n          },\n          \"text/x-c\": {\n            source: \"apache\",\n            extensions: [\"c\", \"cc\", \"cxx\", \"cpp\", \"h\", \"hh\", \"dic\"]\n          },\n          \"text/x-component\": {\n            source: \"nginx\",\n            extensions: [\"htc\"]\n          },\n          \"text/x-fortran\": {\n            source: \"apache\",\n            extensions: [\"f\", \"for\", \"f77\", \"f90\"]\n          },\n          \"text/x-gwt-rpc\": {\n            compressible: true\n          },\n          \"text/x-handlebars-template\": {\n            extensions: [\"hbs\"]\n          },\n          \"text/x-java-source\": {\n            source: \"apache\",\n            extensions: [\"java\"]\n          },\n          \"text/x-jquery-tmpl\": {\n            compressible: true\n          },\n          \"text/x-lua\": {\n            extensions: [\"lua\"]\n          },\n          \"text/x-markdown\": {\n            compressible: true,\n            extensions: [\"mkd\"]\n          },\n          \"text/x-nfo\": {\n            source: \"apache\",\n            extensions: [\"nfo\"]\n          },\n          \"text/x-opml\": {\n            source: \"apache\",\n            extensions: [\"opml\"]\n          },\n          \"text/x-org\": {\n            compressible: true,\n            extensions: [\"org\"]\n          },\n          \"text/x-pascal\": {\n            source: \"apache\",\n            extensions: [\"p\", \"pas\"]\n          },\n          \"text/x-processing\": {\n            compressible: true,\n            extensions: [\"pde\"]\n          },\n          \"text/x-sass\": {\n            extensions: [\"sass\"]\n          },\n          \"text/x-scss\": {\n            extensions: [\"scss\"]\n          },\n          \"text/x-setext\": {\n            source: \"apache\",\n            extensions: [\"etx\"]\n          },\n          \"text/x-sfv\": {\n            source: \"apache\",\n            extensions: [\"sfv\"]\n          },\n          \"text/x-suse-ymp\": {\n            compressible: true,\n            extensions: [\"ymp\"]\n          },\n          \"text/x-uuencode\": {\n            source: \"apache\",\n            extensions: [\"uu\"]\n          },\n          \"text/x-vcalendar\": {\n            source: \"apache\",\n            extensions: [\"vcs\"]\n          },\n          \"text/x-vcard\": {\n            source: \"apache\",\n            extensions: [\"vcf\"]\n          },\n          \"text/xml\": {\n            source: \"iana\",\n            compressible: true,\n            extensions: [\"xml\"]\n          },\n          \"text/xml-external-parsed-entity\": {\n            source: \"iana\"\n          },\n          \"text/yaml\": {\n            compressible: true,\n            extensions: [\"yaml\", \"yml\"]\n          },\n          \"video/1d-interleaved-parityfec\": {\n            source: \"iana\"\n          },\n          \"video/3gpp\": {\n            source: \"iana\",\n            extensions: [\"3gp\", \"3gpp\"]\n          },\n          \"video/3gpp-tt\": {\n            source: \"iana\"\n          },\n          \"video/3gpp2\": {\n            source: \"iana\",\n            extensions: [\"3g2\"]\n          },\n          \"video/av1\": {\n            source: \"iana\"\n          },\n          \"video/bmpeg\": {\n            source: \"iana\"\n          },\n          \"video/bt656\": {\n            source: \"iana\"\n          },\n          \"video/celb\": {\n            source: \"iana\"\n          },\n          \"video/dv\": {\n            source: \"iana\"\n          },\n          \"video/encaprtp\": {\n            source: \"iana\"\n          },\n          \"video/ffv1\": {\n            source: \"iana\"\n          },\n          \"video/flexfec\": {\n            source: \"iana\"\n          },\n          \"video/h261\": {\n            source: \"iana\",\n            extensions: [\"h261\"]\n          },\n          \"video/h263\": {\n            source: \"iana\",\n            extensions: [\"h263\"]\n          },\n          \"video/h263-1998\": {\n            source: \"iana\"\n          },\n          \"video/h263-2000\": {\n            source: \"iana\"\n          },\n          \"video/h264\": {\n            source: \"iana\",\n            extensions: [\"h264\"]\n          },\n          \"video/h264-rcdo\": {\n            source: \"iana\"\n          },\n          \"video/h264-svc\": {\n            source: \"iana\"\n          },\n          \"video/h265\": {\n            source: \"iana\"\n          },\n          \"video/iso.segment\": {\n            source: \"iana\",\n            extensions: [\"m4s\"]\n          },\n          \"video/jpeg\": {\n            source: \"iana\",\n            extensions: [\"jpgv\"]\n          },\n          \"video/jpeg2000\": {\n            source: \"iana\"\n          },\n          \"video/jpm\": {\n            source: \"apache\",\n            extensions: [\"jpm\", \"jpgm\"]\n          },\n          \"video/jxsv\": {\n            source: \"iana\"\n          },\n          \"video/mj2\": {\n            source: \"iana\",\n            extensions: [\"mj2\", \"mjp2\"]\n          },\n          \"video/mp1s\": {\n            source: \"iana\"\n          },\n          \"video/mp2p\": {\n            source: \"iana\"\n          },\n          \"video/mp2t\": {\n            source: \"iana\",\n            extensions: [\"ts\"]\n          },\n          \"video/mp4\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"mp4\", \"mp4v\", \"mpg4\"]\n          },\n          \"video/mp4v-es\": {\n            source: \"iana\"\n          },\n          \"video/mpeg\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"mpeg\", \"mpg\", \"mpe\", \"m1v\", \"m2v\"]\n          },\n          \"video/mpeg4-generic\": {\n            source: \"iana\"\n          },\n          \"video/mpv\": {\n            source: \"iana\"\n          },\n          \"video/nv\": {\n            source: \"iana\"\n          },\n          \"video/ogg\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"ogv\"]\n          },\n          \"video/parityfec\": {\n            source: \"iana\"\n          },\n          \"video/pointer\": {\n            source: \"iana\"\n          },\n          \"video/quicktime\": {\n            source: \"iana\",\n            compressible: false,\n            extensions: [\"qt\", \"mov\"]\n          },\n          \"video/raptorfec\": {\n            source: \"iana\"\n          },\n          \"video/raw\": {\n            source: \"iana\"\n          },\n          \"video/rtp-enc-aescm128\": {\n            source: \"iana\"\n          },\n          \"video/rtploopback\": {\n            source: \"iana\"\n          },\n          \"video/rtx\": {\n            source: \"iana\"\n          },\n          \"video/scip\": {\n            source: \"iana\"\n          },\n          \"video/smpte291\": {\n            source: \"iana\"\n          },\n          \"video/smpte292m\": {\n            source: \"iana\"\n          },\n          \"video/ulpfec\": {\n            source: \"iana\"\n          },\n          \"video/vc1\": {\n            source: \"iana\"\n          },\n          \"video/vc2\": {\n            source: \"iana\"\n          },\n          \"video/vnd.cctv\": {\n            source: \"iana\"\n          },\n          \"video/vnd.dece.hd\": {\n            source: \"iana\",\n            extensions: [\"uvh\", \"uvvh\"]\n          },\n          \"video/vnd.dece.mobile\": {\n            source: \"iana\",\n            extensions: [\"uvm\", \"uvvm\"]\n          },\n          \"video/vnd.dece.mp4\": {\n            source: \"iana\"\n          },\n          \"video/vnd.dece.pd\": {\n            source: \"iana\",\n            extensions: [\"uvp\", \"uvvp\"]\n          },\n          \"video/vnd.dece.sd\": {\n            source: \"iana\",\n            extensions: [\"uvs\", \"uvvs\"]\n          },\n          \"video/vnd.dece.video\": {\n            source: \"iana\",\n            extensions: [\"uvv\", \"uvvv\"]\n          },\n          \"video/vnd.directv.mpeg\": {\n            source: \"iana\"\n          },\n          \"video/vnd.directv.mpeg-tts\": {\n            source: \"iana\"\n          },\n          \"video/vnd.dlna.mpeg-tts\": {\n            source: \"iana\"\n          },\n          \"video/vnd.dvb.file\": {\n            source: \"iana\",\n            extensions: [\"dvb\"]\n          },\n          \"video/vnd.fvt\": {\n            source: \"iana\",\n            extensions: [\"fvt\"]\n          },\n          \"video/vnd.hns.video\": {\n            source: \"iana\"\n          },\n          \"video/vnd.iptvforum.1dparityfec-1010\": {\n            source: \"iana\"\n          },\n          \"video/vnd.iptvforum.1dparityfec-2005\": {\n            source: \"iana\"\n          },\n          \"video/vnd.iptvforum.2dparityfec-1010\": {\n            source: \"iana\"\n          },\n          \"video/vnd.iptvforum.2dparityfec-2005\": {\n            source: \"iana\"\n          },\n          \"video/vnd.iptvforum.ttsavc\": {\n            source: \"iana\"\n          },\n          \"video/vnd.iptvforum.ttsmpeg2\": {\n            source: \"iana\"\n          },\n          \"video/vnd.motorola.video\": {\n            source: \"iana\"\n          },\n          \"video/vnd.motorola.videop\": {\n            source: \"iana\"\n          },\n          \"video/vnd.mpegurl\": {\n            source: \"iana\",\n            extensions: [\"mxu\", \"m4u\"]\n          },\n          \"video/vnd.ms-playready.media.pyv\": {\n            source: \"iana\",\n            extensions: [\"pyv\"]\n          },\n          \"video/vnd.nokia.interleaved-multimedia\": {\n            source: \"iana\"\n          },\n          \"video/vnd.nokia.mp4vr\": {\n            source: \"iana\"\n          },\n          \"video/vnd.nokia.videovoip\": {\n            source: \"iana\"\n          },\n          \"video/vnd.objectvideo\": {\n            source: \"iana\"\n          },\n          \"video/vnd.radgamettools.bink\": {\n            source: \"iana\"\n          },\n          \"video/vnd.radgamettools.smacker\": {\n            source: \"iana\"\n          },\n          \"video/vnd.sealed.mpeg1\": {\n            source: \"iana\"\n          },\n          \"video/vnd.sealed.mpeg4\": {\n            source: \"iana\"\n          },\n          \"video/vnd.sealed.swf\": {\n            source: \"iana\"\n          },\n          \"video/vnd.sealedmedia.softseal.mov\": {\n            source: \"iana\"\n          },\n          \"video/vnd.uvvu.mp4\": {\n            source: \"iana\",\n            extensions: [\"uvu\", \"uvvu\"]\n          },\n          \"video/vnd.vivo\": {\n            source: \"iana\",\n            extensions: [\"viv\"]\n          },\n          \"video/vnd.youtube.yt\": {\n            source: \"iana\"\n          },\n          \"video/vp8\": {\n            source: \"iana\"\n          },\n          \"video/vp9\": {\n            source: \"iana\"\n          },\n          \"video/webm\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"webm\"]\n          },\n          \"video/x-f4v\": {\n            source: \"apache\",\n            extensions: [\"f4v\"]\n          },\n          \"video/x-fli\": {\n            source: \"apache\",\n            extensions: [\"fli\"]\n          },\n          \"video/x-flv\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"flv\"]\n          },\n          \"video/x-m4v\": {\n            source: \"apache\",\n            extensions: [\"m4v\"]\n          },\n          \"video/x-matroska\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"mkv\", \"mk3d\", \"mks\"]\n          },\n          \"video/x-mng\": {\n            source: \"apache\",\n            extensions: [\"mng\"]\n          },\n          \"video/x-ms-asf\": {\n            source: \"apache\",\n            extensions: [\"asf\", \"asx\"]\n          },\n          \"video/x-ms-vob\": {\n            source: \"apache\",\n            extensions: [\"vob\"]\n          },\n          \"video/x-ms-wm\": {\n            source: \"apache\",\n            extensions: [\"wm\"]\n          },\n          \"video/x-ms-wmv\": {\n            source: \"apache\",\n            compressible: false,\n            extensions: [\"wmv\"]\n          },\n          \"video/x-ms-wmx\": {\n            source: \"apache\",\n            extensions: [\"wmx\"]\n          },\n          \"video/x-ms-wvx\": {\n            source: \"apache\",\n            extensions: [\"wvx\"]\n          },\n          \"video/x-msvideo\": {\n            source: \"apache\",\n            extensions: [\"avi\"]\n          },\n          \"video/x-sgi-movie\": {\n            source: \"apache\",\n            extensions: [\"movie\"]\n          },\n          \"video/x-smv\": {\n            source: \"apache\",\n            extensions: [\"smv\"]\n          },\n          \"x-conference/x-cooltalk\": {\n            source: \"apache\",\n            extensions: [\"ice\"]\n          },\n          \"x-shader/x-fragment\": {\n            compressible: true\n          },\n          \"x-shader/x-vertex\": {\n            compressible: true\n          }\n        };\n      }\n    });\n    var require_mime_db = __commonJS2({\n      \"node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/index.js\"(exports2, module2) {\n        module2.exports = require_db();\n      }\n    });\n    var main_exports = {};\n    __export2(main_exports, {\n      PreviewController: () => PreviewController2,\n      getExtension: () => getExtension,\n      joinFilepath: () => joinFilepath,\n      normalizeFilepath: () => normalizeFilepath\n    });\n    module.exports = __toCommonJS(main_exports);\n    var CHANNEL_NAME = \"$CSB_RELAY\";\n    var import_mime_db = __toESM2(require_mime_db());\n    var extensionMap = /* @__PURE__ */new Map();\n    var entries = Object.entries(import_mime_db.default);\n    for (const [mimetype, entry] of entries) {\n      const extensions = entry.extensions;\n      if (extensions === null || extensions === void 0 ? void 0 : extensions.length) {\n        for (const ext of extensions) {\n          extensionMap.set(ext, mimetype);\n        }\n      }\n    }\n    var EXTENSIONS_MAP = extensionMap;\n    var counter2 = 0;\n    function generateRandomId2() {\n      const now = Date.now();\n      const randomNumber = Math.round(Math.random() * 1e4);\n      const count = counter2 += 1;\n      return (+`${now}${randomNumber}${count}`).toString(16);\n    }\n    function normalizeFilepath(filepath) {\n      const split = filepath.split(\"/\").filter(Boolean);\n      const normalized = split.join(\"/\");\n      return \"/\" + normalized;\n    }\n    function joinFilepath(filepath, addition) {\n      return normalizeFilepath(filepath + \"/\" + addition);\n    }\n    function getExtension(filepath) {\n      const parts = filepath.split(\".\");\n      if (parts.length <= 1) {\n        return \"\";\n      } else {\n        const ext = parts[parts.length - 1];\n        return ext;\n      }\n    }\n    var PreviewController2 = class {\n      async getIndexAtPath(filepath) {\n        for (const index of this.indexFiles) {\n          try {\n            const content = await this.getFileContent(joinFilepath(filepath, index));\n            return content;\n          } catch (err) {}\n        }\n        throw new Error(\"No index file not found\");\n      }\n      async handleWorkerRequest(request) {\n        if (!this.initPromise) {\n          throw new Error(\"Init promise is null\");\n        }\n        const [previewRoot, port] = await this.initPromise;\n        try {\n          const filepath = normalizeFilepath(new URL(request.url, previewRoot).pathname);\n          let body = null;\n          const headers = {};\n          try {\n            body = await this.getFileContent(filepath);\n          } catch (err) {}\n          if (body == null) {\n            body = await this.getIndexAtPath(filepath);\n            headers[\"Content-Type\"] = \"text/html; charset=utf-8\";\n          }\n          if (body == null) {\n            throw new Error(\"File not found\");\n          }\n          if (!headers[\"Content-Type\"]) {\n            const extension = getExtension(filepath);\n            const foundMimetype = EXTENSIONS_MAP.get(extension);\n            if (foundMimetype) {\n              headers[\"Content-Type\"] = foundMimetype;\n            }\n          }\n          const responseMessage = {\n            $channel: CHANNEL_NAME,\n            $type: \"preview/response\",\n            id: request.id,\n            headers,\n            status: 200,\n            body\n          };\n          port.postMessage(responseMessage);\n        } catch (err1) {\n          const responseMessage1 = {\n            $channel: CHANNEL_NAME,\n            $type: \"preview/response\",\n            id: request.id,\n            headers: {\n              [\"Content-Type\"]: \"text/html; charset=utf-8\"\n            },\n            status: 404,\n            body: \"File not found\"\n          };\n          port.postMessage(responseMessage1);\n        }\n      }\n      getRelayUrl(previewUrl) {\n        const relayUrl = new URL(previewUrl);\n        relayUrl.pathname = \"/__csb_relay/\";\n        return relayUrl.toString();\n      }\n      async _initPreview() {\n        const id = generateRandomId2();\n        const previewUrl = new URL(this.baseUrl);\n        previewUrl.hostname = id + \"-\" + previewUrl.hostname;\n        previewUrl.pathname = \"/\";\n        const relayUrl = this.getRelayUrl(previewUrl.toString());\n        const iframe = document.createElement(\"iframe\");\n        iframe.setAttribute(\"src\", relayUrl.toString());\n        iframe.style.display = \"none\";\n        document.body.appendChild(iframe);\n        const channel = new MessageChannel();\n        const iframeContentWindow = iframe.contentWindow;\n        if (!iframeContentWindow) {\n          throw new Error(\"Could not get iframe contentWindow\");\n        }\n        return new Promise(resolve => {\n          const port = channel.port1;\n          port.onmessage = evt => {\n            if (typeof evt.data === \"object\" && evt.data.$channel === CHANNEL_NAME) {\n              switch (evt.data.$type) {\n                case \"preview/ready\":\n                  resolve([previewUrl.toString(), port, iframe]);\n                  break;\n                case \"preview/request\":\n                  this.handleWorkerRequest(evt.data);\n                  break;\n              }\n            }\n          };\n          iframe.onload = () => {\n            const initMsg = {\n              $channel: CHANNEL_NAME,\n              $type: \"preview/init\"\n            };\n            iframeContentWindow.postMessage(initMsg, \"*\", [channel.port2]);\n          };\n        });\n      } /**\n        * Initialize a preview and return the url at which the preview is being served\n        **/\n      initPreview() {\n        if (!this.initPromise) {\n          this.initPromise = this._initPreview();\n        }\n        return this.initPromise.then(v => v[0]);\n      }\n      destroy() {\n        if (this.initPromise) {\n          const p = this.initPromise;\n          p.then(val => {\n            val[1].close();\n            const url = this.getRelayUrl(val[0]);\n            const foundElements = document.body.querySelectorAll(`src=\"${url}\"`);\n            foundElements.forEach(el => el.remove());\n          });\n          this.initPromise = null;\n        }\n      }\n      constructor(options) {\n        this.initPromise = null;\n        this.baseUrl = new URL(options.baseUrl);\n        this.getFileContent = options.getFileContent;\n        var _indexFiles;\n        this.indexFiles = (_indexFiles = options.indexFiles) !== null && _indexFiles !== void 0 ? _indexFiles : [\"index.html\", \"index.html\"];\n      }\n    };\n  }\n}); // ../../node_modules/@codesandbox/sandpack-client/dist/index-bd1ff004.mjs\nvar index_bd1ff004_exports = {};\n__export(index_bd1ff004_exports, {\n  SandpackStatic: () => SandpackStatic\n});\nvar import_static_browser_server, insertHtmlAfterRegex, readBuffer2, validateHtml, SandpackStatic;\nvar init_index_bd1ff004 = __esm({\n  \"../../node_modules/@codesandbox/sandpack-client/dist/index-bd1ff004.mjs\"() {\n    init_types_36e5ec0d();\n    import_static_browser_server = __toESM(require_main(), 1);\n    init_base_80a1f760();\n    init_client_utils_7a723432();\n    init_lib();\n    init_dist();\n    insertHtmlAfterRegex = function (regex, content, insertable) {\n      var match = regex.exec(content);\n      if (match && match.length >= 1) {\n        var offset = match.index + match[0].length;\n        var prefix = content.substring(0, offset);\n        var suffix = content.substring(offset);\n        return prefix + insertable + suffix;\n      }\n    };\n    readBuffer2 = function (content) {\n      if (typeof content === \"string\") {\n        return content;\n      } else {\n        return new TextDecoder().decode(content);\n      }\n    };\n    validateHtml = function (content) {\n      var contentString = readBuffer2(content);\n      var domParser = new DOMParser();\n      var doc = domParser.parseFromString(contentString, \"text/html\");\n      if (!doc.documentElement.getAttribute(\"lang\")) {\n        doc.documentElement.setAttribute(\"lang\", \"en\");\n      }\n      var html = doc.documentElement.outerHTML;\n      return \"<!DOCTYPE html>\\n\" + html;\n    };\n    SandpackStatic = /** @class */function (_super) {\n      __extends(SandpackStatic2, _super);\n      function SandpackStatic2(selector, sandboxSetup, options) {\n        if (options === void 0) {\n          options = {};\n        }\n        var _a2;\n        var _this = _super.call(this, selector, sandboxSetup, options) || this;\n        _this.files = /* @__PURE__ */new Map();\n        _this.status = \"initializing\";\n        _this.emitter = new EventEmitter();\n        _this.previewController = new import_static_browser_server.PreviewController({\n          baseUrl: (_a2 = options.bundlerURL) !== null && _a2 !== void 0 ? _a2 : \"https://preview.sandpack-static-server.codesandbox.io\",\n          // filepath is always normalized to start with / and not end with a slash\n          getFileContent: function (filepath) {\n            var content = _this.files.get(filepath);\n            if (!content) {\n              throw new Error(\"File not found\");\n            }\n            if (filepath.endsWith(\".html\") || filepath.endsWith(\".htm\")) {\n              try {\n                content = validateHtml(content);\n                content = _this.injectProtocolScript(content);\n                content = _this.injectExternalResources(content, options.externalResources);\n              } catch (err) {\n                console.error(\"Runtime injection failed\", err);\n              }\n            }\n            return content;\n          }\n        });\n        if (typeof selector === \"string\") {\n          _this.selector = selector;\n          var element = document.querySelector(selector);\n          _this.element = element;\n          _this.iframe = document.createElement(\"iframe\");\n        } else {\n          _this.element = selector;\n          _this.iframe = selector;\n        }\n        if (!_this.iframe.getAttribute(\"sandbox\")) {\n          _this.iframe.setAttribute(\"sandbox\", \"allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts\");\n          _this.iframe.setAttribute(\"allow\", \"accelerometer; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; clipboard-write;\");\n        }\n        _this.updateSandbox();\n        return _this;\n      }\n      SandpackStatic2.prototype.injectContentIntoHead = function (content, contentToInsert) {\n        var _a2;\n        content = readBuffer2(content);\n        content = (_a2 = insertHtmlAfterRegex(/<head[^<>]*>/g, content, \"\\n\" + contentToInsert)) !== null && _a2 !== void 0 ? _a2 : contentToInsert + \"\\n\" + content;\n        return content;\n      };\n      SandpackStatic2.prototype.injectProtocolScript = function (content) {\n        var scriptToInsert = '<script>\\n  window.addEventListener(\"message\", (message) => {\\n    if(message.data.type === \"refresh\") {\\n      window.location.reload();\\n    }\\n  })\\n</script>';\n        return this.injectContentIntoHead(content, scriptToInsert);\n      };\n      SandpackStatic2.prototype.injectExternalResources = function (content, externalResources) {\n        if (externalResources === void 0) {\n          externalResources = [];\n        }\n        var tagsToInsert = externalResources.map(function (resource) {\n          var match = resource.match(/\\.([^.]*)$/);\n          var fileType = match === null || match === void 0 ? void 0 : match[1];\n          if (fileType === \"css\" || resource.includes(\"fonts.googleapis\")) {\n            return '<link rel=\"stylesheet\" href=\"' + resource + '\">';\n          }\n          if (fileType === \"js\") {\n            return '<script src=\"' + resource + '\"></script>';\n          }\n          throw new Error(\"Unable to determine file type for external resource: \" + resource);\n        }).join(\"\\n\");\n        return this.injectContentIntoHead(content, tagsToInsert);\n      };\n      SandpackStatic2.prototype.updateSandbox = function (setup, _isInitializationCompile) {\n        if (setup === void 0) {\n          setup = this.sandboxSetup;\n        }\n        var modules = fromBundlerFilesToFS(setup.files);\n        this.dispatch({\n          codesandbox: true,\n          modules,\n          template: setup.template,\n          type: \"compile\"\n        });\n      };\n      SandpackStatic2.prototype.compile = function (files) {\n        return __awaiter(this, void 0, void 0, function () {\n          var previewUrl;\n          return __generator(this, function (_a2) {\n            switch (_a2.label) {\n              case 0:\n                this.files = new Map(Object.entries(files));\n                return [4, this.previewController.initPreview()];\n              case 1:\n                previewUrl = _a2.sent();\n                this.iframe.setAttribute(\"src\", previewUrl);\n                this.status = \"done\";\n                this.dispatch({\n                  type: \"done\",\n                  compilatonError: false\n                });\n                this.dispatch({\n                  type: \"urlchange\",\n                  url: previewUrl,\n                  back: false,\n                  forward: false\n                });\n                return [2];\n            }\n          });\n        });\n      };\n      SandpackStatic2.prototype.dispatch = function (message) {\n        var _a2;\n        switch (message.type) {\n          case \"compile\":\n            this.compile(message.modules);\n            break;\n          default:\n            (_a2 = this.iframe.contentWindow) === null || _a2 === void 0 ? void 0 : _a2.postMessage(message, \"*\");\n            this.emitter.dispatch(message);\n        }\n      };\n      SandpackStatic2.prototype.listen = function (listener) {\n        return this.emitter.listener(listener);\n      };\n      SandpackStatic2.prototype.destroy = function () {\n        this.emitter.cleanup();\n      };\n      return SandpackStatic2;\n    }(SandpackClient);\n  }\n}); // ../../node_modules/@codesandbox/sandpack-client/dist/clients/runtime/index.mjs\nvar runtime_exports = {};\n__export(runtime_exports, {\n  SandpackRuntime: () => SandpackRuntime\n});\nfunction getTemplate(pkg, modules) {\n  if (!pkg) {\n    return \"static\";\n  }\n  var _a2 = pkg.dependencies,\n    dependencies = _a2 === void 0 ? {} : _a2,\n    _b = pkg.devDependencies,\n    devDependencies = _b === void 0 ? {} : _b;\n  var totalDependencies = __spreadArray(__spreadArray([], Object.keys(dependencies), true), Object.keys(devDependencies), true);\n  var moduleNames = Object.keys(modules);\n  var adonis = [\"@adonisjs/framework\", \"@adonisjs/core\"];\n  if (totalDependencies.some(function (dep) {\n    return adonis.indexOf(dep) > -1;\n  })) {\n    return \"adonis\";\n  }\n  var nuxt = [\"nuxt\", \"nuxt-edge\", \"nuxt-ts\", \"nuxt-ts-edge\", \"nuxt3\"];\n  if (totalDependencies.some(function (dep) {\n    return nuxt.indexOf(dep) > -1;\n  })) {\n    return \"nuxt\";\n  }\n  if (totalDependencies.indexOf(\"next\") > -1) {\n    return \"next\";\n  }\n  var apollo = [\"apollo-server\", \"apollo-server-express\", \"apollo-server-hapi\", \"apollo-server-koa\", \"apollo-server-lambda\", \"apollo-server-micro\"];\n  if (totalDependencies.some(function (dep) {\n    return apollo.indexOf(dep) > -1;\n  })) {\n    return \"apollo\";\n  }\n  if (totalDependencies.indexOf(\"mdx-deck\") > -1) {\n    return \"mdx-deck\";\n  }\n  if (totalDependencies.indexOf(\"gridsome\") > -1) {\n    return \"gridsome\";\n  }\n  if (totalDependencies.indexOf(\"vuepress\") > -1) {\n    return \"vuepress\";\n  }\n  if (totalDependencies.indexOf(\"ember-cli\") > -1) {\n    return \"ember\";\n  }\n  if (totalDependencies.indexOf(\"sapper\") > -1) {\n    return \"sapper\";\n  }\n  if (totalDependencies.indexOf(\"gatsby\") > -1) {\n    return \"gatsby\";\n  }\n  if (totalDependencies.indexOf(\"quasar\") > -1) {\n    return \"quasar\";\n  }\n  if (totalDependencies.indexOf(\"@docusaurus/core\") > -1) {\n    return \"docusaurus\";\n  }\n  if (totalDependencies.indexOf(\"remix\") > -1) {\n    return \"remix\";\n  }\n  if (totalDependencies.indexOf(\"astro\") > -1) {\n    return \"node\";\n  }\n  if (moduleNames.some(function (m) {\n    return m.endsWith(\".re\");\n  })) {\n    return \"reason\";\n  }\n  var parcel = [\"parcel-bundler\", \"parcel\"];\n  if (totalDependencies.some(function (dep) {\n    return parcel.indexOf(dep) > -1;\n  })) {\n    return \"parcel\";\n  }\n  var dojo = [\"@dojo/core\", \"@dojo/framework\"];\n  if (totalDependencies.some(function (dep) {\n    return dojo.indexOf(dep) > -1;\n  })) {\n    return \"@dojo/cli-create-app\";\n  }\n  if (totalDependencies.indexOf(\"@nestjs/core\") > -1 || totalDependencies.indexOf(\"@nestjs/common\") > -1) {\n    return \"nest\";\n  }\n  if (totalDependencies.indexOf(\"react-styleguidist\") > -1) {\n    return \"styleguidist\";\n  }\n  if (totalDependencies.indexOf(\"react-scripts\") > -1) {\n    return \"create-react-app\";\n  }\n  if (totalDependencies.indexOf(\"react-scripts-ts\") > -1) {\n    return \"create-react-app-typescript\";\n  }\n  if (totalDependencies.indexOf(\"@angular/core\") > -1) {\n    return \"angular-cli\";\n  }\n  if (totalDependencies.indexOf(\"preact-cli\") > -1) {\n    return \"preact-cli\";\n  }\n  if (totalDependencies.indexOf(\"@sveltech/routify\") > -1 || totalDependencies.indexOf(\"@roxi/routify\") > -1) {\n    return \"node\";\n  }\n  if (totalDependencies.indexOf(\"vite\") > -1) {\n    return \"node\";\n  }\n  if (totalDependencies.indexOf(\"@frontity/core\") > -1) {\n    return \"node\";\n  }\n  if (totalDependencies.indexOf(\"svelte\") > -1) {\n    return \"svelte\";\n  }\n  if (totalDependencies.indexOf(\"vue\") > -1) {\n    return \"vue-cli\";\n  }\n  if (totalDependencies.indexOf(\"cx\") > -1) {\n    return \"cxjs\";\n  }\n  var nodeDeps = [\"express\", \"koa\", \"nodemon\", \"ts-node\", \"@tensorflow/tfjs-node\", \"webpack-dev-server\", \"snowpack\"];\n  if (totalDependencies.some(function (dep) {\n    return nodeDeps.indexOf(dep) > -1;\n  })) {\n    return \"node\";\n  }\n  if (Object.keys(dependencies).length >= MAX_CLIENT_DEPENDENCY_COUNT) {\n    return \"node\";\n  }\n  return void 0;\n}\nvar Protocol, IFrameProtocol, MAX_CLIENT_DEPENDENCY_COUNT, _a, BUNDLER_URL, SandpackRuntime;\nvar init_runtime = __esm({\n  \"../../node_modules/@codesandbox/sandpack-client/dist/clients/runtime/index.mjs\"() {\n    init_types_36e5ec0d();\n    init_dist();\n    init_base_80a1f760();\n    init_lib();\n    Protocol = /** @class */function () {\n      function Protocol2(type, handleMessage, protocol) {\n        var _this = this;\n        this.type = type;\n        this.handleMessage = handleMessage;\n        this.protocol = protocol;\n        this._disposeMessageListener = this.protocol.channelListen(function (msg) {\n          return __awaiter(_this, void 0, void 0, function () {\n            var message, result, response, err_1, response;\n            return __generator(this, function (_a2) {\n              switch (_a2.label) {\n                case 0:\n                  if (!(msg.type === this.getTypeId() && msg.method)) return [3, 4];\n                  message = msg;\n                  _a2.label = 1;\n                case 1:\n                  _a2.trys.push([1, 3,, 4]);\n                  return [4, this.handleMessage(message)];\n                case 2:\n                  result = _a2.sent();\n                  response = {\n                    type: this.getTypeId(),\n                    msgId: message.msgId,\n                    result\n                  };\n                  this.protocol.dispatch(response);\n                  return [3, 4];\n                case 3:\n                  err_1 = _a2.sent();\n                  response = {\n                    type: this.getTypeId(),\n                    msgId: message.msgId,\n                    error: {\n                      message: err_1.message\n                    }\n                  };\n                  this.protocol.dispatch(response);\n                  return [3, 4];\n                case 4:\n                  return [2];\n              }\n            });\n          });\n        });\n      }\n      Protocol2.prototype.getTypeId = function () {\n        return \"protocol-\" + this.type;\n      };\n      Protocol2.prototype.dispose = function () {\n        this._disposeMessageListener();\n      };\n      return Protocol2;\n    }();\n    IFrameProtocol = /** @class */function () {\n      function IFrameProtocol2(iframe, origin) {\n        this.globalListeners = {};\n        this.globalListenersCount = 0;\n        this.channelListeners = {};\n        this.channelListenersCount = 0;\n        this.channelId = Math.floor(Math.random() * 1e6);\n        this.frameWindow = iframe.contentWindow;\n        this.origin = origin;\n        this.globalListeners = [];\n        this.channelListeners = [];\n        this.eventListener = this.eventListener.bind(this);\n        if (typeof window !== \"undefined\") {\n          window.addEventListener(\"message\", this.eventListener);\n        }\n      }\n      IFrameProtocol2.prototype.cleanup = function () {\n        window.removeEventListener(\"message\", this.eventListener);\n        this.globalListeners = {};\n        this.channelListeners = {};\n        this.globalListenersCount = 0;\n        this.channelListenersCount = 0;\n      };\n      IFrameProtocol2.prototype.register = function () {\n        if (!this.frameWindow) {\n          return;\n        }\n        this.frameWindow.postMessage({\n          type: \"register-frame\",\n          origin: document.location.origin,\n          id: this.channelId\n        }, this.origin);\n      };\n      IFrameProtocol2.prototype.dispatch = function (message) {\n        if (!this.frameWindow) {\n          return;\n        }\n        this.frameWindow.postMessage(__assign({\n          $id: this.channelId,\n          codesandbox: true\n        }, message), this.origin);\n      };\n      IFrameProtocol2.prototype.globalListen = function (listener) {\n        var _this = this;\n        if (typeof listener !== \"function\") {\n          return function () {\n            return;\n          };\n        }\n        var listenerId = this.globalListenersCount;\n        this.globalListeners[listenerId] = listener;\n        this.globalListenersCount++;\n        return function () {\n          delete _this.globalListeners[listenerId];\n        };\n      };\n      IFrameProtocol2.prototype.channelListen = function (listener) {\n        var _this = this;\n        if (typeof listener !== \"function\") {\n          return function () {\n            return;\n          };\n        }\n        var listenerId = this.channelListenersCount;\n        this.channelListeners[listenerId] = listener;\n        this.channelListenersCount++;\n        return function () {\n          delete _this.channelListeners[listenerId];\n        };\n      };\n      IFrameProtocol2.prototype.eventListener = function (evt) {\n        if (evt.source !== this.frameWindow) {\n          return;\n        }\n        var message = evt.data;\n        if (!message.codesandbox) {\n          return;\n        }\n        Object.values(this.globalListeners).forEach(function (listener) {\n          return listener(message);\n        });\n        if (message.$id !== this.channelId) {\n          return;\n        }\n        Object.values(this.channelListeners).forEach(function (listener) {\n          return listener(message);\n        });\n      };\n      return IFrameProtocol2;\n    }();\n    MAX_CLIENT_DEPENDENCY_COUNT = 50;\n    BUNDLER_URL = \"https://\" + ((_a = \"2.6.7\") === null || _a === void 0 ? void 0 : _a.replace(/\\./g, \"-\")) + \"-sandpack.codesandbox.io/\";\n    SandpackRuntime = /** @class */function (_super) {\n      __extends(SandpackRuntime2, _super);\n      function SandpackRuntime2(selector, sandboxSetup, options) {\n        if (options === void 0) {\n          options = {};\n        }\n        var _this = _super.call(this, selector, sandboxSetup, options) || this;\n        _this.getTranspilerContext = function () {\n          return new Promise(function (resolve) {\n            var unsubscribe = _this.listen(function (message) {\n              if (message.type === \"transpiler-context\") {\n                resolve(message.data);\n                unsubscribe();\n              }\n            });\n            _this.dispatch({\n              type: \"get-transpiler-context\"\n            });\n          });\n        };\n        _this.bundlerURL = options.bundlerURL || BUNDLER_URL;\n        if (options.teamId) {\n          _this.bundlerURL = _this.bundlerURL.replace(\"https://\", \"https://\" + options.teamId + \"-\") + (\"?cache=\" + Date.now());\n        }\n        _this.bundlerState = void 0;\n        _this.errors = [];\n        _this.status = \"initializing\";\n        if (typeof selector === \"string\") {\n          _this.selector = selector;\n          var element = document.querySelector(selector);\n          nullthrows(element, \"The element '\" + selector + \"' was not found\");\n          _this.element = element;\n          _this.iframe = document.createElement(\"iframe\");\n          _this.initializeElement();\n        } else {\n          _this.element = selector;\n          _this.iframe = selector;\n        }\n        if (!_this.iframe.getAttribute(\"sandbox\")) {\n          _this.iframe.setAttribute(\"sandbox\", \"allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts\");\n          _this.iframe.setAttribute(\"allow\", \"accelerometer; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; clipboard-write;\");\n        }\n        _this.setLocationURLIntoIFrame();\n        _this.iframeProtocol = new IFrameProtocol(_this.iframe, _this.bundlerURL);\n        _this.unsubscribeGlobalListener = _this.iframeProtocol.globalListen(function (mes) {\n          if (mes.type !== \"initialized\" || !_this.iframe.contentWindow) {\n            return;\n          }\n          _this.iframeProtocol.register();\n          if (_this.options.fileResolver) {\n            _this.fileResolverProtocol = new Protocol(\"fs\", function (data) {\n              return __awaiter(_this, void 0, void 0, function () {\n                return __generator(this, function (_a2) {\n                  if (data.method === \"isFile\") {\n                    return [2, this.options.fileResolver.isFile(data.params[0])];\n                  } else if (data.method === \"readFile\") {\n                    return [2, this.options.fileResolver.readFile(data.params[0])];\n                  } else {\n                    throw new Error(\"Method not supported\");\n                  }\n                });\n              });\n            }, _this.iframeProtocol);\n          }\n          _this.updateSandbox(_this.sandboxSetup, true);\n        });\n        _this.unsubscribeChannelListener = _this.iframeProtocol.channelListen(function (mes) {\n          switch (mes.type) {\n            case \"start\":\n              {\n                _this.errors = [];\n                break;\n              }\n            case \"status\":\n              {\n                _this.status = mes.status;\n                break;\n              }\n            case \"action\":\n              {\n                if (mes.action === \"show-error\") {\n                  _this.errors = __spreadArray(__spreadArray([], _this.errors, true), [extractErrorDetails(mes)], false);\n                }\n                break;\n              }\n            case \"done\":\n              {\n                _this.status = \"done\";\n                break;\n              }\n            case \"state\":\n              {\n                _this.bundlerState = mes.state;\n                break;\n              }\n          }\n        });\n        return _this;\n      }\n      SandpackRuntime2.prototype.setLocationURLIntoIFrame = function () {\n        var _a2;\n        var urlSource = this.options.startRoute ? new URL(this.options.startRoute, this.bundlerURL).toString() : this.bundlerURL;\n        (_a2 = this.iframe.contentWindow) === null || _a2 === void 0 ? void 0 : _a2.location.replace(urlSource);\n        this.iframe.src = urlSource;\n      };\n      SandpackRuntime2.prototype.destroy = function () {\n        this.unsubscribeChannelListener();\n        this.unsubscribeGlobalListener();\n        this.iframeProtocol.cleanup();\n      };\n      SandpackRuntime2.prototype.updateOptions = function (options) {\n        if (!dequal(this.options, options)) {\n          this.options = options;\n          this.updateSandbox();\n        }\n      };\n      SandpackRuntime2.prototype.updateSandbox = function (sandboxSetup, isInitializationCompile) {\n        var _a2, _b, _c, _d;\n        if (sandboxSetup === void 0) {\n          sandboxSetup = this.sandboxSetup;\n        }\n        this.sandboxSetup = __assign(__assign({}, this.sandboxSetup), sandboxSetup);\n        var files = this.getFiles();\n        var modules = Object.keys(files).reduce(function (prev, next) {\n          var _a3;\n          return __assign(__assign({}, prev), (_a3 = {}, _a3[next] = {\n            code: files[next].code,\n            path: next\n          }, _a3));\n        }, {});\n        var packageJSON = JSON.parse(createPackageJSON(this.sandboxSetup.dependencies, this.sandboxSetup.devDependencies, this.sandboxSetup.entry));\n        try {\n          packageJSON = JSON.parse(files[\"/package.json\"].code);\n        } catch (e) {\n          console.error(createError(\"could not parse package.json file: \" + e.message));\n        }\n        var normalizedModules = Object.keys(files).reduce(function (prev, next) {\n          var _a3;\n          return __assign(__assign({}, prev), (_a3 = {}, _a3[next] = {\n            content: files[next].code,\n            path: next\n          }, _a3));\n        }, {});\n        this.dispatch({\n          type: \"compile\",\n          codesandbox: true,\n          version: 3,\n          isInitializationCompile,\n          modules,\n          reactDevTools: this.options.reactDevTools,\n          externalResources: this.options.externalResources || [],\n          hasFileResolver: Boolean(this.options.fileResolver),\n          disableDependencyPreprocessing: this.sandboxSetup.disableDependencyPreprocessing,\n          template: this.sandboxSetup.template || getTemplate(packageJSON, normalizedModules),\n          showOpenInCodeSandbox: (_a2 = this.options.showOpenInCodeSandbox) !== null && _a2 !== void 0 ? _a2 : true,\n          showErrorScreen: (_b = this.options.showErrorScreen) !== null && _b !== void 0 ? _b : true,\n          showLoadingScreen: (_c = this.options.showLoadingScreen) !== null && _c !== void 0 ? _c : false,\n          skipEval: this.options.skipEval || false,\n          clearConsoleDisabled: !this.options.clearConsoleOnFirstCompile,\n          logLevel: (_d = this.options.logLevel) !== null && _d !== void 0 ? _d : SandpackLogLevel.Info,\n          customNpmRegistries: this.options.customNpmRegistries,\n          teamId: this.options.teamId\n        });\n      };\n      SandpackRuntime2.prototype.dispatch = function (message) {\n        if (message.type === \"refresh\") {\n          this.setLocationURLIntoIFrame();\n        }\n        this.iframeProtocol.dispatch(message);\n      };\n      SandpackRuntime2.prototype.listen = function (listener) {\n        return this.iframeProtocol.channelListen(listener);\n      };\n      SandpackRuntime2.prototype.getCodeSandboxURL = function () {\n        var files = this.getFiles();\n        var paramFiles = Object.keys(files).reduce(function (prev, next) {\n          var _a2;\n          return __assign(__assign({}, prev), (_a2 = {}, _a2[next.replace(\"/\", \"\")] = {\n            content: files[next].code,\n            isBinary: false\n          }, _a2));\n        }, {});\n        return fetch(\"https://codesandbox.io/api/v1/sandboxes/define?json=1\", {\n          method: \"POST\",\n          body: JSON.stringify({\n            files: paramFiles\n          }),\n          headers: {\n            Accept: \"application/json\",\n            \"Content-Type\": \"application/json\"\n          }\n        }).then(function (x) {\n          return x.json();\n        }).then(function (res) {\n          return {\n            sandboxId: res.sandbox_id,\n            editorUrl: \"https://codesandbox.io/s/\" + res.sandbox_id,\n            embedUrl: \"https://codesandbox.io/embed/\" + res.sandbox_id\n          };\n        });\n      };\n      SandpackRuntime2.prototype.getFiles = function () {\n        var sandboxSetup = this.sandboxSetup;\n        if (sandboxSetup.files[\"/package.json\"] === void 0) {\n          return addPackageJSONIfNeeded(sandboxSetup.files, sandboxSetup.dependencies, sandboxSetup.devDependencies, sandboxSetup.entry);\n        }\n        return this.sandboxSetup.files;\n      };\n      SandpackRuntime2.prototype.initializeElement = function () {\n        this.iframe.style.border = \"0\";\n        this.iframe.style.width = this.options.width || \"100%\";\n        this.iframe.style.height = this.options.height || \"100%\";\n        this.iframe.style.overflow = \"hidden\";\n        nullthrows(this.element.parentNode, \"The given iframe does not have a parent.\");\n        this.element.parentNode.replaceChild(this.iframe, this.element);\n      };\n      return SandpackRuntime2;\n    }(SandpackClient);\n  }\n}); // ../../node_modules/@codesandbox/sandpack-client/dist/index.mjs\ninit_types_36e5ec0d();\ninit_types_36e5ec0d();\ninit_lib();\nfunction loadSandpackClient(iframeSelector, sandboxSetup, options) {\n  var _a2;\n  if (options === void 0) {\n    options = {};\n  }\n  return __awaiter(this, void 0, void 0, function () {\n    var template, Client, _b;\n    return __generator(this, function (_c) {\n      switch (_c.label) {\n        case 0:\n          template = (_a2 = sandboxSetup.template) !== null && _a2 !== void 0 ? _a2 : \"parcel\";\n          _b = template;\n          switch (_b) {\n            case \"node\":\n              return [3, 1];\n            case \"static\":\n              return [3, 3];\n          }\n          return [3, 5];\n        case 1:\n          return [4, Promise.resolve().then(() => (init_node(), node_exports)).then(function (m) {\n            return m.SandpackNode;\n          })];\n        case 2:\n          Client = _c.sent();\n          return [3, 7];\n        case 3:\n          return [4, Promise.resolve().then(() => (init_index_bd1ff004(), index_bd1ff004_exports)).then(function (m) {\n            return m.SandpackStatic;\n          })];\n        case 4:\n          Client = _c.sent();\n          return [3, 7];\n        case 5:\n          return [4, Promise.resolve().then(() => (init_runtime(), runtime_exports)).then(function (m) {\n            return m.SandpackRuntime;\n          })];\n        case 6:\n          Client = _c.sent();\n          _c.label = 7;\n        case 7:\n          return [2, new Client(iframeSelector, sandboxSetup, options)];\n      }\n    });\n  });\n}\nexport { SandpackLogLevel, addPackageJSONIfNeeded, createError, createPackageJSON, extractErrorDetails, loadSandpackClient, normalizePath, nullthrows }; /*! Bundled license information:\n                                                                                                                                                         static-browser-server/out/lib/main.js:\n                                                                                                                                                         (*! Bundled license information:\n                                                                                                                                                         mime-db/index.js:\n                                                                                                                                                         (*!\n                                                                                                                                                         * mime-db\n                                                                                                                                                         * Copyright(c) 2014 Jonathan Ong\n                                                                                                                                                         * Copyright(c) 2015-2022 Douglas Christopher Wilson\n                                                                                                                                                         * MIT Licensed\n                                                                                                                                                         *)\n                                                                                                                                                         *)\n                                                                                                                                                         */\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"loadSandpackClient\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"addPackageJSONIfNeeded\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"normalizePath\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"createPackageJSON\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"nullthrows\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"createError\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"extractErrorDetails\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SandpackLogLevel\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};", "// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./build\".\n */ // ../../node_modules/@codemirror/commands/dist/index.js\nimport { Annotation, Facet, combineConfig, StateField, EditorSelection, Transaction, ChangeSet, ChangeDesc, StateEffect, Text, findClusterBreak, countColumn, CharCategory } from \"https://framerusercontent.com/modules/wFkXxZqfKOPeEQtsYrsa/Xcw7qvncyogRPQtf9aNn/codemirror_state.js\";\nimport { EditorView, Direction } from \"https://framerusercontent.com/modules/wKCR2JyUW8wZdYweJrou/EndxaPZLF2o4GndkIvF9/codemirror_view.js\";\nimport { IndentContext, getIndentation, indentString, matchBrackets, syntaxTree, getIndentUnit, indentUnit } from \"https://framerusercontent.com/modules/aJsTBlWNkIaM900KNIXT/TeoF57xeGMuVMjiI2ooR/codemirror_language.js\";\nimport { NodeProp } from \"https://framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/dIK6ma4pzS0qSHWtJ4s1/lezer_common.js\";\nvar toggleComment = target => {\n  let {\n      state\n    } = target,\n    line = state.doc.lineAt(state.selection.main.from),\n    config = getConfig(target.state, line.from);\n  return config.line ? toggleLineComment(target) : config.block ? toggleBlockCommentByLine(target) : false;\n};\nfunction command(f, option) {\n  return ({\n    state,\n    dispatch\n  }) => {\n    if (state.readOnly) return false;\n    let tr = f(option, state);\n    if (!tr) return false;\n    dispatch(state.update(tr));\n    return true;\n  };\n}\nvar toggleLineComment = /* @__PURE__ */command(changeLineComment, 0);\nvar lineComment = /* @__PURE__ */command(changeLineComment, 1);\nvar lineUncomment = /* @__PURE__ */command(changeLineComment, 2);\nvar toggleBlockComment = /* @__PURE__ */command(changeBlockComment, 0);\nvar blockComment = /* @__PURE__ */command(changeBlockComment, 1);\nvar blockUncomment = /* @__PURE__ */command(changeBlockComment, 2);\nvar toggleBlockCommentByLine = /* @__PURE__ */command((o, s) => changeBlockComment(o, s, selectedLineRanges(s)), 0);\nfunction getConfig(state, pos) {\n  let data = state.languageDataAt(\"commentTokens\", pos);\n  return data.length ? data[0] : {};\n}\nvar SearchMargin = 50;\nfunction findBlockComment(state, {\n  open,\n  close\n}, from, to) {\n  let textBefore = state.sliceDoc(from - SearchMargin, from);\n  let textAfter = state.sliceDoc(to, to + SearchMargin);\n  let spaceBefore = /\\s*$/.exec(textBefore)[0].length,\n    spaceAfter = /^\\s*/.exec(textAfter)[0].length;\n  let beforeOff = textBefore.length - spaceBefore;\n  if (textBefore.slice(beforeOff - open.length, beforeOff) == open && textAfter.slice(spaceAfter, spaceAfter + close.length) == close) {\n    return {\n      open: {\n        pos: from - spaceBefore,\n        margin: spaceBefore && 1\n      },\n      close: {\n        pos: to + spaceAfter,\n        margin: spaceAfter && 1\n      }\n    };\n  }\n  let startText, endText;\n  if (to - from <= 2 * SearchMargin) {\n    startText = endText = state.sliceDoc(from, to);\n  } else {\n    startText = state.sliceDoc(from, from + SearchMargin);\n    endText = state.sliceDoc(to - SearchMargin, to);\n  }\n  let startSpace = /^\\s*/.exec(startText)[0].length,\n    endSpace = /\\s*$/.exec(endText)[0].length;\n  let endOff = endText.length - endSpace - close.length;\n  if (startText.slice(startSpace, startSpace + open.length) == open && endText.slice(endOff, endOff + close.length) == close) {\n    return {\n      open: {\n        pos: from + startSpace + open.length,\n        margin: /\\s/.test(startText.charAt(startSpace + open.length)) ? 1 : 0\n      },\n      close: {\n        pos: to - endSpace - close.length,\n        margin: /\\s/.test(endText.charAt(endOff - 1)) ? 1 : 0\n      }\n    };\n  }\n  return null;\n}\nfunction selectedLineRanges(state) {\n  let ranges = [];\n  for (let r of state.selection.ranges) {\n    let fromLine = state.doc.lineAt(r.from);\n    let toLine = r.to <= fromLine.to ? fromLine : state.doc.lineAt(r.to);\n    let last = ranges.length - 1;\n    if (last >= 0 && ranges[last].to > fromLine.from) ranges[last].to = toLine.to;else ranges.push({\n      from: fromLine.from + /^\\s*/.exec(fromLine.text)[0].length,\n      to: toLine.to\n    });\n  }\n  return ranges;\n}\nfunction changeBlockComment(option, state, ranges = state.selection.ranges) {\n  let tokens = ranges.map(r => getConfig(state, r.from).block);\n  if (!tokens.every(c => c)) return null;\n  let comments = ranges.map((r, i) => findBlockComment(state, tokens[i], r.from, r.to));\n  if (option != 2 && !comments.every(c => c)) {\n    return {\n      changes: state.changes(ranges.map((range, i) => {\n        if (comments[i]) return [];\n        return [{\n          from: range.from,\n          insert: tokens[i].open + \" \"\n        }, {\n          from: range.to,\n          insert: \" \" + tokens[i].close\n        }];\n      }))\n    };\n  } else if (option != 1 && comments.some(c => c)) {\n    let changes = [];\n    for (let i = 0, comment; i < comments.length; i++) if (comment = comments[i]) {\n      let token = tokens[i],\n        {\n          open,\n          close\n        } = comment;\n      changes.push({\n        from: open.pos - token.open.length,\n        to: open.pos + open.margin\n      }, {\n        from: close.pos - close.margin,\n        to: close.pos + token.close.length\n      });\n    }\n    return {\n      changes\n    };\n  }\n  return null;\n}\nfunction changeLineComment(option, state, ranges = state.selection.ranges) {\n  let lines = [];\n  let prevLine = -1;\n  for (let {\n    from,\n    to\n  } of ranges) {\n    let startI = lines.length,\n      minIndent = 1e9;\n    let token = getConfig(state, from).line;\n    if (!token) continue;\n    for (let pos = from; pos <= to;) {\n      let line = state.doc.lineAt(pos);\n      if (line.from > prevLine && (from == to || to > line.from)) {\n        prevLine = line.from;\n        let indent = /^\\s*/.exec(line.text)[0].length;\n        let empty = indent == line.length;\n        let comment = line.text.slice(indent, indent + token.length) == token ? indent : -1;\n        if (indent < line.text.length && indent < minIndent) minIndent = indent;\n        lines.push({\n          line,\n          comment,\n          token,\n          indent,\n          empty,\n          single: false\n        });\n      }\n      pos = line.to + 1;\n    }\n    if (minIndent < 1e9) {\n      for (let i = startI; i < lines.length; i++) if (lines[i].indent < lines[i].line.text.length) lines[i].indent = minIndent;\n    }\n    if (lines.length == startI + 1) lines[startI].single = true;\n  }\n  if (option != 2 && lines.some(l => l.comment < 0 && (!l.empty || l.single))) {\n    let changes = [];\n    for (let {\n      line: line1,\n      token: token1,\n      indent: indent1,\n      empty: empty1,\n      single\n    } of lines) if (single || !empty1) changes.push({\n      from: line1.from + indent1,\n      insert: token1 + \" \"\n    });\n    let changeSet = state.changes(changes);\n    return {\n      changes: changeSet,\n      selection: state.selection.map(changeSet, 1)\n    };\n  } else if (option != 1 && lines.some(l => l.comment >= 0)) {\n    let changes1 = [];\n    for (let {\n      line: line2,\n      comment: comment1,\n      token: token2\n    } of lines) if (comment1 >= 0) {\n      let from1 = line2.from + comment1,\n        to1 = from1 + token2.length;\n      if (line2.text[to1 - line2.from] == \" \") to1++;\n      changes1.push({\n        from: from1,\n        to: to1\n      });\n    }\n    return {\n      changes: changes1\n    };\n  }\n  return null;\n}\nvar fromHistory = /* @__PURE__ */Annotation.define();\nvar isolateHistory = /* @__PURE__ */Annotation.define();\nvar invertedEffects = /* @__PURE__ */Facet.define();\nvar historyConfig = /* @__PURE__ */Facet.define({\n  combine(configs) {\n    return combineConfig(configs, {\n      minDepth: 100,\n      newGroupDelay: 500,\n      joinToEvent: (_t, isAdjacent2) => isAdjacent2\n    }, {\n      minDepth: Math.max,\n      newGroupDelay: Math.min,\n      joinToEvent: (a, b) => (tr, adj) => a(tr, adj) || b(tr, adj)\n    });\n  }\n});\nfunction changeEnd(changes) {\n  let end = 0;\n  changes.iterChangedRanges((_, to) => end = to);\n  return end;\n}\nvar historyField_ = /* @__PURE__ */StateField.define({\n  create() {\n    return HistoryState.empty;\n  },\n  update(state, tr) {\n    let config = tr.state.facet(historyConfig);\n    let fromHist = tr.annotation(fromHistory);\n    if (fromHist) {\n      let selection = tr.docChanged ? EditorSelection.single(changeEnd(tr.changes)) : void 0;\n      let item = HistEvent.fromTransaction(tr, selection),\n        from = fromHist.side;\n      let other = from == 0 ? state.undone : state.done;\n      if (item) other = updateBranch(other, other.length, config.minDepth, item);else other = addSelection(other, tr.startState.selection);\n      return new HistoryState(from == 0 ? fromHist.rest : other, from == 0 ? other : fromHist.rest);\n    }\n    let isolate = tr.annotation(isolateHistory);\n    if (isolate == \"full\" || isolate == \"before\") state = state.isolate();\n    if (tr.annotation(Transaction.addToHistory) === false) return !tr.changes.empty ? state.addMapping(tr.changes.desc) : state;\n    let event = HistEvent.fromTransaction(tr);\n    let time = tr.annotation(Transaction.time),\n      userEvent = tr.annotation(Transaction.userEvent);\n    if (event) state = state.addChanges(event, time, userEvent, config, tr);else if (tr.selection) state = state.addSelection(tr.startState.selection, time, userEvent, config.newGroupDelay);\n    if (isolate == \"full\" || isolate == \"after\") state = state.isolate();\n    return state;\n  },\n  toJSON(value) {\n    return {\n      done: value.done.map(e => e.toJSON()),\n      undone: value.undone.map(e => e.toJSON())\n    };\n  },\n  fromJSON(json) {\n    return new HistoryState(json.done.map(HistEvent.fromJSON), json.undone.map(HistEvent.fromJSON));\n  }\n});\nfunction history(config = {}) {\n  return [historyField_, historyConfig.of(config), EditorView.domEventHandlers({\n    beforeinput(e, view) {\n      let command2 = e.inputType == \"historyUndo\" ? undo : e.inputType == \"historyRedo\" ? redo : null;\n      if (!command2) return false;\n      e.preventDefault();\n      return command2(view);\n    }\n  })];\n}\nvar historyField = historyField_;\nfunction cmd(side, selection) {\n  return function ({\n    state,\n    dispatch\n  }) {\n    if (!selection && state.readOnly) return false;\n    let historyState = state.field(historyField_, false);\n    if (!historyState) return false;\n    let tr = historyState.pop(side, state, selection);\n    if (!tr) return false;\n    dispatch(tr);\n    return true;\n  };\n}\nvar undo = /* @__PURE__ */cmd(0, false);\nvar redo = /* @__PURE__ */cmd(1, false);\nvar undoSelection = /* @__PURE__ */cmd(0, true);\nvar redoSelection = /* @__PURE__ */cmd(1, true);\nfunction depth(side) {\n  return function (state) {\n    let histState = state.field(historyField_, false);\n    if (!histState) return 0;\n    let branch = side == 0 ? histState.done : histState.undone;\n    return branch.length - (branch.length && !branch[0].changes ? 1 : 0);\n  };\n}\nvar undoDepth = /* @__PURE__ */depth(0);\nvar redoDepth = /* @__PURE__ */depth(1);\nvar HistEvent = class {\n  setSelAfter(after) {\n    return new HistEvent(this.changes, this.effects, this.mapped, this.startSelection, after);\n  }\n  toJSON() {\n    var _a, _b, _c;\n    return {\n      changes: (_a = this.changes) === null || _a === void 0 ? void 0 : _a.toJSON(),\n      mapped: (_b = this.mapped) === null || _b === void 0 ? void 0 : _b.toJSON(),\n      startSelection: (_c = this.startSelection) === null || _c === void 0 ? void 0 : _c.toJSON(),\n      selectionsAfter: this.selectionsAfter.map(s => s.toJSON())\n    };\n  }\n  static fromJSON(json) {\n    return new HistEvent(json.changes && ChangeSet.fromJSON(json.changes), [], json.mapped && ChangeDesc.fromJSON(json.mapped), json.startSelection && EditorSelection.fromJSON(json.startSelection), json.selectionsAfter.map(EditorSelection.fromJSON));\n  } // This does not check `addToHistory` and such, it assumes the\n  // transaction needs to be converted to an item. Returns null when\n  // there are no changes or effects in the transaction.\n  static fromTransaction(tr, selection) {\n    let effects = none;\n    for (let invert of tr.startState.facet(invertedEffects)) {\n      let result = invert(tr);\n      if (result.length) effects = effects.concat(result);\n    }\n    if (!effects.length && tr.changes.empty) return null;\n    return new HistEvent(tr.changes.invert(tr.startState.doc), effects, void 0, selection || tr.startState.selection, none);\n  }\n  static selection(selections) {\n    return new HistEvent(void 0, none, void 0, void 0, selections);\n  }\n  constructor(changes, effects, mapped, startSelection, selectionsAfter) {\n    this.changes = changes;\n    this.effects = effects;\n    this.mapped = mapped;\n    this.startSelection = startSelection;\n    this.selectionsAfter = selectionsAfter;\n  }\n};\nfunction updateBranch(branch, to, maxLen, newEvent) {\n  let start = to + 1 > maxLen + 20 ? to - maxLen - 1 : 0;\n  let newBranch = branch.slice(start, to);\n  newBranch.push(newEvent);\n  return newBranch;\n}\nfunction isAdjacent(a, b) {\n  let ranges = [],\n    isAdjacent2 = false;\n  a.iterChangedRanges((f, t) => ranges.push(f, t));\n  b.iterChangedRanges((_f, _t, f, t) => {\n    for (let i = 0; i < ranges.length;) {\n      let from = ranges[i++],\n        to = ranges[i++];\n      if (t >= from && f <= to) isAdjacent2 = true;\n    }\n  });\n  return isAdjacent2;\n}\nfunction eqSelectionShape(a, b) {\n  return a.ranges.length == b.ranges.length && a.ranges.filter((r, i) => r.empty != b.ranges[i].empty).length === 0;\n}\nfunction conc(a, b) {\n  return !a.length ? b : !b.length ? a : a.concat(b);\n}\nvar none = [];\nvar MaxSelectionsPerEvent = 200;\nfunction addSelection(branch, selection) {\n  if (!branch.length) {\n    return [HistEvent.selection([selection])];\n  } else {\n    let lastEvent = branch[branch.length - 1];\n    let sels = lastEvent.selectionsAfter.slice(Math.max(0, lastEvent.selectionsAfter.length - MaxSelectionsPerEvent));\n    if (sels.length && sels[sels.length - 1].eq(selection)) return branch;\n    sels.push(selection);\n    return updateBranch(branch, branch.length - 1, 1e9, lastEvent.setSelAfter(sels));\n  }\n}\nfunction popSelection(branch) {\n  let last = branch[branch.length - 1];\n  let newBranch = branch.slice();\n  newBranch[branch.length - 1] = last.setSelAfter(last.selectionsAfter.slice(0, last.selectionsAfter.length - 1));\n  return newBranch;\n}\nfunction addMappingToBranch(branch, mapping) {\n  if (!branch.length) return branch;\n  let length = branch.length,\n    selections = none;\n  while (length) {\n    let event = mapEvent(branch[length - 1], mapping, selections);\n    if (event.changes && !event.changes.empty || event.effects.length) {\n      let result = branch.slice(0, length);\n      result[length - 1] = event;\n      return result;\n    } else {\n      mapping = event.mapped;\n      length--;\n      selections = event.selectionsAfter;\n    }\n  }\n  return selections.length ? [HistEvent.selection(selections)] : none;\n}\nfunction mapEvent(event, mapping, extraSelections) {\n  let selections = conc(event.selectionsAfter.length ? event.selectionsAfter.map(s => s.map(mapping)) : none, extraSelections);\n  if (!event.changes) return HistEvent.selection(selections);\n  let mappedChanges = event.changes.map(mapping),\n    before = mapping.mapDesc(event.changes, true);\n  let fullMapping = event.mapped ? event.mapped.composeDesc(before) : before;\n  return new HistEvent(mappedChanges, StateEffect.mapEffects(event.effects, mapping), fullMapping, event.startSelection.map(before), selections);\n}\nvar joinableUserEvent = /^(input\\.type|delete)($|\\.)/;\nvar HistoryState = class {\n  isolate() {\n    return this.prevTime ? new HistoryState(this.done, this.undone) : this;\n  }\n  addChanges(event, time, userEvent, config, tr) {\n    let done = this.done,\n      lastEvent = done[done.length - 1];\n    if (lastEvent && lastEvent.changes && !lastEvent.changes.empty && event.changes && (!userEvent || joinableUserEvent.test(userEvent)) && (!lastEvent.selectionsAfter.length && time - this.prevTime < config.newGroupDelay && config.joinToEvent(tr, isAdjacent(lastEvent.changes, event.changes)) || userEvent == \"input.type.compose\")) {\n      done = updateBranch(done, done.length - 1, config.minDepth, new HistEvent(event.changes.compose(lastEvent.changes), conc(event.effects, lastEvent.effects), lastEvent.mapped, lastEvent.startSelection, none));\n    } else {\n      done = updateBranch(done, done.length, config.minDepth, event);\n    }\n    return new HistoryState(done, none, time, userEvent);\n  }\n  addSelection(selection, time, userEvent, newGroupDelay) {\n    let last = this.done.length ? this.done[this.done.length - 1].selectionsAfter : none;\n    if (last.length > 0 && time - this.prevTime < newGroupDelay && userEvent == this.prevUserEvent && userEvent && /^select($|\\.)/.test(userEvent) && eqSelectionShape(last[last.length - 1], selection)) return this;\n    return new HistoryState(addSelection(this.done, selection), this.undone, time, userEvent);\n  }\n  addMapping(mapping) {\n    return new HistoryState(addMappingToBranch(this.done, mapping), addMappingToBranch(this.undone, mapping), this.prevTime, this.prevUserEvent);\n  }\n  pop(side, state, selection) {\n    let branch = side == 0 ? this.done : this.undone;\n    if (branch.length == 0) return null;\n    let event = branch[branch.length - 1];\n    if (selection && event.selectionsAfter.length) {\n      return state.update({\n        selection: event.selectionsAfter[event.selectionsAfter.length - 1],\n        annotations: fromHistory.of({\n          side,\n          rest: popSelection(branch)\n        }),\n        userEvent: side == 0 ? \"select.undo\" : \"select.redo\",\n        scrollIntoView: true\n      });\n    } else if (!event.changes) {\n      return null;\n    } else {\n      let rest = branch.length == 1 ? none : branch.slice(0, branch.length - 1);\n      if (event.mapped) rest = addMappingToBranch(rest, event.mapped);\n      return state.update({\n        changes: event.changes,\n        selection: event.startSelection,\n        effects: event.effects,\n        annotations: fromHistory.of({\n          side,\n          rest\n        }),\n        filter: false,\n        userEvent: side == 0 ? \"undo\" : \"redo\",\n        scrollIntoView: true\n      });\n    }\n  }\n  constructor(done, undone, prevTime = 0, prevUserEvent = void 0) {\n    this.done = done;\n    this.undone = undone;\n    this.prevTime = prevTime;\n    this.prevUserEvent = prevUserEvent;\n  }\n};\nHistoryState.empty = /* @__PURE__ */new HistoryState(none, none);\nvar historyKeymap = [{\n  key: \"Mod-z\",\n  run: undo,\n  preventDefault: true\n}, {\n  key: \"Mod-y\",\n  mac: \"Mod-Shift-z\",\n  run: redo,\n  preventDefault: true\n}, {\n  linux: \"Ctrl-Shift-z\",\n  run: redo,\n  preventDefault: true\n}, {\n  key: \"Mod-u\",\n  run: undoSelection,\n  preventDefault: true\n}, {\n  key: \"Alt-u\",\n  mac: \"Mod-Shift-u\",\n  run: redoSelection,\n  preventDefault: true\n}];\nfunction updateSel(sel, by) {\n  return EditorSelection.create(sel.ranges.map(by), sel.mainIndex);\n}\nfunction setSel(state, selection) {\n  return state.update({\n    selection,\n    scrollIntoView: true,\n    userEvent: \"select\"\n  });\n}\nfunction moveSel({\n  state,\n  dispatch\n}, how) {\n  let selection = updateSel(state.selection, how);\n  if (selection.eq(state.selection)) return false;\n  dispatch(setSel(state, selection));\n  return true;\n}\nfunction rangeEnd(range, forward) {\n  return EditorSelection.cursor(forward ? range.to : range.from);\n}\nfunction cursorByChar(view, forward) {\n  return moveSel(view, range => range.empty ? view.moveByChar(range, forward) : rangeEnd(range, forward));\n}\nfunction ltrAtCursor(view) {\n  return view.textDirectionAt(view.state.selection.main.head) == Direction.LTR;\n}\nvar cursorCharLeft = view => cursorByChar(view, !ltrAtCursor(view));\nvar cursorCharRight = view => cursorByChar(view, ltrAtCursor(view));\nvar cursorCharForward = view => cursorByChar(view, true);\nvar cursorCharBackward = view => cursorByChar(view, false);\nfunction cursorByGroup(view, forward) {\n  return moveSel(view, range => range.empty ? view.moveByGroup(range, forward) : rangeEnd(range, forward));\n}\nvar cursorGroupLeft = view => cursorByGroup(view, !ltrAtCursor(view));\nvar cursorGroupRight = view => cursorByGroup(view, ltrAtCursor(view));\nvar cursorGroupForward = view => cursorByGroup(view, true);\nvar cursorGroupBackward = view => cursorByGroup(view, false);\nfunction moveBySubword(view, range, forward) {\n  let categorize = view.state.charCategorizer(range.from);\n  return view.moveByChar(range, forward, start => {\n    let cat = CharCategory.Space,\n      pos = range.from;\n    let done = false,\n      sawUpper = false,\n      sawLower = false;\n    let step = next => {\n      if (done) return false;\n      pos += forward ? next.length : -next.length;\n      let nextCat = categorize(next),\n        ahead;\n      if (nextCat == CharCategory.Word && next.charCodeAt(0) < 128 && /[\\W_]/.test(next)) nextCat = -1;\n      if (cat == CharCategory.Space) cat = nextCat;\n      if (cat != nextCat) return false;\n      if (cat == CharCategory.Word) {\n        if (next.toLowerCase() == next) {\n          if (!forward && sawUpper) return false;\n          sawLower = true;\n        } else if (sawLower) {\n          if (forward) return false;\n          done = true;\n        } else {\n          if (sawUpper && forward && categorize(ahead = view.state.sliceDoc(pos, pos + 1)) == CharCategory.Word && ahead.toLowerCase() == ahead) return false;\n          sawUpper = true;\n        }\n      }\n      return true;\n    };\n    step(start);\n    return step;\n  });\n}\nfunction cursorBySubword(view, forward) {\n  return moveSel(view, range => range.empty ? moveBySubword(view, range, forward) : rangeEnd(range, forward));\n}\nvar cursorSubwordForward = view => cursorBySubword(view, true);\nvar cursorSubwordBackward = view => cursorBySubword(view, false);\nfunction interestingNode(state, node, bracketProp) {\n  if (node.type.prop(bracketProp)) return true;\n  let len = node.to - node.from;\n  return len && (len > 2 || /[^\\s,.;:]/.test(state.sliceDoc(node.from, node.to))) || node.firstChild;\n}\nfunction moveBySyntax(state, start, forward) {\n  let pos = syntaxTree(state).resolveInner(start.head);\n  let bracketProp = forward ? NodeProp.closedBy : NodeProp.openedBy;\n  for (let at = start.head;;) {\n    let next = forward ? pos.childAfter(at) : pos.childBefore(at);\n    if (!next) break;\n    if (interestingNode(state, next, bracketProp)) pos = next;else at = forward ? next.to : next.from;\n  }\n  let bracket = pos.type.prop(bracketProp),\n    match,\n    newPos;\n  if (bracket && (match = forward ? matchBrackets(state, pos.from, 1) : matchBrackets(state, pos.to, -1)) && match.matched) newPos = forward ? match.end.to : match.end.from;else newPos = forward ? pos.to : pos.from;\n  return EditorSelection.cursor(newPos, forward ? -1 : 1);\n}\nvar cursorSyntaxLeft = view => moveSel(view, range => moveBySyntax(view.state, range, !ltrAtCursor(view)));\nvar cursorSyntaxRight = view => moveSel(view, range => moveBySyntax(view.state, range, ltrAtCursor(view)));\nfunction cursorByLine(view, forward) {\n  return moveSel(view, range => {\n    if (!range.empty) return rangeEnd(range, forward);\n    let moved = view.moveVertically(range, forward);\n    return moved.head != range.head ? moved : view.moveToLineBoundary(range, forward);\n  });\n}\nvar cursorLineUp = view => cursorByLine(view, false);\nvar cursorLineDown = view => cursorByLine(view, true);\nfunction pageInfo(view) {\n  let selfScroll = view.scrollDOM.clientHeight < view.scrollDOM.scrollHeight - 2;\n  let marginTop = 0,\n    marginBottom = 0,\n    height;\n  if (selfScroll) {\n    for (let source of view.state.facet(EditorView.scrollMargins)) {\n      let margins = source(view);\n      if (margins === null || margins === void 0 ? void 0 : margins.top) marginTop = Math.max(margins === null || margins === void 0 ? void 0 : margins.top, marginTop);\n      if (margins === null || margins === void 0 ? void 0 : margins.bottom) marginBottom = Math.max(margins === null || margins === void 0 ? void 0 : margins.bottom, marginBottom);\n    }\n    height = view.scrollDOM.clientHeight - marginTop - marginBottom;\n  } else {\n    height = (view.dom.ownerDocument.defaultView || window).innerHeight;\n  }\n  return {\n    marginTop,\n    marginBottom,\n    selfScroll,\n    height: Math.max(view.defaultLineHeight, height - 5)\n  };\n}\nfunction cursorByPage(view, forward) {\n  let page = pageInfo(view);\n  let {\n      state\n    } = view,\n    selection = updateSel(state.selection, range => {\n      return range.empty ? view.moveVertically(range, forward, page.height) : rangeEnd(range, forward);\n    });\n  if (selection.eq(state.selection)) return false;\n  let effect;\n  if (page.selfScroll) {\n    let startPos = view.coordsAtPos(state.selection.main.head);\n    let scrollRect = view.scrollDOM.getBoundingClientRect();\n    let scrollTop = scrollRect.top + page.marginTop,\n      scrollBottom = scrollRect.bottom - page.marginBottom;\n    if (startPos && startPos.top > scrollTop && startPos.bottom < scrollBottom) effect = EditorView.scrollIntoView(selection.main.head, {\n      y: \"start\",\n      yMargin: startPos.top - scrollTop\n    });\n  }\n  view.dispatch(setSel(state, selection), {\n    effects: effect\n  });\n  return true;\n}\nvar cursorPageUp = view => cursorByPage(view, false);\nvar cursorPageDown = view => cursorByPage(view, true);\nfunction moveByLineBoundary(view, start, forward) {\n  let line = view.lineBlockAt(start.head),\n    moved = view.moveToLineBoundary(start, forward);\n  if (moved.head == start.head && moved.head != (forward ? line.to : line.from)) moved = view.moveToLineBoundary(start, forward, false);\n  if (!forward && moved.head == line.from && line.length) {\n    let space = /^\\s*/.exec(view.state.sliceDoc(line.from, Math.min(line.from + 100, line.to)))[0].length;\n    if (space && start.head != line.from + space) moved = EditorSelection.cursor(line.from + space);\n  }\n  return moved;\n}\nvar cursorLineBoundaryForward = view => moveSel(view, range => moveByLineBoundary(view, range, true));\nvar cursorLineBoundaryBackward = view => moveSel(view, range => moveByLineBoundary(view, range, false));\nvar cursorLineBoundaryLeft = view => moveSel(view, range => moveByLineBoundary(view, range, !ltrAtCursor(view)));\nvar cursorLineBoundaryRight = view => moveSel(view, range => moveByLineBoundary(view, range, ltrAtCursor(view)));\nvar cursorLineStart = view => moveSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).from, 1));\nvar cursorLineEnd = view => moveSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).to, -1));\nfunction toMatchingBracket(state, dispatch, extend) {\n  let found = false,\n    selection = updateSel(state.selection, range => {\n      let matching = matchBrackets(state, range.head, -1) || matchBrackets(state, range.head, 1) || range.head > 0 && matchBrackets(state, range.head - 1, 1) || range.head < state.doc.length && matchBrackets(state, range.head + 1, -1);\n      if (!matching || !matching.end) return range;\n      found = true;\n      let head = matching.start.from == range.head ? matching.end.to : matching.end.from;\n      return extend ? EditorSelection.range(range.anchor, head) : EditorSelection.cursor(head);\n    });\n  if (!found) return false;\n  dispatch(setSel(state, selection));\n  return true;\n}\nvar cursorMatchingBracket = ({\n  state,\n  dispatch\n}) => toMatchingBracket(state, dispatch, false);\nvar selectMatchingBracket = ({\n  state,\n  dispatch\n}) => toMatchingBracket(state, dispatch, true);\nfunction extendSel(view, how) {\n  let selection = updateSel(view.state.selection, range => {\n    let head = how(range);\n    return EditorSelection.range(range.anchor, head.head, head.goalColumn, head.bidiLevel || void 0);\n  });\n  if (selection.eq(view.state.selection)) return false;\n  view.dispatch(setSel(view.state, selection));\n  return true;\n}\nfunction selectByChar(view, forward) {\n  return extendSel(view, range => view.moveByChar(range, forward));\n}\nvar selectCharLeft = view => selectByChar(view, !ltrAtCursor(view));\nvar selectCharRight = view => selectByChar(view, ltrAtCursor(view));\nvar selectCharForward = view => selectByChar(view, true);\nvar selectCharBackward = view => selectByChar(view, false);\nfunction selectByGroup(view, forward) {\n  return extendSel(view, range => view.moveByGroup(range, forward));\n}\nvar selectGroupLeft = view => selectByGroup(view, !ltrAtCursor(view));\nvar selectGroupRight = view => selectByGroup(view, ltrAtCursor(view));\nvar selectGroupForward = view => selectByGroup(view, true);\nvar selectGroupBackward = view => selectByGroup(view, false);\nfunction selectBySubword(view, forward) {\n  return extendSel(view, range => moveBySubword(view, range, forward));\n}\nvar selectSubwordForward = view => selectBySubword(view, true);\nvar selectSubwordBackward = view => selectBySubword(view, false);\nvar selectSyntaxLeft = view => extendSel(view, range => moveBySyntax(view.state, range, !ltrAtCursor(view)));\nvar selectSyntaxRight = view => extendSel(view, range => moveBySyntax(view.state, range, ltrAtCursor(view)));\nfunction selectByLine(view, forward) {\n  return extendSel(view, range => view.moveVertically(range, forward));\n}\nvar selectLineUp = view => selectByLine(view, false);\nvar selectLineDown = view => selectByLine(view, true);\nfunction selectByPage(view, forward) {\n  return extendSel(view, range => view.moveVertically(range, forward, pageInfo(view).height));\n}\nvar selectPageUp = view => selectByPage(view, false);\nvar selectPageDown = view => selectByPage(view, true);\nvar selectLineBoundaryForward = view => extendSel(view, range => moveByLineBoundary(view, range, true));\nvar selectLineBoundaryBackward = view => extendSel(view, range => moveByLineBoundary(view, range, false));\nvar selectLineBoundaryLeft = view => extendSel(view, range => moveByLineBoundary(view, range, !ltrAtCursor(view)));\nvar selectLineBoundaryRight = view => extendSel(view, range => moveByLineBoundary(view, range, ltrAtCursor(view)));\nvar selectLineStart = view => extendSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).from));\nvar selectLineEnd = view => extendSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).to));\nvar cursorDocStart = ({\n  state,\n  dispatch\n}) => {\n  dispatch(setSel(state, {\n    anchor: 0\n  }));\n  return true;\n};\nvar cursorDocEnd = ({\n  state,\n  dispatch\n}) => {\n  dispatch(setSel(state, {\n    anchor: state.doc.length\n  }));\n  return true;\n};\nvar selectDocStart = ({\n  state,\n  dispatch\n}) => {\n  dispatch(setSel(state, {\n    anchor: state.selection.main.anchor,\n    head: 0\n  }));\n  return true;\n};\nvar selectDocEnd = ({\n  state,\n  dispatch\n}) => {\n  dispatch(setSel(state, {\n    anchor: state.selection.main.anchor,\n    head: state.doc.length\n  }));\n  return true;\n};\nvar selectAll = ({\n  state,\n  dispatch\n}) => {\n  dispatch(state.update({\n    selection: {\n      anchor: 0,\n      head: state.doc.length\n    },\n    userEvent: \"select\"\n  }));\n  return true;\n};\nvar selectLine = ({\n  state,\n  dispatch\n}) => {\n  let ranges = selectedLineBlocks(state).map(({\n    from,\n    to\n  }) => EditorSelection.range(from, Math.min(to + 1, state.doc.length)));\n  dispatch(state.update({\n    selection: EditorSelection.create(ranges),\n    userEvent: \"select\"\n  }));\n  return true;\n};\nvar selectParentSyntax = ({\n  state,\n  dispatch\n}) => {\n  let selection = updateSel(state.selection, range => {\n    var _a;\n    let context = syntaxTree(state).resolveInner(range.head, 1);\n    while (!(context.from < range.from && context.to >= range.to || context.to > range.to && context.from <= range.from || !((_a = context.parent) === null || _a === void 0 ? void 0 : _a.parent))) context = context.parent;\n    return EditorSelection.range(context.to, context.from);\n  });\n  dispatch(setSel(state, selection));\n  return true;\n};\nvar simplifySelection = ({\n  state,\n  dispatch\n}) => {\n  let cur = state.selection,\n    selection = null;\n  if (cur.ranges.length > 1) selection = EditorSelection.create([cur.main]);else if (!cur.main.empty) selection = EditorSelection.create([EditorSelection.cursor(cur.main.head)]);\n  if (!selection) return false;\n  dispatch(setSel(state, selection));\n  return true;\n};\nfunction deleteBy(target, by) {\n  if (target.state.readOnly) return false;\n  let event = \"delete.selection\",\n    {\n      state\n    } = target;\n  let changes = state.changeByRange(range => {\n    let {\n      from,\n      to\n    } = range;\n    if (from == to) {\n      let towards = by(from);\n      if (towards < from) {\n        event = \"delete.backward\";\n        towards = skipAtomic(target, towards, false);\n      } else if (towards > from) {\n        event = \"delete.forward\";\n        towards = skipAtomic(target, towards, true);\n      }\n      from = Math.min(from, towards);\n      to = Math.max(to, towards);\n    } else {\n      from = skipAtomic(target, from, false);\n      to = skipAtomic(target, to, true);\n    }\n    return from == to ? {\n      range\n    } : {\n      changes: {\n        from,\n        to\n      },\n      range: EditorSelection.cursor(from)\n    };\n  });\n  if (changes.changes.empty) return false;\n  target.dispatch(state.update(changes, {\n    scrollIntoView: true,\n    userEvent: event,\n    effects: event == \"delete.selection\" ? EditorView.announce.of(state.phrase(\"Selection deleted\")) : void 0\n  }));\n  return true;\n}\nfunction skipAtomic(target, pos, forward) {\n  if (target instanceof EditorView) for (let ranges of target.state.facet(EditorView.atomicRanges).map(f => f(target))) ranges.between(pos, pos, (from, to) => {\n    if (from < pos && to > pos) pos = forward ? to : from;\n  });\n  return pos;\n}\nvar deleteByChar = (target, forward) => deleteBy(target, pos => {\n  let {\n      state\n    } = target,\n    line = state.doc.lineAt(pos),\n    before,\n    targetPos;\n  if (!forward && pos > line.from && pos < line.from + 200 && !/[^ \\t]/.test(before = line.text.slice(0, pos - line.from))) {\n    if (before[before.length - 1] == \"\t\") return pos - 1;\n    let col = countColumn(before, state.tabSize),\n      drop = col % getIndentUnit(state) || getIndentUnit(state);\n    for (let i = 0; i < drop && before[before.length - 1 - i] == \" \"; i++) pos--;\n    targetPos = pos;\n  } else {\n    targetPos = findClusterBreak(line.text, pos - line.from, forward, forward) + line.from;\n    if (targetPos == pos && line.number != (forward ? state.doc.lines : 1)) targetPos += forward ? 1 : -1;\n  }\n  return targetPos;\n});\nvar deleteCharBackward = view => deleteByChar(view, false);\nvar deleteCharForward = view => deleteByChar(view, true);\nvar deleteByGroup = (target, forward) => deleteBy(target, start => {\n  let pos = start,\n    {\n      state\n    } = target,\n    line = state.doc.lineAt(pos);\n  let categorize = state.charCategorizer(pos);\n  for (let cat = null;;) {\n    if (pos == (forward ? line.to : line.from)) {\n      if (pos == start && line.number != (forward ? state.doc.lines : 1)) pos += forward ? 1 : -1;\n      break;\n    }\n    let next = findClusterBreak(line.text, pos - line.from, forward) + line.from;\n    let nextChar = line.text.slice(Math.min(pos, next) - line.from, Math.max(pos, next) - line.from);\n    let nextCat = categorize(nextChar);\n    if (cat != null && nextCat != cat) break;\n    if (nextChar != \" \" || pos != start) cat = nextCat;\n    pos = next;\n  }\n  return pos;\n});\nvar deleteGroupBackward = target => deleteByGroup(target, false);\nvar deleteGroupForward = target => deleteByGroup(target, true);\nvar deleteToLineEnd = view => deleteBy(view, pos => {\n  let lineEnd = view.lineBlockAt(pos).to;\n  return pos < lineEnd ? lineEnd : Math.min(view.state.doc.length, pos + 1);\n});\nvar deleteToLineStart = view => deleteBy(view, pos => {\n  let lineStart = view.lineBlockAt(pos).from;\n  return pos > lineStart ? lineStart : Math.max(0, pos - 1);\n});\nvar deleteTrailingWhitespace = ({\n  state,\n  dispatch\n}) => {\n  if (state.readOnly) return false;\n  let changes = [];\n  for (let pos = 0, prev = \"\", iter = state.doc.iter();;) {\n    iter.next();\n    if (iter.lineBreak || iter.done) {\n      let trailing = prev.search(/\\s+$/);\n      if (trailing > -1) changes.push({\n        from: pos - (prev.length - trailing),\n        to: pos\n      });\n      if (iter.done) break;\n      prev = \"\";\n    } else {\n      prev = iter.value;\n    }\n    pos += iter.value.length;\n  }\n  if (!changes.length) return false;\n  dispatch(state.update({\n    changes,\n    userEvent: \"delete\"\n  }));\n  return true;\n};\nvar splitLine = ({\n  state,\n  dispatch\n}) => {\n  if (state.readOnly) return false;\n  let changes = state.changeByRange(range => {\n    return {\n      changes: {\n        from: range.from,\n        to: range.to,\n        insert: Text.of([\"\", \"\"])\n      },\n      range: EditorSelection.cursor(range.from)\n    };\n  });\n  dispatch(state.update(changes, {\n    scrollIntoView: true,\n    userEvent: \"input\"\n  }));\n  return true;\n};\nvar transposeChars = ({\n  state,\n  dispatch\n}) => {\n  if (state.readOnly) return false;\n  let changes = state.changeByRange(range => {\n    if (!range.empty || range.from == 0 || range.from == state.doc.length) return {\n      range\n    };\n    let pos = range.from,\n      line = state.doc.lineAt(pos);\n    let from = pos == line.from ? pos - 1 : findClusterBreak(line.text, pos - line.from, false) + line.from;\n    let to = pos == line.to ? pos + 1 : findClusterBreak(line.text, pos - line.from, true) + line.from;\n    return {\n      changes: {\n        from,\n        to,\n        insert: state.doc.slice(pos, to).append(state.doc.slice(from, pos))\n      },\n      range: EditorSelection.cursor(to)\n    };\n  });\n  if (changes.changes.empty) return false;\n  dispatch(state.update(changes, {\n    scrollIntoView: true,\n    userEvent: \"move.character\"\n  }));\n  return true;\n};\nfunction selectedLineBlocks(state) {\n  let blocks = [],\n    upto = -1;\n  for (let range of state.selection.ranges) {\n    let startLine = state.doc.lineAt(range.from),\n      endLine = state.doc.lineAt(range.to);\n    if (!range.empty && range.to == endLine.from) endLine = state.doc.lineAt(range.to - 1);\n    if (upto >= startLine.number) {\n      let prev = blocks[blocks.length - 1];\n      prev.to = endLine.to;\n      prev.ranges.push(range);\n    } else {\n      blocks.push({\n        from: startLine.from,\n        to: endLine.to,\n        ranges: [range]\n      });\n    }\n    upto = endLine.number + 1;\n  }\n  return blocks;\n}\nfunction moveLine(state, dispatch, forward) {\n  if (state.readOnly) return false;\n  let changes = [],\n    ranges = [];\n  for (let block of selectedLineBlocks(state)) {\n    if (forward ? block.to == state.doc.length : block.from == 0) continue;\n    let nextLine = state.doc.lineAt(forward ? block.to + 1 : block.from - 1);\n    let size = nextLine.length + 1;\n    if (forward) {\n      changes.push({\n        from: block.to,\n        to: nextLine.to\n      }, {\n        from: block.from,\n        insert: nextLine.text + state.lineBreak\n      });\n      for (let r of block.ranges) ranges.push(EditorSelection.range(Math.min(state.doc.length, r.anchor + size), Math.min(state.doc.length, r.head + size)));\n    } else {\n      changes.push({\n        from: nextLine.from,\n        to: block.from\n      }, {\n        from: block.to,\n        insert: state.lineBreak + nextLine.text\n      });\n      for (let r1 of block.ranges) ranges.push(EditorSelection.range(r1.anchor - size, r1.head - size));\n    }\n  }\n  if (!changes.length) return false;\n  dispatch(state.update({\n    changes,\n    scrollIntoView: true,\n    selection: EditorSelection.create(ranges, state.selection.mainIndex),\n    userEvent: \"move.line\"\n  }));\n  return true;\n}\nvar moveLineUp = ({\n  state,\n  dispatch\n}) => moveLine(state, dispatch, false);\nvar moveLineDown = ({\n  state,\n  dispatch\n}) => moveLine(state, dispatch, true);\nfunction copyLine(state, dispatch, forward) {\n  if (state.readOnly) return false;\n  let changes = [];\n  for (let block of selectedLineBlocks(state)) {\n    if (forward) changes.push({\n      from: block.from,\n      insert: state.doc.slice(block.from, block.to) + state.lineBreak\n    });else changes.push({\n      from: block.to,\n      insert: state.lineBreak + state.doc.slice(block.from, block.to)\n    });\n  }\n  dispatch(state.update({\n    changes,\n    scrollIntoView: true,\n    userEvent: \"input.copyline\"\n  }));\n  return true;\n}\nvar copyLineUp = ({\n  state,\n  dispatch\n}) => copyLine(state, dispatch, false);\nvar copyLineDown = ({\n  state,\n  dispatch\n}) => copyLine(state, dispatch, true);\nvar deleteLine = view => {\n  if (view.state.readOnly) return false;\n  let {\n      state\n    } = view,\n    changes = state.changes(selectedLineBlocks(state).map(({\n      from,\n      to\n    }) => {\n      if (from > 0) from--;else if (to < state.doc.length) to++;\n      return {\n        from,\n        to\n      };\n    }));\n  let selection = updateSel(state.selection, range => view.moveVertically(range, true)).map(changes);\n  view.dispatch({\n    changes,\n    selection,\n    scrollIntoView: true,\n    userEvent: \"delete.line\"\n  });\n  return true;\n};\nvar insertNewline = ({\n  state,\n  dispatch\n}) => {\n  dispatch(state.update(state.replaceSelection(state.lineBreak), {\n    scrollIntoView: true,\n    userEvent: \"input\"\n  }));\n  return true;\n};\nfunction isBetweenBrackets(state, pos) {\n  if (/\\(\\)|\\[\\]|\\{\\}/.test(state.sliceDoc(pos - 1, pos + 1))) return {\n    from: pos,\n    to: pos\n  };\n  let context = syntaxTree(state).resolveInner(pos);\n  let before = context.childBefore(pos),\n    after = context.childAfter(pos),\n    closedBy;\n  if (before && after && before.to <= pos && after.from >= pos && (closedBy = before.type.prop(NodeProp.closedBy)) && closedBy.indexOf(after.name) > -1 && state.doc.lineAt(before.to).from == state.doc.lineAt(after.from).from) return {\n    from: before.to,\n    to: after.from\n  };\n  return null;\n}\nvar insertNewlineAndIndent = /* @__PURE__ */newlineAndIndent(false);\nvar insertBlankLine = /* @__PURE__ */newlineAndIndent(true);\nfunction newlineAndIndent(atEof) {\n  return ({\n    state,\n    dispatch\n  }) => {\n    if (state.readOnly) return false;\n    let changes = state.changeByRange(range => {\n      let {\n          from,\n          to\n        } = range,\n        line = state.doc.lineAt(from);\n      let explode = !atEof && from == to && isBetweenBrackets(state, from);\n      if (atEof) from = to = (to <= line.to ? line : state.doc.lineAt(to)).to;\n      let cx = new IndentContext(state, {\n        simulateBreak: from,\n        simulateDoubleBreak: !!explode\n      });\n      let indent = getIndentation(cx, from);\n      if (indent == null) indent = /^\\s*/.exec(state.doc.lineAt(from).text)[0].length;\n      while (to < line.to && /\\s/.test(line.text[to - line.from])) to++;\n      if (explode) ({\n        from,\n        to\n      } = explode);else if (from > line.from && from < line.from + 100 && !/\\S/.test(line.text.slice(0, from))) from = line.from;\n      let insert = [\"\", indentString(state, indent)];\n      if (explode) insert.push(indentString(state, cx.lineIndent(line.from, -1)));\n      return {\n        changes: {\n          from,\n          to,\n          insert: Text.of(insert)\n        },\n        range: EditorSelection.cursor(from + 1 + insert[1].length)\n      };\n    });\n    dispatch(state.update(changes, {\n      scrollIntoView: true,\n      userEvent: \"input\"\n    }));\n    return true;\n  };\n}\nfunction changeBySelectedLine(state, f) {\n  let atLine = -1;\n  return state.changeByRange(range => {\n    let changes = [];\n    for (let pos = range.from; pos <= range.to;) {\n      let line = state.doc.lineAt(pos);\n      if (line.number > atLine && (range.empty || range.to > line.from)) {\n        f(line, changes, range);\n        atLine = line.number;\n      }\n      pos = line.to + 1;\n    }\n    let changeSet = state.changes(changes);\n    return {\n      changes,\n      range: EditorSelection.range(changeSet.mapPos(range.anchor, 1), changeSet.mapPos(range.head, 1))\n    };\n  });\n}\nvar indentSelection = ({\n  state,\n  dispatch\n}) => {\n  if (state.readOnly) return false;\n  let updated = /* @__PURE__ */Object.create(null);\n  let context = new IndentContext(state, {\n    overrideIndentation: start => {\n      let found = updated[start];\n      return found == null ? -1 : found;\n    }\n  });\n  let changes = changeBySelectedLine(state, (line, changes2, range) => {\n    let indent = getIndentation(context, line.from);\n    if (indent == null) return;\n    if (!/\\S/.test(line.text)) indent = 0;\n    let cur = /^\\s*/.exec(line.text)[0];\n    let norm = indentString(state, indent);\n    if (cur != norm || range.from < line.from + cur.length) {\n      updated[line.from] = indent;\n      changes2.push({\n        from: line.from,\n        to: line.from + cur.length,\n        insert: norm\n      });\n    }\n  });\n  if (!changes.changes.empty) dispatch(state.update(changes, {\n    userEvent: \"indent\"\n  }));\n  return true;\n};\nvar indentMore = ({\n  state,\n  dispatch\n}) => {\n  if (state.readOnly) return false;\n  dispatch(state.update(changeBySelectedLine(state, (line, changes) => {\n    changes.push({\n      from: line.from,\n      insert: state.facet(indentUnit)\n    });\n  }), {\n    userEvent: \"input.indent\"\n  }));\n  return true;\n};\nvar indentLess = ({\n  state,\n  dispatch\n}) => {\n  if (state.readOnly) return false;\n  dispatch(state.update(changeBySelectedLine(state, (line, changes) => {\n    let space = /^\\s*/.exec(line.text)[0];\n    if (!space) return;\n    let col = countColumn(space, state.tabSize),\n      keep = 0;\n    let insert = indentString(state, Math.max(0, col - getIndentUnit(state)));\n    while (keep < space.length && keep < insert.length && space.charCodeAt(keep) == insert.charCodeAt(keep)) keep++;\n    changes.push({\n      from: line.from + keep,\n      to: line.from + space.length,\n      insert: insert.slice(keep)\n    });\n  }), {\n    userEvent: \"delete.dedent\"\n  }));\n  return true;\n};\nvar insertTab = ({\n  state,\n  dispatch\n}) => {\n  if (state.selection.ranges.some(r => !r.empty)) return indentMore({\n    state,\n    dispatch\n  });\n  dispatch(state.update(state.replaceSelection(\"\t\"), {\n    scrollIntoView: true,\n    userEvent: \"input\"\n  }));\n  return true;\n};\nvar emacsStyleKeymap = [{\n  key: \"Ctrl-b\",\n  run: cursorCharLeft,\n  shift: selectCharLeft,\n  preventDefault: true\n}, {\n  key: \"Ctrl-f\",\n  run: cursorCharRight,\n  shift: selectCharRight\n}, {\n  key: \"Ctrl-p\",\n  run: cursorLineUp,\n  shift: selectLineUp\n}, {\n  key: \"Ctrl-n\",\n  run: cursorLineDown,\n  shift: selectLineDown\n}, {\n  key: \"Ctrl-a\",\n  run: cursorLineStart,\n  shift: selectLineStart\n}, {\n  key: \"Ctrl-e\",\n  run: cursorLineEnd,\n  shift: selectLineEnd\n}, {\n  key: \"Ctrl-d\",\n  run: deleteCharForward\n}, {\n  key: \"Ctrl-h\",\n  run: deleteCharBackward\n}, {\n  key: \"Ctrl-k\",\n  run: deleteToLineEnd\n}, {\n  key: \"Ctrl-Alt-h\",\n  run: deleteGroupBackward\n}, {\n  key: \"Ctrl-o\",\n  run: splitLine\n}, {\n  key: \"Ctrl-t\",\n  run: transposeChars\n}, {\n  key: \"Ctrl-v\",\n  run: cursorPageDown\n}];\nvar standardKeymap = /* @__PURE__ */[{\n  key: \"ArrowLeft\",\n  run: cursorCharLeft,\n  shift: selectCharLeft,\n  preventDefault: true\n}, {\n  key: \"Mod-ArrowLeft\",\n  mac: \"Alt-ArrowLeft\",\n  run: cursorGroupLeft,\n  shift: selectGroupLeft,\n  preventDefault: true\n}, {\n  mac: \"Cmd-ArrowLeft\",\n  run: cursorLineBoundaryLeft,\n  shift: selectLineBoundaryLeft,\n  preventDefault: true\n}, {\n  key: \"ArrowRight\",\n  run: cursorCharRight,\n  shift: selectCharRight,\n  preventDefault: true\n}, {\n  key: \"Mod-ArrowRight\",\n  mac: \"Alt-ArrowRight\",\n  run: cursorGroupRight,\n  shift: selectGroupRight,\n  preventDefault: true\n}, {\n  mac: \"Cmd-ArrowRight\",\n  run: cursorLineBoundaryRight,\n  shift: selectLineBoundaryRight,\n  preventDefault: true\n}, {\n  key: \"ArrowUp\",\n  run: cursorLineUp,\n  shift: selectLineUp,\n  preventDefault: true\n}, {\n  mac: \"Cmd-ArrowUp\",\n  run: cursorDocStart,\n  shift: selectDocStart\n}, {\n  mac: \"Ctrl-ArrowUp\",\n  run: cursorPageUp,\n  shift: selectPageUp\n}, {\n  key: \"ArrowDown\",\n  run: cursorLineDown,\n  shift: selectLineDown,\n  preventDefault: true\n}, {\n  mac: \"Cmd-ArrowDown\",\n  run: cursorDocEnd,\n  shift: selectDocEnd\n}, {\n  mac: \"Ctrl-ArrowDown\",\n  run: cursorPageDown,\n  shift: selectPageDown\n}, {\n  key: \"PageUp\",\n  run: cursorPageUp,\n  shift: selectPageUp\n}, {\n  key: \"PageDown\",\n  run: cursorPageDown,\n  shift: selectPageDown\n}, {\n  key: \"Home\",\n  run: cursorLineBoundaryBackward,\n  shift: selectLineBoundaryBackward,\n  preventDefault: true\n}, {\n  key: \"Mod-Home\",\n  run: cursorDocStart,\n  shift: selectDocStart\n}, {\n  key: \"End\",\n  run: cursorLineBoundaryForward,\n  shift: selectLineBoundaryForward,\n  preventDefault: true\n}, {\n  key: \"Mod-End\",\n  run: cursorDocEnd,\n  shift: selectDocEnd\n}, {\n  key: \"Enter\",\n  run: insertNewlineAndIndent\n}, {\n  key: \"Mod-a\",\n  run: selectAll\n}, {\n  key: \"Backspace\",\n  run: deleteCharBackward,\n  shift: deleteCharBackward\n}, {\n  key: \"Delete\",\n  run: deleteCharForward\n}, {\n  key: \"Mod-Backspace\",\n  mac: \"Alt-Backspace\",\n  run: deleteGroupBackward\n}, {\n  key: \"Mod-Delete\",\n  mac: \"Alt-Delete\",\n  run: deleteGroupForward\n}, {\n  mac: \"Mod-Backspace\",\n  run: deleteToLineStart\n}, {\n  mac: \"Mod-Delete\",\n  run: deleteToLineEnd\n}].concat( /* @__PURE__ */emacsStyleKeymap.map(b => ({\n  mac: b.key,\n  run: b.run,\n  shift: b.shift\n})));\nvar defaultKeymap = /* @__PURE__ */[{\n  key: \"Alt-ArrowLeft\",\n  mac: \"Ctrl-ArrowLeft\",\n  run: cursorSyntaxLeft,\n  shift: selectSyntaxLeft\n}, {\n  key: \"Alt-ArrowRight\",\n  mac: \"Ctrl-ArrowRight\",\n  run: cursorSyntaxRight,\n  shift: selectSyntaxRight\n}, {\n  key: \"Alt-ArrowUp\",\n  run: moveLineUp\n}, {\n  key: \"Shift-Alt-ArrowUp\",\n  run: copyLineUp\n}, {\n  key: \"Alt-ArrowDown\",\n  run: moveLineDown\n}, {\n  key: \"Shift-Alt-ArrowDown\",\n  run: copyLineDown\n}, {\n  key: \"Escape\",\n  run: simplifySelection\n}, {\n  key: \"Mod-Enter\",\n  run: insertBlankLine\n}, {\n  key: \"Alt-l\",\n  mac: \"Ctrl-l\",\n  run: selectLine\n}, {\n  key: \"Mod-i\",\n  run: selectParentSyntax,\n  preventDefault: true\n}, {\n  key: \"Mod-[\",\n  run: indentLess\n}, {\n  key: \"Mod-]\",\n  run: indentMore\n}, {\n  key: \"Mod-Alt-\\\\\",\n  run: indentSelection\n}, {\n  key: \"Shift-Mod-k\",\n  run: deleteLine\n}, {\n  key: \"Shift-Mod-\\\\\",\n  run: cursorMatchingBracket\n}, {\n  key: \"Mod-/\",\n  run: toggleComment\n}, {\n  key: \"Alt-A\",\n  run: toggleBlockComment\n}].concat(standardKeymap);\nvar indentWithTab = {\n  key: \"Tab\",\n  run: indentMore,\n  shift: indentLess\n};\nexport { blockComment, blockUncomment, copyLineDown, copyLineUp, cursorCharBackward, cursorCharForward, cursorCharLeft, cursorCharRight, cursorDocEnd, cursorDocStart, cursorGroupBackward, cursorGroupForward, cursorGroupLeft, cursorGroupRight, cursorLineBoundaryBackward, cursorLineBoundaryForward, cursorLineBoundaryLeft, cursorLineBoundaryRight, cursorLineDown, cursorLineEnd, cursorLineStart, cursorLineUp, cursorMatchingBracket, cursorPageDown, cursorPageUp, cursorSubwordBackward, cursorSubwordForward, cursorSyntaxLeft, cursorSyntaxRight, defaultKeymap, deleteCharBackward, deleteCharForward, deleteGroupBackward, deleteGroupForward, deleteLine, deleteToLineEnd, deleteToLineStart, deleteTrailingWhitespace, emacsStyleKeymap, history, historyField, historyKeymap, indentLess, indentMore, indentSelection, indentWithTab, insertBlankLine, insertNewline, insertNewlineAndIndent, insertTab, invertedEffects, isolateHistory, lineComment, lineUncomment, moveLineDown, moveLineUp, redo, redoDepth, redoSelection, selectAll, selectCharBackward, selectCharForward, selectCharLeft, selectCharRight, selectDocEnd, selectDocStart, selectGroupBackward, selectGroupForward, selectGroupLeft, selectGroupRight, selectLine, selectLineBoundaryBackward, selectLineBoundaryForward, selectLineBoundaryLeft, selectLineBoundaryRight, selectLineDown, selectLineEnd, selectLineStart, selectLineUp, selectMatchingBracket, selectPageDown, selectPageUp, selectParentSyntax, selectSubwordBackward, selectSubwordForward, selectSyntaxLeft, selectSyntaxRight, simplifySelection, splitLine, standardKeymap, toggleBlockComment, toggleBlockCommentByLine, toggleComment, toggleLineComment, transposeChars, undo, undoDepth, undoSelection };\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"copyLineUp\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"toggleBlockCommentByLine\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectSyntaxLeft\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"toggleComment\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectPageDown\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectLineStart\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorDocEnd\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"invertedEffects\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorCharLeft\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorLineStart\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"splitLine\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"toggleBlockComment\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectParentSyntax\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"insertNewline\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"undoDepth\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"redoSelection\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"redo\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"deleteGroupForward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorMatchingBracket\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectCharRight\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorLineBoundaryForward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectDocStart\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"lineUncomment\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"defaultKeymap\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorSyntaxRight\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorCharBackward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorLineDown\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"undo\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"insertNewlineAndIndent\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorGroupRight\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectLineDown\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorLineEnd\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"simplifySelection\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectDocEnd\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"deleteCharForward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectCharBackward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectPageUp\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"emacsStyleKeymap\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"isolateHistory\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorDocStart\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorSubwordForward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectLineBoundaryForward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectLineBoundaryRight\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"blockUncomment\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"deleteLine\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectSubwordBackward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"moveLineUp\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"toggleLineComment\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"lineComment\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorCharForward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"indentWithTab\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectLineUp\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"deleteTrailingWhitespace\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectCharForward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorPageDown\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"historyKeymap\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectGroupForward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"historyField\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"indentLess\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorLineBoundaryRight\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorCharRight\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"moveLineDown\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorLineBoundaryLeft\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectGroupLeft\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"deleteCharBackward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"undoSelection\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"indentMore\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"deleteGroupBackward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"copyLineDown\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"redoDepth\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorLineBoundaryBackward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectLineBoundaryBackward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectMatchingBracket\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"standardKeymap\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectLineBoundaryLeft\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"insertTab\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorLineUp\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectGroupBackward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectGroupRight\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"deleteToLineEnd\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"deleteToLineStart\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectCharLeft\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"insertBlankLine\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorSubwordBackward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectAll\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"indentSelection\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"history\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorSyntaxLeft\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectLine\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorGroupBackward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"blockComment\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorPageUp\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorGroupLeft\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectSyntaxRight\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectSubwordForward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cursorGroupForward\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"selectLineEnd\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"transposeChars\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};", "// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./build\".\n */var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = {\n    exports: {}\n  }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n      get: () => from[key],\n      enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n    });\n  }\n  return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n// If the importer is in node compatibility mode or this is not an ESM\n// file that has been converted to a CommonJS file using a Babel-\n// compatible transform (i.e. \"__esModule\" has not been set), then set\n// \"default\" to the CommonJS \"module.exports\" for node compatibility.\nisNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", {\n  value: mod,\n  enumerable: true\n}) : target, mod)); // ../../node_modules/anser/lib/index.js\nvar require_lib = __commonJS({\n  \"../../node_modules/anser/lib/index.js\"(exports, module) {\n    \"use strict\";\n\n    var _createClass = function () {\n      function defineProperties(target, props) {\n        for (var i2 = 0; i2 < props.length; i2++) {\n          var descriptor = props[i2];\n          descriptor.enumerable = descriptor.enumerable || false;\n          descriptor.configurable = true;\n          if (\"value\" in descriptor) descriptor.writable = true;\n          Object.defineProperty(target, descriptor.key, descriptor);\n        }\n      }\n      return function (Constructor, protoProps, staticProps) {\n        if (protoProps) defineProperties(Constructor.prototype, protoProps);\n        if (staticProps) defineProperties(Constructor, staticProps);\n        return Constructor;\n      };\n    }();\n    function _classCallCheck(instance, Constructor) {\n      if (!(instance instanceof Constructor)) {\n        throw new TypeError(\"Cannot call a class as a function\");\n      }\n    }\n    var ANSI_COLORS = [[{\n      color: \"0, 0, 0\",\n      class: \"ansi-black\"\n    }, {\n      color: \"187, 0, 0\",\n      class: \"ansi-red\"\n    }, {\n      color: \"0, 187, 0\",\n      class: \"ansi-green\"\n    }, {\n      color: \"187, 187, 0\",\n      class: \"ansi-yellow\"\n    }, {\n      color: \"0, 0, 187\",\n      class: \"ansi-blue\"\n    }, {\n      color: \"187, 0, 187\",\n      class: \"ansi-magenta\"\n    }, {\n      color: \"0, 187, 187\",\n      class: \"ansi-cyan\"\n    }, {\n      color: \"255,255,255\",\n      class: \"ansi-white\"\n    }], [{\n      color: \"85, 85, 85\",\n      class: \"ansi-bright-black\"\n    }, {\n      color: \"255, 85, 85\",\n      class: \"ansi-bright-red\"\n    }, {\n      color: \"0, 255, 0\",\n      class: \"ansi-bright-green\"\n    }, {\n      color: \"255, 255, 85\",\n      class: \"ansi-bright-yellow\"\n    }, {\n      color: \"85, 85, 255\",\n      class: \"ansi-bright-blue\"\n    }, {\n      color: \"255, 85, 255\",\n      class: \"ansi-bright-magenta\"\n    }, {\n      color: \"85, 255, 255\",\n      class: \"ansi-bright-cyan\"\n    }, {\n      color: \"255, 255, 255\",\n      class: \"ansi-bright-white\"\n    }]];\n    var Anser2 = function () {\n      _createClass(Anser3, null, [{\n        key: \"escapeForHtml\",\n        /**\n        * Anser.escapeForHtml\n        * Escape the input HTML.\n        *\n        * This does the minimum escaping of text to make it compliant with HTML.\n        * In particular, the '&','<', and '>' characters are escaped. This should\n        * be run prior to `ansiToHtml`.\n        *\n        * @name Anser.escapeForHtml\n        * @function\n        * @param {String} txt The input text (containing the ANSI snippets).\n        * @returns {String} The escaped html.\n        */\n        value: function escapeForHtml(txt) {\n          return new Anser3().escapeForHtml(txt);\n        }\n      }, {\n        key: \"linkify\",\n        value: function linkify(txt) {\n          return new Anser3().linkify(txt);\n        }\n      }, {\n        key: \"ansiToHtml\",\n        value: function ansiToHtml(txt, options) {\n          return new Anser3().ansiToHtml(txt, options);\n        }\n      }, {\n        key: \"ansiToJson\",\n        value: function ansiToJson(txt, options) {\n          return new Anser3().ansiToJson(txt, options);\n        }\n      }, {\n        key: \"ansiToText\",\n        value: function ansiToText(txt) {\n          return new Anser3().ansiToText(txt);\n        }\n      }]);\n      function Anser3() {\n        _classCallCheck(this, Anser3);\n        this.fg = this.bg = this.fg_truecolor = this.bg_truecolor = null;\n        this.bright = 0;\n        this.decorations = [];\n      }\n      _createClass(Anser3, [{\n        key: \"setupPalette\",\n        value: function setupPalette() {\n          this.PALETTE_COLORS = [];\n          for (var i2 = 0; i2 < 2; ++i2) {\n            for (var j2 = 0; j2 < 8; ++j2) {\n              this.PALETTE_COLORS.push(ANSI_COLORS[i2][j2].color);\n            }\n          }\n          var levels = [0, 95, 135, 175, 215, 255];\n          var format = function format2(r4, g3, b3) {\n            return levels[r4] + \", \" + levels[g3] + \", \" + levels[b3];\n          };\n          var r3 = void 0,\n            g2 = void 0,\n            b2 = void 0;\n          for (var _r = 0; _r < 6; ++_r) {\n            for (var _g = 0; _g < 6; ++_g) {\n              for (var _b2 = 0; _b2 < 6; ++_b2) {\n                this.PALETTE_COLORS.push(format(_r, _g, _b2));\n              }\n            }\n          }\n          var level = 8;\n          for (var _i = 0; _i < 24; ++_i, level += 10) {\n            this.PALETTE_COLORS.push(format(level, level, level));\n          }\n        }\n      }, {\n        key: \"escapeForHtml\",\n        value: function escapeForHtml(txt) {\n          return txt.replace(/[&<>\\\"]/gm, function (str) {\n            return str == \"&\" ? \"&amp;\" : str == '\"' ? \"&quot;\" : str == \"<\" ? \"&lt;\" : str == \">\" ? \"&gt;\" : \"\";\n          });\n        }\n      }, {\n        key: \"linkify\",\n        value: function linkify(txt) {\n          return txt.replace(/(https?:\\/\\/[^\\s]+)/gm, function (str) {\n            return '<a href=\"' + str + '\">' + str + \"</a>\";\n          });\n        }\n      }, {\n        key: \"ansiToHtml\",\n        value: function ansiToHtml(txt, options) {\n          return this.process(txt, options, true);\n        }\n      }, {\n        key: \"ansiToJson\",\n        value: function ansiToJson(txt, options) {\n          options = options || {};\n          options.json = true;\n          options.clearLine = false;\n          return this.process(txt, options, true);\n        }\n      }, {\n        key: \"ansiToText\",\n        value: function ansiToText(txt) {\n          return this.process(txt, {}, false);\n        }\n      }, {\n        key: \"process\",\n        value: function process(txt, options, markup) {\n          var _this = this;\n          var self = this;\n          var raw_text_chunks = txt.split(/\\033\\[/);\n          var first_chunk = raw_text_chunks.shift();\n          if (options === void 0 || options === null) {\n            options = {};\n          }\n          options.clearLine = /\\r/.test(txt);\n          var color_chunks = raw_text_chunks.map(function (chunk) {\n            return _this.processChunk(chunk, options, markup);\n          });\n          if (options && options.json) {\n            var first = self.processChunkJson(\"\");\n            first.content = first_chunk;\n            first.clearLine = options.clearLine;\n            color_chunks.unshift(first);\n            if (options.remove_empty) {\n              color_chunks = color_chunks.filter(function (c2) {\n                return !c2.isEmpty();\n              });\n            }\n            return color_chunks;\n          } else {\n            color_chunks.unshift(first_chunk);\n          }\n          return color_chunks.join(\"\");\n        }\n      }, {\n        key: \"processChunkJson\",\n        value: function processChunkJson(text, options, markup) {\n          options = typeof options == \"undefined\" ? {} : options;\n          var use_classes = options.use_classes = typeof options.use_classes != \"undefined\" && options.use_classes;\n          var key = options.key = use_classes ? \"class\" : \"color\";\n          var result = {\n            content: text,\n            fg: null,\n            bg: null,\n            fg_truecolor: null,\n            bg_truecolor: null,\n            isInverted: false,\n            clearLine: options.clearLine,\n            decoration: null,\n            decorations: [],\n            was_processed: false,\n            isEmpty: function isEmpty2() {\n              return !result.content;\n            }\n          };\n          var matches = text.match(/^([!\\x3c-\\x3f]*)([\\d;]*)([\\x20-\\x2c]*[\\x40-\\x7e])([\\s\\S]*)/m);\n          if (!matches) return result;\n          var orig_txt = result.content = matches[4];\n          var nums = matches[2].split(\";\");\n          if (matches[1] !== \"\" || matches[3] !== \"m\") {\n            return result;\n          }\n          if (!markup) {\n            return result;\n          }\n          var self = this;\n          while (nums.length > 0) {\n            var num_str = nums.shift();\n            var num = parseInt(num_str);\n            if (isNaN(num) || num === 0) {\n              self.fg = self.bg = null;\n              self.decorations = [];\n            } else if (num === 1) {\n              self.decorations.push(\"bold\");\n            } else if (num === 2) {\n              self.decorations.push(\"dim\");\n            } else if (num === 3) {\n              self.decorations.push(\"italic\");\n            } else if (num === 4) {\n              self.decorations.push(\"underline\");\n            } else if (num === 5) {\n              self.decorations.push(\"blink\");\n            } else if (num === 7) {\n              self.decorations.push(\"reverse\");\n            } else if (num === 8) {\n              self.decorations.push(\"hidden\");\n            } else if (num === 9) {\n              self.decorations.push(\"strikethrough\");\n            } else if (num === 21) {\n              self.removeDecoration(\"bold\");\n            } else if (num === 22) {\n              self.removeDecoration(\"bold\");\n              self.removeDecoration(\"dim\");\n            } else if (num === 23) {\n              self.removeDecoration(\"italic\");\n            } else if (num === 24) {\n              self.removeDecoration(\"underline\");\n            } else if (num === 25) {\n              self.removeDecoration(\"blink\");\n            } else if (num === 27) {\n              self.removeDecoration(\"reverse\");\n            } else if (num === 28) {\n              self.removeDecoration(\"hidden\");\n            } else if (num === 29) {\n              self.removeDecoration(\"strikethrough\");\n            } else if (num === 39) {\n              self.fg = null;\n            } else if (num === 49) {\n              self.bg = null;\n            } else if (num >= 30 && num < 38) {\n              self.fg = ANSI_COLORS[0][num % 10][key];\n            } else if (num >= 90 && num < 98) {\n              self.fg = ANSI_COLORS[1][num % 10][key];\n            } else if (num >= 40 && num < 48) {\n              self.bg = ANSI_COLORS[0][num % 10][key];\n            } else if (num >= 100 && num < 108) {\n              self.bg = ANSI_COLORS[1][num % 10][key];\n            } else if (num === 38 || num === 48) {\n              var is_foreground = num === 38;\n              if (nums.length >= 1) {\n                var mode = nums.shift();\n                if (mode === \"5\" && nums.length >= 1) {\n                  var palette_index = parseInt(nums.shift());\n                  if (palette_index >= 0 && palette_index <= 255) {\n                    if (!use_classes) {\n                      if (!this.PALETTE_COLORS) {\n                        self.setupPalette();\n                      }\n                      if (is_foreground) {\n                        self.fg = this.PALETTE_COLORS[palette_index];\n                      } else {\n                        self.bg = this.PALETTE_COLORS[palette_index];\n                      }\n                    } else {\n                      var klass = palette_index >= 16 ? \"ansi-palette-\" + palette_index : ANSI_COLORS[palette_index > 7 ? 1 : 0][palette_index % 8][\"class\"];\n                      if (is_foreground) {\n                        self.fg = klass;\n                      } else {\n                        self.bg = klass;\n                      }\n                    }\n                  }\n                } else if (mode === \"2\" && nums.length >= 3) {\n                  var r3 = parseInt(nums.shift());\n                  var g2 = parseInt(nums.shift());\n                  var b2 = parseInt(nums.shift());\n                  if (r3 >= 0 && r3 <= 255 && g2 >= 0 && g2 <= 255 && b2 >= 0 && b2 <= 255) {\n                    var color2 = r3 + \", \" + g2 + \", \" + b2;\n                    if (!use_classes) {\n                      if (is_foreground) {\n                        self.fg = color2;\n                      } else {\n                        self.bg = color2;\n                      }\n                    } else {\n                      if (is_foreground) {\n                        self.fg = \"ansi-truecolor\";\n                        self.fg_truecolor = color2;\n                      } else {\n                        self.bg = \"ansi-truecolor\";\n                        self.bg_truecolor = color2;\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n          if (self.fg === null && self.bg === null && self.decorations.length === 0) {\n            return result;\n          } else {\n            var styles = [];\n            var classes = [];\n            var data = {};\n            result.fg = self.fg;\n            result.bg = self.bg;\n            result.fg_truecolor = self.fg_truecolor;\n            result.bg_truecolor = self.bg_truecolor;\n            result.decorations = self.decorations;\n            result.decoration = self.decorations.slice(-1).pop() || null;\n            result.was_processed = true;\n            return result;\n          }\n        }\n      }, {\n        key: \"processChunk\",\n        value: function processChunk(text, options, markup) {\n          var _this2 = this;\n          options = options || {};\n          var jsonChunk = this.processChunkJson(text, options, markup);\n          var use_classes = options.use_classes;\n          jsonChunk.decorations = jsonChunk.decorations.filter(function (decoration) {\n            if (decoration === \"reverse\") {\n              if (!jsonChunk.fg) {\n                jsonChunk.fg = ANSI_COLORS[0][7][use_classes ? \"class\" : \"color\"];\n              }\n              if (!jsonChunk.bg) {\n                jsonChunk.bg = ANSI_COLORS[0][0][use_classes ? \"class\" : \"color\"];\n              }\n              var tmpFg = jsonChunk.fg;\n              jsonChunk.fg = jsonChunk.bg;\n              jsonChunk.bg = tmpFg;\n              var tmpFgTrue = jsonChunk.fg_truecolor;\n              jsonChunk.fg_truecolor = jsonChunk.bg_truecolor;\n              jsonChunk.bg_truecolor = tmpFgTrue;\n              jsonChunk.isInverted = true;\n              return false;\n            }\n            return true;\n          });\n          if (options.json) {\n            return jsonChunk;\n          }\n          if (jsonChunk.isEmpty()) {\n            return \"\";\n          }\n          if (!jsonChunk.was_processed) {\n            return jsonChunk.content;\n          }\n          var colors = [];\n          var decorations = [];\n          var textDecorations = [];\n          var data = {};\n          var render_data = function render_data2(data2) {\n            var fragments = [];\n            var key = void 0;\n            for (key in data2) {\n              if (data2.hasOwnProperty(key)) {\n                fragments.push(\"data-\" + key + '=\"' + _this2.escapeForHtml(data2[key]) + '\"');\n              }\n            }\n            return fragments.length > 0 ? \" \" + fragments.join(\" \") : \"\";\n          };\n          if (jsonChunk.isInverted) {\n            data[\"ansi-is-inverted\"] = \"true\";\n          }\n          if (jsonChunk.fg) {\n            if (use_classes) {\n              colors.push(jsonChunk.fg + \"-fg\");\n              if (jsonChunk.fg_truecolor !== null) {\n                data[\"ansi-truecolor-fg\"] = jsonChunk.fg_truecolor;\n                jsonChunk.fg_truecolor = null;\n              }\n            } else {\n              colors.push(\"color:rgb(\" + jsonChunk.fg + \")\");\n            }\n          }\n          if (jsonChunk.bg) {\n            if (use_classes) {\n              colors.push(jsonChunk.bg + \"-bg\");\n              if (jsonChunk.bg_truecolor !== null) {\n                data[\"ansi-truecolor-bg\"] = jsonChunk.bg_truecolor;\n                jsonChunk.bg_truecolor = null;\n              }\n            } else {\n              colors.push(\"background-color:rgb(\" + jsonChunk.bg + \")\");\n            }\n          }\n          jsonChunk.decorations.forEach(function (decoration) {\n            if (use_classes) {\n              decorations.push(\"ansi-\" + decoration);\n              return;\n            }\n            if (decoration === \"bold\") {\n              decorations.push(\"font-weight:bold\");\n            } else if (decoration === \"dim\") {\n              decorations.push(\"opacity:0.5\");\n            } else if (decoration === \"italic\") {\n              decorations.push(\"font-style:italic\");\n            } else if (decoration === \"hidden\") {\n              decorations.push(\"visibility:hidden\");\n            } else if (decoration === \"strikethrough\") {\n              textDecorations.push(\"line-through\");\n            } else {\n              textDecorations.push(decoration);\n            }\n          });\n          if (textDecorations.length) {\n            decorations.push(\"text-decoration:\" + textDecorations.join(\" \"));\n          }\n          if (use_classes) {\n            return '<span class=\"' + colors.concat(decorations).join(\" \") + '\"' + render_data(data) + \">\" + jsonChunk.content + \"</span>\";\n          } else {\n            return '<span style=\"' + colors.concat(decorations).join(\";\") + '\"' + render_data(data) + \">\" + jsonChunk.content + \"</span>\";\n          }\n        }\n      }, {\n        key: \"removeDecoration\",\n        value: function removeDecoration(decoration) {\n          var index = this.decorations.indexOf(decoration);\n          if (index >= 0) {\n            this.decorations.splice(index, 1);\n          }\n        }\n      }]);\n      return Anser3;\n    }();\n    module.exports = Anser2;\n  }\n}); // ../../node_modules/escape-carriage/index.js\nvar require_escape_carriage = __commonJS({\n  \"../../node_modules/escape-carriage/index.js\"(exports, module) {\n    function escapeCarriageReturn2(txt) {\n      if (!txt) return \"\";\n      if (!/\\r/.test(txt)) return txt;\n      txt = txt.replace(/\\r+\\n/gm, \"\\n\");\n      while (/\\r./.test(txt)) {\n        txt = txt.replace(/^([^\\r\\n]*)\\r+([^\\r\\n]+)/gm, function (_, base, insert) {\n          return insert + base.slice(insert.length);\n        });\n      }\n      return txt;\n    }\n    function findLongestString(arr) {\n      var longest = 0;\n      for (var i2 = 0; i2 < arr.length; i2++) {\n        if (arr[longest].length <= arr[i2].length) {\n          longest = i2;\n        }\n      }\n      return longest;\n    }\n    function escapeSingleLineSafe(txt) {\n      if (!/\\r/.test(txt)) return txt;\n      var arr = txt.split(\"\\r\");\n      var res = [];\n      while (arr.length > 0) {\n        var longest = findLongestString(arr);\n        res.push(arr[longest]);\n        arr = arr.slice(longest + 1);\n      }\n      return res.join(\"\\r\");\n    }\n    function escapeCarriageReturnSafe(txt) {\n      if (!txt) return \"\";\n      if (!/\\r/.test(txt)) return txt;\n      if (!/\\n/.test(txt)) return escapeSingleLineSafe(txt);\n      txt = txt.replace(/\\r+\\n/gm, \"\\n\");\n      var idx = txt.lastIndexOf(\"\\n\");\n      return escapeCarriageReturn2(txt.slice(0, idx)) + \"\\n\" + escapeSingleLineSafe(txt.slice(idx + 1));\n    }\n    module.exports = escapeCarriageReturn2;\n    module.exports.escapeCarriageReturn = escapeCarriageReturn2;\n    module.exports.escapeCarriageReturnSafe = escapeCarriageReturnSafe;\n  }\n}); // ../../node_modules/lz-string/libs/lz-string.js\nvar require_lz_string = __commonJS({\n  \"../../node_modules/lz-string/libs/lz-string.js\"(exports, module) {\n    var LZString2 = function () {\n      var f2 = String.fromCharCode;\n      var keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n      var keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\n      var baseReverseDic = {};\n      function getBaseValue(alphabet, character) {\n        if (!baseReverseDic[alphabet]) {\n          baseReverseDic[alphabet] = {};\n          for (var i2 = 0; i2 < alphabet.length; i2++) {\n            baseReverseDic[alphabet][alphabet.charAt(i2)] = i2;\n          }\n        }\n        return baseReverseDic[alphabet][character];\n      }\n      var LZString3 = {\n        compressToBase64: function (input) {\n          if (input == null) return \"\";\n          var res = LZString3._compress(input, 6, function (a2) {\n            return keyStrBase64.charAt(a2);\n          });\n          switch (res.length % 4) {\n            default:\n            case 0:\n              return res;\n            case 1:\n              return res + \"===\";\n            case 2:\n              return res + \"==\";\n            case 3:\n              return res + \"=\";\n          }\n        },\n        decompressFromBase64: function (input) {\n          if (input == null) return \"\";\n          if (input == \"\") return null;\n          return LZString3._decompress(input.length, 32, function (index) {\n            return getBaseValue(keyStrBase64, input.charAt(index));\n          });\n        },\n        compressToUTF16: function (input) {\n          if (input == null) return \"\";\n          return LZString3._compress(input, 15, function (a2) {\n            return f2(a2 + 32);\n          }) + \" \";\n        },\n        decompressFromUTF16: function (compressed) {\n          if (compressed == null) return \"\";\n          if (compressed == \"\") return null;\n          return LZString3._decompress(compressed.length, 16384, function (index) {\n            return compressed.charCodeAt(index) - 32;\n          });\n        },\n        //compress into uint8array (UCS-2 big endian format)\n        compressToUint8Array: function (uncompressed) {\n          var compressed = LZString3.compress(uncompressed);\n          var buf = new Uint8Array(compressed.length * 2);\n          for (var i2 = 0, TotalLen = compressed.length; i2 < TotalLen; i2++) {\n            var current_value = compressed.charCodeAt(i2);\n            buf[i2 * 2] = current_value >>> 8;\n            buf[i2 * 2 + 1] = current_value % 256;\n          }\n          return buf;\n        },\n        //decompress from uint8array (UCS-2 big endian format)\n        decompressFromUint8Array: function (compressed) {\n          if (compressed === null || compressed === void 0) {\n            return LZString3.decompress(compressed);\n          } else {\n            var buf = new Array(compressed.length / 2);\n            for (var i2 = 0, TotalLen = buf.length; i2 < TotalLen; i2++) {\n              buf[i2] = compressed[i2 * 2] * 256 + compressed[i2 * 2 + 1];\n            }\n            var result = [];\n            buf.forEach(function (c2) {\n              result.push(f2(c2));\n            });\n            return LZString3.decompress(result.join(\"\"));\n          }\n        },\n        //compress into a string that is already URI encoded\n        compressToEncodedURIComponent: function (input) {\n          if (input == null) return \"\";\n          return LZString3._compress(input, 6, function (a2) {\n            return keyStrUriSafe.charAt(a2);\n          });\n        },\n        //decompress from an output of compressToEncodedURIComponent\n        decompressFromEncodedURIComponent: function (input) {\n          if (input == null) return \"\";\n          if (input == \"\") return null;\n          input = input.replace(/ /g, \"+\");\n          return LZString3._decompress(input.length, 32, function (index) {\n            return getBaseValue(keyStrUriSafe, input.charAt(index));\n          });\n        },\n        compress: function (uncompressed) {\n          return LZString3._compress(uncompressed, 16, function (a2) {\n            return f2(a2);\n          });\n        },\n        _compress: function (uncompressed, bitsPerChar, getCharFromInt) {\n          if (uncompressed == null) return \"\";\n          var i2,\n            value,\n            context_dictionary = {},\n            context_dictionaryToCreate = {},\n            context_c = \"\",\n            context_wc = \"\",\n            context_w = \"\",\n            context_enlargeIn = 2,\n            context_dictSize = 3,\n            context_numBits = 2,\n            context_data = [],\n            context_data_val = 0,\n            context_data_position = 0,\n            ii;\n          for (ii = 0; ii < uncompressed.length; ii += 1) {\n            context_c = uncompressed.charAt(ii);\n            if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n              context_dictionary[context_c] = context_dictSize++;\n              context_dictionaryToCreate[context_c] = true;\n            }\n            context_wc = context_w + context_c;\n            if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n              context_w = context_wc;\n            } else {\n              if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n                if (context_w.charCodeAt(0) < 256) {\n                  for (i2 = 0; i2 < context_numBits; i2++) {\n                    context_data_val = context_data_val << 1;\n                    if (context_data_position == bitsPerChar - 1) {\n                      context_data_position = 0;\n                      context_data.push(getCharFromInt(context_data_val));\n                      context_data_val = 0;\n                    } else {\n                      context_data_position++;\n                    }\n                  }\n                  value = context_w.charCodeAt(0);\n                  for (i2 = 0; i2 < 8; i2++) {\n                    context_data_val = context_data_val << 1 | value & 1;\n                    if (context_data_position == bitsPerChar - 1) {\n                      context_data_position = 0;\n                      context_data.push(getCharFromInt(context_data_val));\n                      context_data_val = 0;\n                    } else {\n                      context_data_position++;\n                    }\n                    value = value >> 1;\n                  }\n                } else {\n                  value = 1;\n                  for (i2 = 0; i2 < context_numBits; i2++) {\n                    context_data_val = context_data_val << 1 | value;\n                    if (context_data_position == bitsPerChar - 1) {\n                      context_data_position = 0;\n                      context_data.push(getCharFromInt(context_data_val));\n                      context_data_val = 0;\n                    } else {\n                      context_data_position++;\n                    }\n                    value = 0;\n                  }\n                  value = context_w.charCodeAt(0);\n                  for (i2 = 0; i2 < 16; i2++) {\n                    context_data_val = context_data_val << 1 | value & 1;\n                    if (context_data_position == bitsPerChar - 1) {\n                      context_data_position = 0;\n                      context_data.push(getCharFromInt(context_data_val));\n                      context_data_val = 0;\n                    } else {\n                      context_data_position++;\n                    }\n                    value = value >> 1;\n                  }\n                }\n                context_enlargeIn--;\n                if (context_enlargeIn == 0) {\n                  context_enlargeIn = Math.pow(2, context_numBits);\n                  context_numBits++;\n                }\n                delete context_dictionaryToCreate[context_w];\n              } else {\n                value = context_dictionary[context_w];\n                for (i2 = 0; i2 < context_numBits; i2++) {\n                  context_data_val = context_data_val << 1 | value & 1;\n                  if (context_data_position == bitsPerChar - 1) {\n                    context_data_position = 0;\n                    context_data.push(getCharFromInt(context_data_val));\n                    context_data_val = 0;\n                  } else {\n                    context_data_position++;\n                  }\n                  value = value >> 1;\n                }\n              }\n              context_enlargeIn--;\n              if (context_enlargeIn == 0) {\n                context_enlargeIn = Math.pow(2, context_numBits);\n                context_numBits++;\n              }\n              context_dictionary[context_wc] = context_dictSize++;\n              context_w = String(context_c);\n            }\n          }\n          if (context_w !== \"\") {\n            if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n              if (context_w.charCodeAt(0) < 256) {\n                for (i2 = 0; i2 < context_numBits; i2++) {\n                  context_data_val = context_data_val << 1;\n                  if (context_data_position == bitsPerChar - 1) {\n                    context_data_position = 0;\n                    context_data.push(getCharFromInt(context_data_val));\n                    context_data_val = 0;\n                  } else {\n                    context_data_position++;\n                  }\n                }\n                value = context_w.charCodeAt(0);\n                for (i2 = 0; i2 < 8; i2++) {\n                  context_data_val = context_data_val << 1 | value & 1;\n                  if (context_data_position == bitsPerChar - 1) {\n                    context_data_position = 0;\n                    context_data.push(getCharFromInt(context_data_val));\n                    context_data_val = 0;\n                  } else {\n                    context_data_position++;\n                  }\n                  value = value >> 1;\n                }\n              } else {\n                value = 1;\n                for (i2 = 0; i2 < context_numBits; i2++) {\n                  context_data_val = context_data_val << 1 | value;\n                  if (context_data_position == bitsPerChar - 1) {\n                    context_data_position = 0;\n                    context_data.push(getCharFromInt(context_data_val));\n                    context_data_val = 0;\n                  } else {\n                    context_data_position++;\n                  }\n                  value = 0;\n                }\n                value = context_w.charCodeAt(0);\n                for (i2 = 0; i2 < 16; i2++) {\n                  context_data_val = context_data_val << 1 | value & 1;\n                  if (context_data_position == bitsPerChar - 1) {\n                    context_data_position = 0;\n                    context_data.push(getCharFromInt(context_data_val));\n                    context_data_val = 0;\n                  } else {\n                    context_data_position++;\n                  }\n                  value = value >> 1;\n                }\n              }\n              context_enlargeIn--;\n              if (context_enlargeIn == 0) {\n                context_enlargeIn = Math.pow(2, context_numBits);\n                context_numBits++;\n              }\n              delete context_dictionaryToCreate[context_w];\n            } else {\n              value = context_dictionary[context_w];\n              for (i2 = 0; i2 < context_numBits; i2++) {\n                context_data_val = context_data_val << 1 | value & 1;\n                if (context_data_position == bitsPerChar - 1) {\n                  context_data_position = 0;\n                  context_data.push(getCharFromInt(context_data_val));\n                  context_data_val = 0;\n                } else {\n                  context_data_position++;\n                }\n                value = value >> 1;\n              }\n            }\n            context_enlargeIn--;\n            if (context_enlargeIn == 0) {\n              context_enlargeIn = Math.pow(2, context_numBits);\n              context_numBits++;\n            }\n          }\n          value = 2;\n          for (i2 = 0; i2 < context_numBits; i2++) {\n            context_data_val = context_data_val << 1 | value & 1;\n            if (context_data_position == bitsPerChar - 1) {\n              context_data_position = 0;\n              context_data.push(getCharFromInt(context_data_val));\n              context_data_val = 0;\n            } else {\n              context_data_position++;\n            }\n            value = value >> 1;\n          }\n          while (true) {\n            context_data_val = context_data_val << 1;\n            if (context_data_position == bitsPerChar - 1) {\n              context_data.push(getCharFromInt(context_data_val));\n              break;\n            } else context_data_position++;\n          }\n          return context_data.join(\"\");\n        },\n        decompress: function (compressed) {\n          if (compressed == null) return \"\";\n          if (compressed == \"\") return null;\n          return LZString3._decompress(compressed.length, 32768, function (index) {\n            return compressed.charCodeAt(index);\n          });\n        },\n        _decompress: function (length, resetValue, getNextValue) {\n          var dictionary = [],\n            next,\n            enlargeIn = 4,\n            dictSize = 4,\n            numBits = 3,\n            entry = \"\",\n            result = [],\n            i2,\n            w2,\n            bits,\n            resb,\n            maxpower,\n            power,\n            c2,\n            data = {\n              val: getNextValue(0),\n              position: resetValue,\n              index: 1\n            };\n          for (i2 = 0; i2 < 3; i2 += 1) {\n            dictionary[i2] = i2;\n          }\n          bits = 0;\n          maxpower = Math.pow(2, 2);\n          power = 1;\n          while (power != maxpower) {\n            resb = data.val & data.position;\n            data.position >>= 1;\n            if (data.position == 0) {\n              data.position = resetValue;\n              data.val = getNextValue(data.index++);\n            }\n            bits |= (resb > 0 ? 1 : 0) * power;\n            power <<= 1;\n          }\n          switch (next = bits) {\n            case 0:\n              bits = 0;\n              maxpower = Math.pow(2, 8);\n              power = 1;\n              while (power != maxpower) {\n                resb = data.val & data.position;\n                data.position >>= 1;\n                if (data.position == 0) {\n                  data.position = resetValue;\n                  data.val = getNextValue(data.index++);\n                }\n                bits |= (resb > 0 ? 1 : 0) * power;\n                power <<= 1;\n              }\n              c2 = f2(bits);\n              break;\n            case 1:\n              bits = 0;\n              maxpower = Math.pow(2, 16);\n              power = 1;\n              while (power != maxpower) {\n                resb = data.val & data.position;\n                data.position >>= 1;\n                if (data.position == 0) {\n                  data.position = resetValue;\n                  data.val = getNextValue(data.index++);\n                }\n                bits |= (resb > 0 ? 1 : 0) * power;\n                power <<= 1;\n              }\n              c2 = f2(bits);\n              break;\n            case 2:\n              return \"\";\n          }\n          dictionary[3] = c2;\n          w2 = c2;\n          result.push(c2);\n          while (true) {\n            if (data.index > length) {\n              return \"\";\n            }\n            bits = 0;\n            maxpower = Math.pow(2, numBits);\n            power = 1;\n            while (power != maxpower) {\n              resb = data.val & data.position;\n              data.position >>= 1;\n              if (data.position == 0) {\n                data.position = resetValue;\n                data.val = getNextValue(data.index++);\n              }\n              bits |= (resb > 0 ? 1 : 0) * power;\n              power <<= 1;\n            }\n            switch (c2 = bits) {\n              case 0:\n                bits = 0;\n                maxpower = Math.pow(2, 8);\n                power = 1;\n                while (power != maxpower) {\n                  resb = data.val & data.position;\n                  data.position >>= 1;\n                  if (data.position == 0) {\n                    data.position = resetValue;\n                    data.val = getNextValue(data.index++);\n                  }\n                  bits |= (resb > 0 ? 1 : 0) * power;\n                  power <<= 1;\n                }\n                dictionary[dictSize++] = f2(bits);\n                c2 = dictSize - 1;\n                enlargeIn--;\n                break;\n              case 1:\n                bits = 0;\n                maxpower = Math.pow(2, 16);\n                power = 1;\n                while (power != maxpower) {\n                  resb = data.val & data.position;\n                  data.position >>= 1;\n                  if (data.position == 0) {\n                    data.position = resetValue;\n                    data.val = getNextValue(data.index++);\n                  }\n                  bits |= (resb > 0 ? 1 : 0) * power;\n                  power <<= 1;\n                }\n                dictionary[dictSize++] = f2(bits);\n                c2 = dictSize - 1;\n                enlargeIn--;\n                break;\n              case 2:\n                return result.join(\"\");\n            }\n            if (enlargeIn == 0) {\n              enlargeIn = Math.pow(2, numBits);\n              numBits++;\n            }\n            if (dictionary[c2]) {\n              entry = dictionary[c2];\n            } else {\n              if (c2 === dictSize) {\n                entry = w2 + w2.charAt(0);\n              } else {\n                return null;\n              }\n            }\n            result.push(entry);\n            dictionary[dictSize++] = w2 + entry.charAt(0);\n            enlargeIn--;\n            w2 = entry;\n            if (enlargeIn == 0) {\n              enlargeIn = Math.pow(2, numBits);\n              numBits++;\n            }\n          }\n        }\n      };\n      return LZString3;\n    }();\n    if (typeof define === \"function\" && define.amd) {\n      define(function () {\n        return LZString2;\n      });\n    } else if (typeof module !== \"undefined\" && module != null) {\n      module.exports = LZString2;\n    }\n  }\n}); // ../../node_modules/@codesandbox/sandpack-react/dist/index.mjs\nimport { jsxs, jsx, Fragment } from \"react/jsx-runtime\";\nimport * as React3 from \"react\";\nimport { createContext as createContext2, useContext as useContext2, useState as useState3, useRef as useRef2, useCallback as useCallback2, useEffect as useEffect3, createElement as createElement2, forwardRef as forwardRef2 } from \"react\"; // ../../node_modules/@stitches/core/dist/index.mjs\nvar t = \"colors\";\nvar n = \"sizes\";\nvar r = \"space\";\nvar i = {\n  gap: r,\n  gridGap: r,\n  columnGap: r,\n  gridColumnGap: r,\n  rowGap: r,\n  gridRowGap: r,\n  inset: r,\n  insetBlock: r,\n  insetBlockEnd: r,\n  insetBlockStart: r,\n  insetInline: r,\n  insetInlineEnd: r,\n  insetInlineStart: r,\n  margin: r,\n  marginTop: r,\n  marginRight: r,\n  marginBottom: r,\n  marginLeft: r,\n  marginBlock: r,\n  marginBlockEnd: r,\n  marginBlockStart: r,\n  marginInline: r,\n  marginInlineEnd: r,\n  marginInlineStart: r,\n  padding: r,\n  paddingTop: r,\n  paddingRight: r,\n  paddingBottom: r,\n  paddingLeft: r,\n  paddingBlock: r,\n  paddingBlockEnd: r,\n  paddingBlockStart: r,\n  paddingInline: r,\n  paddingInlineEnd: r,\n  paddingInlineStart: r,\n  top: r,\n  right: r,\n  bottom: r,\n  left: r,\n  scrollMargin: r,\n  scrollMarginTop: r,\n  scrollMarginRight: r,\n  scrollMarginBottom: r,\n  scrollMarginLeft: r,\n  scrollMarginX: r,\n  scrollMarginY: r,\n  scrollMarginBlock: r,\n  scrollMarginBlockEnd: r,\n  scrollMarginBlockStart: r,\n  scrollMarginInline: r,\n  scrollMarginInlineEnd: r,\n  scrollMarginInlineStart: r,\n  scrollPadding: r,\n  scrollPaddingTop: r,\n  scrollPaddingRight: r,\n  scrollPaddingBottom: r,\n  scrollPaddingLeft: r,\n  scrollPaddingX: r,\n  scrollPaddingY: r,\n  scrollPaddingBlock: r,\n  scrollPaddingBlockEnd: r,\n  scrollPaddingBlockStart: r,\n  scrollPaddingInline: r,\n  scrollPaddingInlineEnd: r,\n  scrollPaddingInlineStart: r,\n  fontSize: \"fontSizes\",\n  background: t,\n  backgroundColor: t,\n  backgroundImage: t,\n  borderImage: t,\n  border: t,\n  borderBlock: t,\n  borderBlockEnd: t,\n  borderBlockStart: t,\n  borderBottom: t,\n  borderBottomColor: t,\n  borderColor: t,\n  borderInline: t,\n  borderInlineEnd: t,\n  borderInlineStart: t,\n  borderLeft: t,\n  borderLeftColor: t,\n  borderRight: t,\n  borderRightColor: t,\n  borderTop: t,\n  borderTopColor: t,\n  caretColor: t,\n  color: t,\n  columnRuleColor: t,\n  fill: t,\n  outline: t,\n  outlineColor: t,\n  stroke: t,\n  textDecorationColor: t,\n  fontFamily: \"fonts\",\n  fontWeight: \"fontWeights\",\n  lineHeight: \"lineHeights\",\n  letterSpacing: \"letterSpacings\",\n  blockSize: n,\n  minBlockSize: n,\n  maxBlockSize: n,\n  inlineSize: n,\n  minInlineSize: n,\n  maxInlineSize: n,\n  width: n,\n  minWidth: n,\n  maxWidth: n,\n  height: n,\n  minHeight: n,\n  maxHeight: n,\n  flexBasis: n,\n  gridTemplateColumns: n,\n  gridTemplateRows: n,\n  borderWidth: \"borderWidths\",\n  borderTopWidth: \"borderWidths\",\n  borderRightWidth: \"borderWidths\",\n  borderBottomWidth: \"borderWidths\",\n  borderLeftWidth: \"borderWidths\",\n  borderStyle: \"borderStyles\",\n  borderTopStyle: \"borderStyles\",\n  borderRightStyle: \"borderStyles\",\n  borderBottomStyle: \"borderStyles\",\n  borderLeftStyle: \"borderStyles\",\n  borderRadius: \"radii\",\n  borderTopLeftRadius: \"radii\",\n  borderTopRightRadius: \"radii\",\n  borderBottomRightRadius: \"radii\",\n  borderBottomLeftRadius: \"radii\",\n  boxShadow: \"shadows\",\n  textShadow: \"shadows\",\n  transition: \"transitions\",\n  zIndex: \"zIndices\"\n};\nvar o = (e, t2) => \"function\" == typeof t2 ? {\n  \"()\": Function.prototype.toString.call(t2)\n} : t2;\nvar l = () => {\n  const e = /* @__PURE__ */Object.create(null);\n  return (t2, n2, ...r3) => {\n    const i2 = (e2 => JSON.stringify(e2, o))(t2);\n    return i2 in e ? e[i2] : e[i2] = n2(t2, ...r3);\n  };\n};\nvar s = Symbol.for(\"sxs.internal\");\nvar a = (e, t2) => Object.defineProperties(e, Object.getOwnPropertyDescriptors(t2));\nvar c = e => {\n  for (const t2 in e) return true;\n  return false;\n};\nvar {\n  hasOwnProperty: d\n} = Object.prototype;\nvar g = e => e.includes(\"-\") ? e : e.replace(/[A-Z]/g, e2 => \"-\" + e2.toLowerCase());\nvar p = /\\s+(?![^()]*\\))/;\nvar u = e => t2 => e(...(\"string\" == typeof t2 ? String(t2).split(p) : [t2]));\nvar h = {\n  appearance: e => ({\n    WebkitAppearance: e,\n    appearance: e\n  }),\n  backfaceVisibility: e => ({\n    WebkitBackfaceVisibility: e,\n    backfaceVisibility: e\n  }),\n  backdropFilter: e => ({\n    WebkitBackdropFilter: e,\n    backdropFilter: e\n  }),\n  backgroundClip: e => ({\n    WebkitBackgroundClip: e,\n    backgroundClip: e\n  }),\n  boxDecorationBreak: e => ({\n    WebkitBoxDecorationBreak: e,\n    boxDecorationBreak: e\n  }),\n  clipPath: e => ({\n    WebkitClipPath: e,\n    clipPath: e\n  }),\n  content: e => ({\n    content: e.includes('\"') || e.includes(\"'\") || /^([A-Za-z]+\\([^]*|[^]*-quote|inherit|initial|none|normal|revert|unset)$/.test(e) ? e : `\"${e}\"`\n  }),\n  hyphens: e => ({\n    WebkitHyphens: e,\n    hyphens: e\n  }),\n  maskImage: e => ({\n    WebkitMaskImage: e,\n    maskImage: e\n  }),\n  maskSize: e => ({\n    WebkitMaskSize: e,\n    maskSize: e\n  }),\n  tabSize: e => ({\n    MozTabSize: e,\n    tabSize: e\n  }),\n  textSizeAdjust: e => ({\n    WebkitTextSizeAdjust: e,\n    textSizeAdjust: e\n  }),\n  userSelect: e => ({\n    WebkitUserSelect: e,\n    userSelect: e\n  }),\n  marginBlock: u((e, t2) => ({\n    marginBlockStart: e,\n    marginBlockEnd: t2 || e\n  })),\n  marginInline: u((e, t2) => ({\n    marginInlineStart: e,\n    marginInlineEnd: t2 || e\n  })),\n  maxSize: u((e, t2) => ({\n    maxBlockSize: e,\n    maxInlineSize: t2 || e\n  })),\n  minSize: u((e, t2) => ({\n    minBlockSize: e,\n    minInlineSize: t2 || e\n  })),\n  paddingBlock: u((e, t2) => ({\n    paddingBlockStart: e,\n    paddingBlockEnd: t2 || e\n  })),\n  paddingInline: u((e, t2) => ({\n    paddingInlineStart: e,\n    paddingInlineEnd: t2 || e\n  }))\n};\nvar f = /([\\d.]+)([^]*)/;\nvar m = (e, t2) => e.length ? e.reduce((e2, n2) => (e2.push(...t2.map(e3 => e3.includes(\"&\") ? e3.replace(/&/g, /[ +>|~]/.test(n2) && /&.*&/.test(e3) ? `:is(${n2})` : n2) : n2 + \" \" + e3)), e2), []) : t2;\nvar b = (e, t2) => e in S && \"string\" == typeof t2 ? t2.replace(/^((?:[^]*[^\\w-])?)(fit-content|stretch)((?:[^\\w-][^]*)?)$/, (t3, n2, r3, i2) => n2 + (\"stretch\" === r3 ? `-moz-available${i2};${g(e)}:${n2}-webkit-fill-available` : `-moz-fit-content${i2};${g(e)}:${n2}fit-content`) + i2) : String(t2);\nvar S = {\n  blockSize: 1,\n  height: 1,\n  inlineSize: 1,\n  maxBlockSize: 1,\n  maxHeight: 1,\n  maxInlineSize: 1,\n  maxWidth: 1,\n  minBlockSize: 1,\n  minHeight: 1,\n  minInlineSize: 1,\n  minWidth: 1,\n  width: 1\n};\nvar k = e => e ? e + \"-\" : \"\";\nvar y = (e, t2, n2) => e.replace(/([+-])?((?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[Ee][+-]?\\d+)?)?(\\$|--)([$\\w-]+)/g, (e2, r3, i2, o2, l2) => \"$\" == o2 == !!i2 ? e2 : (r3 || \"--\" == o2 ? \"calc(\" : \"\") + \"var(--\" + (\"$\" === o2 ? k(t2) + (l2.includes(\"$\") ? \"\" : k(n2)) + l2.replace(/\\$/g, \"-\") : l2) + \")\" + (r3 || \"--\" == o2 ? \"*\" + (r3 || \"\") + (i2 || \"1\") + \")\" : \"\"));\nvar B = /\\s*,\\s*(?![^()]*\\))/;\nvar $ = Object.prototype.toString;\nvar x = (e, t2, n2, r3, i2) => {\n  let o2, l2, s2;\n  const a2 = (e2, t3, n3) => {\n    let c2, d2;\n    const p2 = e3 => {\n      for (c2 in e3) {\n        const x2 = 64 === c2.charCodeAt(0),\n          z2 = x2 && Array.isArray(e3[c2]) ? e3[c2] : [e3[c2]];\n        for (d2 of z2) {\n          const e4 = /[A-Z]/.test(S2 = c2) ? S2 : S2.replace(/-[^]/g, e5 => e5[1].toUpperCase()),\n            z3 = \"object\" == typeof d2 && d2 && d2.toString === $ && (!r3.utils[e4] || !t3.length);\n          if (e4 in r3.utils && !z3) {\n            const t4 = r3.utils[e4];\n            if (t4 !== l2) {\n              l2 = t4, p2(t4(d2)), l2 = null;\n              continue;\n            }\n          } else if (e4 in h) {\n            const t41 = h[e4];\n            if (t41 !== s2) {\n              s2 = t41, p2(t41(d2)), s2 = null;\n              continue;\n            }\n          }\n          if (x2 && (u2 = c2.slice(1) in r3.media ? \"@media \" + r3.media[c2.slice(1)] : c2, c2 = u2.replace(/\\(\\s*([\\w-]+)\\s*(=|<|<=|>|>=)\\s*([\\w-]+)\\s*(?:(<|<=|>|>=)\\s*([\\w-]+)\\s*)?\\)/g, (e5, t4, n4, r4, i3, o3) => {\n            const l3 = f.test(t4),\n              s3 = .0625 * (l3 ? -1 : 1),\n              [a3, c3] = l3 ? [r4, t4] : [t4, r4];\n            return \"(\" + (\"=\" === n4[0] ? \"\" : \">\" === n4[0] === l3 ? \"max-\" : \"min-\") + a3 + \":\" + (\"=\" !== n4[0] && 1 === n4.length ? c3.replace(f, (e6, t5, r5) => Number(t5) + s3 * (\">\" === n4 ? 1 : -1) + r5) : c3) + (i3 ? \") and (\" + (\">\" === i3[0] ? \"min-\" : \"max-\") + a3 + \":\" + (1 === i3.length ? o3.replace(f, (e6, t5, n5) => Number(t5) + s3 * (\">\" === i3 ? -1 : 1) + n5) : o3) : \"\") + \")\";\n          })), z3) {\n            const e5 = x2 ? n3.concat(c2) : [...n3],\n              r4 = x2 ? [...t3] : m(t3, c2.split(B));\n            void 0 !== o2 && i2(I(...o2)), o2 = void 0, a2(d2, r4, e5);\n          } else void 0 === o2 && (o2 = [[], t3, n3]), c2 = x2 || 36 !== c2.charCodeAt(0) ? c2 : `--${k(r3.prefix)}${c2.slice(1).replace(/\\$/g, \"-\")}`, d2 = z3 ? d2 : \"number\" == typeof d2 ? d2 && e4 in R ? String(d2) + \"px\" : String(d2) : y(b(e4, null == d2 ? \"\" : d2), r3.prefix, r3.themeMap[e4]), o2[0].push(`${x2 ? `${c2} ` : `${g(c2)}:`}${d2}`);\n        }\n      }\n      var u2, S2;\n    };\n    p2(e2), void 0 !== o2 && i2(I(...o2)), o2 = void 0;\n  };\n  a2(e, t2, n2);\n};\nvar I = (e, t2, n2) => `${n2.map(e2 => `${e2}{`).join(\"\")}${t2.length ? `${t2.join(\",\")}{` : \"\"}${e.join(\";\")}${t2.length ? \"}\" : \"\"}${Array(n2.length ? n2.length + 1 : 0).join(\"}\")}`;\nvar R = {\n  animationDelay: 1,\n  animationDuration: 1,\n  backgroundSize: 1,\n  blockSize: 1,\n  border: 1,\n  borderBlock: 1,\n  borderBlockEnd: 1,\n  borderBlockEndWidth: 1,\n  borderBlockStart: 1,\n  borderBlockStartWidth: 1,\n  borderBlockWidth: 1,\n  borderBottom: 1,\n  borderBottomLeftRadius: 1,\n  borderBottomRightRadius: 1,\n  borderBottomWidth: 1,\n  borderEndEndRadius: 1,\n  borderEndStartRadius: 1,\n  borderInlineEnd: 1,\n  borderInlineEndWidth: 1,\n  borderInlineStart: 1,\n  borderInlineStartWidth: 1,\n  borderInlineWidth: 1,\n  borderLeft: 1,\n  borderLeftWidth: 1,\n  borderRadius: 1,\n  borderRight: 1,\n  borderRightWidth: 1,\n  borderSpacing: 1,\n  borderStartEndRadius: 1,\n  borderStartStartRadius: 1,\n  borderTop: 1,\n  borderTopLeftRadius: 1,\n  borderTopRightRadius: 1,\n  borderTopWidth: 1,\n  borderWidth: 1,\n  bottom: 1,\n  columnGap: 1,\n  columnRule: 1,\n  columnRuleWidth: 1,\n  columnWidth: 1,\n  containIntrinsicSize: 1,\n  flexBasis: 1,\n  fontSize: 1,\n  gap: 1,\n  gridAutoColumns: 1,\n  gridAutoRows: 1,\n  gridTemplateColumns: 1,\n  gridTemplateRows: 1,\n  height: 1,\n  inlineSize: 1,\n  inset: 1,\n  insetBlock: 1,\n  insetBlockEnd: 1,\n  insetBlockStart: 1,\n  insetInline: 1,\n  insetInlineEnd: 1,\n  insetInlineStart: 1,\n  left: 1,\n  letterSpacing: 1,\n  margin: 1,\n  marginBlock: 1,\n  marginBlockEnd: 1,\n  marginBlockStart: 1,\n  marginBottom: 1,\n  marginInline: 1,\n  marginInlineEnd: 1,\n  marginInlineStart: 1,\n  marginLeft: 1,\n  marginRight: 1,\n  marginTop: 1,\n  maxBlockSize: 1,\n  maxHeight: 1,\n  maxInlineSize: 1,\n  maxWidth: 1,\n  minBlockSize: 1,\n  minHeight: 1,\n  minInlineSize: 1,\n  minWidth: 1,\n  offsetDistance: 1,\n  offsetRotate: 1,\n  outline: 1,\n  outlineOffset: 1,\n  outlineWidth: 1,\n  overflowClipMargin: 1,\n  padding: 1,\n  paddingBlock: 1,\n  paddingBlockEnd: 1,\n  paddingBlockStart: 1,\n  paddingBottom: 1,\n  paddingInline: 1,\n  paddingInlineEnd: 1,\n  paddingInlineStart: 1,\n  paddingLeft: 1,\n  paddingRight: 1,\n  paddingTop: 1,\n  perspective: 1,\n  right: 1,\n  rowGap: 1,\n  scrollMargin: 1,\n  scrollMarginBlock: 1,\n  scrollMarginBlockEnd: 1,\n  scrollMarginBlockStart: 1,\n  scrollMarginBottom: 1,\n  scrollMarginInline: 1,\n  scrollMarginInlineEnd: 1,\n  scrollMarginInlineStart: 1,\n  scrollMarginLeft: 1,\n  scrollMarginRight: 1,\n  scrollMarginTop: 1,\n  scrollPadding: 1,\n  scrollPaddingBlock: 1,\n  scrollPaddingBlockEnd: 1,\n  scrollPaddingBlockStart: 1,\n  scrollPaddingBottom: 1,\n  scrollPaddingInline: 1,\n  scrollPaddingInlineEnd: 1,\n  scrollPaddingInlineStart: 1,\n  scrollPaddingLeft: 1,\n  scrollPaddingRight: 1,\n  scrollPaddingTop: 1,\n  shapeMargin: 1,\n  textDecoration: 1,\n  textDecorationThickness: 1,\n  textIndent: 1,\n  textUnderlineOffset: 1,\n  top: 1,\n  transitionDelay: 1,\n  transitionDuration: 1,\n  verticalAlign: 1,\n  width: 1,\n  wordSpacing: 1\n};\nvar z = e => String.fromCharCode(e + (e > 25 ? 39 : 97));\nvar W = e => (e2 => {\n  let t2,\n    n2 = \"\";\n  for (t2 = Math.abs(e2); t2 > 52; t2 = t2 / 52 | 0) n2 = z(t2 % 52) + n2;\n  return z(t2 % 52) + n2;\n})(((e2, t2) => {\n  let n2 = t2.length;\n  for (; n2;) e2 = 33 * e2 ^ t2.charCodeAt(--n2);\n  return e2;\n})(5381, JSON.stringify(e)) >>> 0);\nvar j = [\"themed\", \"global\", \"styled\", \"onevar\", \"resonevar\", \"allvar\", \"inline\"];\nvar E = e => {\n  if (e.href && !e.href.startsWith(location.origin)) return false;\n  try {\n    return !!e.cssRules;\n  } catch (e2) {\n    return false;\n  }\n};\nvar T = e => {\n  let t2;\n  const n2 = () => {\n      const {\n        cssRules: e2\n      } = t2.sheet;\n      return [].map.call(e2, (n3, r4) => {\n        const {\n          cssText: i2\n        } = n3;\n        let o2 = \"\";\n        if (i2.startsWith(\"--sxs\")) return \"\";\n        if (e2[r4 - 1] && (o2 = e2[r4 - 1].cssText).startsWith(\"--sxs\")) {\n          if (!n3.cssRules.length) return \"\";\n          for (const e3 in t2.rules) if (t2.rules[e3].group === n3) return `--sxs{--sxs:${[...t2.rules[e3].cache].join(\" \")}}${i2}`;\n          return n3.cssRules.length ? `${o2}${i2}` : \"\";\n        }\n        return i2;\n      }).join(\"\");\n    },\n    r3 = () => {\n      if (t2) {\n        const {\n          rules: e2,\n          sheet: n3\n        } = t2;\n        if (!n3.deleteRule) {\n          for (; 3 === Object(Object(n3.cssRules)[0]).type;) n3.cssRules.splice(0, 1);\n          n3.cssRules = [];\n        }\n        for (const t3 in e2) delete e2[t3];\n      }\n      const i2 = Object(e).styleSheets || [];\n      for (const e21 of i2) if (E(e21)) {\n        for (let i3 = 0, o3 = e21.cssRules; o3[i3]; ++i3) {\n          const l3 = Object(o3[i3]);\n          if (1 !== l3.type) continue;\n          const s2 = Object(o3[i3 + 1]);\n          if (4 !== s2.type) continue;\n          ++i3;\n          const {\n            cssText: a2\n          } = l3;\n          if (!a2.startsWith(\"--sxs\")) continue;\n          const c2 = a2.slice(14, -3).trim().split(/\\s+/),\n            d2 = j[c2[0]];\n          d2 && (t2 || (t2 = {\n            sheet: e21,\n            reset: r3,\n            rules: {},\n            toString: n2\n          }), t2.rules[d2] = {\n            group: s2,\n            index: i3,\n            cache: new Set(c2)\n          });\n        }\n        if (t2) break;\n      }\n      if (!t2) {\n        const i31 = (e2, t3) => ({\n          type: t3,\n          cssRules: [],\n          insertRule(e3, t4) {\n            this.cssRules.splice(t4, 0, i31(e3, {\n              import: 3,\n              undefined: 1\n            }[(e3.toLowerCase().match(/^@([a-z]+)/) || [])[1]] || 4));\n          },\n          get cssText() {\n            return \"@media{}\" === e2 ? `@media{${[].map.call(this.cssRules, e3 => e3.cssText).join(\"\")}}` : e2;\n          }\n        });\n        t2 = {\n          sheet: e ? (e.head || e).appendChild(document.createElement(\"style\")).sheet : i31(\"\", \"text/css\"),\n          rules: {},\n          reset: r3,\n          toString: n2\n        };\n      }\n      const {\n        sheet: o2,\n        rules: l2\n      } = t2;\n      for (let e22 = j.length - 1; e22 >= 0; --e22) {\n        const t31 = j[e22];\n        if (!l2[t31]) {\n          const n31 = j[e22 + 1],\n            r4 = l2[n31] ? l2[n31].index : o2.cssRules.length;\n          o2.insertRule(\"@media{}\", r4), o2.insertRule(`--sxs{--sxs:${e22}}`, r4), l2[t31] = {\n            group: o2.cssRules[r4 + 1],\n            index: r4,\n            cache: /* @__PURE__ */new Set([e22])\n          };\n        }\n        v(l2[t31]);\n      }\n    };\n  return r3(), t2;\n};\nvar v = e => {\n  const t2 = e.group;\n  let n2 = t2.cssRules.length;\n  e.apply = e2 => {\n    try {\n      t2.insertRule(e2, n2), ++n2;\n    } catch (e3) {}\n  };\n};\nvar M = Symbol();\nvar w = l();\nvar C = (e, t2) => w(e, () => (...n2) => {\n  let r3 = {\n    type: null,\n    composers: /* @__PURE__ */new Set()\n  };\n  for (const t3 of n2) if (null != t3) if (t3[s]) {\n    null == r3.type && (r3.type = t3[s].type);\n    for (const e2 of t3[s].composers) r3.composers.add(e2);\n  } else t3.constructor !== Object || t3.$$typeof ? null == r3.type && (r3.type = t3) : r3.composers.add(P(t3, e));\n  return null == r3.type && (r3.type = \"span\"), r3.composers.size || r3.composers.add([\"PJLV\", {}, [], [], {}, []]), L(e, r3, t2);\n});\nvar P = ({\n  variants: e,\n  compoundVariants: t2,\n  defaultVariants: n2,\n  ...r3\n}, i2) => {\n  const o2 = `${k(i2.prefix)}c-${W(r3)}`,\n    l2 = [],\n    s2 = [],\n    a2 = /* @__PURE__ */Object.create(null),\n    g2 = [];\n  for (const e2 in n2) a2[e2] = String(n2[e2]);\n  if (\"object\" == typeof e && e) for (const t3 in e) {\n    p2 = a2, u2 = t3, d.call(p2, u2) || (a2[t3] = \"undefined\");\n    const n3 = e[t3];\n    for (const e21 in n3) {\n      const r4 = {\n        [t3]: String(e21)\n      };\n      \"undefined\" === String(e21) && g2.push(t3);\n      const i3 = n3[e21],\n        o3 = [r4, i3, !c(i3)];\n      l2.push(o3);\n    }\n  }\n  var p2, u2;\n  if (\"object\" == typeof t2 && t2) for (const e22 of t2) {\n    let {\n      css: t31,\n      ...n31\n    } = e22;\n    t31 = \"object\" == typeof t31 && t31 || {};\n    for (const e3 in n31) n31[e3] = String(n31[e3]);\n    const r41 = [n31, t31, !c(t31)];\n    s2.push(r41);\n  }\n  return [o2, r3, l2, s2, a2, g2];\n};\nvar L = (e, t2, n2) => {\n  const [r3, i2, o2, l2] = O(t2.composers),\n    c2 = \"function\" == typeof t2.type || t2.type.$$typeof ? (e2 => {\n      function t3() {\n        for (let n3 = 0; n3 < t3[M].length; n3++) {\n          const [r4, i3] = t3[M][n3];\n          e2.rules[r4].apply(i3);\n        }\n        return t3[M] = [], null;\n      }\n      return t3[M] = [], t3.rules = {}, j.forEach(e3 => t3.rules[e3] = {\n        apply: n3 => t3[M].push([e3, n3])\n      }), t3;\n    })(n2) : null,\n    d2 = (c2 || n2).rules,\n    g2 = `.${r3}${i2.length > 1 ? `:where(.${i2.slice(1).join(\".\")})` : \"\"}`,\n    p2 = s2 => {\n      s2 = \"object\" == typeof s2 && s2 || D;\n      const {\n          css: a2,\n          ...p3\n        } = s2,\n        u2 = {};\n      for (const e2 in o2) if (delete p3[e2], e2 in s2) {\n        let t3 = s2[e2];\n        \"object\" == typeof t3 && t3 ? u2[e2] = {\n          \"@initial\": o2[e2],\n          ...t3\n        } : (t3 = String(t3), u2[e2] = \"undefined\" !== t3 || l2.has(e2) ? t3 : o2[e2]);\n      } else u2[e2] = o2[e2];\n      const h2 = /* @__PURE__ */new Set([...i2]);\n      for (const [r4, i3, o3, l3] of t2.composers) {\n        n2.rules.styled.cache.has(r4) || (n2.rules.styled.cache.add(r4), x(i3, [`.${r4}`], [], e, e2 => {\n          d2.styled.apply(e2);\n        }));\n        const t31 = A(o3, u2, e.media),\n          s3 = A(l3, u2, e.media, true);\n        for (const i4 of t31) if (void 0 !== i4) for (const [t4, o4, l4] of i4) {\n          const i5 = `${r4}-${W(o4)}-${t4}`;\n          h2.add(i5);\n          const s4 = (l4 ? n2.rules.resonevar : n2.rules.onevar).cache,\n            a3 = l4 ? d2.resonevar : d2.onevar;\n          s4.has(i5) || (s4.add(i5), x(o4, [`.${i5}`], [], e, e2 => {\n            a3.apply(e2);\n          }));\n        }\n        for (const t41 of s3) if (void 0 !== t41) for (const [i41, o41] of t41) {\n          const t5 = `${r4}-${W(o41)}-${i41}`;\n          h2.add(t5), n2.rules.allvar.cache.has(t5) || (n2.rules.allvar.cache.add(t5), x(o41, [`.${t5}`], [], e, e2 => {\n            d2.allvar.apply(e2);\n          }));\n        }\n      }\n      if (\"object\" == typeof a2 && a2) {\n        const t32 = `${r3}-i${W(a2)}-css`;\n        h2.add(t32), n2.rules.inline.cache.has(t32) || (n2.rules.inline.cache.add(t32), x(a2, [`.${t32}`], [], e, e2 => {\n          d2.inline.apply(e2);\n        }));\n      }\n      for (const e21 of String(s2.className || \"\").trim().split(/\\s+/)) e21 && h2.add(e21);\n      const f2 = p3.className = [...h2].join(\" \");\n      return {\n        type: t2.type,\n        className: f2,\n        selector: g2,\n        props: p3,\n        toString: () => f2,\n        deferredInjector: c2\n      };\n    };\n  return a(p2, {\n    className: r3,\n    selector: g2,\n    [s]: t2,\n    toString: () => (n2.rules.styled.cache.has(r3) || p2(), r3)\n  });\n};\nvar O = e => {\n  let t2 = \"\";\n  const n2 = [],\n    r3 = {},\n    i2 = [];\n  for (const [o2,,,, l2, s2] of e) {\n    \"\" === t2 && (t2 = o2), n2.push(o2), i2.push(...s2);\n    for (const e2 in l2) {\n      const t3 = l2[e2];\n      (void 0 === r3[e2] || \"undefined\" !== t3 || s2.includes(t3)) && (r3[e2] = t3);\n    }\n  }\n  return [t2, n2, r3, new Set(i2)];\n};\nvar A = (e, t2, n2, r3) => {\n  const i2 = [];\n  e: for (let [o2, l2, s2] of e) {\n    if (s2) continue;\n    let e2,\n      a2 = 0,\n      c2 = false;\n    for (e2 in o2) {\n      const r4 = o2[e2];\n      let i3 = t2[e2];\n      if (i3 !== r4) {\n        if (\"object\" != typeof i3 || !i3) continue e;\n        {\n          let e3,\n            t3,\n            o3 = 0;\n          for (const l3 in i3) {\n            if (r4 === String(i3[l3])) {\n              if (\"@initial\" !== l3) {\n                const e4 = l3.slice(1);\n                (t3 = t3 || []).push(e4 in n2 ? n2[e4] : l3.replace(/^@media ?/, \"\")), c2 = true;\n              }\n              a2 += o3, e3 = true;\n            }\n            ++o3;\n          }\n          if (t3 && t3.length && (l2 = {\n            [\"@media \" + t3.join(\", \")]: l2\n          }), !e3) continue e;\n        }\n      }\n    }\n    (i2[a2] = i2[a2] || []).push([r3 ? \"cv\" : `${e2}-${o2[e2]}`, l2, c2]);\n  }\n  return i2;\n};\nvar D = {};\nvar H = l();\nvar N = (e, t2) => H(e, () => (...n2) => {\n  const r3 = () => {\n    for (let r4 of n2) {\n      r4 = \"object\" == typeof r4 && r4 || {};\n      let n3 = W(r4);\n      if (!t2.rules.global.cache.has(n3)) {\n        if (t2.rules.global.cache.add(n3), \"@import\" in r4) {\n          let e2 = [].indexOf.call(t2.sheet.cssRules, t2.rules.themed.group) - 1;\n          for (let n4 of [].concat(r4[\"@import\"])) n4 = n4.includes('\"') || n4.includes(\"'\") ? n4 : `\"${n4}\"`, t2.sheet.insertRule(`@import ${n4};`, e2++);\n          delete r4[\"@import\"];\n        }\n        x(r4, [], [], e, e2 => {\n          t2.rules.global.apply(e2);\n        });\n      }\n    }\n    return \"\";\n  };\n  return a(r3, {\n    toString: r3\n  });\n});\nvar V = l();\nvar G = (e, t2) => V(e, () => n2 => {\n  const r3 = `${k(e.prefix)}k-${W(n2)}`,\n    i2 = () => {\n      if (!t2.rules.global.cache.has(r3)) {\n        t2.rules.global.cache.add(r3);\n        const i3 = [];\n        x(n2, [], [], e, e2 => i3.push(e2));\n        const o2 = `@keyframes ${r3}{${i3.join(\"\")}}`;\n        t2.rules.global.apply(o2);\n      }\n      return r3;\n    };\n  return a(i2, {\n    get name() {\n      return i2();\n    },\n    toString: i2\n  });\n});\nvar F = class {\n  get computedValue() {\n    return \"var(\" + this.variable + \")\";\n  }\n  get variable() {\n    return \"--\" + k(this.prefix) + k(this.scale) + this.token;\n  }\n  toString() {\n    return this.computedValue;\n  }\n  constructor(e, t2, n2, r3) {\n    this.token = null == e ? \"\" : String(e), this.value = null == t2 ? \"\" : String(t2), this.scale = null == n2 ? \"\" : String(n2), this.prefix = null == r3 ? \"\" : String(r3);\n  }\n};\nvar J = l();\nvar U = (e, t2) => J(e, () => (n2, r3) => {\n  r3 = \"object\" == typeof n2 && n2 || Object(r3);\n  const i2 = `.${n2 = (n2 = \"string\" == typeof n2 ? n2 : \"\") || `${k(e.prefix)}t-${W(r3)}`}`,\n    o2 = {},\n    l2 = [];\n  for (const t3 in r3) {\n    o2[t3] = {};\n    for (const n3 in r3[t3]) {\n      const i3 = `--${k(e.prefix)}${t3}-${n3}`,\n        s3 = y(String(r3[t3][n3]), e.prefix, t3);\n      o2[t3][n3] = new F(n3, s3, t3, e.prefix), l2.push(`${i3}:${s3}`);\n    }\n  }\n  const s2 = () => {\n    if (l2.length && !t2.rules.themed.cache.has(n2)) {\n      t2.rules.themed.cache.add(n2);\n      const i3 = `${r3 === e.theme ? \":root,\" : \"\"}.${n2}{${l2.join(\";\")}}`;\n      t2.rules.themed.apply(i3);\n    }\n    return n2;\n  };\n  return {\n    ...o2,\n    get className() {\n      return s2();\n    },\n    selector: i2,\n    toString: s2\n  };\n});\nvar Z = l();\nvar X = e => {\n  let t2 = false;\n  const n2 = Z(e, e2 => {\n    t2 = true;\n    const n3 = \"prefix\" in (e2 = \"object\" == typeof e2 && e2 || {}) ? String(e2.prefix) : \"\",\n      r3 = \"object\" == typeof e2.media && e2.media || {},\n      o2 = \"object\" == typeof e2.root ? e2.root || null : globalThis.document || null,\n      l2 = \"object\" == typeof e2.theme && e2.theme || {},\n      s2 = {\n        prefix: n3,\n        media: r3,\n        theme: l2,\n        themeMap: \"object\" == typeof e2.themeMap && e2.themeMap || {\n          ...i\n        },\n        utils: \"object\" == typeof e2.utils && e2.utils || {}\n      },\n      a2 = T(o2),\n      c2 = {\n        css: C(s2, a2),\n        globalCss: N(s2, a2),\n        keyframes: G(s2, a2),\n        createTheme: U(s2, a2),\n        reset() {\n          a2.reset(), c2.theme.toString();\n        },\n        theme: {},\n        sheet: a2,\n        config: s2,\n        prefix: n3,\n        getCssText: a2.toString,\n        toString: a2.toString\n      };\n    return String(c2.theme = c2.createTheme(l2)), c2;\n  });\n  return t2 || n2.reset(), n2;\n}; // ../../node_modules/dequal/dist/index.mjs\nvar has = Object.prototype.hasOwnProperty;\nfunction find(iter, tar, key) {\n  for (key of iter.keys()) {\n    if (dequal(key, tar)) return key;\n  }\n}\nfunction dequal(foo, bar) {\n  var ctor, len, tmp;\n  if (foo === bar) return true;\n  if (foo && bar && (ctor = foo.constructor) === bar.constructor) {\n    if (ctor === Date) return foo.getTime() === bar.getTime();\n    if (ctor === RegExp) return foo.toString() === bar.toString();\n    if (ctor === Array) {\n      if ((len = foo.length) === bar.length) {\n        while (len-- && dequal(foo[len], bar[len]));\n      }\n      return len === -1;\n    }\n    if (ctor === Set) {\n      if (foo.size !== bar.size) {\n        return false;\n      }\n      for (len of foo) {\n        tmp = len;\n        if (tmp && typeof tmp === \"object\") {\n          tmp = find(bar, tmp);\n          if (!tmp) return false;\n        }\n        if (!bar.has(tmp)) return false;\n      }\n      return true;\n    }\n    if (ctor === Map) {\n      if (foo.size !== bar.size) {\n        return false;\n      }\n      for (len of foo) {\n        tmp = len[0];\n        if (tmp && typeof tmp === \"object\") {\n          tmp = find(bar, tmp);\n          if (!tmp) return false;\n        }\n        if (!dequal(len[1], bar.get(tmp))) {\n          return false;\n        }\n      }\n      return true;\n    }\n    if (ctor === ArrayBuffer) {\n      foo = new Uint8Array(foo);\n      bar = new Uint8Array(bar);\n    } else if (ctor === DataView) {\n      if ((len = foo.byteLength) === bar.byteLength) {\n        while (len-- && foo.getInt8(len) === bar.getInt8(len));\n      }\n      return len === -1;\n    }\n    if (ArrayBuffer.isView(foo)) {\n      if ((len = foo.byteLength) === bar.byteLength) {\n        while (len-- && foo[len] === bar[len]);\n      }\n      return len === -1;\n    }\n    if (!ctor || typeof foo === \"object\") {\n      len = 0;\n      for (ctor in foo) {\n        if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n        if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n      }\n      return Object.keys(bar).length === len;\n    }\n  }\n  return foo !== foo && bar !== bar;\n} // ../../node_modules/@codesandbox/sandpack-react/dist/index.mjs\nimport { normalizePath, addPackageJSONIfNeeded, loadSandpackClient, extractErrorDetails } from \"https://framerusercontent.com/modules/fn2r53K2SixLM3ktuGOw/eTuqjtAw0LFZDyNdTgHv/codesandbox_sandpack_client.js\";\nimport { closeBracketsKeymap, closeBrackets } from \"https://framerusercontent.com/modules/iHAg5NNDzB38uLRZmObL/AYYlaW5ad8TRAyLHn07o/codemirror_autocomplete.js\";\nimport { defaultKeymap, historyKeymap, history, indentMore, indentLess, deleteGroupBackward } from \"https://framerusercontent.com/modules/peSgSa05KnLqaA8FHu9n/D7eZPbfsEH95yDKH1UTM/codemirror_commands.js\";\nimport { HighlightStyle, syntaxHighlighting, bracketMatching } from \"https://framerusercontent.com/modules/aJsTBlWNkIaM900KNIXT/TeoF57xeGMuVMjiI2ooR/codemirror_language.js\";\nimport { EditorState, StateEffect, EditorSelection, Annotation } from \"https://framerusercontent.com/modules/wFkXxZqfKOPeEQtsYrsa/Xcw7qvncyogRPQtf9aNn/codemirror_state.js\";\nimport { EditorView, ViewPlugin, Decoration, keymap, highlightSpecialChars, highlightActiveLine, lineNumbers } from \"https://framerusercontent.com/modules/wKCR2JyUW8wZdYweJrou/EndxaPZLF2o4GndkIvF9/codemirror_view.js\";\n(function () {\n  \"use strict\";\n\n  if (typeof window !== \"object\") {\n    return;\n  }\n  if (\"IntersectionObserver\" in window && \"IntersectionObserverEntry\" in window && \"intersectionRatio\" in window.IntersectionObserverEntry.prototype) {\n    if (!(\"isIntersecting\" in window.IntersectionObserverEntry.prototype)) {\n      Object.defineProperty(window.IntersectionObserverEntry.prototype, \"isIntersecting\", {\n        get: function () {\n          return this.intersectionRatio > 0;\n        }\n      });\n    }\n    return;\n  }\n  var document2 = window.document;\n  var registry = [];\n  var crossOriginUpdater = null;\n  var crossOriginRect = null;\n  function IntersectionObserverEntry(entry) {\n    this.time = entry.time;\n    this.target = entry.target;\n    this.rootBounds = ensureDOMRect(entry.rootBounds);\n    this.boundingClientRect = ensureDOMRect(entry.boundingClientRect);\n    this.intersectionRect = ensureDOMRect(entry.intersectionRect || getEmptyRect());\n    this.isIntersecting = !!entry.intersectionRect;\n    var targetRect = this.boundingClientRect;\n    var targetArea = targetRect.width * targetRect.height;\n    var intersectionRect = this.intersectionRect;\n    var intersectionArea = intersectionRect.width * intersectionRect.height;\n    if (targetArea) {\n      this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n    } else {\n      this.intersectionRatio = this.isIntersecting ? 1 : 0;\n    }\n  }\n  function IntersectionObserver2(callback, opt_options) {\n    var options = opt_options || {};\n    if (typeof callback != \"function\") {\n      throw new Error(\"callback must be a function\");\n    }\n    if (options.root && options.root.nodeType != 1) {\n      throw new Error(\"root must be an Element\");\n    }\n    this._checkForIntersections = throttle(this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n    this._callback = callback;\n    this._observationTargets = [];\n    this._queuedEntries = [];\n    this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n    this.thresholds = this._initThresholds(options.threshold);\n    this.root = options.root || null;\n    this.rootMargin = this._rootMarginValues.map(function (margin) {\n      return margin.value + margin.unit;\n    }).join(\" \");\n    this._monitoringDocuments = [];\n    this._monitoringUnsubscribes = [];\n  }\n  IntersectionObserver2.prototype.THROTTLE_TIMEOUT = 100;\n  IntersectionObserver2.prototype.POLL_INTERVAL = null;\n  IntersectionObserver2.prototype.USE_MUTATION_OBSERVER = true;\n  IntersectionObserver2._setupCrossOriginUpdater = function () {\n    if (!crossOriginUpdater) {\n      crossOriginUpdater = function (boundingClientRect, intersectionRect) {\n        if (!boundingClientRect || !intersectionRect) {\n          crossOriginRect = getEmptyRect();\n        } else {\n          crossOriginRect = convertFromParentRect(boundingClientRect, intersectionRect);\n        }\n        registry.forEach(function (observer) {\n          observer._checkForIntersections();\n        });\n      };\n    }\n    return crossOriginUpdater;\n  };\n  IntersectionObserver2._resetCrossOriginUpdater = function () {\n    crossOriginUpdater = null;\n    crossOriginRect = null;\n  };\n  IntersectionObserver2.prototype.observe = function (target) {\n    var isTargetAlreadyObserved = this._observationTargets.some(function (item) {\n      return item.element == target;\n    });\n    if (isTargetAlreadyObserved) {\n      return;\n    }\n    if (!(target && target.nodeType == 1)) {\n      throw new Error(\"target must be an Element\");\n    }\n    this._registerInstance();\n    this._observationTargets.push({\n      element: target,\n      entry: null\n    });\n    this._monitorIntersections(target.ownerDocument);\n    this._checkForIntersections();\n  };\n  IntersectionObserver2.prototype.unobserve = function (target) {\n    this._observationTargets = this._observationTargets.filter(function (item) {\n      return item.element != target;\n    });\n    this._unmonitorIntersections(target.ownerDocument);\n    if (this._observationTargets.length == 0) {\n      this._unregisterInstance();\n    }\n  };\n  IntersectionObserver2.prototype.disconnect = function () {\n    this._observationTargets = [];\n    this._unmonitorAllIntersections();\n    this._unregisterInstance();\n  };\n  IntersectionObserver2.prototype.takeRecords = function () {\n    var records = this._queuedEntries.slice();\n    this._queuedEntries = [];\n    return records;\n  };\n  IntersectionObserver2.prototype._initThresholds = function (opt_threshold) {\n    var threshold = opt_threshold || [0];\n    if (!Array.isArray(threshold)) threshold = [threshold];\n    return threshold.sort().filter(function (t2, i2, a2) {\n      if (typeof t2 != \"number\" || isNaN(t2) || t2 < 0 || t2 > 1) {\n        throw new Error(\"threshold must be a number between 0 and 1 inclusively\");\n      }\n      return t2 !== a2[i2 - 1];\n    });\n  };\n  IntersectionObserver2.prototype._parseRootMargin = function (opt_rootMargin) {\n    var marginString = opt_rootMargin || \"0px\";\n    var margins = marginString.split(/\\s+/).map(function (margin) {\n      var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n      if (!parts) {\n        throw new Error(\"rootMargin must be specified in pixels or percent\");\n      }\n      return {\n        value: parseFloat(parts[1]),\n        unit: parts[2]\n      };\n    });\n    margins[1] = margins[1] || margins[0];\n    margins[2] = margins[2] || margins[0];\n    margins[3] = margins[3] || margins[1];\n    return margins;\n  };\n  IntersectionObserver2.prototype._monitorIntersections = function (doc) {\n    var win = doc.defaultView;\n    if (!win) {\n      return;\n    }\n    if (this._monitoringDocuments.indexOf(doc) != -1) {\n      return;\n    }\n    var callback = this._checkForIntersections;\n    var monitoringInterval = null;\n    var domObserver = null;\n    if (this.POLL_INTERVAL) {\n      monitoringInterval = win.setInterval(callback, this.POLL_INTERVAL);\n    } else {\n      addEvent(win, \"resize\", callback, true);\n      addEvent(doc, \"scroll\", callback, true);\n      if (this.USE_MUTATION_OBSERVER && \"MutationObserver\" in win) {\n        domObserver = new win.MutationObserver(callback);\n        domObserver.observe(doc, {\n          attributes: true,\n          childList: true,\n          characterData: true,\n          subtree: true\n        });\n      }\n    }\n    this._monitoringDocuments.push(doc);\n    this._monitoringUnsubscribes.push(function () {\n      var win2 = doc.defaultView;\n      if (win2) {\n        if (monitoringInterval) {\n          win2.clearInterval(monitoringInterval);\n        }\n        removeEvent(win2, \"resize\", callback, true);\n      }\n      removeEvent(doc, \"scroll\", callback, true);\n      if (domObserver) {\n        domObserver.disconnect();\n      }\n    });\n    if (doc != (this.root && this.root.ownerDocument || document2)) {\n      var frame = getFrameElement(doc);\n      if (frame) {\n        this._monitorIntersections(frame.ownerDocument);\n      }\n    }\n  };\n  IntersectionObserver2.prototype._unmonitorIntersections = function (doc) {\n    var index = this._monitoringDocuments.indexOf(doc);\n    if (index == -1) {\n      return;\n    }\n    var rootDoc = this.root && this.root.ownerDocument || document2;\n    var hasDependentTargets = this._observationTargets.some(function (item) {\n      var itemDoc = item.element.ownerDocument;\n      if (itemDoc == doc) {\n        return true;\n      }\n      while (itemDoc && itemDoc != rootDoc) {\n        var frame2 = getFrameElement(itemDoc);\n        itemDoc = frame2 && frame2.ownerDocument;\n        if (itemDoc == doc) {\n          return true;\n        }\n      }\n      return false;\n    });\n    if (hasDependentTargets) {\n      return;\n    }\n    var unsubscribe = this._monitoringUnsubscribes[index];\n    this._monitoringDocuments.splice(index, 1);\n    this._monitoringUnsubscribes.splice(index, 1);\n    unsubscribe();\n    if (doc != rootDoc) {\n      var frame = getFrameElement(doc);\n      if (frame) {\n        this._unmonitorIntersections(frame.ownerDocument);\n      }\n    }\n  };\n  IntersectionObserver2.prototype._unmonitorAllIntersections = function () {\n    var unsubscribes = this._monitoringUnsubscribes.slice(0);\n    this._monitoringDocuments.length = 0;\n    this._monitoringUnsubscribes.length = 0;\n    for (var i2 = 0; i2 < unsubscribes.length; i2++) {\n      unsubscribes[i2]();\n    }\n  };\n  IntersectionObserver2.prototype._checkForIntersections = function () {\n    if (!this.root && crossOriginUpdater && !crossOriginRect) {\n      return;\n    }\n    var rootIsInDom = this._rootIsInDom();\n    var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n    this._observationTargets.forEach(function (item) {\n      var target = item.element;\n      var targetRect = getBoundingClientRect(target);\n      var rootContainsTarget = this._rootContainsTarget(target);\n      var oldEntry = item.entry;\n      var intersectionRect = rootIsInDom && rootContainsTarget && this._computeTargetAndRootIntersection(target, targetRect, rootRect);\n      var newEntry = item.entry = new IntersectionObserverEntry({\n        time: now(),\n        target,\n        boundingClientRect: targetRect,\n        rootBounds: crossOriginUpdater && !this.root ? null : rootRect,\n        intersectionRect\n      });\n      if (!oldEntry) {\n        this._queuedEntries.push(newEntry);\n      } else if (rootIsInDom && rootContainsTarget) {\n        if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n          this._queuedEntries.push(newEntry);\n        }\n      } else {\n        if (oldEntry && oldEntry.isIntersecting) {\n          this._queuedEntries.push(newEntry);\n        }\n      }\n    }, this);\n    if (this._queuedEntries.length) {\n      this._callback(this.takeRecords(), this);\n    }\n  };\n  IntersectionObserver2.prototype._computeTargetAndRootIntersection = function (target, targetRect, rootRect) {\n    if (window.getComputedStyle(target).display == \"none\") return;\n    var intersectionRect = targetRect;\n    var parent = getParentNode(target);\n    var atRoot = false;\n    while (!atRoot && parent) {\n      var parentRect = null;\n      var parentComputedStyle = parent.nodeType == 1 ? window.getComputedStyle(parent) : {};\n      if (parentComputedStyle.display == \"none\") return null;\n      if (parent == this.root || parent.nodeType /* DOCUMENT */ == 9) {\n        atRoot = true;\n        if (parent == this.root || parent == document2) {\n          if (crossOriginUpdater && !this.root) {\n            if (!crossOriginRect || crossOriginRect.width == 0 && crossOriginRect.height == 0) {\n              parent = null;\n              parentRect = null;\n              intersectionRect = null;\n            } else {\n              parentRect = crossOriginRect;\n            }\n          } else {\n            parentRect = rootRect;\n          }\n        } else {\n          var frame = getParentNode(parent);\n          var frameRect = frame && getBoundingClientRect(frame);\n          var frameIntersect = frame && this._computeTargetAndRootIntersection(frame, frameRect, rootRect);\n          if (frameRect && frameIntersect) {\n            parent = frame;\n            parentRect = convertFromParentRect(frameRect, frameIntersect);\n          } else {\n            parent = null;\n            intersectionRect = null;\n          }\n        }\n      } else {\n        var doc = parent.ownerDocument;\n        if (parent != doc.body && parent != doc.documentElement && parentComputedStyle.overflow != \"visible\") {\n          parentRect = getBoundingClientRect(parent);\n        }\n      }\n      if (parentRect) {\n        intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n      }\n      if (!intersectionRect) break;\n      parent = parent && getParentNode(parent);\n    }\n    return intersectionRect;\n  };\n  IntersectionObserver2.prototype._getRootRect = function () {\n    var rootRect;\n    if (this.root) {\n      rootRect = getBoundingClientRect(this.root);\n    } else {\n      var html2 = document2.documentElement;\n      var body = document2.body;\n      rootRect = {\n        top: 0,\n        left: 0,\n        right: html2.clientWidth || body.clientWidth,\n        width: html2.clientWidth || body.clientWidth,\n        bottom: html2.clientHeight || body.clientHeight,\n        height: html2.clientHeight || body.clientHeight\n      };\n    }\n    return this._expandRectByRootMargin(rootRect);\n  };\n  IntersectionObserver2.prototype._expandRectByRootMargin = function (rect) {\n    var margins = this._rootMarginValues.map(function (margin, i2) {\n      return margin.unit == \"px\" ? margin.value : margin.value * (i2 % 2 ? rect.width : rect.height) / 100;\n    });\n    var newRect = {\n      top: rect.top - margins[0],\n      right: rect.right + margins[1],\n      bottom: rect.bottom + margins[2],\n      left: rect.left - margins[3]\n    };\n    newRect.width = newRect.right - newRect.left;\n    newRect.height = newRect.bottom - newRect.top;\n    return newRect;\n  };\n  IntersectionObserver2.prototype._hasCrossedThreshold = function (oldEntry, newEntry) {\n    var oldRatio = oldEntry && oldEntry.isIntersecting ? oldEntry.intersectionRatio || 0 : -1;\n    var newRatio = newEntry.isIntersecting ? newEntry.intersectionRatio || 0 : -1;\n    if (oldRatio === newRatio) return;\n    for (var i2 = 0; i2 < this.thresholds.length; i2++) {\n      var threshold = this.thresholds[i2];\n      if (threshold == oldRatio || threshold == newRatio || threshold < oldRatio !== threshold < newRatio) {\n        return true;\n      }\n    }\n  };\n  IntersectionObserver2.prototype._rootIsInDom = function () {\n    return !this.root || containsDeep(document2, this.root);\n  };\n  IntersectionObserver2.prototype._rootContainsTarget = function (target) {\n    return containsDeep(this.root || document2, target) && (!this.root || this.root.ownerDocument == target.ownerDocument);\n  };\n  IntersectionObserver2.prototype._registerInstance = function () {\n    if (registry.indexOf(this) < 0) {\n      registry.push(this);\n    }\n  };\n  IntersectionObserver2.prototype._unregisterInstance = function () {\n    var index = registry.indexOf(this);\n    if (index != -1) registry.splice(index, 1);\n  };\n  function now() {\n    return window.performance && performance.now && performance.now();\n  }\n  function throttle(fn, timeout) {\n    var timer = null;\n    return function () {\n      if (!timer) {\n        timer = setTimeout(function () {\n          fn();\n          timer = null;\n        }, timeout);\n      }\n    };\n  }\n  function addEvent(node, event, fn, opt_useCapture) {\n    if (typeof node.addEventListener == \"function\") {\n      node.addEventListener(event, fn, opt_useCapture || false);\n    } else if (typeof node.attachEvent == \"function\") {\n      node.attachEvent(\"on\" + event, fn);\n    }\n  }\n  function removeEvent(node, event, fn, opt_useCapture) {\n    if (typeof node.removeEventListener == \"function\") {\n      node.removeEventListener(event, fn, opt_useCapture || false);\n    } else if (typeof node.detatchEvent == \"function\") {\n      node.detatchEvent(\"on\" + event, fn);\n    }\n  }\n  function computeRectIntersection(rect1, rect2) {\n    var top = Math.max(rect1.top, rect2.top);\n    var bottom = Math.min(rect1.bottom, rect2.bottom);\n    var left = Math.max(rect1.left, rect2.left);\n    var right = Math.min(rect1.right, rect2.right);\n    var width = right - left;\n    var height = bottom - top;\n    return width >= 0 && height >= 0 && {\n      top,\n      bottom,\n      left,\n      right,\n      width,\n      height\n    } || null;\n  }\n  function getBoundingClientRect(el) {\n    var rect;\n    try {\n      rect = el.getBoundingClientRect();\n    } catch (err) {}\n    if (!rect) return getEmptyRect();\n    if (!(rect.width && rect.height)) {\n      rect = {\n        top: rect.top,\n        right: rect.right,\n        bottom: rect.bottom,\n        left: rect.left,\n        width: rect.right - rect.left,\n        height: rect.bottom - rect.top\n      };\n    }\n    return rect;\n  }\n  function getEmptyRect() {\n    return {\n      top: 0,\n      bottom: 0,\n      left: 0,\n      right: 0,\n      width: 0,\n      height: 0\n    };\n  }\n  function ensureDOMRect(rect) {\n    if (!rect || \"x\" in rect) {\n      return rect;\n    }\n    return {\n      top: rect.top,\n      y: rect.top,\n      bottom: rect.bottom,\n      left: rect.left,\n      x: rect.left,\n      right: rect.right,\n      width: rect.width,\n      height: rect.height\n    };\n  }\n  function convertFromParentRect(parentBoundingRect, parentIntersectionRect) {\n    var top = parentIntersectionRect.top - parentBoundingRect.top;\n    var left = parentIntersectionRect.left - parentBoundingRect.left;\n    return {\n      top,\n      left,\n      height: parentIntersectionRect.height,\n      width: parentIntersectionRect.width,\n      bottom: top + parentIntersectionRect.height,\n      right: left + parentIntersectionRect.width\n    };\n  }\n  function containsDeep(parent, child) {\n    var node = child;\n    while (node) {\n      if (node == parent) return true;\n      node = getParentNode(node);\n    }\n    return false;\n  }\n  function getParentNode(node) {\n    var parent = node.parentNode;\n    if (node.nodeType /* DOCUMENT */ == 9 && node != document2) {\n      return getFrameElement(node);\n    }\n    if (parent && parent.nodeType == 11 && parent.host) {\n      return parent.host;\n    }\n    if (parent && parent.assignedSlot) {\n      return parent.assignedSlot.parentNode;\n    }\n    return parent;\n  }\n  function getFrameElement(doc) {\n    try {\n      return doc.defaultView && doc.defaultView.frameElement || null;\n    } catch (e) {\n      return null;\n    }\n  }\n  window.IntersectionObserver = IntersectionObserver2;\n  window.IntersectionObserverEntry = IntersectionObserverEntry;\n})(); // ../../node_modules/@react-hook/intersection-observer/dist/module/index.js\nimport * as React2 from \"react\"; // ../../node_modules/@react-hook/passive-layout-effect/dist/module/index.js\nimport React from \"react\";\nvar usePassiveLayoutEffect = React[typeof document !== \"undefined\" && document.createElement !== void 0 ? \"useLayoutEffect\" : \"useEffect\"];\nvar module_default = usePassiveLayoutEffect; // ../../node_modules/@react-hook/intersection-observer/dist/module/index.js\nfunction useIntersectionObserver(target, options = {}) {\n  const {\n    root = null,\n    pollInterval = null,\n    useMutationObserver = false,\n    rootMargin = \"0px 0px 0px 0px\",\n    threshold = 0,\n    initialIsIntersecting = false\n  } = options;\n  const [entry, setEntry] = React2.useState(() => ({\n    boundingClientRect: null,\n    intersectionRatio: 0,\n    intersectionRect: null,\n    isIntersecting: initialIsIntersecting,\n    rootBounds: null,\n    target: null,\n    time: 0\n  }));\n  const [observer, setObserver] = React2.useState(() => getIntersectionObserver({\n    root,\n    pollInterval,\n    useMutationObserver,\n    rootMargin,\n    threshold\n  }));\n  React2.useEffect(() => {\n    const observer2 = getIntersectionObserver({\n      root,\n      pollInterval,\n      useMutationObserver,\n      rootMargin,\n      threshold\n    });\n    setObserver(observer2);\n  }, [root, rootMargin, pollInterval, useMutationObserver, JSON.stringify(threshold)]);\n  module_default(() => {\n    const targetEl = target && \"current\" in target ? target.current : target;\n    if (!observer || !targetEl) return;\n    let didUnsubscribe = false;\n    observer.observer.observe(targetEl);\n    const callback = entries => {\n      if (didUnsubscribe) return;\n      for (let i2 = 0; i2 < entries.length; i2++) {\n        const entry2 = entries[i2];\n        if (entry2.target === targetEl) {\n          setEntry(entry2);\n        }\n      }\n    };\n    observer.subscribe(callback);\n    return () => {\n      didUnsubscribe = true;\n      observer.observer.unobserve(targetEl);\n      observer.unsubscribe(callback);\n    };\n  }, [target, observer]);\n  return entry;\n}\nfunction createIntersectionObserver({\n  root = null,\n  pollInterval = null,\n  useMutationObserver = false,\n  rootMargin = \"0px 0px 0px 0px\",\n  threshold = 0\n}) {\n  const callbacks = /* @__PURE__ */new Set();\n  if (typeof IntersectionObserver === \"undefined\") return null;\n  const observer = new IntersectionObserver(entries => {\n    for (const callback of callbacks) callback(entries, observer);\n  }, {\n    root,\n    rootMargin,\n    threshold\n  });\n  observer.POLL_INTERVAL = pollInterval;\n  observer.USE_MUTATION_OBSERVER = useMutationObserver;\n  return {\n    observer,\n    getListeners() {\n      return callbacks;\n    },\n    subscribe: callback => callbacks.add(callback),\n    unsubscribe: callback => callbacks.delete(callback)\n  };\n}\nvar _intersectionObserver = /* @__PURE__ */new Map();\nfunction getIntersectionObserver(options) {\n  const {\n    root,\n    ...keys\n  } = options;\n  const key = JSON.stringify(keys);\n  let base = _intersectionObserver.get(root);\n  if (!base) {\n    base = {};\n    _intersectionObserver.set(root, base);\n  }\n  return !base[key] ? base[key] = createIntersectionObserver(options) : base[key];\n}\nvar module_default2 = useIntersectionObserver; // ../../node_modules/@codesandbox/sandpack-react/dist/index.mjs\nvar import_anser = __toESM(require_lib(), 1);\nvar import_escape_carriage = __toESM(require_escape_carriage(), 1);\nvar import_lz_string = __toESM(require_lz_string(), 1);\nimport { css as css$1 } from \"https://framerusercontent.com/modules/Gg5hLFaRxQ2EaXSWb101/kXQVFiwPVLfGsrUiA5zE/codemirror_lang_css.js\";\nimport { html } from \"https://framerusercontent.com/modules/ju8TqAduufCaScL3E39X/3zUBDnN91MxwGUPcS8Lv/codemirror_lang_html.js\";\nimport { javascript } from \"https://framerusercontent.com/modules/YrJiUSsP9WZPvnJAGTTV/qYWVNl0YKyBbL8cTq65j/codemirror_lang_javascript.js\";\nimport { tags, highlightTree } from \"https://framerusercontent.com/modules/rOWwbZHN39cczduPnzmw/OTf12FftmvJsuTNsZb3G/lezer_highlight.js\"; // ../../node_modules/clean-set/dist/clean-set.es.js\nfunction r2(r3) {\n  var t2 = r3 && r3.pop ? [] : {};\n  for (var n2 in r3) t2[n2] = r3[n2];\n  return t2;\n}\nfunction clean_set_es_default(t2, n2, l2) {\n  n2.split && (n2 = n2.split(\".\"));\n  for (var o2 = r2(t2), a2 = o2, e = 0, f2 = n2.length; e < f2; e++) a2 = a2[n2[e]] = e === f2 - 1 ? l2 && l2.call ? l2(a2[n2[e]]) : l2 : r2(a2[n2[e]]);\n  return o2;\n} // ../../node_modules/@codesandbox/sandpack-react/dist/index.mjs\nvar __assign = function () {\n  __assign = Object.assign || function __assign2(t2) {\n    for (var s2, i2 = 1, n2 = arguments.length; i2 < n2; i2++) {\n      s2 = arguments[i2];\n      for (var p2 in s2) if (Object.prototype.hasOwnProperty.call(s2, p2)) t2[p2] = s2[p2];\n    }\n    return t2;\n  };\n  return __assign.apply(this, arguments);\n};\nfunction __rest(s2, e) {\n  var t2 = {};\n  for (var p2 in s2) if (Object.prototype.hasOwnProperty.call(s2, p2) && e.indexOf(p2) < 0) t2[p2] = s2[p2];\n  if (s2 != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i2 = 0, p2 = Object.getOwnPropertySymbols(s2); i2 < p2.length; i2++) {\n    if (e.indexOf(p2[i2]) < 0 && Object.prototype.propertyIsEnumerable.call(s2, p2[i2])) t2[p2[i2]] = s2[p2[i2]];\n  }\n  return t2;\n}\nfunction __awaiter(thisArg, _arguments, P2, generator) {\n  function adopt(value) {\n    return value instanceof P2 ? value : new P2(function (resolve) {\n      resolve(value);\n    });\n  }\n  return new (P2 || (P2 = Promise))(function (resolve, reject) {\n    function fulfilled(value) {\n      try {\n        step(generator.next(value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function rejected(value) {\n      try {\n        step(generator[\"throw\"](value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function step(result) {\n      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n    }\n    step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\nfunction __generator(thisArg, body) {\n  var _ = {\n      label: 0,\n      sent: function () {\n        if (t2[0] & 1) throw t2[1];\n        return t2[1];\n      },\n      trys: [],\n      ops: []\n    },\n    f2,\n    y2,\n    t2,\n    g2;\n  return g2 = {\n    next: verb(0),\n    throw: verb(1),\n    return: verb(2)\n  }, typeof Symbol === \"function\" && (g2[Symbol.iterator] = function () {\n    return this;\n  }), g2;\n  function verb(n2) {\n    return function (v2) {\n      return step([n2, v2]);\n    };\n  }\n  function step(op) {\n    if (f2) throw new TypeError(\"Generator is already executing.\");\n    while (_) try {\n      if (f2 = 1, y2 && (t2 = op[0] & 2 ? y2[\"return\"] : op[0] ? y2[\"throw\"] || ((t2 = y2[\"return\"]) && t2.call(y2), 0) : y2.next) && !(t2 = t2.call(y2, op[1])).done) return t2;\n      if (y2 = 0, t2) op = [op[0] & 2, t2.value];\n      switch (op[0]) {\n        case 0:\n        case 1:\n          t2 = op;\n          break;\n        case 4:\n          _.label++;\n          return {\n            value: op[1],\n            done: false\n          };\n        case 5:\n          _.label++;\n          y2 = op[1];\n          op = [0];\n          continue;\n        case 7:\n          op = _.ops.pop();\n          _.trys.pop();\n          continue;\n        default:\n          if (!(t2 = _.trys, t2 = t2.length > 0 && t2[t2.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n            _ = 0;\n            continue;\n          }\n          if (op[0] === 3 && (!t2 || op[1] > t2[0] && op[1] < t2[3])) {\n            _.label = op[1];\n            break;\n          }\n          if (op[0] === 6 && _.label < t2[1]) {\n            _.label = t2[1];\n            t2 = op;\n            break;\n          }\n          if (t2 && _.label < t2[2]) {\n            _.label = t2[2];\n            _.ops.push(op);\n            break;\n          }\n          if (t2[2]) _.ops.pop();\n          _.trys.pop();\n          continue;\n      }\n      op = body.call(thisArg, _);\n    } catch (e) {\n      op = [6, e];\n      y2 = 0;\n    } finally {\n      f2 = t2 = 0;\n    }\n    if (op[0] & 5) throw op[1];\n    return {\n      value: op[0] ? op[1] : void 0,\n      done: true\n    };\n  }\n}\nfunction __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i2 = 0, l2 = from.length, ar; i2 < l2; i2++) {\n    if (ar || !(i2 in from)) {\n      if (!ar) ar = Array.prototype.slice.call(from, 0, i2);\n      ar[i2] = from[i2];\n    }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\nvar SVG = function (props) {\n  return jsx(\"svg\", __assign({\n    fill: \"currentColor\",\n    height: \"16\",\n    viewBox: \"0 0 16 16\",\n    width: \"16\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, props), void 0);\n};\nvar SignInIcon = function () {\n  return jsxs(SVG, __assign({\n    viewBox: \"0 0 48 48\"\n  }, {\n    children: [jsx(\"title\", {\n      children: \"Sign in\"\n    }, void 0), jsx(\"path\", {\n      d: \"M9 42q-1.2 0-2.1-.9Q6 40.2 6 39V9q0-1.2.9-2.1Q7.8 6 9 6h14.55v3H9v30h14.55v3Zm24.3-9.25-2.15-2.15 5.1-5.1h-17.5v-3h17.4l-5.1-5.1 2.15-2.15 8.8 8.8Z\"\n    }, void 0)]\n  }), void 0);\n};\nvar SignOutIcon = function () {\n  return jsxs(SVG, __assign({\n    viewBox: \"0 0 48 48\"\n  }, {\n    children: [jsx(\"title\", {\n      children: \"Sign out\"\n    }, void 0), jsx(\"path\", {\n      d: \"M9 42q-1.2 0-2.1-.9Q6 40.2 6 39V9q0-1.2.9-2.1Q7.8 6 9 6h14.55v3H9v30h14.55v3Zm24.3-9.25-2.15-2.15 5.1-5.1h-17.5v-3h17.4l-5.1-5.1 2.15-2.15 8.8 8.8Z\"\n    }, void 0)]\n  }), void 0);\n};\nvar RestartIcon = function () {\n  return jsxs(SVG, __assign({\n    fill: \"none\",\n    stroke: \"currentColor\"\n  }, {\n    children: [jsx(\"title\", {\n      children: \"Restart script\"\n    }, void 0), jsx(\"path\", {\n      d: \"M8 2C4.68629 2 2 4.68629 2 8C2 10.0946 3.07333 11.9385 4.7 13.0118\",\n      strokeLinecap: \"round\"\n    }, void 0), jsx(\"path\", {\n      d: \"M14.0005 7.9998C14.0005 5.82095 12.8391 3.91335 11.1016 2.8623\",\n      strokeLinecap: \"round\"\n    }, void 0), jsx(\"path\", {\n      d: \"M14.0003 2.3335H11.167C10.8908 2.3335 10.667 2.55735 10.667 2.8335V5.66683\",\n      strokeLinecap: \"round\"\n    }, void 0), jsx(\"path\", {\n      d: \"M1.99967 13.6665L4.83301 13.6665C5.10915 13.6665 5.33301 13.4426 5.33301 13.1665L5.33301 10.3332\",\n      strokeLinecap: \"round\"\n    }, void 0), jsx(\"path\", {\n      d: \"M10 10L12 12L10 14\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\"\n    }, void 0), jsx(\"path\", {\n      d: \"M14.667 14L12.667 14\",\n      strokeLinecap: \"round\",\n      strokeLinejoin: \"round\"\n    }, void 0)]\n  }), void 0);\n};\nvar RunIcon = function () {\n  return jsxs(SVG, {\n    children: [jsx(\"title\", {\n      children: \"Run sandbox\"\n    }, void 0), jsx(\"path\", {\n      d: \"M11.0792 8.1078C11.2793 8.25007 11.27 8.55012 11.0616 8.67981L6.02535 11.8135C5.79638 11.956 5.5 11.7913 5.5 11.5216L5.5 8.40703L5.5 4.80661C5.5 4.52735 5.81537 4.36463 6.04296 4.52647L11.0792 8.1078Z\"\n    }, void 0)]\n  }, void 0);\n};\nvar BackwardIcon = function () {\n  return jsxs(SVG, {\n    children: [jsx(\"title\", {\n      children: \"Click to go back\"\n    }, void 0), jsx(\"path\", {\n      d: \"M9.64645 12.3536C9.84171 12.5488 10.1583 12.5488 10.3536 12.3536C10.5488 12.1583 10.5488 11.8417 10.3536 11.6464L9.64645 12.3536ZM10.3536 4.35355C10.5488 4.15829 10.5488 3.84171 10.3536 3.64644C10.1583 3.45118 9.84171 3.45118 9.64645 3.64644L10.3536 4.35355ZM6.07072 7.92929L5.71716 7.57573L6.07072 7.92929ZM10.3536 11.6464L6.42427 7.71716L5.71716 8.42426L9.64645 12.3536L10.3536 11.6464ZM6.42427 8.28284L10.3536 4.35355L9.64645 3.64644L5.71716 7.57573L6.42427 8.28284ZM6.42427 7.71716C6.58048 7.87337 6.58048 8.12663 6.42427 8.28284L5.71716 7.57573C5.48285 7.81005 5.48285 8.18995 5.71716 8.42426L6.42427 7.71716Z\"\n    }, void 0)]\n  }, void 0);\n};\nvar ForwardIcon = function () {\n  return jsxs(SVG, {\n    children: [jsx(\"title\", {\n      children: \"Click to go forward\"\n    }, void 0), jsx(\"path\", {\n      d: \"M6.35355 3.64645C6.15829 3.45118 5.84171 3.45118 5.64645 3.64645C5.45118 3.84171 5.45118 4.15829 5.64645 4.35355L6.35355 3.64645ZM5.64645 11.6464C5.45118 11.8417 5.45118 12.1583 5.64645 12.3536C5.84171 12.5488 6.15829 12.5488 6.35355 12.3536L5.64645 11.6464ZM9.92929 8.07071L10.2828 8.42426L9.92929 8.07071ZM5.64645 4.35355L9.57574 8.28284L10.2828 7.57574L6.35355 3.64645L5.64645 4.35355ZM9.57574 7.71716L5.64645 11.6464L6.35355 12.3536L10.2828 8.42426L9.57574 7.71716ZM9.57574 8.28284C9.41952 8.12663 9.41953 7.87337 9.57574 7.71716L10.2828 8.42426C10.5172 8.18995 10.5172 7.81005 10.2828 7.57574L9.57574 8.28284Z\"\n    }, void 0)]\n  }, void 0);\n};\nvar RefreshIcon = function () {\n  return jsxs(SVG, {\n    children: [jsx(\"title\", {\n      children: \"Refresh preview\"\n    }, void 0), jsx(\"path\", {\n      clipRule: \"evenodd\",\n      d: \"M3.83325 7.99992C3.83325 5.69867 5.69853 3.83325 7.99934 3.83325C9.81246 3.83325 11.3563 4.99195 11.9285 6.61097C11.9396 6.6425 11.9536 6.67221 11.97 6.69992H8.80005C8.52391 6.69992 8.30005 6.92378 8.30005 7.19992C8.30005 7.47606 8.52391 7.69992 8.80005 7.69992H12.5667C12.8981 7.69992 13.1667 7.43129 13.1667 7.09992V3.33325C13.1667 3.05711 12.9429 2.83325 12.6667 2.83325C12.3906 2.83325 12.1667 3.05711 12.1667 3.33325V4.94608C11.2268 3.66522 9.7106 2.83325 7.99934 2.83325C5.14613 2.83325 2.83325 5.14651 2.83325 7.99992C2.83325 10.8533 5.14613 13.1666 7.99934 13.1666C9.91218 13.1666 11.5815 12.1266 12.474 10.5836C12.6123 10.3446 12.5306 10.0387 12.2915 9.90044C12.0525 9.76218 11.7466 9.84387 11.6084 10.0829C10.8873 11.3296 9.54072 12.1666 7.99934 12.1666C5.69853 12.1666 3.83325 10.3012 3.83325 7.99992Z\",\n      fillRule: \"evenodd\"\n    }, void 0)]\n  }, void 0);\n};\nvar CleanIcon = function () {\n  return jsxs(SVG, __assign({\n    fill: \"none\",\n    stroke: \"currentColor\"\n  }, {\n    children: [jsx(\"title\", {\n      children: \"Clean\"\n    }, void 0), jsx(\"circle\", {\n      cx: \"7.99998\",\n      cy: \"8.00004\",\n      r: \"4.66667\",\n      strokeLinecap: \"round\"\n    }, void 0), jsx(\"path\", {\n      d: \"M4.66669 4.66663L11.3334 11.3333\"\n    }, void 0)]\n  }), void 0);\n};\nvar ExportIcon = function () {\n  return jsxs(SVG, __assign({\n    fill: \"none\",\n    stroke: \"currentColor\"\n  }, {\n    children: [jsx(\"title\", {\n      children: \"Open on CodeSandbox\"\n    }, void 0), jsx(\"path\", {\n      d: \"M6.66665 3.33337H4.33331C3.78103 3.33337 3.33331 3.78109 3.33331 4.33337V11.6667C3.33331 12.219 3.78103 12.6667 4.33331 12.6667H11.6666C12.2189 12.6667 12.6666 12.219 12.6666 11.6667V9.33337\",\n      strokeLinecap: \"round\"\n    }, void 0), jsx(\"path\", {\n      d: \"M10 3.33337H12.5667C12.6219 3.33337 12.6667 3.37815 12.6667 3.43337V6.00004\",\n      strokeLinecap: \"round\"\n    }, void 0), jsx(\"path\", {\n      d: \"M7.33331 8.66668L12.5333 3.46667\",\n      strokeLinecap: \"round\"\n    }, void 0)]\n  }), void 0);\n};\nvar DirectoryIconOpen = function () {\n  return jsxs(SVG, {\n    children: [jsx(\"title\", {\n      children: \"Directory\"\n    }, void 0), jsx(\"path\", {\n      d: \"M12.5526 12.6667H3.66675C3.2922 12.6667 2.96575 12.4608 2.79442 12.156L3.81072 8.0908C3.92201 7.64563 4.32199 7.33333 4.78086 7.33333H13.386C14.0365 7.33333 14.5139 7.94472 14.3561 8.57587L13.5228 11.9092C13.4115 12.3544 13.0115 12.6667 12.5526 12.6667Z\",\n      fill: \"currentColor\"\n    }, void 0), jsx(\"path\", {\n      d: \"M13.3334 6.63333V6.33333C13.3334 5.78105 12.8857 5.33333 12.3334 5.33333H8.30286C8.10543 5.33333 7.91242 5.2749 7.74816 5.16538L6.25201 4.16795C6.08774 4.05844 5.89473 4 5.69731 4H3.66675C3.11446 4 2.66675 4.44772 2.66675 5L2.66675 11.6667C2.66675 12.219 3.11446 12.6667 3.66675 12.6667H12.5526C13.0115 12.6667 13.4115 12.3544 13.5228 11.9092L14.3561 8.57587C14.5139 7.94472 14.0365 7.33333 13.386 7.33333H4.78086C4.32199 7.33333 3.92201 7.64563 3.81072 8.0908L2.75008 12.3333\",\n      fill: \"none\",\n      stroke: \"currentColor\",\n      strokeLinecap: \"round\"\n    }, void 0)]\n  }, void 0);\n};\nvar DirectoryIconClosed = function () {\n  return jsxs(SVG, {\n    children: [jsx(\"title\", {\n      children: \"Directory\"\n    }, void 0), jsx(\"path\", {\n      d: \"M12.3334 12.6667H3.66675C3.11446 12.6667 2.66675 12.219 2.66675 11.6667V5C2.66675 4.44772 3.11446 4 3.66675 4H5.69731C5.89473 4 6.08774 4.05844 6.25201 4.16795L7.74816 5.16538C7.91242 5.2749 8.10543 5.33333 8.30286 5.33333H12.3334C12.8857 5.33333 13.3334 5.78105 13.3334 6.33333V11.6667C13.3334 12.219 12.8857 12.6667 12.3334 12.6667Z\",\n      fill: \"currentColor\",\n      stroke: \"currentColor\",\n      strokeLinecap: \"round\"\n    }, void 0)]\n  }, void 0);\n};\nvar FileIcon = function () {\n  return jsxs(SVG, __assign({\n    fill: \"currentColor\"\n  }, {\n    children: [jsx(\"title\", {\n      children: \"File\"\n    }, void 0), jsx(\"path\", {\n      clipRule: \"evenodd\",\n      d: \"M4.5 4.33325C4.5 4.05711 4.72386 3.83325 5 3.83325H8.16675V6.56659C8.16675 6.89795 8.43538 7.16658 8.76675 7.16658H11.5V12.3333C11.5 12.6094 11.2761 12.8333 11 12.8333H5C4.72386 12.8333 4.5 12.6094 4.5 12.3333V4.33325ZM12.5 6.67568C12.5001 6.67265 12.5001 6.66962 12.5001 6.66658C12.5001 6.66355 12.5001 6.66052 12.5 6.65749V6.41413C12.5 6.01631 12.342 5.63478 12.0607 5.35347L9.97978 3.27259C9.69848 2.99129 9.31694 2.83325 8.91912 2.83325H8.66675H5C4.17157 2.83325 3.5 3.50483 3.5 4.33325V12.3333C3.5 13.1617 4.17157 13.8333 5 13.8333H11C11.8284 13.8333 12.5 13.1617 12.5 12.3333V6.67568ZM9.16675 3.89888C9.20518 3.92078 9.24085 3.94787 9.27267 3.9797L11.3536 6.06058C11.3854 6.09243 11.4125 6.12813 11.4344 6.16658H9.16675V3.89888Z\",\n      fillRule: \"evenodd\"\n    }, void 0)]\n  }), void 0);\n};\nvar CloseIcon = function () {\n  return jsxs(SVG, __assign({\n    stroke: \"currentColor\"\n  }, {\n    children: [jsx(\"title\", {\n      children: \"Close file\"\n    }, void 0), jsx(\"path\", {\n      d: \"M12 4L4 12\",\n      strokeLinecap: \"round\"\n    }, void 0), jsx(\"path\", {\n      d: \"M4 4L12 12\",\n      strokeLinecap: \"round\"\n    }, void 0)]\n  }), void 0);\n};\nvar ConsoleIcon = function () {\n  return jsxs(SVG, {\n    children: [jsx(\"title\", {\n      children: \"Open browser console\"\n    }, void 0), jsx(\"path\", {\n      d: \"M5.65871 3.62037C5.44905 3.44066 5.1334 3.46494 4.95368 3.6746C4.77397 3.88427 4.79825 4.19992 5.00792 4.37963L5.65871 3.62037ZM5.00792 11.6204C4.79825 11.8001 4.77397 12.1157 4.95368 12.3254C5.1334 12.5351 5.44905 12.5593 5.65871 12.3796L5.00792 11.6204ZM9.9114 7.92407L10.2368 7.54445L9.9114 7.92407ZM5.00792 4.37963L9.586 8.3037L10.2368 7.54445L5.65871 3.62037L5.00792 4.37963ZM9.586 7.6963L5.00792 11.6204L5.65871 12.3796L10.2368 8.45555L9.586 7.6963ZM9.586 8.3037C9.39976 8.14407 9.39976 7.85594 9.586 7.6963L10.2368 8.45555C10.5162 8.2161 10.5162 7.7839 10.2368 7.54445L9.586 8.3037Z\"\n    }, void 0), jsx(\"path\", {\n      d: \"M10 11.5C9.72386 11.5 9.5 11.7239 9.5 12C9.5 12.2761 9.72386 12.5 10 12.5V11.5ZM14.6667 12.5C14.9428 12.5 15.1667 12.2761 15.1667 12C15.1667 11.7239 14.9428 11.5 14.6667 11.5V12.5ZM10 12.5H14.6667V11.5H10V12.5Z\"\n    }, void 0)]\n  }, void 0);\n};\nvar _a$a;\nvar defaultLight = {\n  colors: {\n    surface1: \"#ffffff\",\n    surface2: \"#EFEFEF\",\n    surface3: \"#F3F3F3\",\n    disabled: \"#C5C5C5\",\n    base: \"#323232\",\n    clickable: \"#808080\",\n    hover: \"#4D4D4D\",\n    accent: \"#3973E0\",\n    error: \"#EA3323\",\n    errorSurface: \"#FCF1F0\",\n    warning: \"#6A4516\",\n    warningSurface: \"#FEF2C0\"\n  },\n  syntax: {\n    plain: \"#151515\",\n    comment: {\n      color: \"#999\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#7C5AE3\",\n    tag: \"#0971F1\",\n    punctuation: \"#3B3B3B\",\n    definition: \"#85A600\",\n    property: \"#3B3B3B\",\n    static: \"#3B3B3B\",\n    string: \"#2E6BD0\"\n  },\n  font: {\n    body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n    mono: '\"Fira Mono\", \"DejaVu Sans Mono\", Menlo, Consolas, \"Liberation Mono\", Monaco, \"Lucida Console\", monospace',\n    size: \"13px\",\n    lineHeight: \"20px\"\n  }\n};\nvar defaultDark = {\n  colors: {\n    surface1: \"#151515\",\n    surface2: \"#252525\",\n    surface3: \"#2F2F2F\",\n    disabled: \"#4D4D4D\",\n    base: \"#808080\",\n    clickable: \"#999999\",\n    hover: \"#C5C5C5\",\n    accent: \"#E5E5E5\",\n    error: \"#FFB4A6\",\n    errorSurface: \"#690000\",\n    warning: \"#E7C400\",\n    warningSurface: \"#3A3000\"\n  },\n  syntax: {\n    plain: \"#FFFFFF\",\n    comment: {\n      color: \"#757575\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#77B7D7\",\n    tag: \"#DFAB5C\",\n    punctuation: \"#ffffff\",\n    definition: \"#86D9CA\",\n    property: \"#77B7D7\",\n    static: \"#C64640\",\n    string: \"#977CDC\"\n  },\n  font: {\n    body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n    mono: '\"Fira Mono\", \"DejaVu Sans Mono\", Menlo, Consolas, \"Liberation Mono\", Monaco, \"Lucida Console\", monospace',\n    size: \"13px\",\n    lineHeight: \"20px\"\n  }\n};\nvar SANDPACK_THEMES = {\n  light: defaultLight,\n  dark: defaultDark,\n  auto: typeof window !== \"undefined\" ? ((_a$a = window === null || window === void 0 ? void 0 : window.matchMedia) === null || _a$a === void 0 ? void 0 : _a$a.call(window, \"(prefers-color-scheme: dark)\").matches) ? defaultDark : defaultLight : defaultLight\n};\nvar getFileName = function (filePath) {\n  var lastIndexOfSlash = filePath.lastIndexOf(\"/\");\n  return filePath.slice(lastIndexOfSlash + 1);\n};\nvar calculateNearestUniquePath = function (currentPath, otherPaths) {\n  var currentPathParts = (currentPath[0] === \"/\" ? currentPath.slice(1) : currentPath).split(\"/\");\n  var resultPathParts = [];\n  if (currentPathParts.length === 1) {\n    resultPathParts.unshift(currentPathParts[0]);\n  } else {\n    for (var fileIndex = 0; fileIndex < otherPaths.length; fileIndex++) {\n      var otherPathParts = otherPaths[fileIndex].split(\"/\");\n      for (var partsFromEnd = 1; partsFromEnd <= currentPathParts.length; partsFromEnd++) {\n        var currentPathPart = currentPathParts[currentPathParts.length - partsFromEnd];\n        var otherPathPart = otherPathParts[otherPathParts.length - partsFromEnd];\n        if (resultPathParts.length < partsFromEnd) {\n          resultPathParts.unshift(currentPathPart);\n        }\n        if (currentPathPart !== otherPathPart) {\n          break;\n        }\n      }\n    }\n  }\n  if (resultPathParts.length < currentPathParts.length) {\n    resultPathParts.unshift(\"..\");\n  }\n  return resultPathParts.join(\"/\");\n};\nvar isDarkColor = function (color2) {\n  var r3 = 0;\n  var g2 = 0;\n  var b2 = 0;\n  if (color2.startsWith(\"#\")) {\n    if (color2.length < 7) {\n      return true;\n    }\n    r3 = parseInt(color2.substr(1, 2), 16);\n    g2 = parseInt(color2.substr(3, 2), 16);\n    b2 = parseInt(color2.substr(5, 2), 16);\n  } else {\n    var rgbValues = color2.replace(\"rgb(\", \"\").replace(\"rgba(\", \"\").replace(\")\", \"\").split(\",\");\n    if (rgbValues.length < 3) {\n      return true;\n    }\n    r3 = parseInt(rgbValues[0], 10);\n    g2 = parseInt(rgbValues[1], 10);\n    b2 = parseInt(rgbValues[2], 10);\n  }\n  var yiq = (r3 * 299 + g2 * 587 + b2 * 114) / 1e3;\n  return yiq < 128;\n};\nvar lastCount = 0;\nvar generateRandomId = function () {\n  var random = +(Date.now().toString(10).substr(0, 4) + lastCount++);\n  return random.toString(16);\n};\nvar toString = function () {\n  return \"\";\n};\nvar defineProperty = Object.getOwnPropertyDescriptors({\n  toString\n});\nObject.defineProperties(toString, defineProperty);\nvar _a$9;\nvar THEME_PREFIX = \"sp\";\nvar createTheme = (_a$9 = X({\n  prefix: THEME_PREFIX\n}), _a$9.createTheme);\nvar css = _a$9.css;\nvar getCssText = _a$9.getCssText;\nvar keyframes = _a$9.keyframes;\nvar defaultVariables = {\n  space: new Array(11).fill(\" \").reduce(function (acc, _, index) {\n    var _a2;\n    return __assign(__assign({}, acc), (_a2 = {}, _a2[index + 1] = (index + 1) * 4 + \"px\", _a2));\n  }, {}),\n  border: {\n    radius: \"4px\"\n  },\n  layout: {\n    height: \"300px\",\n    headerHeight: \"40px\"\n  },\n  transitions: {\n    default: \"150ms ease\"\n  },\n  zIndices: {\n    base: \"1\",\n    overlay: \"2\",\n    top: \"3\"\n  }\n};\nvar standardizeStitchesTheme = function (theme) {\n  var syntaxEntries = Object.entries(theme.syntax);\n  var syntax = syntaxEntries.reduce(function (tokenAcc, _a2) {\n    var _b2;\n    var tokenName = _a2[0],\n      tokenValue = _a2[1];\n    var newValues = (_b2 = {}, _b2[\"color-\" + tokenName] = tokenValue, _b2);\n    if (typeof tokenValue === \"object\") {\n      newValues = Object.entries(tokenValue).reduce(function (valueAcc, _a3) {\n        var _b3;\n        var styleProp = _a3[0],\n          styleValue = _a3[1];\n        return __assign(__assign({}, valueAcc), (_b3 = {}, _b3[styleProp + \"-\" + tokenName] = styleValue, _b3));\n      }, {});\n    }\n    return __assign(__assign({}, tokenAcc), newValues);\n  }, {});\n  return __assign(__assign({}, defaultVariables), {\n    colors: theme.colors,\n    font: theme.font,\n    syntax\n  });\n};\nvar standardizeTheme = function (inputTheme) {\n  var _a2, _b2, _c2, _d, _e;\n  if (inputTheme === void 0) {\n    inputTheme = \"light\";\n  }\n  var defaultLightThemeKey = \"default\";\n  if (typeof inputTheme === \"string\") {\n    var predefinedTheme = SANDPACK_THEMES[inputTheme];\n    if (!predefinedTheme) {\n      throw new Error(\"[sandpack-react]: invalid theme '\" + inputTheme + \"' provided.\");\n    }\n    return {\n      theme: predefinedTheme,\n      id: inputTheme,\n      mode: isDarkColor(predefinedTheme.colors.surface1) ? \"dark\" : \"light\"\n    };\n  }\n  var mode = isDarkColor((_b2 = (_a2 = inputTheme === null || inputTheme === void 0 ? void 0 : inputTheme.colors) === null || _a2 === void 0 ? void 0 : _a2.surface1) !== null && _b2 !== void 0 ? _b2 : defaultLight.colors.surface1) ? \"dark\" : \"light\";\n  var baseTheme = mode === \"dark\" ? defaultDark : defaultLight;\n  var colorsByMode = __assign(__assign({}, baseTheme.colors), (_c2 = inputTheme === null || inputTheme === void 0 ? void 0 : inputTheme.colors) !== null && _c2 !== void 0 ? _c2 : {});\n  var syntaxByMode = __assign(__assign({}, baseTheme.syntax), (_d = inputTheme === null || inputTheme === void 0 ? void 0 : inputTheme.syntax) !== null && _d !== void 0 ? _d : {});\n  var fontByMode = __assign(__assign({}, baseTheme.font), (_e = inputTheme === null || inputTheme === void 0 ? void 0 : inputTheme.font) !== null && _e !== void 0 ? _e : {});\n  var theme = {\n    colors: colorsByMode,\n    syntax: syntaxByMode,\n    font: fontByMode\n  };\n  var id = inputTheme ? simpleHashFunction(JSON.stringify(theme)) : defaultLightThemeKey;\n  return {\n    theme,\n    id: \"sp-\" + id,\n    mode\n  };\n};\nvar simpleHashFunction = function (str) {\n  var hash = 0;\n  for (var i2 = 0; i2 < str.length; hash &= hash) {\n    hash = 31 * hash + str.charCodeAt(i2++);\n  }\n  return Math.abs(hash);\n};\nvar fakeCss = function () {\n  return \"\";\n};\nfakeCss.toString = fakeCss;\nvar ClassNamesContext = /*#__PURE__*/createContext2({});\nvar ClassNamesProvider = function (_a2) {\n  var children = _a2.children,\n    classes = _a2.classes;\n  return jsx(ClassNamesContext.Provider, __assign({\n    value: classes || {}\n  }, {\n    children\n  }), void 0);\n};\nvar useClassNames = function () {\n  var contextClassNames = useContext2(ClassNamesContext);\n  return function sandpackClassNames(customClassName, allClassNames) {\n    if (allClassNames === void 0) {\n      allClassNames = [];\n    }\n    var custom = THEME_PREFIX + \"-\" + customClassName;\n    return joinClassNames.apply(void 0, __spreadArray(__spreadArray([], allClassNames, false), [custom, contextClassNames[custom]], false));\n  };\n};\nvar joinClassNames = function () {\n  var args = [];\n  for (var _i = 0; _i < arguments.length; _i++) {\n    args[_i] = arguments[_i];\n  }\n  return args.filter(Boolean).join(\" \");\n};\nvar wrapperClassName$3 = css({\n  all: \"initial\",\n  fontSize: \"$font$size\",\n  fontFamily: \"$font$body\",\n  display: \"block\",\n  boxSizing: \"border-box\",\n  textRendering: \"optimizeLegibility\",\n  WebkitTapHighlightColor: \"transparent\",\n  WebkitFontSmoothing: \"subpixel-antialiased\",\n  variants: {\n    variant: {\n      dark: {\n        colorScheme: \"dark\"\n      },\n      light: {\n        colorScheme: \"light\"\n      }\n    }\n  },\n  \"@media screen and (min-resolution: 2dppx)\": {\n    WebkitFontSmoothing: \"antialiased\",\n    MozOsxFontSmoothing: \"grayscale\"\n  },\n  \"*\": {\n    boxSizing: \"border-box\"\n  },\n  \".sp-wrapper:focus\": {\n    outline: \"0\"\n  }\n});\nvar SandpackThemeContext = /*#__PURE__*/React3.createContext({\n  theme: defaultLight,\n  id: \"light\",\n  mode: \"light\"\n});\nvar SandpackThemeProvider = function (_a2) {\n  var themeFromProps = _a2.theme,\n    children = _a2.children,\n    className = _a2.className,\n    props = __rest(_a2, [\"theme\", \"children\", \"className\"]);\n  var _b2 = standardizeTheme(themeFromProps),\n    theme = _b2.theme,\n    id = _b2.id,\n    mode = _b2.mode;\n  var classNames = useClassNames();\n  var themeClassName = React3.useMemo(function () {\n    return createTheme(id, standardizeStitchesTheme(theme));\n  }, [theme, id]);\n  return jsx(SandpackThemeContext.Provider, __assign({\n    value: {\n      theme,\n      id,\n      mode\n    }\n  }, {\n    children: jsx(\"div\", __assign({\n      className: classNames(\"wrapper\", [themeClassName, wrapperClassName$3({\n        variant: mode\n      }), className])\n    }, props, {\n      children\n    }), void 0)\n  }), void 0);\n};\nvar SandpackThemeConsumer = SandpackThemeContext.Consumer;\nvar commonFiles = {\n  \"/styles.css\": {\n    code: \"body {\\n  font-family: sans-serif;\\n  -webkit-font-smoothing: auto;\\n  -moz-font-smoothing: auto;\\n  -moz-osx-font-smoothing: grayscale;\\n  font-smoothing: auto;\\n  text-rendering: optimizeLegibility;\\n  font-smooth: always;\\n  -webkit-tap-highlight-color: transparent;\\n  -webkit-touch-callout: none;\\n}\\n\\nh1 {\\n  font-size: 1.5rem;\\n}\"\n  }\n};\nvar ASTRO_TEMPLATE = {\n  files: {\n    \"/src/styles.css\": commonFiles[\"/styles.css\"],\n    \"/src/pages/index.astro\": {\n      code: '---\\nimport \"../styles.css\";\\nconst data = \"world\";\\n---\\n\\n<h1>Hello {data}</h1>\\n\\n<style>\\n  h1 {\\n    font-size: 1.5rem;\\n  }\\n</style>'\n    },\n    \".env\": {\n      code: 'ASTRO_TELEMETRY_DISABLED=\"1\"'\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        dependencies: {\n          astro: \"^1.6.12\",\n          \"esbuild-wasm\": \"^0.15.16\"\n        },\n        scripts: {\n          dev: \"astro dev\",\n          start: \"astro dev\",\n          build: \"astro build\",\n          preview: \"astro preview\",\n          astro: \"astro\"\n        }\n      })\n    }\n  },\n  main: \"/src/pages/index.astro\",\n  environment: \"node\"\n};\nvar NEXTJS_TEMPLATE = {\n  files: __assign(__assign({}, commonFiles), {\n    \"/pages/_app.js\": {\n      code: \"import '../styles.css'\\n\\nexport default function MyApp({ Component, pageProps }) {\\n  return <Component {...pageProps} />\\n}\"\n    },\n    \"/pages/index.js\": {\n      code: 'export default function Home({ data }) {\\n  return (\\n    <div>\\n      <h1>Hello {data}</h1>\\n    </div>\\n  );\\n}\\n  \\nexport function getServerSideProps() {\\n  return {\\n    props: { data: \"world\" },\\n  }\\n}\\n'\n    },\n    \"/next.config.js\": {\n      code: \"/** @type {import('next').NextConfig} */\\nconst nextConfig = {\\n  reactStrictMode: true,\\n  swcMinify: true,\\n}\\n\\nmodule.exports = nextConfig\\n\"\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        name: \"my-app\",\n        version: \"0.1.0\",\n        private: true,\n        scripts: {\n          dev: \"NEXT_TELEMETRY_DISABLED=1 next dev\",\n          build: \"next build\",\n          start: \"next start\",\n          lint: \"next lint\"\n        },\n        dependencies: {\n          next: \"12.1.6\",\n          react: \"18.2.0\",\n          \"react-dom\": \"18.2.0\",\n          \"@next/swc-wasm-nodejs\": \"12.1.6\"\n        }\n      })\n    }\n  }),\n  main: \"/pages/index.js\",\n  environment: \"node\"\n};\nvar NODE_TEMPLATE = {\n  files: {\n    \"/index.js\": {\n      code: \"const http = require('http');\\n\\nconst hostname = '127.0.0.1';\\nconst port = 3000;\\n\\nconst server = http.createServer((req, res) => {\\n  res.statusCode = 200;\\n  res.setHeader('Content-Type', 'text/html');\\n  res.end('Hello world');\\n});\\n\\nserver.listen(port, hostname, () => {\\n  console.log(`Server running at http://${hostname}:${port}/`);\\n});\"\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        dependencies: {},\n        scripts: {\n          start: \"node index.js\"\n        },\n        main: \"index.js\"\n      })\n    }\n  },\n  main: \"/index.js\",\n  environment: \"node\"\n};\nvar VITE_TEMPLATE = {\n  files: __assign(__assign({}, commonFiles), {\n    \"/index.js\": {\n      code: 'import \"./styles.css\";\\n\\ndocument.getElementById(\"app\").innerHTML = `\\n<h1>Hello world</h1>\\n`;\\n'\n    },\n    \"/index.html\": {\n      code: '<!DOCTYPE html>\\n<html lang=\"en\">\\n  <head>\\n    <meta charset=\"UTF-8\" />\\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\\n    <title>Vite App</title>\\n  </head>\\n  <body>\\n    <div id=\"app\"></div>\\n    <script type=\"module\" src=\"/index.js\"></script>\\n  </body>\\n</html>\\n'\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        scripts: {\n          dev: \"vite\",\n          build: \"vite build\",\n          preview: \"vite preview\"\n        },\n        devDependencies: {\n          vite: \"4.1.4\",\n          \"esbuild-wasm\": \"0.17.12\"\n        }\n      })\n    }\n  }),\n  main: \"/index.js\",\n  environment: \"node\"\n};\nvar VITE_REACT_TEMPLATE = {\n  files: __assign(__assign({}, commonFiles), {\n    \"/App.jsx\": {\n      code: 'export default function App() {\\n  const data = \"world\"\\n\\n  return <h1>Hello {data}</h1>\\n}\\n'\n    },\n    \"/index.jsx\": {\n      code: 'import { StrictMode } from \"react\";\\nimport { createRoot } from \"react-dom/client\";\\nimport \"./styles.css\";\\n\\nimport App from \"./App\";\\n\\nconst root = createRoot(document.getElementById(\"root\"));\\nroot.render(\\n  <StrictMode>\\n    <App />\\n  </StrictMode>\\n);'\n    },\n    \"/index.html\": {\n      code: '<!DOCTYPE html>\\n<html lang=\"en\">\\n  <head>\\n    <meta charset=\"UTF-8\" />\\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\\n    <title>Vite App</title>\\n  </head>\\n  <body>\\n    <div id=\"root\"></div>\\n    <script type=\"module\" src=\"/index.jsx\"></script>\\n  </body>\\n</html>\\n'\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        scripts: {\n          dev: \"vite\",\n          build: \"vite build\",\n          preview: \"vite preview\"\n        },\n        dependencies: {\n          react: \"^18.2.0\",\n          \"react-dom\": \"^18.2.0\"\n        },\n        devDependencies: {\n          \"@vitejs/plugin-react\": \"3.1.0\",\n          vite: \"4.1.4\",\n          \"esbuild-wasm\": \"0.17.12\"\n        }\n      })\n    },\n    \"/vite.config.js\": {\n      code: 'import { defineConfig } from \"vite\";\\nimport react from \"@vitejs/plugin-react\";\\n\\n// https://vitejs.dev/config/\\nexport default defineConfig({\\n  plugins: [react()],\\n});\\n'\n    }\n  }),\n  main: \"/App.jsx\",\n  environment: \"node\"\n};\nvar VITE_REACT_TS_TEMPLATE = {\n  files: __assign(__assign({}, commonFiles), {\n    \"/App.tsx\": {\n      code: 'export default function App() {\\n  const data: string = \"world\"\\n\\n  return <h1>Hello {data}</h1>\\n}\\n'\n    },\n    \"/index.tsx\": {\n      code: 'import { StrictMode } from \"react\";\\nimport { createRoot } from \"react-dom/client\";\\nimport \"./styles.css\";\\n\\nimport App from \"./App\";\\nimport React from \"react\";\\n\\nconst root = createRoot(document.getElementById(\"root\") as HTMLElement);\\nroot.render(\\n  <StrictMode>\\n    <App />\\n  </StrictMode>\\n);\\n'\n    },\n    \"/index.html\": {\n      code: '<!DOCTYPE html>\\n<html lang=\"en\">\\n  <head>\\n    <meta charset=\"UTF-8\" />\\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\\n    <title>Vite App</title>\\n  </head>\\n  <body>\\n    <div id=\"root\"></div>\\n    <script type=\"module\" src=\"/index.tsx\"></script>\\n  </body>\\n</html>\\n'\n    },\n    \"/tsconfig.json\": {\n      code: JSON.stringify({\n        compilerOptions: {\n          target: \"ESNext\",\n          useDefineForClassFields: true,\n          lib: [\"DOM\", \"DOM.Iterable\", \"ESNext\"],\n          allowJs: false,\n          skipLibCheck: true,\n          esModuleInterop: false,\n          allowSyntheticDefaultImports: true,\n          strict: true,\n          forceConsistentCasingInFileNames: true,\n          module: \"ESNext\",\n          moduleResolution: \"Node\",\n          resolveJsonModule: true,\n          isolatedModules: true,\n          noEmit: true,\n          jsx: \"react-jsx\"\n        },\n        include: [\"src\"],\n        references: [{\n          path: \"./tsconfig.node.json\"\n        }]\n      }, null, 2)\n    },\n    \"/tsconfig.node.json\": {\n      code: JSON.stringify({\n        compilerOptions: {\n          composite: true,\n          module: \"ESNext\",\n          moduleResolution: \"Node\",\n          allowSyntheticDefaultImports: true\n        },\n        include: [\"vite.config.ts\"]\n      }, null, 2)\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        scripts: {\n          dev: \"vite\",\n          build: \"tsc && vite build\",\n          preview: \"vite preview\"\n        },\n        dependencies: {\n          react: \"^18.2.0\",\n          \"react-dom\": \"^18.2.0\"\n        },\n        devDependencies: {\n          \"@types/react\": \"^18.0.28\",\n          \"@types/react-dom\": \"^18.0.11\",\n          \"@vitejs/plugin-react\": \"^3.1.0\",\n          typescript: \"^4.9.5\",\n          vite: \"4.1.4\",\n          \"esbuild-wasm\": \"^0.17.12\"\n        }\n      }, null, 2)\n    },\n    \"/vite-env.d.ts\": {\n      code: '/// <reference types=\"vite/client\" />'\n    },\n    \"/vite.config.ts\": {\n      code: \"import { defineConfig } from 'vite'\\nimport react from '@vitejs/plugin-react'\\n\\n// https://vitejs.dev/config/\\nexport default defineConfig({\\n  plugins: [react()],\\n})\\n\"\n    }\n  }),\n  main: \"/App.tsx\",\n  environment: \"node\"\n};\nvar VITE_SVELTE_TEMPLATE = {\n  files: {\n    \"/src/styles.css\": commonFiles[\"/styles.css\"],\n    \"/src/App.svelte\": {\n      code: '<script>\\nconst data = \"world\";\\n</script>\\n\\n<h1>Hello {data}</h1>\\n\\n<style>\\nh1 {\\n  font-size: 1.5rem;\\n}\\n</style>'\n    },\n    \"/src/main.js\": {\n      code: `import App from './App.svelte'\nimport \"./styles.css\"\n\nconst app = new App({\n  target: document.getElementById('app'),\n})\n\nexport default app`\n    },\n    \"/index.html\": {\n      code: '<!DOCTYPE html>\\n<html lang=\"en\">\\n  <head>\\n    <meta charset=\"UTF-8\" />\\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\\n    <title>Vite App</title>\\n  </head>\\n  <body>\\n    <div id=\"app\"></div>\\n    <script type=\"module\" src=\"/src/main.js\"></script>\\n  </body>\\n</html>\\n'\n    },\n    \"/vite.config.js\": {\n      code: \"import { defineConfig } from 'vite'\\nimport { svelte } from '@sveltejs/vite-plugin-svelte'\\n\\n// https://vitejs.dev/config/\\nexport default defineConfig({\\n  plugins: [svelte()],\\n})\"\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        type: \"module\",\n        scripts: {\n          dev: \"vite\"\n        },\n        devDependencies: {\n          \"@sveltejs/vite-plugin-svelte\": \"^2.0.2\",\n          svelte: \"^3.55.1\",\n          vite: \"4.0.4\",\n          \"esbuild-wasm\": \"^0.17.12\"\n        }\n      })\n    }\n  },\n  main: \"/src/App.svelte\",\n  environment: \"node\"\n};\nvar VITE_SVELTE_TS_TEMPLATE = {\n  files: {\n    \"/src/styles.css\": commonFiles[\"/styles.css\"],\n    \"/src/App.svelte\": {\n      code: '<script lang=\"ts\">\\nconst data: string = \"world\";\\n</script>\\n\\n<h1>Hello {data}</h1>\\n\\n<style>\\nh1 {\\n  font-size: 1.5rem;\\n}\\n</style>'\n    },\n    \"/src/main.ts\": {\n      code: `import App from './App.svelte'\nimport \"./styles.css\"\n\nconst app = new App({\n  target: document.getElementById('app'),\n})\n\nexport default app`\n    },\n    \"/index.html\": {\n      code: '<!DOCTYPE html>\\n<html lang=\"en\">\\n  <head>\\n    <meta charset=\"UTF-8\" />\\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\\n    <title>Vite App</title>\\n  </head>\\n  <body>\\n    <div id=\"app\"></div>\\n    <script type=\"module\" src=\"/src/main.ts\"></script>\\n  </body>\\n</html>\\n'\n    },\n    \"/vite-env.d.ts\": {\n      code: '/// <reference types=\"svelte\" />\\n/// <reference types=\"vite/client\" />'\n    },\n    \"svelte.config.js\": {\n      code: \"import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'\\n\\nexport default {\\n  // Consult https://svelte.dev/docs#compile-time-svelte-preprocess\\n  // for more information about preprocessors\\n  preprocess: vitePreprocess(),\\n}\\n\"\n    },\n    \"/vite.config.ts\": {\n      code: \"import { defineConfig } from 'vite'\\nimport { svelte } from '@sveltejs/vite-plugin-svelte'\\n\\n// https://vitejs.dev/config/\\nexport default defineConfig({\\n  plugins: [svelte()],\\n})\"\n    },\n    \"tsconfig.json\": {\n      code: JSON.stringify({\n        extends: \"@tsconfig/svelte/tsconfig.json\",\n        compilerOptions: {\n          target: \"ESNext\",\n          useDefineForClassFields: true,\n          module: \"ESNext\",\n          resolveJsonModule: true,\n          allowJs: true,\n          checkJs: true,\n          isolatedModules: true\n        },\n        include: [\"src/**/*.d.ts\", \"src/**/*.ts\", \"src/**/*.js\", \"src/**/*.svelte\"],\n        references: [{\n          path: \"./tsconfig.node.json\"\n        }]\n      }, null, 2)\n    },\n    \"tsconfig.node.json\": {\n      code: JSON.stringify({\n        compilerOptions: {\n          composite: true,\n          module: \"ESNext\",\n          moduleResolution: \"Node\"\n        },\n        include: [\"vite.config.ts\"]\n      }, null, 2)\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        type: \"module\",\n        scripts: {\n          dev: \"vite\"\n        },\n        devDependencies: {\n          \"@sveltejs/vite-plugin-svelte\": \"^2.0.2\",\n          \"@tsconfig/svelte\": \"^3.0.0\",\n          svelte: \"^3.55.1\",\n          \"svelte-check\": \"^2.10.3\",\n          tslib: \"^2.5.0\",\n          vite: \"4.1.4\",\n          \"esbuild-wasm\": \"^0.17.12\"\n        }\n      }, null, 2)\n    }\n  },\n  main: \"/src/App.svelte\",\n  environment: \"node\"\n};\nvar VITE_VUE_TEMPLATE = {\n  files: {\n    \"/src/styles.css\": commonFiles[\"/styles.css\"],\n    \"/src/App.vue\": {\n      code: '<script setup>\\nimport { ref } from \"vue\";\\n\\nconst data = ref(\"world\");\\n</script>\\n\\n<template>\\n  <h1>Hello {{ data }}</h1>\\n</template>\\n\\n<style>\\nh1 {\\n  font-size: 1.5rem;\\n}\\n</style>'\n    },\n    \"/src/main.js\": {\n      code: `import { createApp } from 'vue'\nimport App from './App.vue'\nimport \"./styles.css\"\n            \ncreateApp(App).mount('#app')            \n`\n    },\n    \"/index.html\": {\n      code: '<!DOCTYPE html>\\n<html lang=\"en\">\\n  <head>\\n    <meta charset=\"UTF-8\" />\\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\\n    <title>Vite App</title>\\n  </head>\\n  <body>\\n    <div id=\"app\"></div>\\n    <script type=\"module\" src=\"/src/main.js\"></script>\\n  </body>\\n</html>\\n'\n    },\n    \"/vite.config.js\": {\n      code: \"import { defineConfig } from 'vite'\\nimport vue from '@vitejs/plugin-vue'\\n\\n// https://vitejs.dev/config/\\nexport default defineConfig({\\n  plugins: [vue()]\\n})\\n\"\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        scripts: {\n          dev: \"vite\",\n          build: \"vite build\",\n          preview: \"vite preview\"\n        },\n        dependencies: {\n          vue: \"^3.2.45\"\n        },\n        devDependencies: {\n          \"@vitejs/plugin-vue\": \"3.2.0\",\n          vite: \"4.1.4\",\n          \"esbuild-wasm\": \"0.17.12\"\n        }\n      })\n    }\n  },\n  main: \"/src/App.vue\",\n  environment: \"node\"\n};\nvar VITE_VUE_TS_TEMPLATE = {\n  files: {\n    \"/src/styles.css\": commonFiles[\"/styles.css\"],\n    \"/src/App.vue\": {\n      code: '<script setup lang=\"ts\">\\nimport { ref } from \"vue\";\\n\\nconst data = ref<string>(\"world\");\\n</script>\\n\\n<template>\\n  <h1>Hello {{ data }}</h1>\\n</template>\\n\\n<style>\\nh1 {\\n  font-size: 1.5rem;\\n}\\n</style>'\n    },\n    \"/src/main.ts\": {\n      code: `import { createApp } from 'vue'\nimport App from './App.vue'\nimport \"./styles.css\"\n\ncreateApp(App).mount('#app')\n`\n    },\n    \"/index.html\": {\n      code: '<!DOCTYPE html>\\n<html lang=\"en\">\\n  <head>\\n    <meta charset=\"UTF-8\" />\\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\\n    <title>Vite App</title>\\n  </head>\\n  <body>\\n    <div id=\"app\"></div>\\n    <script type=\"module\" src=\"/src/main.ts\"></script>\\n  </body>\\n</html>\\n'\n    },\n    \"/vite-env.d.ts\": {\n      code: '/// <reference types=\"vite/client\" />'\n    },\n    \"/vite.config.ts\": {\n      code: \"import { defineConfig } from 'vite'\\nimport vue from '@vitejs/plugin-vue'\\n\\n// https://vitejs.dev/config/\\nexport default defineConfig({\\n  plugins: [vue()]\\n})\\n\"\n    },\n    \"tsconfig.json\": {\n      code: JSON.stringify({\n        compilerOptions: {\n          target: \"ESNext\",\n          useDefineForClassFields: true,\n          module: \"ESNext\",\n          moduleResolution: \"Node\",\n          strict: true,\n          jsx: \"preserve\",\n          resolveJsonModule: true,\n          isolatedModules: true,\n          esModuleInterop: true,\n          lib: [\"ESNext\", \"DOM\"],\n          skipLibCheck: true,\n          noEmit: true\n        },\n        include: [\"src/**/*.ts\", \"src/**/*.d.ts\", \"src/**/*.tsx\", \"src/**/*.vue\"],\n        references: [{\n          path: \"./tsconfig.node.json\"\n        }]\n      }, null, 2)\n    },\n    \"tsconfig.node.json\": {\n      code: JSON.stringify({\n        compilerOptions: {\n          composite: true,\n          module: \"ESNext\",\n          moduleResolution: \"Node\",\n          allowSyntheticDefaultImports: true\n        },\n        include: [\"vite.config.ts\"]\n      }, null, 2)\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        scripts: {\n          dev: \"vite\",\n          build: \"tsc && vite build\",\n          preview: \"vite preview\"\n        },\n        dependencies: {\n          vue: \"^3.2.47\"\n        },\n        devDependencies: {\n          \"@vitejs/plugin-vue\": \"^4.0.0\",\n          vite: \"4.1.4\",\n          \"vue-tsc\": \"^1.2.0\",\n          typescript: \"^4.9.5\",\n          \"esbuild-wasm\": \"^0.17.12\"\n        }\n      }, null, 2)\n    }\n  },\n  main: \"/src/App.vue\",\n  environment: \"node\"\n};\nvar ANGULAR_TEMPLATE = {\n  files: {\n    \"/src/app/app.component.css\": commonFiles[\"/styles.css\"],\n    \"/src/app/app.component.html\": {\n      code: \"<div>\\n<h1>{{ helloWorld }}</h1>\\n</div>     \\n\"\n    },\n    \"/src/app/app.component.ts\": {\n      code: 'import { Component } from \"@angular/core\";\\n\\n@Component({\\n  selector: \"app-root\",\\n  templateUrl: \"./app.component.html\",\\n  styleUrls: [\"./app.component.css\"]\\n})\\nexport class AppComponent {\\n  helloWorld = \"Hello world\";\\n}           \\n'\n    },\n    \"/src/app/app.module.ts\": {\n      code: 'import { BrowserModule } from \"@angular/platform-browser\";\\nimport { NgModule } from \"@angular/core\";\\n      \\nimport { AppComponent } from \"./app.component\";\\n      \\n@NgModule({\\n  declarations: [AppComponent],\\n  imports: [BrowserModule],\\n  providers: [],\\n  bootstrap: [AppComponent]\\n})\\nexport class AppModule {}       \\n'\n    },\n    \"/src/index.html\": {\n      code: '<!doctype html>\\n<html lang=\"en\">\\n      \\n<head>\\n  <meta charset=\"utf-8\">\\n  <title>Angular</title>\\n  <base href=\"/\">\\n      \\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\\n</head>\\n      \\n<body>\\n   <app-root></app-root>\\n</body>\\n      \\n</html>\\n'\n    },\n    \"/src/main.ts\": {\n      code: 'import { enableProdMode } from \"@angular/core\";\\nimport { platformBrowserDynamic } from \"@angular/platform-browser-dynamic\";\\n      \\nimport { AppModule } from \"./app/app.module\";      \\n\\nplatformBrowserDynamic()\\n  .bootstrapModule(AppModule)\\n  .catch(err => console.log(err));\\n      \\n'\n    },\n    \"/src/polyfills.ts\": {\n      code: 'import \"core-js/proposals/reflect-metadata\";   \\n      import \"zone.js/dist/zone\";\\n'\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        dependencies: {\n          \"@angular/core\": \"^11.2.0\",\n          \"@angular/platform-browser\": \"^11.2.0\",\n          \"@angular/platform-browser-dynamic\": \"^11.2.0\",\n          \"@angular/common\": \"^11.2.0\",\n          \"@angular/compiler\": \"^11.2.0\",\n          \"zone.js\": \"0.11.3\",\n          \"core-js\": \"3.8.3\",\n          rxjs: \"6.6.3\"\n        },\n        main: \"/src/main.ts\"\n      })\n    }\n  },\n  main: \"/src/app/app.component.ts\",\n  environment: \"angular-cli\"\n};\nvar REACT_TEMPLATE = {\n  files: __assign(__assign({}, commonFiles), {\n    \"/App.js\": {\n      code: \"export default function App() {\\n  return <h1>Hello world</h1>\\n}\\n\"\n    },\n    \"/index.js\": {\n      code: 'import React, { StrictMode } from \"react\";\\nimport { createRoot } from \"react-dom/client\";\\nimport \"./styles.css\";\\n\\nimport App from \"./App\";\\n\\nconst root = createRoot(document.getElementById(\"root\"));\\nroot.render(\\n  <StrictMode>\\n    <App />\\n  </StrictMode>\\n);'\n    },\n    \"/public/index.html\": {\n      code: '<!DOCTYPE html>\\n<html lang=\"en\">\\n  <head>\\n    <meta charset=\"UTF-8\">\\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\\n    <title>Document</title>\\n  </head>\\n  <body>\\n    <div id=\"root\"></div>\\n  </body>\\n</html>'\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        dependencies: {\n          react: \"^18.0.0\",\n          \"react-dom\": \"^18.0.0\",\n          \"react-scripts\": \"^5.0.0\"\n        },\n        main: \"/index.js\"\n      })\n    }\n  }),\n  main: \"/App.js\",\n  environment: \"create-react-app\"\n};\nvar REACT_TYPESCRIPT_TEMPLATE = {\n  files: __assign(__assign({}, commonFiles), {\n    \"tsconfig.json\": {\n      code: '{\\n  \"include\": [\\n    \"./**/*\"\\n  ],\\n  \"compilerOptions\": {\\n    \"strict\": true,\\n    \"esModuleInterop\": true,\\n    \"lib\": [ \"dom\", \"es2015\" ],\\n    \"jsx\": \"react-jsx\"\\n  }\\n}'\n    },\n    \"/App.tsx\": {\n      code: \"export default function App(): JSX.Element {\\n  return <h1>Hello world</h1>\\n}\\n\"\n    },\n    \"/index.tsx\": {\n      code: 'import React, { StrictMode } from \"react\";\\nimport { createRoot } from \"react-dom/client\";\\nimport \"./styles.css\";\\n\\nimport App from \"./App\";\\n\\nconst root = createRoot(document.getElementById(\"root\"));\\nroot.render(\\n  <StrictMode>\\n    <App />\\n  </StrictMode>\\n);'\n    },\n    \"/public/index.html\": {\n      code: '<!DOCTYPE html>\\n<html lang=\"en\">\\n  <head>\\n    <meta charset=\"UTF-8\">\\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\\n    <title>Document</title>\\n  </head>\\n  <body>\\n    <div id=\"root\"></div>\\n  </body>\\n</html>'\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        dependencies: {\n          react: \"^18.0.0\",\n          \"react-dom\": \"^18.0.0\",\n          \"react-scripts\": \"^4.0.0\"\n        },\n        devDependencies: {\n          \"@types/react\": \"^18.0.0\",\n          \"@types/react-dom\": \"^18.0.0\",\n          typescript: \"^4.0.0\"\n        },\n        main: \"/index.tsx\"\n      })\n    }\n  }),\n  main: \"/App.tsx\",\n  environment: \"create-react-app\"\n};\nvar SOLID_TEMPLATE = {\n  files: __assign(__assign({}, commonFiles), {\n    \"/App.tsx\": {\n      code: 'import { Component } from \"solid-js\";\\n\\nconst App: Component = () => {\\n  return <h1>Hello world</h1>\\n};\\n\\nexport default App;'\n    },\n    \"/index.tsx\": {\n      code: 'import { render } from \"solid-js/web\";\\nimport App from \"./App\";\\n\\nimport \"./styles.css\";\\n\\nrender(() => <App />, document.getElementById(\"app\"));'\n    },\n    \"/index.html\": {\n      code: '<html>\\n<head>\\n  <title>Parcel Sandbox</title>\\n  <meta charset=\"UTF-8\" />\\n</head>\\n<body>\\n  <div id=\"app\"></div>\\n  <script src=\"src/index.tsx\"></script>\\n</body>\\n</html>'\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        dependencies: {\n          \"solid-js\": \"1.3.15\"\n        },\n        main: \"/index.tsx\"\n      })\n    }\n  }),\n  main: \"/App.tsx\",\n  environment: \"solid\"\n};\nvar SVELTE_TEMPLATE = {\n  files: __assign(__assign({}, commonFiles), {\n    \"/App.svelte\": {\n      code: \"<style>\\n  h1 {\\n    font-size: 1.5rem;\\n  }\\n</style>\\n\\n<script>\\n  let name = 'world';\\n</script>\\n\\n<main>\\n  <h1>Hello {name}</h1>\\n</main>\"\n    },\n    \"/index.js\": {\n      code: 'import App from \"./App.svelte\";\\nimport \"./styles.css\";\\n\\nconst app = new App({\\n  target: document.body\\n});\\n\\nexport default app;\\n      '\n    },\n    \"/public/index.html\": {\n      code: '<!DOCTYPE html>\\n<html>\\n  <head>\\n    <meta charset=\"utf8\" />\\n    <meta name=\"viewport\" content=\"width=device-width\" />\\n\\n    <title>Svelte app</title>\\n\\n    <link rel=\"stylesheet\" href=\"public/bundle.css\" />\\n  </head>\\n\\n  <body>\\n    <script src=\"bundle.js\"></script>\\n  </body>\\n</html>'\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        dependencies: {\n          svelte: \"^3.0.0\"\n        },\n        main: \"/index.js\"\n      })\n    }\n  }),\n  main: \"/App.svelte\",\n  environment: \"svelte\"\n};\nvar TEST_TYPESCRIPT_TEMPLATE = {\n  files: {\n    \"tsconfig.json\": {\n      code: '{\\n  \"include\": [\\n    \"./**/*\"\\n  ],\\n  \"compilerOptions\": {\\n    \"strict\": true,\\n    \"esModuleInterop\": true,\\n    \"lib\": [ \"dom\", \"es2015\" ],\\n    \"jsx\": \"react-jsx\"\\n  }\\n}'\n    },\n    \"/add.ts\": {\n      code: \"export const add = (a: number, b: number): number => a + b;\"\n    },\n    \"/add.test.ts\": {\n      code: \"import { add } from './add';\\n\\ndescribe('add', () => {\\n  test('Commutative Law of Addition', () => {\\n    expect(add(1, 2)).toBe(add(2, 1));\\n  });\\n});\"\n    },\n    \"package.json\": {\n      code: JSON.stringify({\n        dependencies: {},\n        devDependencies: {\n          typescript: \"^4.0.0\"\n        },\n        main: \"/add.ts\"\n      })\n    }\n  },\n  main: \"/add.test.ts\",\n  environment: \"parcel\",\n  mode: \"tests\"\n};\nvar VANILLA_TEMPLATE = {\n  files: __assign(__assign({}, commonFiles), {\n    \"/index.js\": {\n      code: 'import \"./styles.css\";\\n\\ndocument.getElementById(\"app\").innerHTML = `\\n<h1>Hello world</h1>\\n`;\\n'\n    },\n    \"/index.html\": {\n      code: '<!DOCTYPE html>\\n<html>\\n\\n<head>\\n  <title>Parcel Sandbox</title>\\n  <meta charset=\"UTF-8\" />\\n</head>\\n\\n<body>\\n  <div id=\"app\"></div>\\n\\n  <script src=\"index.js\">\\n  </script>\\n</body>\\n\\n</html>'\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        dependencies: {},\n        main: \"/index.js\"\n      })\n    }\n  }),\n  main: \"/index.js\",\n  environment: \"parcel\"\n};\nvar VANILLA_TYPESCRIPT_TEMPLATE = {\n  files: __assign(__assign({}, commonFiles), {\n    \"tsconfig.json\": {\n      code: '{\\n  \"compilerOptions\": {\\n    \"strict\": true,\\n    \"module\": \"commonjs\",\\n    \"jsx\": \"preserve\",\\n    \"esModuleInterop\": true,\\n    \"sourceMap\": true,\\n    \"allowJs\": true,\\n    \"lib\": [\\n      \"es6\",\\n      \"dom\"\\n    ],\\n    \"rootDir\": \"src\",\\n    \"moduleResolution\": \"node\"\\n  }\\n}'\n    },\n    \"/index.ts\": {\n      code: 'import \"./styles.css\";\\n\\ndocument.getElementById(\"app\").innerHTML = `\\n<h1>Hello world</h1>\\n`;\\n'\n    },\n    \"/index.html\": {\n      code: '<!DOCTYPE html>\\n<html>\\n\\n<head>\\n  <title>Parcel Sandbox</title>\\n  <meta charset=\"UTF-8\" />\\n</head>\\n\\n<body>\\n  <div id=\"app\"></div>\\n\\n  <script src=\"index.ts\">\\n  </script>\\n</body>\\n\\n</html>'\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        dependencies: {},\n        devDependencies: {\n          typescript: \"^4.0.0\"\n        },\n        main: \"/index.ts\"\n      })\n    }\n  }),\n  main: \"/index.ts\",\n  environment: \"parcel\"\n};\nvar VUE_TEMPLATE = {\n  files: {\n    \"/src/styles.css\": commonFiles[\"/styles.css\"],\n    \"/src/App.vue\": {\n      code: \"<template>\\n  <h1>Hello {{ msg }}</h1>\\n</template>\\n\\n<script setup>\\nimport { ref } from 'vue';\\nconst msg = ref('world');\\n</script>\"\n    },\n    \"/src/main.js\": {\n      code: `import { createApp } from 'vue'\nimport App from './App.vue'\nimport \"./styles.css\";\n\ncreateApp(App).mount('#app')\n`\n    },\n    \"/public/index.html\": {\n      code: `<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n    <meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\" />\n    <title>codesandbox</title>\n  </head>\n  <body>\n    <noscript>\n      <strong\n        >We're sorry but codesandbox doesn't work properly without JavaScript\n        enabled. Please enable it to continue.</strong\n      >\n    </noscript>\n    <div id=\"app\"></div>\n    <!-- built files will be auto injected -->\n  </body>\n</html>\n`\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        name: \"vue3\",\n        version: \"0.1.0\",\n        private: true,\n        main: \"/src/main.js\",\n        scripts: {\n          serve: \"vue-cli-service serve\",\n          build: \"vue-cli-service build\"\n        },\n        dependencies: {\n          \"core-js\": \"^3.26.1\",\n          vue: \"^3.2.45\"\n        },\n        devDependencies: {\n          \"@vue/cli-plugin-babel\": \"^5.0.8\",\n          \"@vue/cli-service\": \"^5.0.8\"\n        }\n      })\n    }\n  },\n  main: \"/src/App.vue\",\n  environment: \"vue-cli\"\n};\nvar VUE_TS_TEMPLATE = {\n  files: {\n    \"/src/styles.css\": commonFiles[\"/styles.css\"],\n    \"/src/App.vue\": {\n      code: `<template>\n  <h1>Hello {{ msg }}</h1>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nconst msg = ref<string>('world');\n</script>`\n    },\n    \"/src/main.ts\": {\n      code: `import { createApp } from 'vue'\nimport App from './App.vue'\nimport \"./styles.css\";\n\ncreateApp(App).mount('#app')\n`\n    },\n    \"/src/shims-vue.d.ts\": '/* eslint-disable */\\ndeclare module \"*.vue\" {\\n  import type { DefineComponent } from \"vue\";\\n  const component: DefineComponent<{}, {}, any>;\\n  export default component;\\n}',\n    \"/public/index.html\": {\n      code: `<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n    <meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\" />\n    <title>codesandbox</title>\n  </head>\n  <body>\n    <noscript>\n      <strong\n        >We're sorry but codesandbox doesn't work properly without JavaScript\n        enabled. Please enable it to continue.</strong\n      >\n    </noscript>\n    <div id=\"app\"></div>\n    <!-- built files will be auto injected -->\n  </body>\n</html>\n`\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        name: \"vue3-ts\",\n        version: \"0.1.0\",\n        private: true,\n        main: \"/src/main.ts\",\n        scripts: {\n          serve: \"vue-cli-service serve\",\n          build: \"vue-cli-service build\"\n        },\n        dependencies: {\n          \"core-js\": \"^3.26.1\",\n          vue: \"^3.2.45\"\n        },\n        devDependencies: {\n          \"@vue/cli-plugin-babel\": \"^5.0.8\",\n          \"@vue/cli-plugin-typescript\": \"^5.0.8\",\n          \"@vue/cli-service\": \"^5.0.8\",\n          typescript: \"^4.9.3\"\n        }\n      })\n    },\n    \"/tsconfig.json\": {\n      code: JSON.stringify({\n        compilerOptions: {\n          target: \"esnext\",\n          module: \"esnext\",\n          strict: true,\n          jsx: \"preserve\",\n          moduleResolution: \"node\",\n          experimentalDecorators: true,\n          skipLibCheck: true,\n          esModuleInterop: true,\n          allowSyntheticDefaultImports: true,\n          forceConsistentCasingInFileNames: true,\n          useDefineForClassFields: true,\n          sourceMap: false,\n          baseUrl: \".\",\n          types: [\"webpack-env\"],\n          paths: {\n            \"@/*\": [\"src/*\"]\n          },\n          lib: [\"esnext\", \"dom\", \"dom.iterable\", \"scripthost\"]\n        },\n        include: [\"src/**/*.ts\", \"src/**/*.tsx\", \"src/**/*.vue\", \"tests/**/*.ts\", \"tests/**/*.tsx\"],\n        exclude: [\"node_modules\"]\n      })\n    }\n  },\n  main: \"/src/App.vue\",\n  environment: \"vue-cli\"\n};\nvar STATIC_TEMPLATE = {\n  files: __assign(__assign({}, commonFiles), {\n    \"/index.html\": {\n      code: '<!DOCTYPE html>\\n<html>\\n\\n<head>\\n  <title>Parcel Sandbox</title>\\n  <meta charset=\"UTF-8\" />\\n  <link rel=\"stylesheet\" href=\"/styles.css\" />\\n</head>\\n\\n<body>\\n  <h1>Hello world</h1>\\n</body>\\n\\n</html>'\n    },\n    \"/package.json\": {\n      code: JSON.stringify({\n        dependencies: {},\n        main: \"/index.html\"\n      })\n    }\n  }),\n  main: \"/index.html\",\n  environment: \"static\"\n};\nvar SANDBOX_TEMPLATES = {\n  static: STATIC_TEMPLATE,\n  angular: ANGULAR_TEMPLATE,\n  react: REACT_TEMPLATE,\n  \"react-ts\": REACT_TYPESCRIPT_TEMPLATE,\n  solid: SOLID_TEMPLATE,\n  svelte: SVELTE_TEMPLATE,\n  \"test-ts\": TEST_TYPESCRIPT_TEMPLATE,\n  \"vanilla-ts\": VANILLA_TYPESCRIPT_TEMPLATE,\n  vanilla: VANILLA_TEMPLATE,\n  vue: VUE_TEMPLATE,\n  \"vue-ts\": VUE_TS_TEMPLATE,\n  node: NODE_TEMPLATE,\n  nextjs: NEXTJS_TEMPLATE,\n  vite: VITE_TEMPLATE,\n  \"vite-react\": VITE_REACT_TEMPLATE,\n  \"vite-react-ts\": VITE_REACT_TS_TEMPLATE,\n  \"vite-vue\": VITE_VUE_TEMPLATE,\n  \"vite-vue-ts\": VITE_VUE_TS_TEMPLATE,\n  \"vite-svelte\": VITE_SVELTE_TEMPLATE,\n  \"vite-svelte-ts\": VITE_SVELTE_TS_TEMPLATE,\n  astro: ASTRO_TEMPLATE\n};\nvar getSandpackStateFromProps = function (props) {\n  var _a2, _b2, _c2, _d, _e, _f;\n  var normalizedFilesPath = normalizePath(props.files);\n  var projectSetup = combineTemplateFilesToSetup({\n    template: props.template,\n    customSetup: props.customSetup,\n    files: normalizedFilesPath\n  });\n  var visibleFiles = normalizePath((_b2 = (_a2 = props.options) === null || _a2 === void 0 ? void 0 : _a2.visibleFiles) !== null && _b2 !== void 0 ? _b2 : []);\n  var activeFile = ((_c2 = props.options) === null || _c2 === void 0 ? void 0 : _c2.activeFile) ? resolveFile((_d = props.options) === null || _d === void 0 ? void 0 : _d.activeFile, projectSetup.files) : void 0;\n  if (visibleFiles.length === 0 && normalizedFilesPath) {\n    Object.keys(normalizedFilesPath).forEach(function (filePath) {\n      var file = normalizedFilesPath[filePath];\n      if (typeof file === \"string\") {\n        visibleFiles.push(filePath);\n        return;\n      }\n      if (!activeFile && file.active) {\n        activeFile = filePath;\n        if (file.hidden === true) {\n          visibleFiles.push(filePath);\n        }\n      }\n      if (!file.hidden) {\n        visibleFiles.push(filePath);\n      }\n    });\n  }\n  if (visibleFiles.length === 0) {\n    visibleFiles = [projectSetup.main];\n  }\n  if (projectSetup.entry && !projectSetup.files[projectSetup.entry]) {\n    projectSetup.entry = resolveFile(projectSetup.entry, projectSetup.files);\n  }\n  if (!activeFile && projectSetup.main) {\n    activeFile = projectSetup.main;\n  }\n  if (!activeFile || !projectSetup.files[activeFile]) {\n    activeFile = visibleFiles[0];\n  }\n  if (!visibleFiles.includes(activeFile)) {\n    visibleFiles.push(activeFile);\n  }\n  var files = addPackageJSONIfNeeded(projectSetup.files, (_e = projectSetup.dependencies) !== null && _e !== void 0 ? _e : {}, (_f = projectSetup.devDependencies) !== null && _f !== void 0 ? _f : {}, projectSetup.entry);\n  var existOpenPath = visibleFiles.filter(function (path) {\n    return files[path];\n  });\n  return {\n    visibleFiles: existOpenPath,\n    /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */activeFile,\n    files,\n    environment: projectSetup.environment,\n    shouldUpdatePreview: true\n  };\n};\nvar resolveFile = function (path, files) {\n  var normalizedFilesPath = normalizePath(files);\n  var normalizedPath = normalizePath(path);\n  if (normalizedPath in normalizedFilesPath) {\n    return normalizedPath;\n  }\n  if (!path) {\n    return null;\n  }\n  var resolvedPath = null;\n  var index = 0;\n  var strategies = [\".js\", \".jsx\", \".ts\", \".tsx\"];\n  while (!resolvedPath && index < strategies.length) {\n    var removeExtension = normalizedPath.split(\".\")[0];\n    var attemptPath = \"\" + removeExtension + strategies[index];\n    if (normalizedFilesPath[attemptPath] !== void 0) {\n      resolvedPath = attemptPath;\n    }\n    index++;\n  }\n  return resolvedPath;\n};\nvar combineTemplateFilesToSetup = function (_a2) {\n  var files = _a2.files,\n    template = _a2.template,\n    customSetup = _a2.customSetup;\n  if (!template) {\n    if (!customSetup) {\n      var defaultTemplate = SANDBOX_TEMPLATES.vanilla;\n      return __assign(__assign({}, defaultTemplate), {\n        files: __assign(__assign({}, defaultTemplate.files), convertedFilesToBundlerFiles(files))\n      });\n    }\n    if (!files || Object.keys(files).length === 0) {\n      throw new Error(\"[sandpack-react]: without a template, you must pass at least one file\");\n    }\n    return __assign(__assign({}, customSetup), {\n      files: convertedFilesToBundlerFiles(files)\n    });\n  }\n  var baseTemplate = SANDBOX_TEMPLATES[template];\n  if (!baseTemplate) {\n    throw new Error('[sandpack-react]: invalid template \"' + template + '\" provided');\n  }\n  if (!customSetup && !files) {\n    return baseTemplate;\n  }\n  return {\n    /**\n    * The input setup might have files in the simple form Record<string, string>\n    * so we convert them to the sandbox template format\n    */\n    files: convertedFilesToBundlerFiles(__assign(__assign({}, baseTemplate.files), files)),\n    /**\n    * Merge template dependencies and user custom dependencies.\n    * As a rule, the custom dependencies must overwrite the template ones.\n    */\n    dependencies: __assign(__assign({}, baseTemplate.dependencies), customSetup === null || customSetup === void 0 ? void 0 : customSetup.dependencies),\n    devDependencies: __assign(__assign({}, baseTemplate.devDependencies), customSetup === null || customSetup === void 0 ? void 0 : customSetup.devDependencies),\n    entry: normalizePath(customSetup === null || customSetup === void 0 ? void 0 : customSetup.entry),\n    main: baseTemplate.main,\n    environment: (customSetup === null || customSetup === void 0 ? void 0 : customSetup.environment) || baseTemplate.environment\n  };\n};\nvar convertedFilesToBundlerFiles = function (files) {\n  if (!files) return {};\n  return Object.keys(files).reduce(function (acc, key) {\n    if (typeof files[key] === \"string\") {\n      acc[key] = {\n        code: files[key]\n      };\n    } else {\n      acc[key] = files[key];\n    }\n    return acc;\n  }, {});\n};\nvar useAppState = function (props, files) {\n  var _a2 = useState3({\n      editorState: \"pristine\",\n      teamId: props.teamId\n    }),\n    state = _a2[0],\n    setState = _a2[1];\n  var originalStateFromProps = getSandpackStateFromProps(props);\n  var editorState = dequal(originalStateFromProps.files, files) ? \"pristine\" : \"dirty\";\n  if (editorState !== state.editorState) {\n    setState(function (prev) {\n      return __assign(__assign({}, prev), {\n        editorState\n      });\n    });\n  }\n  return state;\n};\nvar BUNDLER_TIMEOUT = 4e4;\nvar useClient = function (_a2, filesState) {\n  var _b2, _c2, _d;\n  var options = _a2.options,\n    customSetup = _a2.customSetup,\n    teamId = _a2.teamId;\n  options !== null && options !== void 0 ? options : options = {};\n  customSetup !== null && customSetup !== void 0 ? customSetup : customSetup = {};\n  var initModeFromProps = (options === null || options === void 0 ? void 0 : options.initMode) || \"lazy\";\n  var _e = useState3({\n      startRoute: options === null || options === void 0 ? void 0 : options.startRoute,\n      bundlerState: void 0,\n      error: null,\n      initMode: initModeFromProps,\n      reactDevTools: void 0,\n      status: ((_b2 = options === null || options === void 0 ? void 0 : options.autorun) !== null && _b2 !== void 0 ? _b2 : true) ? \"initial\" : \"idle\"\n    }),\n    state = _e[0],\n    setState = _e[1];\n  var intersectionObserver = useRef2(null);\n  var lazyAnchorRef = useRef2(null);\n  var registeredIframes = useRef2({});\n  var clients = useRef2({});\n  var timeoutHook = useRef2(null);\n  var unsubscribeClientListeners = useRef2({});\n  var unsubscribe = useRef2();\n  var queuedListeners = useRef2({\n    global: {}\n  });\n  var debounceHook = useRef2();\n  var prevEnvironment = useRef2(filesState.environment);\n  var createClient = useCallback2(function (iframe, clientId, clientPropsOverride) {\n    return __awaiter(void 0, void 0, void 0, function () {\n      var timeOut, shouldSetTimeout, client, globalListeners;\n      var _a3, _b3, _c3;\n      return __generator(this, function (_d2) {\n        switch (_d2.label) {\n          case 0:\n            if (clients.current[clientId]) {\n              clients.current[clientId].destroy();\n            }\n            options !== null && options !== void 0 ? options : options = {};\n            customSetup !== null && customSetup !== void 0 ? customSetup : customSetup = {};\n            timeOut = (_a3 = options === null || options === void 0 ? void 0 : options.bundlerTimeOut) !== null && _a3 !== void 0 ? _a3 : BUNDLER_TIMEOUT;\n            if (timeoutHook.current) {\n              clearTimeout(timeoutHook.current);\n            }\n            shouldSetTimeout = typeof unsubscribe.current !== \"function\";\n            if (shouldSetTimeout) {\n              timeoutHook.current = setTimeout(function () {\n                unregisterAllClients();\n                setState(function (prev) {\n                  return __assign(__assign({}, prev), {\n                    status: \"timeout\"\n                  });\n                });\n              }, timeOut);\n            }\n            return [4, loadSandpackClient(iframe, {\n              files: filesState.files,\n              template: filesState.environment\n            }, {\n              externalResources: options.externalResources,\n              bundlerURL: options.bundlerURL,\n              startRoute: (_b3 = clientPropsOverride === null || clientPropsOverride === void 0 ? void 0 : clientPropsOverride.startRoute) !== null && _b3 !== void 0 ? _b3 : options.startRoute,\n              fileResolver: options.fileResolver,\n              skipEval: (_c3 = options.skipEval) !== null && _c3 !== void 0 ? _c3 : false,\n              logLevel: options.logLevel,\n              showOpenInCodeSandbox: false,\n              showErrorScreen: true,\n              showLoadingScreen: false,\n              reactDevTools: state.reactDevTools,\n              customNpmRegistries: customSetup === null || customSetup === void 0 ? void 0 : customSetup.npmRegistries,\n              teamId\n            })];\n          case 1:\n            client = _d2.sent();\n            if (typeof unsubscribe.current !== \"function\") {\n              unsubscribe.current = client.listen(handleMessage);\n            }\n            unsubscribeClientListeners.current[clientId] = unsubscribeClientListeners.current[clientId] || {};\n            if (queuedListeners.current[clientId]) {\n              Object.keys(queuedListeners.current[clientId]).forEach(function (listenerId) {\n                var listener = queuedListeners.current[clientId][listenerId];\n                var unsubscribe2 = client.listen(listener);\n                unsubscribeClientListeners.current[clientId][listenerId] = unsubscribe2;\n              });\n              queuedListeners.current[clientId] = {};\n            }\n            globalListeners = Object.entries(queuedListeners.current.global);\n            globalListeners.forEach(function (_a4) {\n              var listenerId = _a4[0],\n                listener = _a4[1];\n              var unsubscribe2 = client.listen(listener);\n              unsubscribeClientListeners.current[clientId][listenerId] = unsubscribe2;\n            });\n            clients.current[clientId] = client;\n            return [2];\n        }\n      });\n    });\n  }, [filesState.environment, filesState.files, state.reactDevTools]);\n  var unregisterAllClients = useCallback2(function () {\n    Object.keys(clients.current).map(unregisterBundler);\n    if (typeof unsubscribe.current === \"function\") {\n      unsubscribe.current();\n      unsubscribe.current = void 0;\n    }\n  }, []);\n  var runSandpack = useCallback2(function () {\n    return __awaiter(void 0, void 0, void 0, function () {\n      return __generator(this, function (_a3) {\n        switch (_a3.label) {\n          case 0:\n            return [4, Promise.all(Object.entries(registeredIframes.current).map(function (_a4) {\n              var clientId = _a4[0],\n                _b3 = _a4[1],\n                iframe = _b3.iframe,\n                _c3 = _b3.clientPropsOverride,\n                clientPropsOverride = _c3 === void 0 ? {} : _c3;\n              return __awaiter(void 0, void 0, void 0, function () {\n                return __generator(this, function (_d2) {\n                  switch (_d2.label) {\n                    case 0:\n                      return [4, createClient(iframe, clientId, clientPropsOverride)];\n                    case 1:\n                      _d2.sent();\n                      return [2];\n                  }\n                });\n              });\n            }))];\n          case 1:\n            _a3.sent();\n            setState(function (prev) {\n              return __assign(__assign({}, prev), {\n                error: null,\n                status: \"running\"\n              });\n            });\n            return [2];\n        }\n      });\n    });\n  }, [createClient]);\n  var initializeSandpackIframe = useCallback2(function () {\n    var _a3, _b3, _c3;\n    var autorun = (_a3 = options === null || options === void 0 ? void 0 : options.autorun) !== null && _a3 !== void 0 ? _a3 : true;\n    if (!autorun) {\n      return;\n    }\n    var observerOptions = (_b3 = options === null || options === void 0 ? void 0 : options.initModeObserverOptions) !== null && _b3 !== void 0 ? _b3 : {\n      rootMargin: \"1000px 0px\"\n    };\n    if (intersectionObserver.current && lazyAnchorRef.current) {\n      (_c3 = intersectionObserver.current) === null || _c3 === void 0 ? void 0 : _c3.unobserve(lazyAnchorRef.current);\n    }\n    if (lazyAnchorRef.current && state.initMode === \"lazy\") {\n      intersectionObserver.current = new IntersectionObserver(function (entries) {\n        var _a4;\n        if (entries.some(function (entry) {\n          return entry.isIntersecting;\n        })) {\n          runSandpack();\n          if (lazyAnchorRef.current) {\n            (_a4 = intersectionObserver.current) === null || _a4 === void 0 ? void 0 : _a4.unobserve(lazyAnchorRef.current);\n          }\n        }\n      }, observerOptions);\n      intersectionObserver.current.observe(lazyAnchorRef.current);\n    } else if (lazyAnchorRef.current && state.initMode === \"user-visible\") {\n      intersectionObserver.current = new IntersectionObserver(function (entries) {\n        if (entries.some(function (entry) {\n          return entry.isIntersecting;\n        })) {\n          runSandpack();\n        } else {\n          Object.keys(clients.current).map(unregisterBundler);\n          unregisterAllClients();\n        }\n      }, observerOptions);\n      intersectionObserver.current.observe(lazyAnchorRef.current);\n    } else {\n      runSandpack();\n    }\n  }, [options === null || options === void 0 ? void 0 : options.autorun, options === null || options === void 0 ? void 0 : options.initModeObserverOptions, runSandpack, state.initMode, unregisterAllClients]);\n  var registerBundler = useCallback2(function (iframe, clientId, clientPropsOverride) {\n    return __awaiter(void 0, void 0, void 0, function () {\n      return __generator(this, function (_a3) {\n        switch (_a3.label) {\n          case 0:\n            registeredIframes.current[clientId] = {\n              iframe,\n              clientPropsOverride\n            };\n            if (!(state.status === \"running\")) return [3, 2];\n            return [4, createClient(iframe, clientId, clientPropsOverride)];\n          case 1:\n            _a3.sent();\n            _a3.label = 2;\n          case 2:\n            return [2];\n        }\n      });\n    });\n  }, [createClient, state.status]);\n  var unregisterBundler = function (clientId) {\n    var _a3, _b3;\n    var client = clients.current[clientId];\n    if (client) {\n      client.destroy();\n      (_a3 = client.iframe.contentWindow) === null || _a3 === void 0 ? void 0 : _a3.location.replace(\"about:blank\");\n      client.iframe.removeAttribute(\"src\");\n      delete clients.current[clientId];\n    }\n    delete registeredIframes.current[clientId];\n    if (timeoutHook.current) {\n      clearTimeout(timeoutHook.current);\n    }\n    var unsubscribeQueuedClients = Object.values((_b3 = unsubscribeClientListeners.current[clientId]) !== null && _b3 !== void 0 ? _b3 : {});\n    unsubscribeQueuedClients.forEach(function (listenerOfClient) {\n      var listenerFunctions = Object.values(listenerOfClient);\n      listenerFunctions.forEach(function (unsubscribe2) {\n        return unsubscribe2();\n      });\n    });\n    var status = Object.keys(clients.current).length > 0 ? \"running\" : \"idle\";\n    setState(function (prev) {\n      return __assign(__assign({}, prev), {\n        status\n      });\n    });\n  };\n  var handleMessage = function (msg) {\n    if (msg.type === \"start\") {\n      setState(function (prev) {\n        return __assign(__assign({}, prev), {\n          error: null\n        });\n      });\n    } else if (msg.type === \"state\") {\n      setState(function (prev) {\n        return __assign(__assign({}, prev), {\n          bundlerState: msg.state\n        });\n      });\n    } else if (msg.type === \"done\" && !msg.compilatonError || msg.type === \"connected\") {\n      if (timeoutHook.current) {\n        clearTimeout(timeoutHook.current);\n      }\n      setState(function (prev) {\n        return __assign(__assign({}, prev), {\n          error: null\n        });\n      });\n    } else if (msg.type === \"action\" && msg.action === \"show-error\") {\n      setState(function (prev) {\n        return __assign(__assign({}, prev), {\n          error: extractErrorDetails(msg)\n        });\n      });\n    } else if (msg.type === \"action\" && msg.action === \"notification\" && msg.notificationType === \"error\") {\n      setState(function (prev) {\n        return __assign(__assign({}, prev), {\n          error: {\n            message: msg.title\n          }\n        });\n      });\n    }\n  };\n  var registerReactDevTools = function (value) {\n    setState(function (prev) {\n      return __assign(__assign({}, prev), {\n        reactDevTools: value\n      });\n    });\n  };\n  var recompileMode = (_c2 = options === null || options === void 0 ? void 0 : options.recompileMode) !== null && _c2 !== void 0 ? _c2 : \"delayed\";\n  var recompileDelay = (_d = options === null || options === void 0 ? void 0 : options.recompileDelay) !== null && _d !== void 0 ? _d : 500;\n  var dispatchMessage = function (message, clientId) {\n    if (state.status !== \"running\") {\n      console.warn(\"[sandpack-react]: dispatch cannot be called while in idle mode\");\n      return;\n    }\n    if (clientId) {\n      clients.current[clientId].dispatch(message);\n    } else {\n      Object.values(clients.current).forEach(function (client) {\n        client.dispatch(message);\n      });\n    }\n  };\n  var addListener = function (listener, clientId) {\n    if (clientId) {\n      if (clients.current[clientId]) {\n        var unsubscribeListener = clients.current[clientId].listen(listener);\n        return unsubscribeListener;\n      } else {\n        var listenerId_1 = generateRandomId();\n        queuedListeners.current[clientId] = queuedListeners.current[clientId] || {};\n        unsubscribeClientListeners.current[clientId] = unsubscribeClientListeners.current[clientId] || {};\n        queuedListeners.current[clientId][listenerId_1] = listener;\n        var unsubscribeListener = function () {\n          if (queuedListeners.current[clientId][listenerId_1]) {\n            delete queuedListeners.current[clientId][listenerId_1];\n          } else if (unsubscribeClientListeners.current[clientId][listenerId_1]) {\n            unsubscribeClientListeners.current[clientId][listenerId_1]();\n            delete unsubscribeClientListeners.current[clientId][listenerId_1];\n          }\n        };\n        return unsubscribeListener;\n      }\n    } else {\n      var listenerId_2 = generateRandomId();\n      queuedListeners.current.global[listenerId_2] = listener;\n      var clientsList = Object.values(clients.current);\n      var currentClientUnsubscribeListeners_1 = clientsList.map(function (client) {\n        return client.listen(listener);\n      });\n      var unsubscribeListener = function () {\n        currentClientUnsubscribeListeners_1.forEach(function (unsubscribe2) {\n          return unsubscribe2();\n        });\n        delete queuedListeners.current.global[listenerId_2];\n        Object.values(unsubscribeClientListeners.current).forEach(function (client) {\n          var _a3;\n          (_a3 = client === null || client === void 0 ? void 0 : client[listenerId_2]) === null || _a3 === void 0 ? void 0 : _a3.call(client);\n        });\n      };\n      return unsubscribeListener;\n    }\n  };\n  useEffect3(function watchFileChanges() {\n    if (state.status !== \"running\" || !filesState.shouldUpdatePreview) {\n      return;\n    }\n    if (prevEnvironment.current !== filesState.environment) {\n      prevEnvironment.current = filesState.environment;\n      Object.entries(clients.current).forEach(function (_a3) {\n        var key = _a3[0],\n          client = _a3[1];\n        registerBundler(client.iframe, key);\n      });\n    }\n    if (recompileMode === \"immediate\") {\n      Object.values(clients.current).forEach(function (client) {\n        if (client.status === \"done\") {\n          client.updateSandbox({\n            files: filesState.files,\n            template: filesState.environment\n          });\n        }\n      });\n    }\n    if (recompileMode === \"delayed\") {\n      if (typeof window === \"undefined\") return;\n      window.clearTimeout(debounceHook.current);\n      debounceHook.current = window.setTimeout(function () {\n        Object.values(clients.current).forEach(function (client) {\n          if (client.status === \"done\") {\n            client.updateSandbox({\n              files: filesState.files,\n              template: filesState.environment\n            });\n          }\n        });\n      }, recompileDelay);\n    }\n    return function () {\n      window.clearTimeout(debounceHook.current);\n    };\n  }, [filesState.files, filesState.environment, filesState.shouldUpdatePreview, recompileDelay, recompileMode, registerBundler, state.status]);\n  useEffect3(function watchInitMode() {\n    if (initModeFromProps !== state.initMode) {\n      setState(function (prev) {\n        return __assign(__assign({}, prev), {\n          initMode: initModeFromProps\n        });\n      });\n      initializeSandpackIframe();\n    }\n  }, [initModeFromProps, initializeSandpackIframe, state.initMode]);\n  useEffect3(function () {\n    return function unmountClient() {\n      if (typeof unsubscribe.current === \"function\") {\n        unsubscribe.current();\n      }\n      if (timeoutHook.current) {\n        clearTimeout(timeoutHook.current);\n      }\n      if (debounceHook.current) {\n        clearTimeout(debounceHook.current);\n      }\n      if (intersectionObserver.current) {\n        intersectionObserver.current.disconnect();\n      }\n    };\n  }, []);\n  return [state, {\n    clients: clients.current,\n    initializeSandpackIframe,\n    runSandpack,\n    registerBundler,\n    unregisterBundler,\n    registerReactDevTools,\n    addListener,\n    dispatchMessage,\n    lazyAnchorRef,\n    unsubscribeClientListenersRef: unsubscribeClientListeners,\n    queuedListenersRef: queuedListeners\n  }];\n};\nvar useFiles = function (props) {\n  var originalStateFromProps = getSandpackStateFromProps(props);\n  var _a2 = useState3(originalStateFromProps),\n    state = _a2[0],\n    setState = _a2[1];\n  var isMountedRef = useRef2(false);\n  useEffect3(function () {\n    if (isMountedRef.current) {\n      setState(getSandpackStateFromProps(props));\n    } else {\n      isMountedRef.current = true;\n    }\n  }, [props.files, props.customSetup, props.template]);\n  var updateFile = function (pathOrFiles, code, shouldUpdatePreview) {\n    if (shouldUpdatePreview === void 0) {\n      shouldUpdatePreview = true;\n    }\n    setState(function (prev) {\n      var _a3;\n      var files = prev.files;\n      if (typeof pathOrFiles === \"string\" && typeof code === \"string\") {\n        files = __assign(__assign({}, files), (_a3 = {}, _a3[pathOrFiles] = {\n          code\n        }, _a3));\n      } else if (typeof pathOrFiles === \"object\") {\n        files = __assign(__assign({}, files), convertedFilesToBundlerFiles(pathOrFiles));\n      }\n      return __assign(__assign({}, prev), {\n        files: normalizePath(files),\n        shouldUpdatePreview\n      });\n    });\n  };\n  var operations = {\n    openFile: function (path) {\n      setState(function (_a3) {\n        var visibleFiles = _a3.visibleFiles,\n          rest = __rest(_a3, [\"visibleFiles\"]);\n        var newPaths = visibleFiles.includes(path) ? visibleFiles : __spreadArray(__spreadArray([], visibleFiles, true), [path], false);\n        return __assign(__assign({}, rest), {\n          activeFile: path,\n          visibleFiles: newPaths\n        });\n      });\n    },\n    resetFile: function (path) {\n      setState(function (prevState) {\n        var _a3;\n        return __assign(__assign({}, prevState), {\n          files: __assign(__assign({}, prevState.files), (_a3 = {}, _a3[path] = originalStateFromProps.files[path], _a3))\n        });\n      });\n    },\n    resetAllFiles: function () {\n      setState(function (prev) {\n        return __assign(__assign({}, prev), {\n          files: originalStateFromProps.files\n        });\n      });\n    },\n    setActiveFile: function (activeFile) {\n      if (state.files[activeFile]) {\n        setState(function (prev) {\n          return __assign(__assign({}, prev), {\n            activeFile\n          });\n        });\n      }\n    },\n    updateCurrentFile: function (code, shouldUpdatePreview) {\n      if (shouldUpdatePreview === void 0) {\n        shouldUpdatePreview = true;\n      }\n      updateFile(state.activeFile, code, shouldUpdatePreview);\n    },\n    updateFile,\n    addFile: updateFile,\n    closeFile: function (path) {\n      if (state.visibleFiles.length === 1) {\n        return;\n      }\n      setState(function (_a3) {\n        var visibleFiles = _a3.visibleFiles,\n          activeFile = _a3.activeFile,\n          prev = __rest(_a3, [\"visibleFiles\", \"activeFile\"]);\n        var indexOfRemovedPath = visibleFiles.indexOf(path);\n        var newPaths = visibleFiles.filter(function (openPath) {\n          return openPath !== path;\n        });\n        return __assign(__assign({}, prev), {\n          activeFile: path === activeFile ? indexOfRemovedPath === 0 ? visibleFiles[1] : visibleFiles[indexOfRemovedPath - 1] : activeFile,\n          visibleFiles: newPaths\n        });\n      });\n    },\n    deleteFile: function (path, shouldUpdatePreview) {\n      if (shouldUpdatePreview === void 0) {\n        shouldUpdatePreview = true;\n      }\n      setState(function (_a3) {\n        var visibleFiles = _a3.visibleFiles,\n          files = _a3.files,\n          activeFile = _a3.activeFile,\n          rest = __rest(_a3, [\"visibleFiles\", \"files\", \"activeFile\"]);\n        var newFiles = __assign({}, files);\n        delete newFiles[path];\n        var remainingVisibleFiles = visibleFiles.filter(function (openPath) {\n          return openPath !== path;\n        });\n        var deletedLastVisibleFile = remainingVisibleFiles.length === 0;\n        if (deletedLastVisibleFile) {\n          var nextFile = Object.keys(files)[Object.keys(files).length - 1];\n          return __assign(__assign({}, rest), {\n            visibleFiles: [nextFile],\n            activeFile: nextFile,\n            files: newFiles,\n            shouldUpdatePreview\n          });\n        }\n        return __assign(__assign({}, rest), {\n          visibleFiles: remainingVisibleFiles,\n          activeFile: path === activeFile ? remainingVisibleFiles[remainingVisibleFiles.length - 1] : activeFile,\n          files: newFiles,\n          shouldUpdatePreview\n        });\n      });\n    }\n  };\n  return [__assign(__assign({}, state), {\n    visibleFilesFromProps: originalStateFromProps.visibleFiles\n  }), operations];\n};\nvar Sandpack$1 = /*#__PURE__*/React3.createContext(null);\nvar SandpackProvider = function (props) {\n  var _a2, _b2;\n  var children = props.children,\n    options = props.options,\n    style = props.style,\n    className = props.className,\n    theme = props.theme;\n  var _c2 = useFiles(props),\n    fileState = _c2[0],\n    fileOperations = _c2[1];\n  var _d = useClient(props, fileState),\n    clientState = _d[0],\n    _e = _d[1],\n    dispatchMessage = _e.dispatchMessage,\n    addListener = _e.addListener,\n    clientOperations = __rest(_e, [\"dispatchMessage\", \"addListener\"]);\n  var appState = useAppState(props, fileState.files);\n  React3.useEffect(function () {\n    clientOperations.initializeSandpackIframe();\n  }, []);\n  return jsx(Sandpack$1.Provider, __assign({\n    value: __assign(__assign(__assign(__assign(__assign(__assign({}, fileState), clientState), appState), fileOperations), clientOperations), {\n      autoReload: (_b2 = (_a2 = props.options) === null || _a2 === void 0 ? void 0 : _a2.autoReload) !== null && _b2 !== void 0 ? _b2 : true,\n      listen: addListener,\n      dispatch: dispatchMessage\n    })\n  }, {\n    children: jsx(ClassNamesProvider, __assign({\n      classes: options === null || options === void 0 ? void 0 : options.classes\n    }, {\n      children: jsx(SandpackThemeProvider, __assign({\n        className,\n        style,\n        theme\n      }, {\n        children\n      }), void 0)\n    }), void 0)\n  }), void 0);\n};\nvar SandpackConsumer = Sandpack$1.Consumer;\nfunction useSandpack() {\n  var sandpack = React3.useContext(Sandpack$1);\n  if (sandpack === null) {\n    throw new Error('[sandpack-react]: \"useSandpack\" must be wrapped by a \"SandpackProvider\"');\n  }\n  var dispatch = sandpack.dispatch,\n    listen = sandpack.listen,\n    rest = __rest(sandpack, [\"dispatch\", \"listen\"]);\n  return {\n    sandpack: __assign({}, rest),\n    dispatch,\n    listen\n  };\n}\nvar useActiveCode = function () {\n  var _a2, _b2, _c2;\n  var sandpack = useSandpack().sandpack;\n  return {\n    code: (_a2 = sandpack.files[sandpack.activeFile]) === null || _a2 === void 0 ? void 0 : _a2.code,\n    readOnly: (_c2 = (_b2 = sandpack.files[sandpack.activeFile]) === null || _b2 === void 0 ? void 0 : _b2.readOnly) !== null && _c2 !== void 0 ? _c2 : false,\n    updateCode: sandpack.updateCurrentFile\n  };\n};\nvar _a$8;\nvar _b$2;\nvar _c;\nvar iconStandaloneClassName = css({\n  svg: {\n    margin: \"auto\"\n  }\n});\nvar buttonClassName = css((_a$8 = {\n  appearance: \"none\",\n  outline: \"none\",\n  display: \"flex\",\n  alignItems: \"center\",\n  fontSize: \"inherit\",\n  fontFamily: \"inherit\",\n  backgroundColor: \"transparent\",\n  transition: \"color $default, background $default\",\n  cursor: \"pointer\",\n  color: \"$colors$clickable\",\n  border: 0,\n  textDecoration: \"none\",\n  \"&:disabled\": {\n    color: \"$colors$disabled\"\n  },\n  \"&:hover:not(:disabled,[data-active='true'])\": {\n    color: \"$colors$hover\"\n  },\n  '&[data-active=\"true\"]': {\n    color: \"$colors$accent\"\n  },\n  svg: {\n    minWidth: \"$space$4\",\n    width: \"$space$4\",\n    height: \"$space$4\"\n  }\n}, _a$8[\"&.\" + iconStandaloneClassName] = {\n  padding: \"$space$1\",\n  height: \"$space$7\",\n  display: \"flex\"\n}, _a$8[\"&.\" + iconStandaloneClassName + \"&:not(:has(span))\"] = {\n  width: \"$space$7\"\n}, _a$8[\"&.\" + iconStandaloneClassName + \"&:has(svg + span)\"] = {\n  paddingRight: \"$space$3\",\n  paddingLeft: \"$space$2\",\n  gap: \"$space$1\"\n}, _a$8));\nvar roundedButtonClassName = css({\n  backgroundColor: \"$colors$surface2\",\n  borderRadius: \"99999px\",\n  border: \"1px solid $colors$surface3\",\n  '&[data-active=\"true\"]': {\n    color: \"$colors$surface1\",\n    background: \"$colors$accent\"\n  },\n  \"&:hover:not(:disabled,[data-active='true'])\": {\n    backgroundColor: \"$colors$surface3\"\n  }\n});\nvar iconClassName = css({\n  padding: 0\n});\nvar fadeIn = keyframes({\n  \"0%\": {\n    opacity: 0\n  },\n  \"100%\": {\n    opacity: 1\n  }\n});\nvar absoluteClassName = css({\n  position: \"absolute\",\n  bottom: \"0\",\n  left: \"0\",\n  right: \"0\",\n  top: \"0\",\n  margin: \"0\",\n  overflow: \"auto\",\n  height: \"100%\",\n  zIndex: \"$top\"\n});\nvar errorClassName = css((_b$2 = {\n  whiteSpace: \"pre-wrap\",\n  padding: \"$space$10\",\n  backgroundColor: \"$colors$surface1\",\n  display: \"flex\",\n  gap: \"$space$2\",\n  flexDirection: \"column\"\n}, _b$2[\".\" + buttonClassName] = {\n  width: \"auto\",\n  gap: \"$space$2\",\n  padding: \"0 $space$3 0 $space$2\",\n  marginTop: \"$space$1\"\n}, _b$2.variants = {\n  solidBg: {\n    true: {\n      backgroundColor: \"$colors$errorSurface\"\n    }\n  }\n}, _b$2));\nvar errorBundlerClassName = css((_c = {\n  padding: \"$space$10\",\n  backgroundColor: \"$colors$surface1\"\n}, _c[\".\" + buttonClassName] = {\n  marginTop: \"$space$6\",\n  width: \"auto\",\n  gap: \"$space$2\",\n  padding: \"0 $space$3 0 $space$2\"\n}, _c));\nvar errorMessageClassName = css({\n  animation: fadeIn + \" 150ms ease\",\n  color: \"$colors$error\",\n  display: \"flex\",\n  flexDirection: \"column\",\n  gap: \"$space$3\",\n  variants: {\n    errorCode: {\n      true: {\n        fontFamily: \"$font$mono\"\n      }\n    }\n  },\n  a: {\n    color: \"inherit\"\n  },\n  p: {\n    margin: 0\n  }\n});\nvar _a$7;\nvar tabsClassName = css({\n  borderBottom: \"1px solid $colors$surface2\",\n  background: \"$colors$surface1\"\n});\nvar tabsScrollableClassName = css({\n  padding: \"0 $space$2\",\n  overflow: \"auto\",\n  display: \"flex\",\n  flexWrap: \"nowrap\",\n  alignItems: \"stretch\",\n  minHeight: \"40px\",\n  marginBottom: \"-1px\"\n});\nvar closeButtonClassName = css({\n  padding: \"0 $space$1 0 $space$1\",\n  borderRadius: \"$border$radius\",\n  marginLeft: \"$space$1\",\n  width: \"$space$5\",\n  visibility: \"hidden\",\n  svg: {\n    width: \"$space$3\",\n    height: \"$space$3\",\n    display: \"block\",\n    position: \"relative\",\n    top: 1\n  }\n});\nvar tabButton = css((_a$7 = {\n  padding: \"0 $space$2\",\n  height: \"$layout$headerHeight\",\n  whiteSpace: \"nowrap\",\n  \"&:focus\": {\n    outline: \"none\"\n  }\n}, _a$7[\"&:hover > .\" + closeButtonClassName] = {\n  visibility: \"unset\"\n}, _a$7));\nvar FileTabs = function (_a2) {\n  var closableTabs = _a2.closableTabs,\n    className = _a2.className,\n    props = __rest(_a2, [\"closableTabs\", \"className\"]);\n  var sandpack = useSandpack().sandpack;\n  var classNames = useClassNames();\n  var activeFile = sandpack.activeFile,\n    visibleFiles = sandpack.visibleFiles,\n    setActiveFile = sandpack.setActiveFile;\n  var handleCloseFile = function (ev) {\n    ev.stopPropagation();\n    var tabElm = ev.target.closest(\"[data-active]\");\n    var pathToClose = tabElm === null || tabElm === void 0 ? void 0 : tabElm.getAttribute(\"title\");\n    if (!pathToClose) {\n      return;\n    }\n    sandpack.closeFile(pathToClose);\n  };\n  var getTriggerText = function (currentPath) {\n    var documentFileName = getFileName(currentPath);\n    var pathsWithDuplicateFileNames = visibleFiles.reduce(function (prev, curr) {\n      if (curr === currentPath) {\n        return prev;\n      }\n      var fileName = getFileName(curr);\n      if (fileName === documentFileName) {\n        prev.push(curr);\n        return prev;\n      }\n      return prev;\n    }, []);\n    if (pathsWithDuplicateFileNames.length === 0) {\n      return documentFileName;\n    } else {\n      return calculateNearestUniquePath(currentPath, pathsWithDuplicateFileNames);\n    }\n  };\n  return jsx(\"div\", __assign({\n    className: classNames(\"tabs\", [tabsClassName, className]),\n    translate: \"no\"\n  }, props, {\n    children: jsx(\"div\", __assign({\n      \"aria-label\": \"Select active file\",\n      className: classNames(\"tabs-scrollable-container\", [tabsScrollableClassName]),\n      role: \"tablist\"\n    }, {\n      children: visibleFiles.map(function (filePath) {\n        return jsxs(\"button\", __assign({\n          \"aria-selected\": filePath === activeFile,\n          className: classNames(\"tab-button\", [buttonClassName, tabButton]),\n          \"data-active\": filePath === activeFile,\n          onClick: function () {\n            return setActiveFile(filePath);\n          },\n          role: \"tab\",\n          title: filePath,\n          type: \"button\"\n        }, {\n          children: [getTriggerText(filePath), closableTabs && visibleFiles.length > 1 && jsx(\"span\", __assign({\n            className: classNames(\"close-button\", [closeButtonClassName]),\n            onClick: handleCloseFile\n          }, {\n            children: jsx(CloseIcon, {}, void 0)\n          }), void 0)]\n        }), filePath);\n      })\n    }), void 0)\n  }), void 0);\n};\nvar RoundedButton = function (_a2) {\n  var onClick = _a2.onClick,\n    className = _a2.className,\n    children = _a2.children;\n  var classNames = useClassNames();\n  return jsx(\"button\", __assign({\n    className: classNames(\"button\", [classNames(\"icon-standalone\"), buttonClassName, iconStandaloneClassName, roundedButtonClassName, className]),\n    onClick,\n    type: \"button\"\n  }, {\n    children\n  }), void 0);\n};\nvar runButtonClassName = css({\n  position: \"absolute\",\n  bottom: \"$space$2\",\n  right: \"$space$2\",\n  paddingRight: \"$space$3\"\n});\nvar RunButton$1 = function (_a2) {\n  _a2.className;\n  var onClick = _a2.onClick,\n    props = __rest(_a2, [\"className\", \"onClick\"]);\n  var sandpack = useSandpack().sandpack;\n  return jsxs(RoundedButton, __assign({\n    className: runButtonClassName.toString(),\n    onClick: function (event) {\n      sandpack.runSandpack();\n      onClick === null || onClick === void 0 ? void 0 : onClick(event);\n    }\n  }, props, {\n    children: [jsx(RunIcon, {}, void 0), jsx(\"span\", {\n      children: \"Run\"\n    }, void 0)]\n  }), void 0);\n};\nvar _a$6;\nvar stackClassName = css((_a$6 = {\n  display: \"flex\",\n  flexDirection: \"column\",\n  width: \"100%\",\n  position: \"relative\",\n  backgroundColor: \"$colors$surface1\",\n  gap: 1\n}, _a$6[\"&:has(.\" + THEME_PREFIX + \"-stack)\"] = {\n  backgroundColor: \"$colors$surface2\"\n}, _a$6));\nvar SandpackStack = function (_a2) {\n  var className = _a2.className,\n    props = __rest(_a2, [\"className\"]);\n  var classNames = useClassNames();\n  return jsx(\"div\", __assign({\n    className: classNames(\"stack\", [stackClassName, className])\n  }, props), void 0);\n};\nvar useSandpackTheme = function () {\n  var _a2 = React3.useContext(SandpackThemeContext),\n    theme = _a2.theme,\n    id = _a2.id,\n    mode = _a2.mode;\n  return {\n    theme,\n    themeId: id,\n    themeMode: mode\n  };\n};\nvar shallowEqual = function (a2, b2) {\n  if (a2.length !== b2.length) return false;\n  var result = true;\n  for (var index = 0; index < a2.length; index++) {\n    if (a2[index] !== b2[index]) {\n      result = false;\n      break;\n    }\n  }\n  return result;\n};\nvar getCodeMirrorPosition = function (doc, _a2) {\n  var line = _a2.line,\n    column = _a2.column;\n  return doc.line(line).from + (column !== null && column !== void 0 ? column : 0) - 1;\n};\nvar getEditorTheme = function () {\n  return EditorView.theme({\n    \"&\": {\n      backgroundColor: \"var(--\" + THEME_PREFIX + \"-colors-surface1)\",\n      color: \"var(--\" + THEME_PREFIX + \"-syntax-color-plain)\",\n      height: \"100%\"\n    },\n    \".cm-matchingBracket, .cm-nonmatchingBracket, &.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket\": {\n      color: \"inherit\",\n      backgroundColor: \"rgba(128,128,128,.25)\",\n      backgroundBlendMode: \"difference\"\n    },\n    \"&.cm-editor.cm-focused\": {\n      outline: \"none\"\n    },\n    \".cm-activeLine\": {\n      backgroundColor: \"var(--\" + THEME_PREFIX + \"-colors-surface3)\",\n      borderRadius: \"var(--\" + THEME_PREFIX + \"-border-radius)\"\n    },\n    \".cm-errorLine\": {\n      backgroundColor: \"var(--\" + THEME_PREFIX + \"-colors-errorSurface)\",\n      borderRadius: \"var(--\" + THEME_PREFIX + \"-border-radius)\"\n    },\n    \".cm-content\": {\n      caretColor: \"var(--\" + THEME_PREFIX + \"-colors-accent)\",\n      padding: \"0 var(--\" + THEME_PREFIX + \"-space-4)\"\n    },\n    \".cm-scroller\": {\n      fontFamily: \"var(--\" + THEME_PREFIX + \"-font-mono)\",\n      lineHeight: \"var(--\" + THEME_PREFIX + \"-font-lineHeight)\"\n    },\n    \".cm-gutters\": {\n      backgroundColor: \"var(--\" + THEME_PREFIX + \"-colors-surface1)\",\n      color: \"var(--\" + THEME_PREFIX + \"-colors-disabled)\",\n      border: \"none\",\n      paddingLeft: \"var(--\" + THEME_PREFIX + \"-space-1)\"\n    },\n    \".cm-gutter.cm-lineNumbers\": {\n      fontSize: \".6em\"\n    },\n    \".cm-lineNumbers .cm-gutterElement\": {\n      lineHeight: \"var(--\" + THEME_PREFIX + \"-font-lineHeight)\",\n      minWidth: \"var(--\" + THEME_PREFIX + \"-space-5)\"\n    },\n    \".cm-content .cm-line\": {\n      paddingLeft: \"var(--\" + THEME_PREFIX + \"-space-1)\"\n    },\n    \".cm-content.cm-readonly .cm-line\": {\n      paddingLeft: 0\n    }\n  });\n};\nvar classNameToken = function (name) {\n  return THEME_PREFIX + \"-syntax-\" + name;\n};\nvar styleTokens = function () {\n  var syntaxHighLightTokens = [\"string\", \"plain\", \"comment\", \"keyword\", \"definition\", \"punctuation\", \"property\", \"tag\", \"static\"];\n  return syntaxHighLightTokens.reduce(function (acc, token) {\n    var _a2;\n    return __assign(__assign({}, acc), (_a2 = {}, _a2[\".\" + classNameToken(token)] = {\n      color: \"$syntax$color$\" + token,\n      fontStyle: \"$syntax$fontStyle$\" + token\n    }, _a2));\n  }, {});\n};\nvar getSyntaxHighlight = function (theme) {\n  return HighlightStyle.define([{\n    tag: tags.link,\n    textDecoration: \"underline\"\n  }, {\n    tag: tags.emphasis,\n    fontStyle: \"italic\"\n  }, {\n    tag: tags.strong,\n    fontWeight: \"bold\"\n  }, {\n    tag: tags.keyword,\n    class: classNameToken(\"keyword\")\n  }, {\n    tag: [tags.atom, tags.number, tags.bool],\n    class: classNameToken(\"static\")\n  }, {\n    tag: tags.variableName,\n    class: classNameToken(\"plain\")\n  }, {\n    // Standard tags, e.g <h1 />\n    tag: tags.standard(tags.tagName),\n    class: classNameToken(\"tag\")\n  }, {\n    tag: [\n    // Highlight function call\n    tags[\"function\"](tags.variableName),\n    // Highlight function definition differently (eg: functional component def in React)\n    tags.definition(tags[\"function\"](tags.variableName)),\n    // \"Custom tags\", meaning React component\n    tags.tagName],\n    class: classNameToken(\"definition\")\n  }, {\n    tag: tags.propertyName,\n    class: classNameToken(\"property\")\n  }, {\n    tag: [tags.literal, tags.inserted],\n    class: classNameToken(theme.syntax.string ? \"string\" : \"static\")\n  }, {\n    tag: tags.punctuation,\n    class: classNameToken(\"punctuation\")\n  }, {\n    tag: [tags.comment, tags.quote],\n    class: classNameToken(\"comment\")\n  }]);\n};\nvar getLanguageFromFile = function (filePath, fileType, additionalLanguages) {\n  if (!filePath && !fileType) return \"javascript\";\n  var extension = fileType;\n  if (!extension && filePath) {\n    var extensionDotIndex = filePath.lastIndexOf(\".\");\n    extension = filePath.slice(extensionDotIndex + 1);\n  }\n  for (var _i = 0, additionalLanguages_1 = additionalLanguages; _i < additionalLanguages_1.length; _i++) {\n    var additionalLanguage = additionalLanguages_1[_i];\n    if (extension === additionalLanguage.name || additionalLanguage.extensions.includes(extension || \"\")) {\n      return additionalLanguage.name;\n    }\n  }\n  switch (extension) {\n    case \"ts\":\n    case \"tsx\":\n      return \"typescript\";\n    case \"html\":\n    case \"svelte\":\n    case \"vue\":\n    case \"astro\":\n      return \"html\";\n    case \"css\":\n    case \"less\":\n    case \"scss\":\n      return \"css\";\n    case \"js\":\n    case \"jsx\":\n    case \"json\":\n    default:\n      return \"javascript\";\n  }\n};\nvar getCodeMirrorLanguage = function (extension, additionalLanguages) {\n  var options = {\n    javascript: javascript({\n      jsx: true,\n      typescript: false\n    }),\n    typescript: javascript({\n      jsx: true,\n      typescript: true\n    }),\n    html: html(),\n    css: css$1()\n  };\n  for (var _i = 0, additionalLanguages_2 = additionalLanguages; _i < additionalLanguages_2.length; _i++) {\n    var additionalLanguage = additionalLanguages_2[_i];\n    if (extension === additionalLanguage.name) {\n      return additionalLanguage.language;\n    }\n  }\n  return options[extension];\n};\nvar useCombinedRefs = function () {\n  var refs = [];\n  for (var _i = 0; _i < arguments.length; _i++) {\n    refs[_i] = arguments[_i];\n  }\n  return React3.useCallback(function (element) {\n    return refs.forEach(function (ref) {\n      if (!ref) {\n        return;\n      }\n      if (typeof ref === \"function\") {\n        return ref(element);\n      }\n      ref.current = element;\n    });\n  },\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  refs);\n};\nfunction highlightDecorators(positions) {\n  return ViewPlugin.fromClass( /** @class */function () {\n    function class_1(view) {\n      this.decorations = this.getDecoration(view);\n    }\n    class_1.prototype.update = function (update) {\n      return;\n    };\n    class_1.prototype.getDecoration = function (view) {\n      if (!positions) return Decoration.none;\n      var rangesDecorators = positions.map(function (item) {\n        var _a2, _b2, _c2;\n        var lineDeco2 = Decoration.line({\n          attributes: {\n            class: (_a2 = item.className) !== null && _a2 !== void 0 ? _a2 : \"\"\n          }\n        });\n        var markDeco = Decoration.mark({\n          class: (_b2 = item.className) !== null && _b2 !== void 0 ? _b2 : \"\",\n          attributes: (_c2 = item.elementAttributes) !== null && _c2 !== void 0 ? _c2 : void 0\n        });\n        var positionLineStart = getCodeMirrorPosition(view.state.doc, {\n          line: item.line,\n          column: item.startColumn\n        }) + 1;\n        if (item.startColumn && item.endColumn) {\n          var positionLineEnd = getCodeMirrorPosition(view.state.doc, {\n            line: item.line,\n            column: item.endColumn\n          }) + 1;\n          return markDeco.range(positionLineStart, positionLineEnd);\n        }\n        return lineDeco2.range(positionLineStart);\n      });\n      return Decoration.set(rangesDecorators);\n    };\n    return class_1;\n  }(), {\n    decorations: function (v2) {\n      return v2.decorations;\n    }\n  });\n}\nfunction highlightInlineError() {\n  return activeLineHighlighter;\n}\nvar lineDeco = Decoration.line({\n  attributes: {\n    class: \"cm-errorLine\"\n  }\n});\nvar activeLineHighlighter = ViewPlugin.fromClass( /** @class */function () {\n  function class_1() {\n    this.decorations = Decoration.none;\n  }\n  class_1.prototype.update = function (update) {\n    var _this = this;\n    update.transactions.forEach(function (trans) {\n      var errorValue = trans.annotation(\"show-error\");\n      if (errorValue !== void 0) {\n        var position = getCodeMirrorPosition(update.view.state.doc, {\n          line: errorValue\n        }) + 1;\n        _this.decorations = Decoration.set([lineDeco.range(position)]);\n      } else if (trans.annotation(\"remove-errors\")) {\n        _this.decorations = Decoration.none;\n      }\n    });\n  };\n  return class_1;\n}(), {\n  decorations: function (v2) {\n    return v2.decorations;\n  }\n});\nvar _a$5;\nvar _b$1;\nvar placeholderClassName = css({\n  margin: \"0\",\n  display: \"block\",\n  fontFamily: \"$font$mono\",\n  fontSize: \"$font$size\",\n  color: \"$syntax$color$plain\",\n  lineHeight: \"$font$lineHeight\"\n});\nvar tokensClassName = css(styleTokens());\nvar editorClassName = css((_a$5 = {\n  flex: 1,\n  position: \"relative\",\n  overflow: \"auto\",\n  background: \"$colors$surface1\",\n  \".cm-scroller\": {\n    padding: \"$space$4 0\"\n  }\n}, _a$5[\".\" + placeholderClassName] = {\n  padding: \"$space$4 0\"\n},\n/**\n* For iOS: prevent browser zoom when clicking on sandbox.\n* Does NOT apply to code blocks.\n*/\n_a$5[\"@media screen and (max-width: 768px)\"] = {\n  \"@supports (-webkit-overflow-scrolling: touch)\": {\n    \".cm-content\": {\n      fontSize: \"16px\"\n    }\n  }\n}, _a$5));\nvar cmClassName = css({\n  margin: \"0\",\n  outline: \"none\",\n  height: \"100%\"\n});\nvar readOnlyClassName = css((_b$1 = {\n  fontFamily: \"$font$mono\",\n  fontSize: \"0.8em\",\n  position: \"absolute\",\n  right: \"$space$2\",\n  bottom: \"$space$2\",\n  zIndex: \"$top\",\n  color: \"$colors$clickable\",\n  backgroundColor: \"$colors$surface2\",\n  borderRadius: \"99999px\",\n  padding: \"calc($space$1 / 2) $space$2\"\n}, _b$1[\"& + .\" + buttonClassName] = {\n  right: \"calc($space$11 * 2)\"\n}, _b$1));\nvar useSyntaxHighlight = function (_a2) {\n  var langSupport = _a2.langSupport,\n    highlightTheme = _a2.highlightTheme,\n    _b2 = _a2.code,\n    code = _b2 === void 0 ? \"\" : _b2;\n  var tree = langSupport.language.parser.parse(code);\n  var offSet = 0;\n  var codeElementsRender = [];\n  var addElement = function (to, className) {\n    if (to > offSet) {\n      var children = code.slice(offSet, to);\n      codeElementsRender.push(className ? /*#__PURE__*/createElement2(\"span\", {\n        children,\n        className,\n        key: \"\" + to + offSet\n      }) : children);\n      offSet = to;\n    }\n  };\n  highlightTree(tree, highlightTheme, function (from, to, className) {\n    addElement(from, \"\");\n    addElement(to, className);\n  });\n  if (offSet < code.length && (code === null || code === void 0 ? void 0 : code.includes(\"\\n\"))) {\n    codeElementsRender.push(\"\\n\\n\");\n  }\n  return codeElementsRender;\n};\nvar CodeMirror = /*#__PURE__*/React3.forwardRef(function (_a2, ref) {\n  var _b2 = _a2.code,\n    code = _b2 === void 0 ? \"\" : _b2,\n    filePath = _a2.filePath,\n    fileType = _a2.fileType,\n    onCodeUpdate = _a2.onCodeUpdate,\n    _c2 = _a2.showLineNumbers,\n    showLineNumbers = _c2 === void 0 ? false : _c2,\n    _d = _a2.showInlineErrors,\n    showInlineErrors = _d === void 0 ? false : _d,\n    _e = _a2.wrapContent,\n    wrapContent = _e === void 0 ? false : _e,\n    _f = _a2.editorState,\n    editorState = _f === void 0 ? \"pristine\" : _f,\n    _g = _a2.readOnly,\n    readOnly = _g === void 0 ? false : _g,\n    _h = _a2.showReadOnly,\n    showReadOnly = _h === void 0 ? true : _h,\n    decorators = _a2.decorators,\n    _j = _a2.initMode,\n    initMode = _j === void 0 ? \"lazy\" : _j,\n    _k = _a2.extensions,\n    extensions = _k === void 0 ? [] : _k,\n    _l = _a2.extensionsKeymap,\n    extensionsKeymap = _l === void 0 ? [] : _l,\n    _m = _a2.additionalLanguages,\n    additionalLanguages = _m === void 0 ? [] : _m;\n  var wrapper = React3.useRef(null);\n  var combinedRef = useCombinedRefs(wrapper, ref);\n  var cmView = React3.useRef();\n  var _o = useSandpackTheme(),\n    theme = _o.theme,\n    themeId = _o.themeId;\n  var _p = React3.useState(code),\n    internalCode = _p[0],\n    setInternalCode = _p[1];\n  var _q = React3.useState(initMode === \"immediate\"),\n    shouldInitEditor = _q[0],\n    setShouldInitEditor = _q[1];\n  var classNames = useClassNames();\n  var listen = useSandpack().listen;\n  var prevExtension = React3.useRef([]);\n  var prevExtensionKeymap = React3.useRef([]);\n  var isIntersecting = module_default2(wrapper, {\n    rootMargin: \"600px 0px\",\n    threshold: .2\n  }).isIntersecting;\n  React3.useImperativeHandle(ref, function () {\n    return {\n      getCodemirror: function () {\n        return cmView.current;\n      }\n    };\n  });\n  React3.useEffect(function () {\n    var mode = initMode === \"lazy\" || initMode === \"user-visible\";\n    if (mode && isIntersecting) {\n      setShouldInitEditor(true);\n    }\n  }, [initMode, isIntersecting]);\n  var languageExtension = getLanguageFromFile(filePath, fileType, additionalLanguages);\n  var langSupport = getCodeMirrorLanguage(languageExtension, additionalLanguages);\n  var highlightTheme = getSyntaxHighlight(theme);\n  var syntaxHighlightRender = useSyntaxHighlight({\n    langSupport,\n    highlightTheme,\n    code\n  });\n  var sortedDecorators = React3.useMemo(function () {\n    return decorators ? decorators.sort(function (d1, d2) {\n      return d1.line - d2.line;\n    }) : decorators;\n  }, [decorators]);\n  React3.useEffect(function () {\n    if (!wrapper.current || !shouldInitEditor) return;\n    var customCommandsKeymap = [{\n      key: \"Tab\",\n      run: function (view2) {\n        var _a3, _b3;\n        indentMore(view2);\n        var customKey = extensionsKeymap.find(function (_a4) {\n          var key = _a4.key;\n          return key === \"Tab\";\n        });\n        return (_b3 = (_a3 = customKey === null || customKey === void 0 ? void 0 : customKey.run) === null || _a3 === void 0 ? void 0 : _a3.call(customKey, view2)) !== null && _b3 !== void 0 ? _b3 : true;\n      }\n    }, {\n      key: \"Shift-Tab\",\n      run: function (_a3) {\n        var _b3, _c3;\n        var state = _a3.state,\n          dispatch = _a3.dispatch;\n        indentLess({\n          state,\n          dispatch\n        });\n        var customKey = extensionsKeymap.find(function (_a4) {\n          var key = _a4.key;\n          return key === \"Shift-Tab\";\n        });\n        return (_c3 = (_b3 = customKey === null || customKey === void 0 ? void 0 : customKey.run) === null || _b3 === void 0 ? void 0 : _b3.call(customKey, view)) !== null && _c3 !== void 0 ? _c3 : true;\n      }\n    }, {\n      key: \"Escape\",\n      run: function () {\n        if (readOnly) return true;\n        if (wrapper.current) {\n          wrapper.current.focus();\n        }\n        return true;\n      }\n    }, {\n      key: \"mod-Backspace\",\n      run: deleteGroupBackward\n    }];\n    var extensionList = __spreadArray(__spreadArray([highlightSpecialChars(), history(), closeBrackets()], extensions, true), [keymap.of(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], closeBracketsKeymap, true), defaultKeymap, true), historyKeymap, true), customCommandsKeymap, true), extensionsKeymap, true)), langSupport, getEditorTheme(), syntaxHighlighting(highlightTheme)], false);\n    if (readOnly) {\n      extensionList.push(EditorState.readOnly.of(true));\n      extensionList.push(EditorView.editable.of(false));\n    } else {\n      extensionList.push(bracketMatching());\n      extensionList.push(highlightActiveLine());\n    }\n    if (sortedDecorators) {\n      extensionList.push(highlightDecorators(sortedDecorators));\n    }\n    if (wrapContent) {\n      extensionList.push(EditorView.lineWrapping);\n    }\n    if (showLineNumbers) {\n      extensionList.push(lineNumbers());\n    }\n    if (showInlineErrors) {\n      extensionList.push(highlightInlineError());\n    }\n    var parentDiv = wrapper.current;\n    var existingPlaceholder = parentDiv.querySelector(\".sp-pre-placeholder\");\n    if (existingPlaceholder) {\n      parentDiv.removeChild(existingPlaceholder);\n    }\n    var view = new EditorView({\n      doc: code,\n      extensions: extensionList,\n      parent: parentDiv,\n      dispatch: function (tr) {\n        view.update([tr]);\n        if (tr.docChanged) {\n          var newCode = tr.newDoc.sliceString(0, tr.newDoc.length);\n          setInternalCode(newCode);\n          onCodeUpdate === null || onCodeUpdate === void 0 ? void 0 : onCodeUpdate(newCode);\n        }\n      }\n    });\n    view.contentDOM.setAttribute(\"data-gramm\", \"false\");\n    view.contentDOM.setAttribute(\"data-lt-active\", \"false\");\n    view.contentDOM.setAttribute(\"aria-label\", filePath ? \"Code Editor for \" + getFileName(filePath) : \"Code Editor\");\n    if (readOnly) {\n      view.contentDOM.classList.add(\"cm-readonly\");\n    } else {\n      view.contentDOM.setAttribute(\"tabIndex\", \"-1\");\n    }\n    cmView.current = view;\n    return function () {\n      var _a3;\n      (_a3 = cmView.current) === null || _a3 === void 0 ? void 0 : _a3.destroy();\n    };\n  }, [shouldInitEditor, showLineNumbers, wrapContent, themeId, sortedDecorators, readOnly]);\n  React3.useEffect(function applyExtensions() {\n    var view = cmView.current;\n    var dependenciesAreDiff = !shallowEqual(extensions, prevExtension.current) || !shallowEqual(extensionsKeymap, prevExtensionKeymap.current);\n    if (view && dependenciesAreDiff) {\n      view.dispatch({\n        effects: StateEffect.appendConfig.of(extensions)\n      });\n      view.dispatch({\n        effects: StateEffect.appendConfig.of(keymap.of(__spreadArray([], extensionsKeymap, true)))\n      });\n      prevExtension.current = extensions;\n      prevExtensionKeymap.current = extensionsKeymap;\n    }\n  }, [extensions, extensionsKeymap]);\n  React3.useEffect(function () {\n    if (cmView.current && editorState === \"dirty\" && window.matchMedia(\"(min-width: 768px)\").matches) {\n      cmView.current.contentDOM.focus();\n    }\n  }, []);\n  React3.useEffect(function () {\n    if (cmView.current && typeof code === \"string\" && code !== internalCode) {\n      var view = cmView.current;\n      var selection = view.state.selection.ranges.some(function (_a3) {\n        var to = _a3.to,\n          from = _a3.from;\n        return to > code.length || from > code.length;\n      }) ? EditorSelection.cursor(code.length) : view.state.selection;\n      var changes = {\n        from: 0,\n        to: view.state.doc.length,\n        insert: code\n      };\n      view.dispatch({\n        changes,\n        selection\n      });\n    }\n  }, [code]);\n  React3.useEffect(function messageToInlineError() {\n    if (!showInlineErrors) return;\n    var unsubscribe = listen(function (message) {\n      var view = cmView.current;\n      if (message.type === \"success\") {\n        view === null || view === void 0 ? void 0 : view.dispatch({\n          // @ts-ignore\n          annotations: [new Annotation(\"remove-errors\", true)]\n        });\n      } else if (message.type === \"action\" && message.action === \"show-error\" && message.path === filePath && message.line) {\n        view === null || view === void 0 ? void 0 : view.dispatch({\n          // @ts-ignore\n          annotations: [new Annotation(\"show-error\", message.line)]\n        });\n      }\n    });\n    return function () {\n      return unsubscribe();\n    };\n  }, [listen, showInlineErrors]);\n  var handleContainerKeyDown = function (evt) {\n    if (evt.key === \"Enter\" && cmView.current) {\n      evt.preventDefault();\n      cmView.current.contentDOM.focus();\n    }\n  };\n  var gutterLineOffset = function () {\n    var offset = 4;\n    if (showLineNumbers) {\n      offset += 6;\n    }\n    if (!readOnly) {\n      offset += 1;\n    }\n    return \"var(--\" + THEME_PREFIX + \"-space-\" + offset + \")\";\n  };\n  if (readOnly) {\n    return jsxs(Fragment, {\n      children: [jsx(\"pre\", __assign({\n        ref: combinedRef,\n        className: classNames(\"cm\", [classNames(editorState), classNames(languageExtension), cmClassName, tokensClassName]),\n        translate: \"no\"\n      }, {\n        children: jsx(\"code\", __assign({\n          className: classNames(\"pre-placeholder\", [placeholderClassName]),\n          style: {\n            marginLeft: gutterLineOffset()\n          }\n        }, {\n          children: syntaxHighlightRender\n        }), void 0)\n      }), void 0), readOnly && showReadOnly && jsx(\"span\", __assign({\n        className: classNames(\"read-only\", [readOnlyClassName])\n      }, {}, {\n        children: \"Read-only\"\n      }), void 0)]\n    }, void 0);\n  }\n  return jsx(\"div\", __assign({\n    ref: combinedRef,\n    \"aria-autocomplete\": \"list\",\n    \"aria-label\": filePath ? \"Code Editor for \" + getFileName(filePath) : \"Code Editor\",\n    \"aria-multiline\": \"true\",\n    className: classNames(\"cm\", [classNames(editorState), classNames(languageExtension), cmClassName, tokensClassName]),\n    onKeyDown: handleContainerKeyDown,\n    role: \"textbox\",\n    tabIndex: 0,\n    translate: \"no\",\n    suppressHydrationWarning: true\n  }, {\n    children: jsx(\"pre\", __assign({\n      className: classNames(\"pre-placeholder\", [placeholderClassName]),\n      style: {\n        marginLeft: gutterLineOffset()\n      }\n    }, {\n      children: syntaxHighlightRender\n    }), void 0)\n  }), void 0);\n});\nvar SandpackCodeEditor = /*#__PURE__*/forwardRef2(function (_a2, ref) {\n  var showTabs = _a2.showTabs,\n    _b2 = _a2.showLineNumbers,\n    showLineNumbers = _b2 === void 0 ? false : _b2,\n    _c2 = _a2.showInlineErrors,\n    showInlineErrors = _c2 === void 0 ? false : _c2,\n    _d = _a2.showRunButton,\n    showRunButton = _d === void 0 ? true : _d,\n    _e = _a2.wrapContent,\n    wrapContent = _e === void 0 ? false : _e,\n    _f = _a2.closableTabs,\n    closableTabs = _f === void 0 ? false : _f,\n    initMode = _a2.initMode,\n    extensions = _a2.extensions,\n    extensionsKeymap = _a2.extensionsKeymap,\n    readOnly = _a2.readOnly,\n    showReadOnly = _a2.showReadOnly,\n    additionalLanguages = _a2.additionalLanguages,\n    className = _a2.className,\n    props = __rest(_a2, [\"showTabs\", \"showLineNumbers\", \"showInlineErrors\", \"showRunButton\", \"wrapContent\", \"closableTabs\", \"initMode\", \"extensions\", \"extensionsKeymap\", \"readOnly\", \"showReadOnly\", \"additionalLanguages\", \"className\"]);\n  var sandpack = useSandpack().sandpack;\n  var _g = useActiveCode(),\n    code = _g.code,\n    updateCode = _g.updateCode,\n    readOnlyFile = _g.readOnly;\n  var activeFile = sandpack.activeFile,\n    status = sandpack.status,\n    editorState = sandpack.editorState;\n  var shouldShowTabs = showTabs !== null && showTabs !== void 0 ? showTabs : sandpack.visibleFiles.length > 1;\n  var classNames = useClassNames();\n  var handleCodeUpdate = function (newCode, shouldUpdatePreview) {\n    if (shouldUpdatePreview === void 0) {\n      shouldUpdatePreview = true;\n    }\n    updateCode(newCode, shouldUpdatePreview);\n  };\n  return jsxs(SandpackStack, __assign({\n    className: classNames(\"editor\", [className])\n  }, props, {\n    children: [shouldShowTabs && jsx(FileTabs, {\n      closableTabs\n    }, void 0), jsxs(\"div\", __assign({\n      className: classNames(\"code-editor\", [editorClassName])\n    }, {\n      children: [jsx(CodeMirror, {\n        ref,\n        additionalLanguages,\n        code,\n        editorState,\n        extensions,\n        extensionsKeymap,\n        filePath: activeFile,\n        initMode: initMode || sandpack.initMode,\n        onCodeUpdate: function (newCode) {\n          var _a3;\n          return handleCodeUpdate(newCode, (_a3 = sandpack.autoReload) !== null && _a3 !== void 0 ? _a3 : true);\n        },\n        readOnly: readOnly || readOnlyFile,\n        showInlineErrors,\n        showLineNumbers,\n        showReadOnly,\n        wrapContent\n      }, activeFile), showRunButton && (!sandpack.autoReload || status === \"idle\") ? jsx(RunButton$1, {}, void 0) : null]\n    }), void 0)]\n  }), void 0);\n});\nvar SandpackCodeViewer = /*#__PURE__*/React3.forwardRef(function (_a2, ref) {\n  var showTabs = _a2.showTabs,\n    showLineNumbers = _a2.showLineNumbers,\n    decorators = _a2.decorators,\n    propCode = _a2.code,\n    initMode = _a2.initMode,\n    wrapContent = _a2.wrapContent,\n    additionalLanguages = _a2.additionalLanguages,\n    props = __rest(_a2, [\"showTabs\", \"showLineNumbers\", \"decorators\", \"code\", \"initMode\", \"wrapContent\", \"additionalLanguages\"]);\n  var sandpack = useSandpack().sandpack;\n  var code = useActiveCode().code;\n  var classNames = useClassNames();\n  var shouldShowTabs = showTabs !== null && showTabs !== void 0 ? showTabs : sandpack.visibleFiles.length > 1;\n  return jsxs(SandpackStack, __assign({\n    className: classNames(\"editor-viewer\")\n  }, props, {\n    children: [shouldShowTabs ? jsx(FileTabs, {}, void 0) : null, jsx(\"div\", __assign({\n      className: classNames(\"code-editor\", [editorClassName])\n    }, {\n      children: jsx(CodeMirror, {\n        ref,\n        additionalLanguages,\n        code: propCode !== null && propCode !== void 0 ? propCode : code,\n        decorators,\n        filePath: sandpack.activeFile,\n        initMode: initMode || sandpack.initMode,\n        showLineNumbers,\n        showReadOnly: false,\n        wrapContent,\n        readOnly: true\n      }, void 0)\n    }), void 0), sandpack.status === \"idle\" ? jsx(RunButton$1, {}, void 0) : null]\n  }), void 0);\n});\nvar _a$4;\nvar _b;\nvar layoutClassName = css((_a$4 = {\n  border: \"1px solid $colors$surface2\",\n  display: \"flex\",\n  flexWrap: \"wrap\",\n  alignItems: \"stretch\",\n  borderRadius: \"$border$radius\",\n  overflow: \"hidden\",\n  position: \"relative\",\n  backgroundColor: \"$colors$surface2\",\n  gap: 1\n}, _a$4[\"> .\" + stackClassName] = {\n  flexGrow: 1,\n  flexShrink: 1,\n  flexBasis: \"0\",\n  height: \"$layout$height\",\n  overflow: \"hidden\",\n  \"@media print\": {\n    height: \"auto\",\n    display: \"block\"\n  },\n  \"@media screen and (max-width: 768px)\": (_b = {}, _b[\"&:not(.\" + THEME_PREFIX + \"-preview, .\" + THEME_PREFIX + \"-editor, .\" + THEME_PREFIX + \"-preset-column)\"] = {\n    height: \"calc($layout$height / 2)\"\n  }, _b.minWidth = \"100%;\", _b)\n}, _a$4[\"> .\" + THEME_PREFIX + \"-file-explorer\"] = {\n  flex: .2,\n  minWidth: 200,\n  \"@media screen and (max-width: 768px)\": {\n    flex: 1\n  }\n}, _a$4));\nvar SandpackLayout = /*#__PURE__*/React3.forwardRef(function (_a2, ref) {\n  var children = _a2.children,\n    className = _a2.className,\n    props = __rest(_a2, [\"children\", \"className\"]);\n  var sandpack = useSandpack().sandpack;\n  var classNames = useClassNames();\n  var combinedRef = useCombinedRefs(sandpack.lazyAnchorRef, ref);\n  return jsx(\"div\", __assign({\n    ref: combinedRef,\n    className: classNames(\"layout\", [layoutClassName, className])\n  }, props, {\n    children\n  }), void 0);\n});\nvar useErrorMessage = function () {\n  var _a2;\n  var sandpack = useSandpack().sandpack;\n  var error = sandpack.error;\n  return (_a2 = error === null || error === void 0 ? void 0 : error.message) !== null && _a2 !== void 0 ? _a2 : null;\n};\nvar FADE_ANIMATION_DURATION = 200;\nvar useLoadingOverlayState = function (clientId, externalLoading) {\n  var _a2 = useSandpack(),\n    sandpack = _a2.sandpack,\n    listen = _a2.listen;\n  var _b2 = React3.useState(\"LOADING\"),\n    state = _b2[0],\n    setState = _b2[1];\n  React3.useEffect(function () {\n    var unsubscribe = listen(function (message) {\n      if (message.type === \"start\" && message.firstLoad === true) {\n        setState(\"LOADING\");\n      }\n      if (message.type === \"done\") {\n        setState(function (prev) {\n          return prev === \"LOADING\" ? \"PRE_FADING\" : \"HIDDEN\";\n        });\n      }\n    }, clientId);\n    return function () {\n      unsubscribe();\n    };\n  }, [clientId, sandpack.status === \"idle\"]);\n  React3.useEffect(function () {\n    var fadeTimeout;\n    if (state === \"PRE_FADING\" && !externalLoading) {\n      setState(\"FADING\");\n    } else if (state === \"FADING\") {\n      fadeTimeout = setTimeout(function () {\n        return setState(\"HIDDEN\");\n      }, FADE_ANIMATION_DURATION);\n    }\n    return function () {\n      clearTimeout(fadeTimeout);\n    };\n  }, [state, externalLoading]);\n  if (sandpack.status === \"timeout\") {\n    return \"TIMEOUT\";\n  }\n  if (sandpack.status !== \"running\") {\n    return \"HIDDEN\";\n  }\n  return state;\n};\nvar useSandpackNavigation = function (clientId) {\n  var dispatch = useSandpack().dispatch;\n  return {\n    refresh: function () {\n      return dispatch({\n        type: \"refresh\"\n      }, clientId);\n    },\n    back: function () {\n      return dispatch({\n        type: \"urlback\"\n      }, clientId);\n    },\n    forward: function () {\n      return dispatch({\n        type: \"urlforward\"\n      }, clientId);\n    }\n  };\n};\nfunction getTranspiledCode(sandpack) {\n  var _a2, _b2;\n  var activeFile = sandpack.activeFile,\n    bundlerState = sandpack.bundlerState;\n  if (bundlerState == null) {\n    return null;\n  }\n  var tModule = bundlerState.transpiledModules[activeFile + \":\"];\n  return (_b2 = (_a2 = tModule === null || tModule === void 0 ? void 0 : tModule.source) === null || _a2 === void 0 ? void 0 : _a2.compiledCode) !== null && _b2 !== void 0 ? _b2 : null;\n}\nvar useTranspiledCode = function () {\n  var sandpack = useSandpack().sandpack;\n  if (sandpack.status !== \"running\") {\n    return null;\n  }\n  return getTranspiledCode(sandpack);\n};\nvar useSandpackClient = function (clientPropsOverride) {\n  var _a2 = useSandpack(),\n    sandpack = _a2.sandpack,\n    listen = _a2.listen,\n    dispatch = _a2.dispatch;\n  var iframeRef = React3.useRef(null);\n  var clientId = React3.useRef(generateRandomId());\n  React3.useEffect(function () {\n    var iframeElement = iframeRef.current;\n    var clientIdValue = clientId.current;\n    if (iframeElement !== null) {\n      sandpack.registerBundler(iframeElement, clientIdValue, clientPropsOverride);\n    }\n    return function () {\n      return sandpack.unregisterBundler(clientIdValue);\n    };\n  }, []);\n  var getClient = function () {\n    return sandpack.clients[clientId.current] || null;\n  };\n  return {\n    sandpack,\n    getClient,\n    clientId: clientId.current,\n    iframe: iframeRef,\n    listen: function (listener) {\n      return listen(listener, clientId.current);\n    },\n    dispatch: function (message) {\n      return dispatch(message, clientId.current);\n    }\n  };\n};\nvar useSandpackShell = function (clientId) {\n  var dispatch = useSandpack().dispatch;\n  return {\n    restart: function () {\n      return dispatch({\n        type: \"shell/restart\"\n      }, clientId);\n    },\n    openPreview: function () {\n      return dispatch({\n        type: \"shell/openPreview\"\n      }, clientId);\n    }\n  };\n};\nvar mapProgressMessage = function (originalMessage, firstTotalPending) {\n  var _a2;\n  switch (originalMessage.state) {\n    case \"downloading_manifest\":\n      return \"[1/3] Downloading manifest\";\n    case \"downloaded_module\":\n      return \"[2/3] Downloaded \" + originalMessage.name + \" (\" + (firstTotalPending - originalMessage.totalPending) + \"/\" + firstTotalPending + \")\";\n    case \"starting_command\":\n      return \"[3/3] Starting command\";\n    case \"command_running\":\n      return '[3/3] Running \"' + ((_a2 = originalMessage.command) === null || _a2 === void 0 ? void 0 : _a2.trim()) + '\"';\n  }\n};\nvar useSandpackPreviewProgress = function (props) {\n  var _a2 = React3.useState(false),\n    isReady = _a2[0],\n    setIsReady = _a2[1];\n  var _b2 = React3.useState(),\n    totalDependencies = _b2[0],\n    setTotalDependencies = _b2[1];\n  var _c2 = React3.useState(null),\n    loadingMessage = _c2[0],\n    setLoadingMessage = _c2[1];\n  var timeout = props === null || props === void 0 ? void 0 : props.timeout;\n  var clientId = props === null || props === void 0 ? void 0 : props.clientId;\n  var listen = useSandpack().listen;\n  React3.useEffect(function () {\n    var timer;\n    var unsubscribe = listen(function (message) {\n      if (message.type === \"start\" && message.firstLoad) {\n        setIsReady(false);\n      }\n      if (timeout) {\n        timer = setTimeout(function () {\n          setLoadingMessage(null);\n        }, timeout);\n      }\n      if (message.type === \"shell/progress\" && !isReady) {\n        if (!totalDependencies && message.data.state === \"downloaded_module\") {\n          setTotalDependencies(message.data.totalPending);\n        }\n        if (totalDependencies !== void 0) {\n          setLoadingMessage(mapProgressMessage(message.data, totalDependencies));\n        }\n      }\n      if (message.type === \"done\" && message.compilatonError === false) {\n        setLoadingMessage(null);\n        setIsReady(true);\n        clearTimeout(timer);\n      }\n    }, clientId);\n    return function () {\n      if (timer) {\n        clearTimeout(timer);\n      }\n      unsubscribe();\n    };\n  }, [clientId, isReady, totalDependencies, timeout]);\n  return loadingMessage;\n};\nvar MAX_MESSAGE_COUNT$1 = 400 * 2;\nvar useSandpackShellStdout = function (_a2) {\n  var clientId = _a2.clientId,\n    _b2 = _a2.maxMessageCount,\n    maxMessageCount = _b2 === void 0 ? MAX_MESSAGE_COUNT$1 : _b2;\n  _a2.resetOnPreviewRestart;\n  var _d = React3.useState([]),\n    logs = _d[0],\n    setLogs = _d[1];\n  var listen = useSandpack().listen;\n  React3.useEffect(function () {\n    var unsubscribe = listen(function (message) {\n      if (message.type === \"start\") {\n        setLogs([]);\n      } else if (message.type === \"stdout\" && message.payload.data && Boolean(message.payload.data.trim())) {\n        setLogs(function (prev) {\n          var messages = __spreadArray(__spreadArray([], prev, true), [{\n            data: message.payload.data,\n            id: generateRandomId()\n          }], false);\n          while (messages.length > maxMessageCount) {\n            messages.shift();\n          }\n          return messages;\n        });\n      }\n    }, clientId);\n    return unsubscribe;\n  }, [maxMessageCount, clientId]);\n  return {\n    logs,\n    reset: function () {\n      return setLogs([]);\n    }\n  };\n};\nvar mapBundlerErrors = function (originalMessage) {\n  var errorMessage = originalMessage.replace(\"[sandpack-client]: \", \"\");\n  if (/process.exit/.test(errorMessage)) {\n    var exitCode = errorMessage.match(/process.exit\\((\\d+)\\)/);\n    if (!exitCode) return errorMessage;\n    if (Number(exitCode[1]) === 0) {\n      return \"Server is not running, would you like to start it again?\";\n    }\n    return \"Server has crashed with status code \" + exitCode[1] + \", would you like to restart the server?\";\n  }\n  return errorMessage;\n};\nvar ErrorOverlay = function (props) {\n  var children = props.children,\n    className = props.className,\n    otherProps = __rest(props, [\"children\", \"className\"]);\n  var errorMessage = useErrorMessage();\n  var restart = useSandpackShell().restart;\n  var classNames = useClassNames();\n  var _a2 = useSandpack().sandpack,\n    runSandpack = _a2.runSandpack,\n    teamId = _a2.teamId;\n  var dispatch = useSandpack().dispatch;\n  if (!errorMessage && !children) {\n    return null;\n  }\n  var isSandpackBundlerError = errorMessage === null || errorMessage === void 0 ? void 0 : errorMessage.startsWith(\"[sandpack-client]\");\n  var privateDependencyError = errorMessage === null || errorMessage === void 0 ? void 0 : errorMessage.includes(\"NPM_REGISTRY_UNAUTHENTICATED_REQUEST\");\n  var onSignIn = function () {\n    if (teamId) {\n      dispatch({\n        type: \"sign-in\",\n        teamId\n      });\n    }\n  };\n  if (privateDependencyError) {\n    return jsxs(\"div\", __assign({\n      className: classNames(\"overlay\", [classNames(\"error\"), absoluteClassName, errorBundlerClassName, className])\n    }, props, {\n      children: [jsx(\"p\", __assign({\n        className: classNames(\"error-message\", [errorMessageClassName])\n      }, {\n        children: jsx(\"strong\", {\n          children: \"Unable to fetch required dependency.\"\n        }, void 0)\n      }), void 0), jsx(\"div\", __assign({\n        className: classNames(\"error-message\", [errorMessageClassName])\n      }, {\n        children: jsxs(\"p\", {\n          children: [\"Authentication required. Please sign in to your account (make sure to allow pop-ups to this page) and try again. If the issue persists, contact\", \" \", jsx(\"a\", __assign({\n            href: \"mailto:hello@codesandbox.io?subject=Sandpack Timeout Error\"\n          }, {\n            children: \"support\"\n          }), void 0), \" \", \"for further assistance.\"]\n        }, void 0)\n      }), void 0), jsx(\"div\", {\n        children: jsxs(\"button\", __assign({\n          className: classNames(\"button\", [buttonClassName, iconStandaloneClassName, roundedButtonClassName]),\n          onClick: onSignIn\n        }, {\n          children: [jsx(SignInIcon, {}, void 0), jsx(\"span\", {\n            children: \"Sign in\"\n          }, void 0)]\n        }), void 0)\n      }, void 0)]\n    }), void 0);\n  }\n  if (isSandpackBundlerError && errorMessage) {\n    return jsx(\"div\", __assign({\n      className: classNames(\"overlay\", [classNames(\"error\"), absoluteClassName, errorBundlerClassName, className])\n    }, otherProps, {\n      children: jsxs(\"div\", __assign({\n        className: classNames(\"error-message\", [errorMessageClassName])\n      }, {\n        children: [jsx(\"p\", __assign({\n          className: classNames(\"error-title\", [css({\n            fontWeight: \"bold\"\n          })])\n        }, {\n          children: \"Couldn't connect to server\"\n        }), void 0), jsx(\"p\", {\n          children: mapBundlerErrors(errorMessage)\n        }, void 0), jsx(\"div\", {\n          children: jsxs(\"button\", __assign({\n            className: classNames(\"button\", [classNames(\"icon-standalone\"), buttonClassName, iconStandaloneClassName, roundedButtonClassName]),\n            onClick: function () {\n              restart();\n              runSandpack();\n            },\n            title: \"Restart script\",\n            type: \"button\"\n          }, {\n            children: [jsx(RestartIcon, {}, void 0), \" \", jsx(\"span\", {\n              children: \"Restart\"\n            }, void 0)]\n          }), void 0)\n        }, void 0)]\n      }), void 0)\n    }), void 0);\n  }\n  return jsxs(\"div\", __assign({\n    className: classNames(\"overlay\", [classNames(\"error\"), absoluteClassName, errorClassName({\n      solidBg: true\n    }), className]),\n    translate: \"no\"\n  }, otherProps, {\n    children: [jsx(\"p\", __assign({\n      className: classNames(\"error-message\", [errorMessageClassName])\n    }, {\n      children: jsx(\"strong\", {\n        children: \"Something went wrong\"\n      }, void 0)\n    }), void 0), jsx(\"p\", __assign({\n      className: classNames(\"error-message\", [errorMessageClassName({\n        errorCode: true\n      })])\n    }, {\n      children: errorMessage || children\n    }), void 0)]\n  }), void 0);\n};\nfunction ansiToJSON(input, use_classes) {\n  if (use_classes === void 0) {\n    use_classes = false;\n  }\n  input = (0, import_escape_carriage.escapeCarriageReturn)(fixBackspace(input));\n  return import_anser.default.ansiToJson(input, {\n    json: true,\n    remove_empty: true,\n    use_classes\n  });\n}\nfunction createClass(bundle) {\n  var classNames = \"\";\n  if (bundle.bg) {\n    classNames += bundle.bg + \"-bg \";\n  }\n  if (bundle.fg) {\n    classNames += bundle.fg + \"-fg \";\n  }\n  if (bundle.decoration) {\n    classNames += \"ansi-\" + bundle.decoration + \" \";\n  }\n  if (classNames === \"\") {\n    return null;\n  }\n  classNames = classNames.substring(0, classNames.length - 1);\n  return classNames;\n}\nfunction createStyle(bundle) {\n  var style = {};\n  if (bundle.bg) {\n    style.backgroundColor = \"rgb(\" + bundle.bg + \")\";\n  }\n  if (bundle.fg) {\n    style.color = \"rgb(\" + bundle.fg + \")\";\n  }\n  switch (bundle.decoration) {\n    case \"bold\":\n      style.fontWeight = \"bold\";\n      break;\n    case \"dim\":\n      style.opacity = \"0.5\";\n      break;\n    case \"italic\":\n      style.fontStyle = \"italic\";\n      break;\n    case \"hidden\":\n      style.visibility = \"hidden\";\n      break;\n    case \"strikethrough\":\n      style.textDecoration = \"line-through\";\n      break;\n    case \"underline\":\n      style.textDecoration = \"underline\";\n      break;\n    case \"blink\":\n      style.textDecoration = \"blink\";\n      break;\n  }\n  return style;\n}\nfunction convertBundleIntoReact(linkify, useClasses, bundle, key) {\n  var style = useClasses ? null : createStyle(bundle);\n  var className = useClasses ? createClass(bundle) : null;\n  if (!linkify) {\n    return /*#__PURE__*/React3.createElement(\"span\", {\n      style,\n      key,\n      className\n    }, bundle.content);\n  }\n  var content = [];\n  var linkRegex = /(\\s|^)(https?:\\/\\/(?:www\\.|(?!www))[^\\s.]+\\.[^\\s]{2,}|www\\.[^\\s]+\\.[^\\s]{2,})/g;\n  var index = 0;\n  var match;\n  while ((match = linkRegex.exec(bundle.content)) !== null) {\n    var pre = match[1],\n      url = match[2];\n    var startIndex = match.index + pre.length;\n    if (startIndex > index) {\n      content.push(bundle.content.substring(index, startIndex));\n    }\n    var href = url.startsWith(\"www.\") ? \"http://\" + url : url;\n    content.push( /*#__PURE__*/React3.createElement(\"a\", {\n      key: index,\n      href,\n      target: \"_blank\"\n    }, \"\" + url));\n    index = linkRegex.lastIndex;\n  }\n  if (index < bundle.content.length) {\n    content.push(bundle.content.substring(index));\n  }\n  return /*#__PURE__*/React3.createElement(\"span\", {\n    style,\n    key,\n    className\n  }, content);\n}\nfunction Ansi(props) {\n  var className = props.className,\n    useClasses = props.useClasses,\n    children = props.children,\n    linkify = props.linkify;\n  return /*#__PURE__*/React3.createElement(\"code\", {\n    className\n  }, ansiToJSON(children !== null && children !== void 0 ? children : \"\", useClasses !== null && useClasses !== void 0 ? useClasses : false).map(convertBundleIntoReact.bind(null, linkify !== null && linkify !== void 0 ? linkify : false, useClasses !== null && useClasses !== void 0 ? useClasses : false)));\n}\nfunction fixBackspace(txt) {\n  var tmp = txt;\n  do {\n    txt = tmp;\n    tmp = txt.replace(/[^\\n]\\x08/gm, \"\");\n  } while (tmp.length < txt.length);\n  return txt;\n}\nvar StdoutList = function (_a2) {\n  var data = _a2.data;\n  var classNames = useClassNames();\n  return jsx(Fragment, {\n    children: data.map(function (_a3) {\n      var data2 = _a3.data,\n        id = _a3.id;\n      return jsx(\"div\", __assign({\n        className: classNames(\"console-item\", [consoleItemClassName$1])\n      }, {\n        children: jsx(Ansi, {\n          children: data2\n        }, void 0)\n      }), id);\n    })\n  }, void 0);\n};\nvar consoleItemClassName$1 = css({\n  width: \"100%\",\n  padding: \"$space$3 $space$2\",\n  fontSize: \".85em\",\n  position: \"relative\",\n  whiteSpace: \"pre\",\n  \"&:not(:first-child):after\": {\n    content: \"\",\n    position: \"absolute\",\n    top: 0,\n    left: 0,\n    right: 0,\n    height: 1,\n    background: \"$colors$surface3\"\n  }\n});\nvar getParameters = function (parameters) {\n  return import_lz_string.default.compressToBase64(JSON.stringify(parameters)).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n};\nvar CSB_URL = \"https://codesandbox.io/api/v1/sandboxes/define\";\nvar getFileParameters = function (files, environment) {\n  var normalizedFiles = Object.keys(files).reduce(function (prev, next) {\n    var _a2;\n    var fileName = next.replace(\"/\", \"\");\n    var value = {\n      content: files[next].code,\n      isBinary: false\n    };\n    return __assign(__assign({}, prev), (_a2 = {}, _a2[fileName] = value, _a2));\n  }, {});\n  return getParameters(__assign({\n    files: normalizedFiles\n  }, environment ? {\n    template: environment\n  } : null));\n};\nvar UnstyledOpenInCodeSandboxButton = function (_a2) {\n  var _b2, _c2, _d;\n  var children = _a2.children,\n    props = __rest(_a2, [\"children\"]);\n  var sandpack = useSandpack().sandpack;\n  var formRef = React3.useRef(null);\n  var _e = React3.useState(),\n    paramsValues = _e[0],\n    setParamsValues = _e[1];\n  React3.useEffect(function debounce() {\n    var timer = setTimeout(function () {\n      var params = getFileParameters(sandpack.files, sandpack.environment);\n      var searchParams = new URLSearchParams({\n        parameters: params,\n        query: new URLSearchParams({\n          file: sandpack.activeFile,\n          utm_medium: \"sandpack\"\n        }).toString()\n      });\n      setParamsValues(searchParams);\n    }, 600);\n    return function () {\n      clearTimeout(timer);\n    };\n  }, [sandpack.activeFile, sandpack.environment, sandpack.files]);\n  if (((_d = (_c2 = (_b2 = paramsValues === null || paramsValues === void 0 ? void 0 : paramsValues.get) === null || _b2 === void 0 ? void 0 : _b2.call(paramsValues, \"parameters\")) === null || _c2 === void 0 ? void 0 : _c2.length) !== null && _d !== void 0 ? _d : 0) > 1500) {\n    return jsxs(\"button\", __assign({\n      onClick: function () {\n        var _a3;\n        return (_a3 = formRef.current) === null || _a3 === void 0 ? void 0 : _a3.submit();\n      },\n      title: \"Open in CodeSandbox\",\n      type: \"button\"\n    }, props, {\n      children: [jsxs(\"form\", __assign({\n        ref: formRef,\n        action: CSB_URL,\n        method: \"POST\",\n        style: {\n          visibility: \"hidden\"\n        },\n        target: \"_blank\"\n      }, {\n        children: [jsx(\"input\", {\n          name: \"environment\",\n          type: \"hidden\",\n          value: sandpack.environment === \"node\" ? \"server\" : sandpack.environment\n        }, void 0), Array.from(paramsValues, function (_a3) {\n          var key = _a3[0],\n            value = _a3[1];\n          return jsx(\"input\", {\n            name: key,\n            type: \"hidden\",\n            value\n          }, key);\n        })]\n      }), void 0), children]\n    }), void 0);\n  }\n  return jsx(\"a\", __assign({\n    href: CSB_URL + \"?\" + (paramsValues === null || paramsValues === void 0 ? void 0 : paramsValues.toString()) + \"&environment=\" + (sandpack.environment === \"node\" ? \"server\" : sandpack.environment),\n    rel: \"noreferrer noopener\",\n    target: \"_blank\",\n    title: \"Open in CodeSandbox\"\n  }, props, {\n    children\n  }), void 0);\n};\nvar OpenInCodeSandboxButton = function () {\n  var classNames = useClassNames();\n  return jsxs(UnstyledOpenInCodeSandboxButton, __assign({\n    className: classNames(\"button\", [classNames(\"icon-standalone\"), buttonClassName, iconStandaloneClassName, roundedButtonClassName])\n  }, {\n    children: [jsx(ExportIcon, {}, void 0), jsx(\"span\", {\n      children: \"Open Sandbox\"\n    }, void 0)]\n  }), void 0);\n};\nvar _a$3;\nvar cubeClassName = css({\n  transform: \"translate(-4px, 9px) scale(0.13, 0.13)\",\n  \"*\": {\n    position: \"absolute\",\n    width: \"96px\",\n    height: \"96px\"\n  }\n});\nvar wrapperClassName$2 = css((_a$3 = {\n  position: \"absolute\",\n  right: \"$space$2\",\n  bottom: \"$space$2\",\n  zIndex: \"$top\",\n  width: \"32px\",\n  height: \"32px\",\n  borderRadius: \"$border$radius\"\n}, _a$3[\".\" + cubeClassName] = {\n  display: \"flex\"\n}, _a$3[\".sp-button.\" + buttonClassName] = {\n  display: \"none\"\n}, _a$3[\"&:hover .sp-button.\" + buttonClassName] = {\n  display: \"flex\"\n}, _a$3[\"&:hover .sp-button.\" + buttonClassName + \" > span\"] = {\n  display: \"none\"\n}, _a$3[\"&:hover .\" + cubeClassName] = {\n  display: \"none\"\n}, _a$3));\nvar cubeRotate = keyframes({\n  \"0%\": {\n    transform: \"rotateX(-25.5deg) rotateY(45deg)\"\n  },\n  \"100%\": {\n    transform: \"rotateX(-25.5deg) rotateY(405deg)\"\n  }\n});\nvar sidesClassNames = css({\n  animation: cubeRotate + \" 1s linear infinite\",\n  animationFillMode: \"forwards\",\n  transformStyle: \"preserve-3d\",\n  transform: \"rotateX(-25.5deg) rotateY(45deg)\",\n  \"*\": {\n    border: \"10px solid $colors$clickable\",\n    borderRadius: \"8px\",\n    background: \"$colors$surface1\"\n  },\n  \".top\": {\n    transform: \"rotateX(90deg) translateZ(44px)\",\n    transformOrigin: \"50% 50%\"\n  },\n  \".bottom\": {\n    transform: \"rotateX(-90deg) translateZ(44px)\",\n    transformOrigin: \"50% 50%\"\n  },\n  \".front\": {\n    transform: \"rotateY(0deg) translateZ(44px)\",\n    transformOrigin: \"50% 50%\"\n  },\n  \".back\": {\n    transform: \"rotateY(-180deg) translateZ(44px)\",\n    transformOrigin: \"50% 50%\"\n  },\n  \".left\": {\n    transform: \"rotateY(-90deg) translateZ(44px)\",\n    transformOrigin: \"50% 50%\"\n  },\n  \".right\": {\n    transform: \"rotateY(90deg) translateZ(44px)\",\n    transformOrigin: \"50% 50%\"\n  }\n});\nvar Loading = function (_a2) {\n  var className = _a2.className,\n    showOpenInCodeSandbox = _a2.showOpenInCodeSandbox,\n    props = __rest(_a2, [\"className\", \"showOpenInCodeSandbox\"]);\n  var classNames = useClassNames();\n  return jsxs(\"div\", __assign({\n    className: classNames(\"cube-wrapper\", [wrapperClassName$2, className]),\n    title: \"Open in CodeSandbox\"\n  }, props, {\n    children: [showOpenInCodeSandbox && jsx(OpenInCodeSandboxButton, {}, void 0), jsx(\"div\", __assign({\n      className: classNames(\"cube\", [cubeClassName])\n    }, {\n      children: jsxs(\"div\", __assign({\n        className: classNames(\"sides\", [sidesClassNames])\n      }, {\n        children: [jsx(\"div\", {\n          className: \"top\"\n        }, void 0), jsx(\"div\", {\n          className: \"right\"\n        }, void 0), jsx(\"div\", {\n          className: \"bottom\"\n        }, void 0), jsx(\"div\", {\n          className: \"left\"\n        }, void 0), jsx(\"div\", {\n          className: \"front\"\n        }, void 0), jsx(\"div\", {\n          className: \"back\"\n        }, void 0)]\n      }), void 0)\n    }), void 0)]\n  }), void 0);\n};\nvar loadingClassName = css({\n  backgroundColor: \"$colors$surface1\"\n});\nvar LoadingOverlay = function (_a2) {\n  var clientId = _a2.clientId,\n    loading = _a2.loading,\n    className = _a2.className,\n    style = _a2.style,\n    showOpenInCodeSandbox = _a2.showOpenInCodeSandbox,\n    props = __rest(_a2, [\"clientId\", \"loading\", \"className\", \"style\", \"showOpenInCodeSandbox\"]);\n  var classNames = useClassNames();\n  var _b2 = useSandpack().sandpack,\n    runSandpack = _b2.runSandpack,\n    environment = _b2.environment;\n  var _c2 = React3.useState(false),\n    shouldShowStdout = _c2[0],\n    setShouldShowStdout = _c2[1];\n  var loadingOverlayState = useLoadingOverlayState(clientId, loading);\n  var progressMessage = useSandpackPreviewProgress({\n    clientId\n  });\n  var stdoutData = useSandpackShellStdout({\n    clientId\n  }).logs;\n  React3.useEffect(function () {\n    var timer;\n    if (progressMessage === null || progressMessage === void 0 ? void 0 : progressMessage.includes(\"Running\")) {\n      timer = setTimeout(function () {\n        setShouldShowStdout(true);\n      }, 3e3);\n    }\n    return function () {\n      if (timer) {\n        clearTimeout(timer);\n      }\n    };\n  }, [progressMessage]);\n  if (loadingOverlayState === \"HIDDEN\") {\n    return null;\n  }\n  if (loadingOverlayState === \"TIMEOUT\") {\n    return jsx(\"div\", __assign({\n      className: classNames(\"overlay\", [classNames(\"error\"), absoluteClassName, errorClassName, errorBundlerClassName, className])\n    }, props, {\n      children: jsxs(\"div\", __assign({\n        className: classNames(\"error-message\", [errorMessageClassName])\n      }, {\n        children: [jsx(\"p\", __assign({\n          className: classNames(\"error-title\", [css({\n            fontWeight: \"bold\"\n          })])\n        }, {\n          children: \"Couldn't connect to server\"\n        }), void 0), jsx(\"div\", __assign({\n          className: classNames(\"error-message\", [errorMessageClassName])\n        }, {\n          children: jsxs(\"p\", {\n            children: [\"This means sandpack cannot connect to the runtime or your network is having some issues. Please check the network tab in your browser and try again. If the problem persists, report it via\", \" \", jsx(\"a\", __assign({\n              href: \"mailto:hello@codesandbox.io?subject=Sandpack Timeout Error\"\n            }, {\n              children: \"email\"\n            }), void 0), \" \", \"or submit an issue on\", \" \", jsx(\"a\", __assign({\n              href: \"https://github.com/codesandbox/sandpack/issues\",\n              rel: \"noreferrer noopener\",\n              target: \"_blank\"\n            }, {\n              children: \"GitHub.\"\n            }), void 0)]\n          }, void 0)\n        }), void 0), jsxs(\"p\", __assign({\n          className: classNames(\"error-message\", [errorMessageClassName({\n            errorCode: true\n          })])\n        }, {\n          children: [\"ENV: \", environment, jsx(\"br\", {}, void 0), \"ERROR: TIME_OUT\"]\n        }), void 0), jsx(\"div\", {\n          children: jsxs(\"button\", __assign({\n            className: classNames(\"button\", [classNames(\"icon-standalone\"), buttonClassName, iconStandaloneClassName, roundedButtonClassName]),\n            onClick: runSandpack,\n            title: \"Restart script\",\n            type: \"button\"\n          }, {\n            children: [jsx(RestartIcon, {}, void 0), \" \", jsx(\"span\", {\n              children: \"Try again\"\n            }, void 0)]\n          }), void 0)\n        }, void 0)]\n      }), void 0)\n    }), void 0);\n  }\n  var stillLoading = loadingOverlayState === \"LOADING\" || loadingOverlayState === \"PRE_FADING\";\n  return jsxs(Fragment, {\n    children: [jsxs(\"div\", __assign({\n      className: classNames(\"overlay\", [classNames(\"loading\"), absoluteClassName, loadingClassName, className]),\n      style: __assign(__assign({}, style), {\n        opacity: stillLoading ? 1 : 0,\n        transition: \"opacity \" + FADE_ANIMATION_DURATION + \"ms ease-out\"\n      })\n    }, props, {\n      children: [shouldShowStdout && jsx(\"div\", __assign({\n        className: stdoutPreview.toString()\n      }, {\n        children: jsx(StdoutList, {\n          data: stdoutData\n        }, void 0)\n      }), void 0), jsx(Loading, {\n        showOpenInCodeSandbox\n      }, void 0)]\n    }), void 0), progressMessage && jsx(\"div\", __assign({\n      className: progressClassName$1.toString()\n    }, {\n      children: jsx(\"p\", {\n        children: progressMessage\n      }, void 0)\n    }), void 0)]\n  }, void 0);\n};\nvar stdoutPreview = css({\n  position: \"absolute\",\n  left: 0,\n  right: 0,\n  bottom: \"$space$8\",\n  overflow: \"auto\",\n  opacity: .5,\n  overflowX: \"hidden\"\n});\nvar progressClassName$1 = css({\n  position: \"absolute\",\n  left: \"$space$5\",\n  bottom: \"$space$4\",\n  zIndex: \"$top\",\n  color: \"$colors$clickable\",\n  animation: fadeIn + \" 150ms ease\",\n  fontFamily: \"$font$mono\",\n  fontSize: \".8em\",\n  width: \"75%\",\n  p: {\n    whiteSpace: \"nowrap\",\n    margin: 0,\n    textOverflow: \"ellipsis\",\n    overflow: \"hidden\"\n  }\n});\nvar DependenciesProgress = function (_a2) {\n  var clientId = _a2.clientId;\n  var progressMessage = useSandpackPreviewProgress({\n    timeout: 3e3,\n    clientId\n  });\n  if (!progressMessage) {\n    return null;\n  }\n  return jsx(\"div\", __assign({\n    className: progressClassName.toString()\n  }, {\n    children: jsx(\"p\", {\n      children: progressMessage\n    }, void 0)\n  }), void 0);\n};\nvar progressClassName = css({\n  position: \"absolute\",\n  left: \"$space$5\",\n  bottom: \"$space$4\",\n  zIndex: \"$top\",\n  color: \"$colors$clickable\",\n  animation: fadeIn + \" 150ms ease\",\n  fontFamily: \"$font$mono\",\n  fontSize: \".8em\",\n  width: \"75%\",\n  p: {\n    whiteSpace: \"nowrap\",\n    margin: 0,\n    textOverflow: \"ellipsis\",\n    overflow: \"hidden\"\n  }\n});\nvar explorerClassName = css({\n  borderRadius: \"0\",\n  width: \"100%\",\n  padding: 0,\n  marginBottom: \"$space$2\",\n  span: {\n    textOverflow: \"ellipsis\",\n    whiteSpace: \"nowrap\",\n    overflow: \"hidden\"\n  },\n  svg: {\n    marginRight: \"$space$1\"\n  }\n});\nvar File = function (_a2) {\n  var selectFile = _a2.selectFile,\n    path = _a2.path,\n    active = _a2.active,\n    onClick = _a2.onClick,\n    depth = _a2.depth,\n    isDirOpen = _a2.isDirOpen;\n  var classNames = useClassNames();\n  var onClickButton = function (event) {\n    if (selectFile) {\n      selectFile(path);\n    }\n    onClick === null || onClick === void 0 ? void 0 : onClick(event);\n  };\n  var fileName = path.split(\"/\").filter(Boolean).pop();\n  var getIcon = function () {\n    if (selectFile) return jsx(FileIcon, {}, void 0);\n    return isDirOpen ? jsx(DirectoryIconOpen, {}, void 0) : jsx(DirectoryIconClosed, {}, void 0);\n  };\n  return jsxs(\"button\", __assign({\n    className: classNames(\"button\", [classNames(\"explorer\"), buttonClassName, explorerClassName]),\n    \"data-active\": active,\n    onClick: onClickButton,\n    style: {\n      paddingLeft: 18 * depth + \"px\"\n    },\n    title: fileName,\n    type: \"button\"\n  }, {\n    children: [getIcon(), jsx(\"span\", {\n      children: fileName\n    }, void 0)]\n  }), void 0);\n};\nvar Directory = function (_a2) {\n  var prefixedPath = _a2.prefixedPath,\n    files = _a2.files,\n    selectFile = _a2.selectFile,\n    activeFile = _a2.activeFile,\n    depth = _a2.depth,\n    autoHiddenFiles = _a2.autoHiddenFiles,\n    visibleFiles = _a2.visibleFiles,\n    initialCollapsedFolder = _a2.initialCollapsedFolder;\n  var _b2 = React3.useState(!(initialCollapsedFolder === null || initialCollapsedFolder === void 0 ? void 0 : initialCollapsedFolder.includes(prefixedPath))),\n    open = _b2[0],\n    setOpen = _b2[1];\n  var toggle = function () {\n    return setOpen(function (prev) {\n      return !prev;\n    });\n  };\n  return jsxs(\"div\", {\n    children: [jsx(File, {\n      depth,\n      isDirOpen: open,\n      onClick: toggle,\n      path: prefixedPath + \"/\"\n    }, void 0), open && jsx(ModuleList, {\n      activeFile,\n      autoHiddenFiles,\n      depth: depth + 1,\n      files,\n      initialCollapsedFolder,\n      prefixedPath,\n      selectFile,\n      visibleFiles\n    }, void 0)]\n  }, prefixedPath);\n};\nvar fromPropsToModules = function (_a2) {\n  var autoHiddenFiles = _a2.autoHiddenFiles,\n    visibleFiles = _a2.visibleFiles,\n    files = _a2.files,\n    prefixedPath = _a2.prefixedPath;\n  var hasVisibleFilesOption = visibleFiles.length > 0;\n  var filterByHiddenProperty = autoHiddenFiles && !hasVisibleFilesOption;\n  var filterByVisibleFilesOption = autoHiddenFiles && !!hasVisibleFilesOption;\n  var fileListWithoutPrefix = Object.keys(files).filter(function (filePath) {\n    var _a3;\n    var isValidatedPath = filePath.startsWith(prefixedPath);\n    if (filterByVisibleFilesOption) {\n      return isValidatedPath && visibleFiles.includes(filePath);\n    }\n    if (filterByHiddenProperty) {\n      return isValidatedPath && !((_a3 = files[filePath]) === null || _a3 === void 0 ? void 0 : _a3.hidden);\n    }\n    return isValidatedPath;\n  }).map(function (file) {\n    return file.substring(prefixedPath.length);\n  });\n  var directories = new Set(fileListWithoutPrefix.filter(function (file) {\n    return file.includes(\"/\");\n  }).map(function (file) {\n    return \"\" + prefixedPath + file.split(\"/\")[0] + \"/\";\n  }));\n  var modules = fileListWithoutPrefix.filter(function (file) {\n    return !file.includes(\"/\");\n  }).map(function (file) {\n    return \"\" + prefixedPath + file;\n  });\n  return {\n    directories: Array.from(directories),\n    modules\n  };\n};\nvar ModuleList = function (_a2) {\n  var _b2 = _a2.depth,\n    depth = _b2 === void 0 ? 0 : _b2,\n    activeFile = _a2.activeFile,\n    selectFile = _a2.selectFile,\n    prefixedPath = _a2.prefixedPath,\n    files = _a2.files,\n    autoHiddenFiles = _a2.autoHiddenFiles,\n    visibleFiles = _a2.visibleFiles,\n    initialCollapsedFolder = _a2.initialCollapsedFolder;\n  var _c2 = fromPropsToModules({\n      visibleFiles,\n      autoHiddenFiles,\n      prefixedPath,\n      files\n    }),\n    directories = _c2.directories,\n    modules = _c2.modules;\n  return jsxs(\"div\", {\n    children: [directories.map(function (dir) {\n      return jsx(Directory, {\n        activeFile,\n        autoHiddenFiles,\n        depth,\n        files,\n        initialCollapsedFolder,\n        prefixedPath: dir,\n        selectFile,\n        visibleFiles\n      }, dir);\n    }), modules.map(function (file) {\n      return jsx(File, {\n        active: activeFile === file,\n        depth,\n        path: file,\n        selectFile\n      }, file);\n    })]\n  }, void 0);\n};\nvar fileExplorerClassName = css({\n  padding: \"$space$3\",\n  overflow: \"auto\",\n  height: \"100%\"\n});\nvar SandpackFileExplorer = function (_a2) {\n  var className = _a2.className,\n    _b2 = _a2.autoHiddenFiles,\n    autoHiddenFiles = _b2 === void 0 ? false : _b2,\n    _c2 = _a2.initialCollapsedFolder,\n    initialCollapsedFolder = _c2 === void 0 ? [] : _c2,\n    props = __rest(_a2, [\"className\", \"autoHiddenFiles\", \"initialCollapsedFolder\"]);\n  var _d = useSandpack(),\n    _e = _d.sandpack,\n    status = _e.status,\n    updateFile = _e.updateFile,\n    deleteFile = _e.deleteFile,\n    activeFile = _e.activeFile,\n    files = _e.files,\n    openFile = _e.openFile,\n    visibleFilesFromProps = _e.visibleFilesFromProps,\n    listen = _d.listen;\n  var classNames = useClassNames();\n  React3.useEffect(function watchFSFilesChanges() {\n    if (status !== \"running\") return;\n    var unsubscribe = listen(function (message) {\n      if (message.type === \"fs/change\") {\n        updateFile(message.path, message.content, false);\n      }\n      if (message.type === \"fs/remove\") {\n        deleteFile(message.path, false);\n      }\n    });\n    return unsubscribe;\n  }, [status]);\n  var orderedFiles = Object.keys(files).sort().reduce(function (obj, key) {\n    obj[key] = files[key];\n    return obj;\n  }, {});\n  return jsx(\"div\", __assign({\n    className: classNames(\"file-explorer\", [stackClassName, className])\n  }, props, {\n    children: jsx(\"div\", __assign({\n      className: classNames(\"file-explorer-list\", [fileExplorerClassName])\n    }, {\n      children: jsx(ModuleList, {\n        activeFile,\n        autoHiddenFiles,\n        files: orderedFiles,\n        initialCollapsedFolder,\n        prefixedPath: \"/\",\n        selectFile: openFile,\n        visibleFiles: visibleFilesFromProps\n      }, void 0)\n    }), void 0)\n  }), void 0);\n};\nvar splitUrl = function (url) {\n  var match = url.match(/(https?:\\/\\/.*?)\\//);\n  if (match && match[1]) {\n    return [match[1], url.replace(match[1], \"\")];\n  }\n  return [url, \"/\"];\n};\nvar navigatorClassName = css({\n  display: \"flex\",\n  alignItems: \"center\",\n  height: \"$layout$headerHeight\",\n  borderBottom: \"1px solid $colors$surface2\",\n  padding: \"$space$3 $space$2\",\n  background: \"$colors$surface1\"\n});\nvar inputClassName = css({\n  backgroundColor: \"$colors$surface2\",\n  color: \"$colors$clickable\",\n  padding: \"$space$1 $space$3\",\n  borderRadius: \"99999px\",\n  border: \"1px solid $colors$surface2\",\n  height: \"24px\",\n  lineHeight: \"24px\",\n  fontSize: \"inherit\",\n  outline: \"none\",\n  flex: 1,\n  marginLeft: \"$space$4\",\n  width: \"0\",\n  transition: \"background $transitions$default\",\n  \"&:hover\": {\n    backgroundColor: \"$colors$surface3\"\n  },\n  \"&:focus\": {\n    backgroundColor: \"$surface1\",\n    border: \"1px solid $colors$accent\",\n    color: \"$colors$base\"\n  }\n});\nvar Navigator = function (_a2) {\n  var _b2;\n  var clientId = _a2.clientId,\n    onURLChange = _a2.onURLChange,\n    className = _a2.className,\n    startRoute = _a2.startRoute,\n    props = __rest(_a2, [\"clientId\", \"onURLChange\", \"className\", \"startRoute\"]);\n  var _c2 = React3.useState(\"\"),\n    baseUrl = _c2[0],\n    setBaseUrl = _c2[1];\n  var _d = useSandpack(),\n    sandpack = _d.sandpack,\n    dispatch = _d.dispatch,\n    listen = _d.listen;\n  var _e = React3.useState((_b2 = startRoute !== null && startRoute !== void 0 ? startRoute : sandpack.startRoute) !== null && _b2 !== void 0 ? _b2 : \"/\"),\n    relativeUrl = _e[0],\n    setRelativeUrl = _e[1];\n  var _f = React3.useState(false),\n    backEnabled = _f[0],\n    setBackEnabled = _f[1];\n  var _g = React3.useState(false),\n    forwardEnabled = _g[0],\n    setForwardEnabled = _g[1];\n  var classNames = useClassNames();\n  React3.useEffect(function () {\n    var unsub = listen(function (message) {\n      if (message.type === \"urlchange\") {\n        var url = message.url,\n          back = message.back,\n          forward = message.forward;\n        var _a3 = splitUrl(url),\n          newBaseUrl = _a3[0],\n          newRelativeUrl = _a3[1];\n        setBaseUrl(newBaseUrl);\n        setRelativeUrl(newRelativeUrl);\n        setBackEnabled(back);\n        setForwardEnabled(forward);\n      }\n    }, clientId);\n    return function () {\n      return unsub();\n    };\n  }, []);\n  var handleInputChange = function (e) {\n    var path = e.target.value.startsWith(\"/\") ? e.target.value : \"/\" + e.target.value;\n    setRelativeUrl(path);\n  };\n  var handleKeyDown = function (e) {\n    if (e.code === \"Enter\") {\n      e.preventDefault();\n      e.stopPropagation();\n      if (typeof onURLChange === \"function\") {\n        onURLChange(baseUrl + e.currentTarget.value);\n      }\n    }\n  };\n  var handleRefresh = function () {\n    dispatch({\n      type: \"refresh\"\n    });\n  };\n  var handleBack = function () {\n    dispatch({\n      type: \"urlback\"\n    });\n  };\n  var handleForward = function () {\n    dispatch({\n      type: \"urlforward\"\n    });\n  };\n  var buttonsClassNames = classNames(\"button\", [classNames(\"icon\"), buttonClassName, iconClassName, css({\n    minWidth: \"$space$6\",\n    justifyContent: \"center\"\n  })]);\n  return jsxs(\"div\", __assign({\n    className: classNames(\"navigator\", [navigatorClassName, className])\n  }, props, {\n    children: [jsx(\"button\", __assign({\n      \"aria-label\": \"Go back one page\",\n      className: buttonsClassNames,\n      disabled: !backEnabled,\n      onClick: handleBack,\n      type: \"button\"\n    }, {\n      children: jsx(BackwardIcon, {}, void 0)\n    }), void 0), jsx(\"button\", __assign({\n      \"aria-label\": \"Go forward one page\",\n      className: buttonsClassNames,\n      disabled: !forwardEnabled,\n      onClick: handleForward,\n      type: \"button\"\n    }, {\n      children: jsx(ForwardIcon, {}, void 0)\n    }), void 0), jsx(\"button\", __assign({\n      \"aria-label\": \"Refresh page\",\n      className: buttonsClassNames,\n      onClick: handleRefresh,\n      type: \"button\"\n    }, {\n      children: jsx(RefreshIcon, {}, void 0)\n    }), void 0), jsx(\"input\", {\n      \"aria-label\": \"Current Sandpack URL\",\n      className: classNames(\"input\", [inputClassName]),\n      name: \"Current Sandpack URL\",\n      onChange: handleInputChange,\n      onKeyDown: handleKeyDown,\n      type: \"text\",\n      value: relativeUrl\n    }, void 0)]\n  }), void 0);\n};\nvar _a$2;\nvar previewClassName = css((_a$2 = {\n  flex: 1,\n  display: \"flex\",\n  flexDirection: \"column\",\n  background: \"white\",\n  overflow: \"auto\",\n  position: \"relative\"\n}, _a$2[\".\" + THEME_PREFIX + \"-bridge-frame\"] = {\n  border: 0,\n  position: \"absolute\",\n  left: \"$space$2\",\n  bottom: \"$space$2\",\n  zIndex: \"$top\",\n  height: 12,\n  width: \"30%\",\n  mixBlendMode: \"multiply\",\n  pointerEvents: \"none\"\n}, _a$2));\nvar previewIframe = css({\n  border: \"0\",\n  outline: \"0\",\n  width: \"100%\",\n  height: \"100%\",\n  minHeight: \"160px\",\n  maxHeight: \"2000px\",\n  flex: 1\n});\nvar previewActionsClassName$1 = css({\n  display: \"flex\",\n  position: \"absolute\",\n  bottom: \"$space$2\",\n  right: \"$space$2\",\n  zIndex: \"$overlay\",\n  gap: \"$space$2\"\n});\nvar SandpackPreview = /*#__PURE__*/React3.forwardRef(function (_a2, ref) {\n  var _b2 = _a2.showNavigator,\n    showNavigator = _b2 === void 0 ? false : _b2,\n    _c2 = _a2.showRefreshButton,\n    showRefreshButton = _c2 === void 0 ? true : _c2,\n    _d = _a2.showOpenInCodeSandbox,\n    showOpenInCodeSandbox = _d === void 0 ? true : _d,\n    _e = _a2.showSandpackErrorOverlay,\n    showSandpackErrorOverlay = _e === void 0 ? true : _e;\n  _a2.showOpenNewtab;\n  var _g = _a2.showRestartButton,\n    showRestartButton = _g === void 0 ? true : _g,\n    _h = _a2.actionsChildren,\n    actionsChildren = _h === void 0 ? jsx(Fragment, {}, void 0) : _h,\n    children = _a2.children,\n    className = _a2.className,\n    _j = _a2.startRoute,\n    startRoute = _j === void 0 ? \"/\" : _j,\n    props = __rest(_a2, [\"showNavigator\", \"showRefreshButton\", \"showOpenInCodeSandbox\", \"showSandpackErrorOverlay\", \"showOpenNewtab\", \"showRestartButton\", \"actionsChildren\", \"children\", \"className\", \"startRoute\"]);\n  var _k = useSandpackClient({\n      startRoute\n    }),\n    sandpack = _k.sandpack,\n    listen = _k.listen,\n    iframe = _k.iframe,\n    getClient = _k.getClient,\n    clientId = _k.clientId,\n    dispatch = _k.dispatch;\n  var _l = React3.useState(null),\n    iframeComputedHeight = _l[0],\n    setComputedAutoHeight = _l[1];\n  var status = sandpack.status;\n  var refresh = useSandpackNavigation(clientId).refresh;\n  var restart = useSandpackShell(clientId).restart;\n  var classNames = useClassNames();\n  React3.useEffect(function () {\n    var unsubscribe = listen(function (message) {\n      if (message.type === \"resize\") {\n        setComputedAutoHeight(message.height);\n      }\n    });\n    return unsubscribe;\n  }, []);\n  React3.useImperativeHandle(ref, function () {\n    return {\n      clientId,\n      getClient\n    };\n  }, [getClient, clientId]);\n  var handleNewURL = function (newUrl) {\n    if (!iframe.current) {\n      return;\n    }\n    iframe.current.src = newUrl;\n  };\n  return jsxs(SandpackStack, __assign({\n    className: classNames(\"preview\", [className])\n  }, props, {\n    children: [showNavigator && jsx(Navigator, {\n      clientId,\n      onURLChange: handleNewURL,\n      startRoute\n    }, void 0), jsxs(\"div\", __assign({\n      className: classNames(\"preview-container\", [previewClassName])\n    }, {\n      children: [jsx(\"iframe\", {\n        ref: iframe,\n        className: classNames(\"preview-iframe\", [previewIframe]),\n        style: {\n          // set height based on the content only in auto mode\n          // and when the computed height was returned by the bundler\n          height: iframeComputedHeight ? iframeComputedHeight : void 0\n        },\n        title: \"Sandpack Preview\"\n      }, void 0), jsxs(\"div\", __assign({\n        className: classNames(\"preview-actions\", [previewActionsClassName$1])\n      }, {\n        children: [actionsChildren, showRestartButton && sandpack.environment === \"node\" && jsx(RoundedButton, __assign({\n          onClick: restart\n        }, {\n          children: jsx(RestartIcon, {}, void 0)\n        }), void 0), !showNavigator && showRefreshButton && status === \"running\" && jsx(RoundedButton, __assign({\n          onClick: refresh\n        }, {\n          children: jsx(RefreshIcon, {}, void 0)\n        }), void 0), sandpack.teamId && jsx(\"button\", __assign({\n          className: classNames(\"button\", [classNames(\"icon-standalone\"), buttonClassName, iconStandaloneClassName, roundedButtonClassName]),\n          onClick: function () {\n            return dispatch({\n              type: \"sign-out\"\n            });\n          },\n          title: \"Sign out\",\n          type: \"button\"\n        }, {\n          children: jsx(SignOutIcon, {}, void 0)\n        }), void 0), showOpenInCodeSandbox && jsx(OpenInCodeSandboxButton, {}, void 0)]\n      }), void 0), jsx(LoadingOverlay, {\n        clientId,\n        showOpenInCodeSandbox\n      }, void 0), showSandpackErrorOverlay && jsx(ErrorOverlay, {}, void 0), children]\n    }), void 0)]\n  }), void 0);\n});\nvar _a$1;\nvar transpiledCodeClassName = css((_a$1 = {\n  display: \"flex\",\n  flexDirection: \"column\",\n  width: \"100%\",\n  position: \"relative\",\n  overflow: \"auto\",\n  minHeight: \"160px\",\n  flex: 1\n}, _a$1[\".\" + THEME_PREFIX + \"-stack\"] = {\n  height: \"100%\"\n}, _a$1));\nvar SandpackTranspiledCode = function (_a2) {\n  var className = _a2.className,\n    props = __rest(_a2, [\"className\"]);\n  var sandpack = useSandpack().sandpack;\n  var transpiledCode = useTranspiledCode();\n  var classNames = useClassNames();\n  var hiddenIframeRef = React3.useRef(null);\n  React3.useEffect(function () {\n    var hiddenIframe = hiddenIframeRef.current;\n    if (hiddenIframe) {\n      sandpack.registerBundler(hiddenIframe, \"hidden\");\n    }\n    return function () {\n      sandpack.unregisterBundler(\"hidden\");\n    };\n  }, []);\n  return jsxs(\"div\", __assign({\n    className: classNames(\"transpiled-code\", [stackClassName, transpiledCodeClassName, className])\n  }, props, {\n    children: [jsx(SandpackCodeViewer, __assign({\n      code: transpiledCode !== null && transpiledCode !== void 0 ? transpiledCode : \"\",\n      initMode: sandpack.initMode\n    }, props), void 0), jsx(\"iframe\", {\n      ref: hiddenIframeRef,\n      style: {\n        display: \"none\"\n      },\n      title: \"transpiled sandpack code\"\n    }, void 0), jsx(ErrorOverlay, {}, void 0), jsx(LoadingOverlay, {\n      clientId: \"hidden\",\n      showOpenInCodeSandbox: false\n    }, void 0)]\n  }), void 0);\n};\nvar wrapperClassName$1 = css({\n  justifyContent: \"space-between\",\n  borderBottom: \"1px solid $colors$surface2\",\n  padding: \"0 $space$2\",\n  fontFamily: \"$font$mono\",\n  height: \"$layout$headerHeight\",\n  minHeight: \"$layout$headerHeight\",\n  overflowX: \"auto\",\n  whiteSpace: \"nowrap\"\n});\nvar flexClassName$1 = css({\n  display: \"flex\",\n  flexDirection: \"row\",\n  alignItems: \"center\",\n  gap: \"$space$2\"\n});\nvar Header$1 = function (_a2) {\n  var status = _a2.status,\n    suiteOnly = _a2.suiteOnly,\n    setSuiteOnly = _a2.setSuiteOnly,\n    setVerbose = _a2.setVerbose,\n    verbose = _a2.verbose,\n    watchMode = _a2.watchMode,\n    setWatchMode = _a2.setWatchMode,\n    showSuitesOnly = _a2.showSuitesOnly,\n    showWatchButton = _a2.showWatchButton,\n    showVerboseButton = _a2.showVerboseButton,\n    hideTestsAndSupressLogs = _a2.hideTestsAndSupressLogs;\n  var classNames = useClassNames();\n  var buttonsClassName = classNames(\"test-header-button\", [buttonClassName, roundedButtonClassName, css({\n    padding: \"$space$1 $space$3\"\n  })]);\n  return jsxs(\"div\", __assign({\n    className: classNames(\"test-header\", [wrapperClassName$1, flexClassName$1])\n  }, {\n    children: [jsx(\"div\", __assign({\n      className: classNames(\"test-header-wrapper\", [flexClassName$1])\n    }, {\n      children: jsxs(\"p\", __assign({\n        className: classNames(\"test-header-title\", [css({\n          lineHeight: 1,\n          margin: 0,\n          color: \"$colors$base\",\n          fontSize: \"$font$size\",\n          display: \"flex\",\n          alignItems: \"center\",\n          gap: \"$space$2\"\n        })])\n      }, {\n        children: [jsx(ConsoleIcon, {}, void 0), \"Tests\"]\n      }), void 0)\n    }), void 0), jsxs(\"div\", __assign({\n      className: classNames(\"test-header-actions\", [flexClassName$1])\n    }, {\n      children: [showSuitesOnly && jsx(\"button\", __assign({\n        className: buttonsClassName,\n        \"data-active\": suiteOnly,\n        disabled: status === \"initialising\",\n        onClick: setSuiteOnly,\n        type: \"button\"\n      }, {\n        children: \"Suite only\"\n      }), void 0), showVerboseButton && jsx(\"button\", __assign({\n        className: buttonsClassName,\n        \"data-active\": verbose,\n        disabled: status === \"initialising\" || hideTestsAndSupressLogs,\n        onClick: setVerbose,\n        type: \"button\"\n      }, {\n        children: \"Verbose\"\n      }), void 0), showWatchButton && jsx(\"button\", __assign({\n        className: buttonsClassName,\n        \"data-active\": watchMode,\n        disabled: status === \"initialising\",\n        onClick: setWatchMode,\n        type: \"button\"\n      }, {\n        children: \"Watch\"\n      }), void 0)]\n    }), void 0)]\n  }), void 0);\n};\nvar RunButton = function (_a2) {\n  var onClick = _a2.onClick;\n  return jsx(RoundedButton, __assign({\n    onClick,\n    title: \"Run tests\"\n  }, {\n    children: jsx(RunIcon, {}, void 0)\n  }), void 0);\n};\nvar setTestTheme = function (isDark) {\n  return {\n    \"--test-pass\": isDark ? \"#18df16\" : \"#15c213\",\n    \"--test-fail\": isDark ? \"#df162b\" : \"#c21325\",\n    \"--test-skip\": isDark ? \"#eace2b\" : \"#c2a813\",\n    \"--test-run\": isDark ? \"#eace2b\" : \"#c2a813\",\n    \"--test-title\": isDark ? \"#3fbabe\" : \"#256c6f\"\n  };\n};\nvar color = css({\n  variants: {\n    status: {\n      pass: {\n        color: \"var(--test-pass)\"\n      },\n      fail: {\n        color: \"var(--test-fail)\"\n      },\n      skip: {\n        color: \"var(--test-skip)\"\n      },\n      title: {\n        color: \"var(--test-title)\"\n      }\n    }\n  }\n});\nvar passTextClassName = color({\n  status: \"pass\"\n});\nvar failTextClassName = color({\n  status: \"fail\"\n});\nvar skipTextClassName = color({\n  status: \"skip\"\n});\nvar titleTextClassName = color({\n  status: \"title\"\n});\nvar background = css({\n  variants: {\n    status: {\n      pass: {\n        background: \"var(--test-pass)\",\n        color: \"$colors$surface1\"\n      },\n      fail: {\n        background: \"var(--test-fail)\",\n        color: \"$colors$surface1\"\n      },\n      run: {\n        background: \"var(--test-run)\",\n        color: \"$colors$surface1\"\n      }\n    }\n  }\n});\nvar runBackgroundClassName = background({\n  status: \"run\"\n});\nvar passBackgroundClassName = background({\n  status: \"pass\"\n});\nvar failBackgroundClassName = background({\n  status: \"fail\"\n});\nvar testContainerClassName = css({\n  marginLeft: \"$space$4\"\n});\nvar containerClassName$4 = css({\n  marginBottom: \"$space$2\",\n  color: \"$colors$clickable\"\n});\nvar testClassName = css({\n  marginBottom: \"$space$2\",\n  color: \"$colors$hover\"\n});\nvar durationClassName = css({\n  marginLeft: \"$space$2\"\n});\nvar gapRightClassName = css({\n  marginRight: \"$space$2\"\n});\nvar Tests = function (_a2) {\n  var tests = _a2.tests;\n  _a2.style;\n  var classNames = useClassNames();\n  return jsx(\"div\", __assign({\n    className: classNames(\"test\", [testContainerClassName])\n  }, {\n    children: tests.map(function (test) {\n      return jsxs(\"div\", __assign({\n        className: classNames(\"test-result\", [containerClassName$4])\n      }, {\n        children: [test.status === \"pass\" && jsx(\"span\", __assign({\n          className: classNames(\"test-pass-text\", [passTextClassName, gapRightClassName])\n        }, {\n          children: \"\u2713\"\n        }), void 0), test.status === \"fail\" && jsx(\"span\", __assign({\n          className: classNames(\"test-fail-text\", [failTextClassName, gapRightClassName])\n        }, {\n          children: \"\u2715\"\n        }), void 0), test.status === \"idle\" && jsx(\"span\", __assign({\n          className: classNames(\"test-idle-text\", [skipTextClassName, gapRightClassName])\n        }, {\n          children: \"\u25CB\"\n        }), void 0), jsx(\"span\", __assign({\n          className: classNames(\"test-name-text\", [testClassName])\n        }, {\n          children: test.name\n        }), void 0), test.duration !== void 0 && jsxs(\"span\", __assign({\n          className: classNames(\"test-duration-text\", [durationClassName])\n        }, {\n          children: [\"(\", test.duration, \" ms)\"]\n        }), void 0)]\n      }), test.name);\n    })\n  }), void 0);\n};\nvar getTests = function (block) {\n  var _a2;\n  var _b2, _c2;\n  return (_a2 = Object.values((_b2 = block.tests) !== null && _b2 !== void 0 ? _b2 : {})).concat.apply(_a2, Object.values((_c2 = block.describes) !== null && _c2 !== void 0 ? _c2 : {}).map(getTests));\n};\nvar getFailingTests = function (block) {\n  return getTests(block).filter(function (t2) {\n    return t2.status === \"fail\";\n  });\n};\nvar getAllTestResults = function (specs) {\n  return specs.map(getSpecTestResults).reduce(function (acc, stats) {\n    return {\n      pass: acc.pass + stats.pass,\n      fail: acc.fail + stats.fail,\n      skip: acc.skip + stats.skip,\n      total: acc.total + stats.total\n    };\n  }, {\n    pass: 0,\n    skip: 0,\n    fail: 0,\n    total: 0\n  });\n};\nvar getSpecTestResults = function (spec) {\n  return getTests(spec).reduce(function (acc, test) {\n    return {\n      pass: test.status === \"pass\" ? acc.pass + 1 : acc.pass,\n      fail: test.status === \"fail\" ? acc.fail + 1 : acc.fail,\n      skip: test.status === \"idle\" || test.status === \"running\" ? acc.skip + 1 : acc.skip,\n      total: acc.total + 1\n    };\n  }, {\n    pass: 0,\n    fail: 0,\n    skip: 0,\n    total: 0\n  });\n};\nvar getAllSuiteResults = function (specs) {\n  return specs.filter(function (spec) {\n    var _a2, _b2;\n    return Object.values((_a2 = spec.describes) !== null && _a2 !== void 0 ? _a2 : {}).length > 0 || Object.values((_b2 = spec.tests) !== null && _b2 !== void 0 ? _b2 : {}).length > 0;\n  }).map(getSpecTestResults).reduce(function (acc, stats) {\n    return {\n      pass: acc.pass + (stats.fail === 0 ? 1 : 0),\n      fail: acc.fail + (stats.fail > 0 ? 1 : 0),\n      total: acc.total + 1\n    };\n  }, {\n    pass: 0,\n    fail: 0,\n    total: 0\n  });\n};\nvar getDuration = function (specs) {\n  return flatMap(specs, getTests).reduce(function (acc, test) {\n    return acc + (test.duration || 0);\n  }, 0);\n};\nvar isEmpty = function (block) {\n  var _a2, _b2;\n  return Object.values((_a2 = block.describes) !== null && _a2 !== void 0 ? _a2 : {}).length === 0 && Object.values((_b2 = block.tests) !== null && _b2 !== void 0 ? _b2 : {}).length === 0;\n};\nvar splitTail = function (as) {\n  var lastIndex = as.length - 1;\n  var head = as.slice(0, lastIndex);\n  var tail = as[lastIndex];\n  return [head, tail];\n};\nvar flatMap = function (as, f2) {\n  return as.map(f2).reduce(function (acc, next) {\n    return acc.concat(next);\n  }, []);\n};\nvar set = function (path, value) {\n  return function (object) {\n    return clean_set_es_default(object, path, value);\n  };\n};\nvar nameClassName = css({\n  color: \"$colors$hover\",\n  marginBottom: \"$space$2\"\n});\nvar containerClassName$3 = css({\n  marginLeft: \"$space$4\"\n});\nvar Describes = function (_a2) {\n  var describes = _a2.describes;\n  var classNames = useClassNames();\n  return jsx(Fragment, {\n    children: describes.map(function (describe) {\n      var _a3, _b2;\n      if (isEmpty(describe)) {\n        return null;\n      }\n      var tests = Object.values((_a3 = describe.tests) !== null && _a3 !== void 0 ? _a3 : {});\n      var describes2 = Object.values((_b2 = describe.describes) !== null && _b2 !== void 0 ? _b2 : {});\n      return jsxs(\"div\", __assign({\n        className: classNames(\"test-describe\", [containerClassName$3])\n      }, {\n        children: [jsx(\"div\", __assign({\n          className: classNames(\"test-name\", [nameClassName])\n        }, {\n          children: describe.name\n        }), void 0), jsx(Tests, {\n          tests\n        }, void 0), jsx(Describes, {\n          describes: describes2\n        }, void 0)]\n      }), describe.name);\n    })\n  }, void 0);\n};\nvar containerClassName$2 = css({\n  color: \"$colors$hover\",\n  fontSize: \"$font$size\",\n  padding: \"$space$2\",\n  whiteSpace: \"pre-wrap\"\n});\nvar FormattedError = function (_a2) {\n  var error = _a2.error,\n    path = _a2.path;\n  var classNames = useClassNames();\n  return jsx(\"div\", {\n    className: classNames(\"test-error\", [containerClassName$2]),\n    dangerouslySetInnerHTML: {\n      __html: formatDiffMessage(error, path)\n    }\n  }, void 0);\n};\nvar escapeHtml = function (unsafe) {\n  return unsafe.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\").replace(/'/g, \"&#039;\");\n};\nvar formatDiffMessage = function (error, path) {\n  var finalMessage = \"\";\n  if (error.matcherResult) {\n    finalMessage = \"<span>\" + escapeHtml(error.message).replace(/(expected)/m, '<span class=\"' + passTextClassName + '\">$1</span>').replace(/(received)/m, '<span class=\"' + failTextClassName + '\">$1</span>').replace(/(Difference:)/m, \"<span>$1</span>\").replace(/(Expected:)(.*)/m, '<span>$1</span><span class=\"' + passTextClassName + '\">$2</span>').replace(/(Received:)(.*)/m, '<span>$1</span><span class=\"' + failTextClassName + '\">$2</span>').replace(/^(-.*)/gm, '<span class=\"' + failTextClassName + '\">$1</span>').replace(/^(\\+.*)/gm, '<span class=\"' + passTextClassName + '\">$1</span>') + \"</span>\";\n  } else {\n    finalMessage = escapeHtml(error.message);\n  }\n  if (error.mappedErrors && error.mappedErrors[0] && error.mappedErrors[0].fileName.endsWith(path) && error.mappedErrors[0]._originalScriptCode) {\n    var mappedError = error.mappedErrors[0];\n    var _originalScriptCode = mappedError._originalScriptCode || [];\n    var widestNumber_1 = Math.max.apply(Math, _originalScriptCode.map(function (code) {\n      return (code.lineNumber + \"\").length;\n    })) + 2;\n    var margin_1 = Array.from({\n      length: widestNumber_1\n    }).map(function () {\n      return \" \";\n    });\n    finalMessage += \"<br />\";\n    finalMessage += \"<br />\";\n    finalMessage += \"<div>\";\n    _originalScriptCode.filter(function (s2) {\n      return s2.content.trim();\n    }).forEach(function (code) {\n      var currentLineMargin = (code.lineNumber + \"\").length;\n      var newMargin = __spreadArray([], margin_1, true);\n      newMargin.length -= currentLineMargin;\n      if (code.highlight) {\n        newMargin.length -= 2;\n      }\n      var toBeIndex = code.content.indexOf(\".to\");\n      var toBeMargin = Array.from({\n        length: margin_1.length + toBeIndex - (widestNumber_1 - 1)\n      }, function () {\n        return \" \";\n      });\n      var content = escapeHtml(code.content).replace(/(describe|test|it)(\\()(&#039;|&quot;|`)(.*)(&#039;|&quot;|`)/m, '<span>$1$2$3</span><span class=\"' + titleTextClassName + '\">$4</span><span>$5</span>').replace(/(expect\\()(.*)(\\)\\..*)(to[\\w\\d]*)(\\()(.*)(\\))/m, '<span>$1</span><span class=\"' + failTextClassName + '\">$2</span><span>$3</span><span style=\"text-decoration: underline; font-weight: 900\">$4</span><span>$5</span><span class=\"' + passTextClassName + '\">$6</span><span>$7</span>');\n      finalMessage += \"<div \" + (code.highlight ? 'style=\"font-weight:200;\"' : \"\") + \">\" + (code.highlight ? '<span class=\"' + failTextClassName + '\">></span> ' : \"\") + newMargin.join(\"\") + escapeHtml(\"\" + code.lineNumber) + \" | \" + content + \"</div>\" + (code.highlight ? \"<div>\" + margin_1.join(\"\") + \" | \" + toBeMargin.join(\"\") + ('<span class=\"' + failTextClassName + '\">^</span>') + \"</div>\" : \"\");\n    });\n    finalMessage += \"</div>\";\n  }\n  return finalMessage.replace(/(?:\\r\\n|\\r|\\n)/g, \"<br />\");\n};\nvar fileContainer = css({\n  display: \"flex\",\n  flexDirection: \"row\",\n  alignItems: \"center\",\n  marginBottom: \"$space$2\"\n});\nvar gapBottomClassName$1 = css({\n  marginBottom: \"$space$2\"\n});\nvar failTestClassName = css({\n  fontWeight: \"bold\"\n});\nvar labelClassName$1 = css({\n  borderRadius: \"calc($border$radius / 2)\"\n});\nvar specLabelClassName = css({\n  padding: \"$space$1 $space$2\",\n  fontFamily: \"$font$mono\",\n  textTransform: \"uppercase\",\n  marginRight: \"$space$2\"\n});\nvar filePathButtonClassName = css({\n  fontFamily: \"$font$mono\",\n  cursor: \"pointer\",\n  display: \"inline-block\"\n});\nvar filePathClassName = css({\n  color: \"$colors$clickable\",\n  textDecorationStyle: \"dotted\",\n  textDecorationLine: \"underline\"\n});\nvar fileNameClassName = css({\n  color: \"$colors$hover\",\n  fontWeight: \"bold\",\n  textDecorationStyle: \"dotted\",\n  textDecorationLine: \"underline\"\n});\nvar Specs = function (_a2) {\n  var specs = _a2.specs,\n    openSpec = _a2.openSpec,\n    status = _a2.status,\n    verbose = _a2.verbose,\n    hideTestsAndSupressLogs = _a2.hideTestsAndSupressLogs;\n  var classNames = useClassNames();\n  return jsx(Fragment, {\n    children: specs.map(function (spec) {\n      if (spec.error) {\n        return jsxs(\"div\", __assign({\n          className: classNames(\"test-spec\", [gapBottomClassName$1])\n        }, {\n          children: [jsx(SpecLabel, __assign({\n            className: classNames(\"test-spec-error\", [labelClassName$1, failBackgroundClassName])\n          }, {\n            children: \"Error\"\n          }), void 0), jsx(FilePath, {\n            onClick: function () {\n              return openSpec(spec.name);\n            },\n            path: spec.name\n          }, void 0), jsx(FormattedError, {\n            error: spec.error,\n            path: spec.name\n          }, void 0)]\n        }), spec.name);\n      }\n      if (isEmpty(spec)) {\n        return null;\n      }\n      var tests = Object.values(spec.tests);\n      var describes = Object.values(spec.describes);\n      var stats = getSpecTestResults(spec);\n      return jsxs(\"div\", __assign({\n        className: classNames(\"test-spec-name\", [gapBottomClassName$1])\n      }, {\n        children: [jsxs(\"div\", __assign({\n          className: classNames(\"test-spec-name-container\", [fileContainer])\n        }, {\n          children: [status === \"complete\" ? stats.fail > 0 ? jsx(SpecLabel, __assign({\n            className: classNames(\"test-spec-complete\", [labelClassName$1, failBackgroundClassName])\n          }, {\n            children: \"Fail\"\n          }), void 0) : jsx(SpecLabel, __assign({\n            className: classNames(\"test-spec-pass\", [labelClassName$1, passBackgroundClassName])\n          }, {\n            children: \"Pass\"\n          }), void 0) : jsx(SpecLabel, __assign({\n            className: classNames(\"test-spec-run\", [labelClassName$1, runBackgroundClassName])\n          }, {\n            children: \"Run\"\n          }), void 0), jsx(FilePath, {\n            onClick: function () {\n              if (!hideTestsAndSupressLogs) {\n                openSpec(spec.name);\n              }\n            },\n            path: spec.name\n          }, void 0)]\n        }), void 0), verbose && !hideTestsAndSupressLogs && jsx(Tests, {\n          tests\n        }, void 0), verbose && !hideTestsAndSupressLogs && jsx(Describes, {\n          describes\n        }, void 0), !hideTestsAndSupressLogs && getFailingTests(spec).map(function (test) {\n          return jsxs(\"div\", __assign({\n            className: classNames(\"test-spec-error\", [gapBottomClassName$1])\n          }, {\n            children: [jsxs(\"div\", __assign({\n              className: classNames(\"test-spec-error-text\", [failTestClassName, failTextClassName])\n            }, {\n              children: [\"\u25CF \", test.blocks.join(\" \u203A \"), \" \u203A \", test.name]\n            }), void 0), test.errors.map(function (e) {\n              return jsx(FormattedError, {\n                error: e,\n                path: test.path\n              }, \"failing-\" + test.name + \"-error\");\n            })]\n          }), \"failing-\" + test.name);\n        })]\n      }), spec.name);\n    })\n  }, void 0);\n};\nvar SpecLabel = function (_a2) {\n  var children = _a2.children,\n    className = _a2.className;\n  var classNames = useClassNames();\n  return jsx(\"span\", __assign({\n    className: classNames(\"test-spec-label\", [specLabelClassName, className])\n  }, {\n    children\n  }), void 0);\n};\nvar FilePath = function (_a2) {\n  var onClick = _a2.onClick,\n    path = _a2.path;\n  var parts = path.split(\"/\");\n  var basePath = parts.slice(0, parts.length - 1).join(\"/\") + \"/\";\n  var fileName = parts[parts.length - 1];\n  var classNames = useClassNames();\n  return jsxs(\"button\", __assign({\n    className: classNames(\"test-filename\", [buttonClassName, filePathButtonClassName]),\n    onClick,\n    type: \"button\"\n  }, {\n    children: [jsx(\"span\", __assign({\n      className: classNames(\"test-filename-base\", [filePathClassName])\n    }, {\n      children: basePath\n    }), void 0), jsx(\"span\", __assign({\n      className: classNames(\"test-filename-file\", [fileNameClassName])\n    }, {\n      children: fileName\n    }), void 0)]\n  }), void 0);\n};\nvar gapBottomClassName = css({\n  marginBottom: \"$space$2\"\n});\nvar labelClassName = css({\n  fontWeight: \"bold\",\n  color: \"$colors$hover\",\n  whiteSpace: \"pre-wrap\"\n});\nvar containerClassName$1 = css({\n  fontWeight: \"bold\",\n  color: \"$colors$clickable\"\n});\nvar Summary = function (_a2) {\n  var suites = _a2.suites,\n    tests = _a2.tests,\n    duration = _a2.duration;\n  var widestLabel = \"Test suites: \";\n  var withMargin = function (label) {\n    var difference = widestLabel.length - label.length;\n    var margin = Array.from({\n      length: difference\n    }, function () {\n      return \" \";\n    }).join(\"\");\n    return label + margin;\n  };\n  var classNames = useClassNames();\n  return jsxs(\"div\", __assign({\n    className: classNames(\"test-summary\", [containerClassName$1])\n  }, {\n    children: [jsxs(\"div\", __assign({\n      className: classNames(\"test-summary\", [gapBottomClassName])\n    }, {\n      children: [jsx(\"span\", __assign({\n        className: classNames(\"test-summary-suites-label\", [labelClassName])\n      }, {\n        children: widestLabel\n      }), void 0), suites.fail > 0 && jsxs(\"span\", __assign({\n        className: classNames(\"test-summary-suites-fail\", [failTextClassName])\n      }, {\n        children: [suites.fail, \" failed,\", \" \"]\n      }), void 0), suites.pass > 0 && jsxs(\"span\", __assign({\n        className: classNames(\"test-summary-suites-pass\", [passTextClassName])\n      }, {\n        children: [suites.pass, \" passed,\", \" \"]\n      }), void 0), jsxs(\"span\", {\n        children: [suites.total, \" total\"]\n      }, void 0)]\n    }), void 0), jsxs(\"div\", __assign({\n      className: classNames(\"test-summary\", [gapBottomClassName])\n    }, {\n      children: [jsx(\"span\", __assign({\n        className: classNames(\"test-summary-label\", [labelClassName])\n      }, {\n        children: withMargin(\"Tests:\")\n      }), void 0), tests.fail > 0 && jsxs(\"span\", __assign({\n        className: classNames(\"test-summary-fail\", [failTextClassName])\n      }, {\n        children: [tests.fail, \" failed,\", \" \"]\n      }), void 0), tests.skip > 0 && jsxs(\"span\", __assign({\n        className: classNames(\"test-summary-skip\", [skipTextClassName])\n      }, {\n        children: [tests.skip, \" skipped,\", \" \"]\n      }), void 0), tests.pass > 0 && jsxs(\"span\", __assign({\n        className: classNames(\"test-summary-pass\", [passTextClassName])\n      }, {\n        children: [tests.pass, \" passed,\", \" \"]\n      }), void 0), jsxs(\"span\", {\n        children: [tests.total, \" total\"]\n      }, void 0)]\n    }), void 0), jsxs(\"div\", __assign({\n      className: classNames(\"test-summary-curation\", [labelClassName])\n    }, {\n      children: [withMargin(\"Time:\"), duration / 1e3, \"s\"]\n    }), void 0)]\n  }), void 0);\n};\nvar previewActionsClassName = css({\n  display: \"flex\",\n  position: \"absolute\",\n  bottom: \"$space$2\",\n  right: \"$space$2\",\n  zIndex: \"$overlay\",\n  \"> *\": {\n    marginLeft: \"$space$2\"\n  }\n});\nvar INITIAL_STATE = {\n  specs: {},\n  status: \"initialising\",\n  verbose: false,\n  watchMode: true,\n  suiteOnly: false,\n  specsCount: 0\n};\nvar SandpackTests = function (_a2) {\n  var _b2 = _a2.verbose,\n    verbose = _b2 === void 0 ? false : _b2,\n    _c2 = _a2.watchMode,\n    watchMode = _c2 === void 0 ? true : _c2,\n    style = _a2.style,\n    className = _a2.className,\n    onComplete = _a2.onComplete,\n    actionsChildren = _a2.actionsChildren,\n    _d = _a2.showVerboseButton,\n    showVerboseButton = _d === void 0 ? true : _d,\n    _e = _a2.showWatchButton,\n    showWatchButton = _e === void 0 ? true : _e,\n    _f = _a2.hideTestsAndSupressLogs,\n    hideTestsAndSupressLogs = _f === void 0 ? false : _f,\n    props = __rest(_a2, [\"verbose\", \"watchMode\", \"style\", \"className\", \"onComplete\", \"actionsChildren\", \"showVerboseButton\", \"showWatchButton\", \"hideTestsAndSupressLogs\"]);\n  var theme = useSandpackTheme();\n  var _g = useSandpackClient(),\n    getClient = _g.getClient,\n    iframe = _g.iframe,\n    listen = _g.listen,\n    sandpack = _g.sandpack;\n  var _h = React3.useState(__assign(__assign({}, INITIAL_STATE), {\n      verbose,\n      watchMode\n    })),\n    state = _h[0],\n    setState = _h[1];\n  var runAllTests = React3.useCallback(function () {\n    setState(function (oldState) {\n      return __assign(__assign({}, oldState), {\n        status: \"running\",\n        specs: {}\n      });\n    });\n    var client = getClient();\n    if (client) {\n      client.dispatch({\n        type: \"run-all-tests\"\n      });\n    }\n  }, [getClient]);\n  var runSpec = React3.useCallback(function () {\n    setState(function (oldState) {\n      return __assign(__assign({}, oldState), {\n        status: \"running\",\n        specs: {}\n      });\n    });\n    var client = getClient();\n    if (client) {\n      client.dispatch({\n        type: \"run-tests\",\n        path: sandpack.activeFile\n      });\n    }\n  }, [getClient, sandpack.activeFile]);\n  var testFileRegex = /.*\\.(test|spec)\\.[tj]sx?$/;\n  var isSpecOpen = sandpack.activeFile.match(testFileRegex) !== null;\n  React3.useEffect(function () {\n    var currentDescribeBlocks = [];\n    var currentSpec = \"\";\n    var unsubscribe = listen(function (data) {\n      if (state.suiteOnly && (\"path\" in data && data.path !== sandpack.activeFile || \"test\" in data && \"path\" in data.test && data.test.path !== sandpack.activeFile)) {\n        return;\n      }\n      if (data.type === \"action\" && data.action === \"clear-errors\" && data.source === \"jest\") {\n        currentSpec = data.path;\n        return;\n      }\n      if (data.type === \"test\") {\n        if (data.event === \"initialize_tests\") {\n          currentDescribeBlocks = [];\n          currentSpec = \"\";\n          if (state.watchMode) {\n            return runAllTests();\n          } else {\n            return setState(function (oldState) {\n              return __assign(__assign({}, oldState), {\n                status: \"idle\",\n                specs: {}\n              });\n            });\n          }\n        }\n        if (data.event === \"test_count\") {\n          return setState(function (oldState) {\n            return __assign(__assign({}, oldState), {\n              specsCount: data.count\n            });\n          });\n        }\n        if (data.event === \"total_test_start\") {\n          currentDescribeBlocks = [];\n          return setState(function (oldState) {\n            return __assign(__assign({}, oldState), {\n              status: \"running\"\n            });\n          });\n        }\n        if (data.event === \"total_test_end\") {\n          return setState(function (oldState) {\n            if (onComplete !== void 0) {\n              onComplete(oldState.specs);\n            }\n            return __assign(__assign({}, oldState), {\n              status: \"complete\"\n            });\n          });\n        }\n        if (data.event === \"add_file\") {\n          return setState(set([\"specs\", data.path], {\n            describes: {},\n            tests: {},\n            name: data.path\n          }));\n        }\n        if (data.event === \"remove_file\") {\n          return setState(function (oldState) {\n            var specs2 = Object.entries(oldState.specs).reduce(function (acc, _a4) {\n              var _b4;\n              var key = _a4[0],\n                value = _a4[1];\n              if (key === data.path) {\n                return acc;\n              } else {\n                return __assign(__assign({}, acc), (_b4 = {}, _b4[key] = value, _b4));\n              }\n            }, {});\n            return __assign(__assign({}, oldState), {\n              specs: specs2\n            });\n          });\n        }\n        if (data.event === \"file_error\") {\n          return setState(set([\"specs\", data.path, \"error\"], data.error));\n        }\n        if (data.event === \"describe_start\") {\n          currentDescribeBlocks.push(data.blockName);\n          var _a3 = splitTail(currentDescribeBlocks),\n            describePath = _a3[0],\n            currentDescribe = _a3[1];\n          var spec = currentSpec;\n          if (currentDescribe === void 0) {\n            return;\n          }\n          return setState(set(__spreadArray(__spreadArray([\"specs\", spec, \"describes\"], flatMap(describePath, function (name) {\n            return [name, \"describes\"];\n          }), true), [currentDescribe], false), {\n            name: data.blockName,\n            tests: {},\n            describes: {}\n          }));\n        }\n        if (data.event === \"describe_end\") {\n          currentDescribeBlocks.pop();\n          return;\n        }\n        if (data.event === \"add_test\") {\n          var _b3 = splitTail(currentDescribeBlocks),\n            describePath = _b3[0],\n            currentDescribe = _b3[1];\n          var test_1 = {\n            status: \"idle\",\n            errors: [],\n            name: data.testName,\n            blocks: __spreadArray([], currentDescribeBlocks, true),\n            path: data.path\n          };\n          if (currentDescribe === void 0) {\n            return setState(set([\"specs\", data.path, \"tests\", data.testName], test_1));\n          } else {\n            return setState(set(__spreadArray(__spreadArray([\"specs\", data.path, \"describes\"], flatMap(describePath, function (name) {\n              return [name, \"describes\"];\n            }), true), [currentDescribe, \"tests\", data.testName], false), test_1));\n          }\n        }\n        if (data.event === \"test_start\") {\n          var test_2 = data.test;\n          var _c3 = splitTail(test_2.blocks),\n            describePath = _c3[0],\n            currentDescribe = _c3[1];\n          var startedTest = {\n            status: \"running\",\n            name: test_2.name,\n            blocks: test_2.blocks,\n            path: test_2.path,\n            errors: []\n          };\n          if (currentDescribe === void 0) {\n            return setState(set([\"specs\", test_2.path, \"tests\", test_2.name], startedTest));\n          } else {\n            return setState(set(__spreadArray(__spreadArray([\"specs\", test_2.path, \"describes\"], flatMap(describePath, function (name) {\n              return [name, \"describes\"];\n            }), true), [currentDescribe, \"tests\", test_2.name], false), startedTest));\n          }\n        }\n        if (data.event === \"test_end\") {\n          var test_3 = data.test;\n          var _d2 = splitTail(test_3.blocks),\n            describePath = _d2[0],\n            currentDescribe = _d2[1];\n          var endedTest = {\n            status: test_3.status,\n            errors: test_3.errors,\n            duration: test_3.duration,\n            name: test_3.name,\n            blocks: test_3.blocks,\n            path: test_3.path\n          };\n          if (currentDescribe === void 0) {\n            return setState(set([\"specs\", test_3.path, \"tests\", test_3.name], endedTest));\n          } else {\n            return setState(set(__spreadArray(__spreadArray([\"specs\", test_3.path, \"describes\"], flatMap(describePath, function (name) {\n              return [name, \"describes\"];\n            }), true), [currentDescribe, \"tests\", test_3.name], false), endedTest));\n          }\n        }\n      }\n    });\n    return unsubscribe;\n  }, [state.suiteOnly, state.watchMode, sandpack.activeFile]);\n  React3.useEffect(function watchMode2() {\n    var unsunscribe = listen(function (_a3) {\n      var type = _a3.type;\n      if (type === \"done\" && state.watchMode) {\n        if (isSpecOpen) {\n          runSpec();\n        } else {\n          runAllTests();\n        }\n      }\n    });\n    return unsunscribe;\n  }, [runSpec, runAllTests, state.watchMode, isSpecOpen]);\n  var openSpec = function (file) {\n    sandpack.setActiveFile(file);\n  };\n  var specs = Object.values(state.specs);\n  var duration = getDuration(specs);\n  var testResults = getAllTestResults(specs);\n  var suiteResults = getAllSuiteResults(specs);\n  var classNames = useClassNames();\n  return jsxs(SandpackStack, __assign({\n    className: classNames(\"tests\", [className]),\n    style: __assign(__assign({}, setTestTheme(theme.themeMode === \"dark\")), style)\n  }, props, {\n    children: [jsx(\"iframe\", {\n      ref: iframe,\n      style: {\n        display: \"none\"\n      },\n      title: \"Sandpack Tests\"\n    }, void 0), jsx(Header$1, {\n      hideTestsAndSupressLogs,\n      setSuiteOnly: function () {\n        return setState(function (s2) {\n          return __assign(__assign({}, s2), {\n            suiteOnly: !s2.suiteOnly\n          });\n        });\n      },\n      setVerbose: function () {\n        return setState(function (s2) {\n          return __assign(__assign({}, s2), {\n            verbose: !s2.verbose\n          });\n        });\n      },\n      setWatchMode: function () {\n        setState(function (s2) {\n          return __assign(__assign({}, s2), {\n            watchMode: !s2.watchMode\n          });\n        });\n      },\n      showSuitesOnly: state.specsCount > 1,\n      showVerboseButton,\n      showWatchButton,\n      status: state.status,\n      suiteOnly: state.suiteOnly,\n      verbose: state.verbose,\n      watchMode: state.watchMode\n    }, void 0), state.status === \"running\" || state.status === \"initialising\" ? jsx(Loading, {\n      showOpenInCodeSandbox: false\n    }, void 0) : jsxs(\"div\", __assign({\n      className: previewActionsClassName.toString()\n    }, {\n      children: [actionsChildren, jsx(RunButton, {\n        onClick: state.suiteOnly ? runSpec : runAllTests\n      }, void 0)]\n    }), void 0), jsx(\"div\", __assign({\n      className: containerClassName.toString()\n    }, {\n      children: specs.length === 0 && state.status === \"complete\" ? jsxs(\"div\", __assign({\n        className: fileErrorContainerClassName.toString()\n      }, {\n        children: [jsx(\"p\", {\n          children: \"No test files found.\"\n        }, void 0), jsxs(\"p\", {\n          children: [\"Test match:\", \" \", jsx(\"span\", __assign({\n            className: failTextClassName.toString()\n          }, {\n            children: testFileRegex.toString()\n          }), void 0)]\n        }, void 0)]\n      }), void 0) : jsxs(Fragment, {\n        children: [jsx(Specs, {\n          hideTestsAndSupressLogs,\n          openSpec,\n          specs,\n          status: state.status,\n          verbose: state.verbose\n        }, void 0), state.status === \"complete\" && testResults.total > 0 && jsx(Summary, {\n          duration,\n          suites: suiteResults,\n          tests: testResults\n        }, void 0)]\n      }, void 0)\n    }), void 0)]\n  }), void 0);\n};\nvar containerClassName = css({\n  padding: \"$space$4\",\n  height: \"100%\",\n  overflow: \"auto\",\n  display: \"flex\",\n  flexDirection: \"column\",\n  position: \"relative\",\n  fontFamily: \"$font$mono\"\n});\nvar fileErrorContainerClassName = css({\n  fontWeight: \"bold\",\n  color: \"$colors$base\"\n});\nvar SYNTAX_ERROR_PATTERN = [\"SyntaxError: \", \"Error in sandbox:\"];\nvar CLEAR_LOG = {\n  id: \"random\",\n  method: \"clear\",\n  data: [\"Console was cleared\"]\n};\nvar TRANSFORMED_TYPE_KEY = \"@t\";\nvar CIRCULAR_REF_KEY = \"@r\";\nvar MAX_LENGTH_STRING = 1e4;\nvar MAX_NEST_LEVEL = 2;\nvar MAX_KEYS = 400;\nvar MAX_MESSAGE_COUNT = MAX_KEYS * 2;\nvar GLOBAL = function getGlobal() {\n  var savedEval = eval;\n  return savedEval(\"this\");\n}();\nvar ARRAY_BUFFER_SUPPORTED = typeof ArrayBuffer === \"function\";\nvar MAP_SUPPORTED = typeof Map === \"function\";\nvar SET_SUPPORTED = typeof Set === \"function\";\nvar Arithmetic;\n(function (Arithmetic2) {\n  Arithmetic2[Arithmetic2[\"infinity\"] = 0] = \"infinity\";\n  Arithmetic2[Arithmetic2[\"minusInfinity\"] = 1] = \"minusInfinity\";\n  Arithmetic2[Arithmetic2[\"minusZero\"] = 2] = \"minusZero\";\n})(Arithmetic || (Arithmetic = {}));\nvar transformers = {\n  Arithmetic: function (data) {\n    if (data === Arithmetic.infinity) return Infinity;\n    if (data === Arithmetic.minusInfinity) return -Infinity;\n    if (data === Arithmetic.minusZero) return -0;\n    return data;\n  },\n  HTMLElement: function (data) {\n    var sandbox = document.implementation.createHTMLDocument(\"sandbox\");\n    try {\n      var element = sandbox.createElement(data.tagName);\n      element.innerHTML = data.innerHTML;\n      for (var _i = 0, _a2 = Object.keys(data.attributes); _i < _a2.length; _i++) {\n        var attribute = _a2[_i];\n        try {\n          element.setAttribute(attribute, data.attributes[attribute]);\n        } catch (_b2) {}\n      }\n      return element;\n    } catch (e) {\n      return data;\n    }\n  },\n  Function: function (data) {\n    var tempFun = function () {};\n    Object.defineProperty(tempFun, \"toString\", {\n      value: function () {\n        return \"function \" + data.name + \"() {\" + data.body + \"}\";\n      }\n    });\n    return tempFun;\n  },\n  \"[[NaN]]\": function () {\n    return NaN;\n  },\n  \"[[undefined]]\": function () {\n    return void 0;\n  },\n  \"[[Date]]\": function (val) {\n    var date = /* @__PURE__ */new Date();\n    date.setTime(val);\n    return date;\n  },\n  \"[[RegExp]]\": function (val) {\n    return new RegExp(val.src, val.flags);\n  },\n  \"[[Error]]\": function (val) {\n    var Ctor = GLOBAL[val.name] || Error;\n    var err = new Ctor(val.message);\n    err.stack = val.stack;\n    return err;\n  },\n  \"[[ArrayBuffer]]\": function (val) {\n    if (ARRAY_BUFFER_SUPPORTED) {\n      var buffer = new ArrayBuffer(val.length);\n      var view = new Int8Array(buffer);\n      view.set(val);\n      return buffer;\n    }\n    return val;\n  },\n  \"[[TypedArray]]\": function (val) {\n    return typeof GLOBAL[val.ctorName] === \"function\" ? new GLOBAL[val.ctorName](val.arr) : val.arr;\n  },\n  \"[[Map]]\": function (val) {\n    if (MAP_SUPPORTED) {\n      var map = /* @__PURE__ */new Map();\n      for (var i2 = 0; i2 < val.length; i2 += 2) map.set(val[i2], val[i2 + 1]);\n      return map;\n    }\n    var kvArr = [];\n    for (var j2 = 0; j2 < val.length; j2 += 2) kvArr.push([val[i2], val[i2 + 1]]);\n    return kvArr;\n  },\n  \"[[Set]]\": function (val) {\n    if (SET_SUPPORTED) {\n      var set2 = /* @__PURE__ */new Set();\n      for (var i2 = 0; i2 < val.length; i2++) set2.add(val[i2]);\n      return set2;\n    }\n    return val;\n  }\n};\nvar formatSymbols = function (message) {\n  if (typeof message === \"string\" || typeof message === \"number\" || message === null) {\n    return message;\n  } else if (Array.isArray(message)) {\n    return message.map(formatSymbols);\n  } else if (typeof message == \"object\" && TRANSFORMED_TYPE_KEY in message) {\n    var type = message[TRANSFORMED_TYPE_KEY];\n    var transform = transformers[type];\n    return transform(message.data);\n  }\n  return message;\n};\nvar arrayToString = function (output, references, level) {\n  var mergeArray = output.reduce(function (acc, curr, index) {\n    return \"\" + acc + (index ? \", \" : \"\") + fromConsoleToString(curr, references, level);\n  }, \"\");\n  return \"[\" + mergeArray + \"]\";\n};\nvar objectToString = function (output, references, level) {\n  var constructorName = output.constructor.name !== \"Object\" ? output.constructor.name + \" \" : \"\";\n  if (level > MAX_NEST_LEVEL) {\n    return constructorName;\n  }\n  var entries = Object.entries(output);\n  var formattedObject = Object.entries(output).reduce(function (acc, _a2, index) {\n    var key = _a2[0],\n      value = _a2[1];\n    var comma = index === 0 ? \"\" : \", \";\n    var breakLine = entries.length > 10 ? \"\\n  \" : \"\";\n    var formatted = fromConsoleToString(value, references, level);\n    if (index === MAX_KEYS) {\n      return acc + breakLine + \"...\";\n    } else if (index > MAX_KEYS) {\n      return acc;\n    }\n    return acc + (\"\" + comma + breakLine + key + \": \") + formatted;\n  }, \"\");\n  return constructorName + \"{ \" + formattedObject + (entries.length > 10 ? \"\\n\" : \" \") + \"}\";\n};\nvar fromConsoleToString = function (message, references, level) {\n  if (level === void 0) {\n    level = 0;\n  }\n  try {\n    var output = formatSymbols(message);\n    if (Array.isArray(output)) {\n      return arrayToString(output, references, level + 1);\n    }\n    switch (typeof output) {\n      case \"string\":\n        return ('\"' + output + '\"').slice(0, MAX_LENGTH_STRING);\n      case \"number\":\n      case \"function\":\n      case \"symbol\":\n        return output.toString();\n      case \"boolean\":\n        return String(output);\n      case \"undefined\":\n        return \"undefined\";\n      case \"object\":\n      default:\n        if (output instanceof RegExp || output instanceof Error || output instanceof Date) {\n          return output.toString();\n        }\n        if (output === null) {\n          return String(null);\n        }\n        if (output instanceof HTMLElement) {\n          return output.outerHTML.slice(0, MAX_LENGTH_STRING);\n        }\n        if (Object.entries(output).length === 0) {\n          return \"{}\";\n        }\n        if (CIRCULAR_REF_KEY in output) {\n          if (level > MAX_NEST_LEVEL) {\n            return \"Unable to print information\";\n          }\n          var newMessage = references[output[CIRCULAR_REF_KEY]];\n          return fromConsoleToString(newMessage, references, level + 1);\n        }\n        return objectToString(output, references, level + 1);\n    }\n  } catch (_a2) {\n    return \"Unable to print information\";\n  }\n};\nvar getType = function (message) {\n  switch (message) {\n    case \"warn\":\n      return \"warning\";\n    case \"clear\":\n      return \"clear\";\n    case \"error\":\n      return \"error\";\n    case \"log\":\n    case \"info\":\n    default:\n      return \"info\";\n  }\n};\nvar _a;\nvar ConsoleList = function (_a2) {\n  var data = _a2.data;\n  var classNames = useClassNames();\n  return jsx(Fragment, {\n    children: data.map(function (_a3, logIndex, references) {\n      var data2 = _a3.data,\n        id = _a3.id,\n        method = _a3.method;\n      if (!data2) return null;\n      if (Array.isArray(data2)) {\n        return jsx(React3.Fragment, {\n          children: data2.map(function (msg, msgIndex) {\n            var fixReferences = references.slice(logIndex, references.length);\n            return jsx(\"div\", __assign({\n              className: classNames(\"console-item\", [consoleItemClassName({\n                variant: getType(method)\n              })])\n            }, {\n              children: jsx(CodeMirror, {\n                code: method === \"clear\" ? msg : fromConsoleToString(msg, fixReferences),\n                fileType: \"js\",\n                initMode: \"user-visible\",\n                showReadOnly: false,\n                readOnly: true,\n                wrapContent: true\n              }, void 0)\n            }), id + \"-\" + msgIndex);\n          })\n        }, id);\n      }\n      return null;\n    })\n  }, void 0);\n};\nvar consoleItemClassName = css((_a = {\n  width: \"100%\",\n  padding: \"$space$3 $space$2\",\n  fontSize: \".8em\",\n  position: \"relative\",\n  \"&:not(:first-child):after\": {\n    content: \"\",\n    position: \"absolute\",\n    top: 0,\n    left: 0,\n    right: 0,\n    height: 1,\n    background: \"$colors$surface3\"\n  },\n  /**\n  * Editor reset\n  */\n  \".sp-cm\": {\n    padding: 0\n  },\n  \".cm-editor\": {\n    background: \"none\"\n  },\n  \".cm-content\": {\n    padding: 0\n  }\n}, _a[\".\" + THEME_PREFIX + \"-pre-placeholder\"] = {\n  margin: \"0 !important\",\n  fontSize: \"1em\"\n}, _a.variants = {\n  variant: {\n    error: {\n      color: \"$colors$error\",\n      background: \"$colors$errorSurface\",\n      \"&:not(:first-child):after\": {\n        background: \"$colors$error\",\n        opacity: .07\n      }\n    },\n    warning: {\n      color: \"$colors$warning\",\n      background: \"$colors$warningSurface\",\n      \"&:not(:first-child):after\": {\n        background: \"$colors$warning\",\n        opacity: .07\n      }\n    },\n    clear: {\n      fontStyle: \"italic\"\n    },\n    info: {}\n  }\n}, _a));\nvar wrapperClassName = css({\n  justifyContent: \"space-between\",\n  borderBottom: \"1px solid $colors$surface2\",\n  padding: \"0 $space$2\",\n  fontFamily: \"$font$mono\",\n  height: \"$layout$headerHeight\",\n  minHeight: \"$layout$headerHeight\",\n  overflowX: \"auto\",\n  whiteSpace: \"nowrap\"\n});\nvar flexClassName = css({\n  display: \"flex\",\n  flexDirection: \"row\",\n  alignItems: \"center\",\n  gap: \"$space$2\"\n});\nvar Header = function (_a2) {\n  var currentTab = _a2.currentTab,\n    setCurrentTab = _a2.setCurrentTab,\n    node = _a2.node;\n  var classNames = useClassNames();\n  var buttonsClassName = classNames(\"console-header-button\", [buttonClassName, roundedButtonClassName, css({\n    padding: \"$space$1 $space$3\"\n  })]);\n  return jsxs(\"div\", __assign({\n    className: classNames(\"console-header\", [wrapperClassName, flexClassName])\n  }, {\n    children: [jsxs(\"p\", __assign({\n      className: classNames(\"console-header-title\", [css({\n        lineHeight: 1,\n        margin: 0,\n        color: \"$colors$base\",\n        fontSize: \"$font$size\",\n        display: \"flex\",\n        alignItems: \"center\",\n        gap: \"$space$2\"\n      })])\n    }, {\n      children: [jsx(ConsoleIcon, {}, void 0), jsx(\"span\", {\n        children: \"Terminal\"\n      }, void 0)]\n    }), void 0), node && jsxs(\"div\", __assign({\n      className: classNames(\"console-header-actions\", [flexClassName])\n    }, {\n      children: [jsx(\"button\", __assign({\n        className: buttonsClassName,\n        \"data-active\": currentTab === \"server\",\n        onClick: function () {\n          return setCurrentTab(\"server\");\n        },\n        type: \"button\"\n      }, {\n        children: \"Server\"\n      }), void 0), jsx(\"button\", __assign({\n        className: buttonsClassName,\n        \"data-active\": currentTab === \"client\",\n        onClick: function () {\n          return setCurrentTab(\"client\");\n        },\n        type: \"button\"\n      }, {\n        children: \"Client\"\n      }), void 0)]\n    }), void 0)]\n  }), void 0);\n};\nvar useSandpackConsole = function (_a2) {\n  var clientId = _a2.clientId,\n    _b2 = _a2.maxMessageCount,\n    maxMessageCount = _b2 === void 0 ? MAX_MESSAGE_COUNT : _b2,\n    _c2 = _a2.showSyntaxError,\n    showSyntaxError = _c2 === void 0 ? false : _c2,\n    _d = _a2.resetOnPreviewRestart,\n    resetOnPreviewRestart = _d === void 0 ? false : _d;\n  var _e = React3.useState([]),\n    logs = _e[0],\n    setLogs = _e[1];\n  var listen = useSandpack().listen;\n  React3.useEffect(function () {\n    var unsubscribe = listen(function (message) {\n      if (resetOnPreviewRestart && message.type === \"start\") {\n        setLogs([]);\n      } else if (message.type === \"console\" && message.codesandbox) {\n        var payloadLog = Array.isArray(message.log) ? message.log : [message.log];\n        if (payloadLog.find(function (_a3) {\n          var method = _a3.method;\n          return method === \"clear\";\n        })) {\n          return setLogs([CLEAR_LOG]);\n        }\n        var logsMessages_1 = showSyntaxError ? payloadLog : payloadLog.filter(function (messageItem) {\n          var _a3, _b3, _c3;\n          var messagesWithoutSyntaxErrors = (_c3 = (_b3 = (_a3 = messageItem === null || messageItem === void 0 ? void 0 : messageItem.data) === null || _a3 === void 0 ? void 0 : _a3.filter) === null || _b3 === void 0 ? void 0 : _b3.call(_a3, function (dataItem) {\n            if (typeof dataItem !== \"string\") return true;\n            var matches = SYNTAX_ERROR_PATTERN.filter(function (lookFor) {\n              return dataItem.startsWith(lookFor);\n            });\n            return matches.length === 0;\n          })) !== null && _c3 !== void 0 ? _c3 : [];\n          return messagesWithoutSyntaxErrors.length > 0;\n        });\n        if (!logsMessages_1) return;\n        setLogs(function (prev) {\n          var messages = __spreadArray(__spreadArray([], prev, true), logsMessages_1, true).filter(function (value, index, self) {\n            return index === self.findIndex(function (s2) {\n              return s2.id === value.id;\n            });\n          });\n          while (messages.length > maxMessageCount) {\n            messages.shift();\n          }\n          return messages;\n        });\n      }\n    }, clientId);\n    return unsubscribe;\n  }, [showSyntaxError, maxMessageCount, clientId, resetOnPreviewRestart]);\n  return {\n    logs,\n    reset: function () {\n      return setLogs([]);\n    }\n  };\n};\nvar SandpackConsole = /*#__PURE__*/React3.forwardRef(function (_a2, ref) {\n  var _b2;\n  var _c2 = _a2.showHeader,\n    showHeader = _c2 === void 0 ? true : _c2,\n    _d = _a2.showSyntaxError,\n    showSyntaxError = _d === void 0 ? false : _d,\n    maxMessageCount = _a2.maxMessageCount,\n    onLogsChange = _a2.onLogsChange,\n    className = _a2.className;\n  _a2.showSetupProgress;\n  var _f = _a2.resetOnPreviewRestart,\n    resetOnPreviewRestart = _f === void 0 ? false : _f,\n    _g = _a2.actionsChildren,\n    actionsChildren = _g === void 0 ? jsx(Fragment, {}, void 0) : _g,\n    _h = _a2.standalone,\n    standalone = _h === void 0 ? false : _h,\n    props = __rest(_a2, [\"showHeader\", \"showSyntaxError\", \"maxMessageCount\", \"onLogsChange\", \"className\", \"showSetupProgress\", \"resetOnPreviewRestart\", \"actionsChildren\", \"standalone\"]);\n  var environment = useSandpack().sandpack.environment;\n  var _j = useSandpackClient(),\n    iframe = _j.iframe,\n    internalClientId = _j.clientId;\n  var restart = useSandpackShell().restart;\n  var _k = React3.useState(environment === \"node\" ? \"server\" : \"client\"),\n    currentTab = _k[0],\n    setCurrentTab = _k[1];\n  var clientId = standalone ? internalClientId : void 0;\n  var _l = useSandpackConsole({\n      maxMessageCount,\n      showSyntaxError,\n      resetOnPreviewRestart,\n      clientId\n    }),\n    consoleData = _l.logs,\n    resetConsole = _l.reset;\n  var _m = useSandpackShellStdout({\n      maxMessageCount,\n      resetOnPreviewRestart,\n      clientId\n    }),\n    stdoutData = _m.logs,\n    resetStdout = _m.reset;\n  var wrapperRef = React3.useRef(null);\n  React3.useEffect(function () {\n    onLogsChange === null || onLogsChange === void 0 ? void 0 : onLogsChange(consoleData);\n    if (wrapperRef.current) {\n      wrapperRef.current.scrollTop = wrapperRef.current.scrollHeight;\n    }\n  }, [onLogsChange, consoleData, stdoutData, currentTab]);\n  var isServerTab = currentTab === \"server\";\n  var isNodeEnvironment = environment === \"node\";\n  React3.useImperativeHandle(ref, function () {\n    return {\n      reset: function () {\n        resetConsole();\n        resetStdout();\n      }\n    };\n  });\n  var classNames = useClassNames();\n  return jsxs(SandpackStack, __assign({\n    className: classNames(\"console\", [css((_b2 = {\n      height: \"100%\",\n      background: \"$surface1\",\n      iframe: {\n        display: \"none\"\n      }\n    }, _b2[\".\" + THEME_PREFIX + \"-bridge-frame\"] = {\n      display: \"block\",\n      border: 0,\n      position: \"absolute\",\n      left: \"$space$2\",\n      bottom: \"$space$2\",\n      zIndex: \"$top\",\n      height: 12,\n      width: \"30%\",\n      mixBlendMode: \"multiply\",\n      pointerEvents: \"none\"\n    }, _b2)), className])\n  }, props, {\n    children: [showHeader && isNodeEnvironment && jsx(Header, {\n      currentTab,\n      node: isNodeEnvironment,\n      setCurrentTab\n    }, void 0), jsx(\"div\", __assign({\n      ref: wrapperRef,\n      className: classNames(\"console-list\", [css({\n        overflow: \"auto\",\n        scrollBehavior: \"smooth\"\n      })])\n    }, {\n      children: isServerTab ? jsx(StdoutList, {\n        data: stdoutData\n      }, void 0) : jsx(ConsoleList, {\n        data: consoleData\n      }, void 0)\n    }), void 0), jsxs(\"div\", __assign({\n      className: classNames(\"console-actions\", [css({\n        position: \"absolute\",\n        bottom: \"$space$2\",\n        right: \"$space$2\",\n        display: \"flex\",\n        gap: \"$space$2\"\n      })])\n    }, {\n      children: [actionsChildren, isServerTab && jsx(RoundedButton, __assign({\n        onClick: function () {\n          restart();\n          resetConsole();\n          resetStdout();\n        }\n      }, {\n        children: jsx(RestartIcon, {}, void 0)\n      }), void 0), jsx(RoundedButton, __assign({\n        onClick: function () {\n          if (currentTab === \"client\") {\n            resetConsole();\n          } else {\n            resetStdout();\n          }\n        }\n      }, {\n        children: jsx(CleanIcon, {}, void 0)\n      }), void 0)]\n    }), void 0), standalone && jsxs(Fragment, {\n      children: [jsx(DependenciesProgress, {\n        clientId\n      }, void 0), jsx(\"iframe\", {\n        ref: iframe\n      }, void 0)]\n    }, void 0)]\n  }), void 0);\n});\nvar Sandpack = function (_a2) {\n  var _b2, _c2, _d, _e, _f, _g, _h, _j;\n  var options = _a2.options,\n    template = _a2.template,\n    customSetup = _a2.customSetup,\n    files = _a2.files,\n    theme = _a2.theme,\n    props = __rest(_a2, [\"options\", \"template\", \"customSetup\", \"files\", \"theme\"]);\n  options !== null && options !== void 0 ? options : options = {};\n  (_b2 = options.resizablePanels) !== null && _b2 !== void 0 ? _b2 : options.resizablePanels = true;\n  (_c2 = options.editorWidthPercentage) !== null && _c2 !== void 0 ? _c2 : options.editorWidthPercentage = 50;\n  (_d = options.showConsole) !== null && _d !== void 0 ? _d : options.showConsole = false;\n  var rtlLayout = (_e = options === null || options === void 0 ? void 0 : options.rtl) !== null && _e !== void 0 ? _e : false;\n  var codeEditorOptions = {\n    showTabs: options.showTabs,\n    showLineNumbers: options.showLineNumbers,\n    showInlineErrors: options.showInlineErrors,\n    wrapContent: options.wrapContent,\n    closableTabs: options.closableTabs,\n    initMode: options.initMode,\n    extensions: (_f = options.codeEditor) === null || _f === void 0 ? void 0 : _f.extensions,\n    extensionsKeymap: (_g = options.codeEditor) === null || _g === void 0 ? void 0 : _g.extensionsKeymap,\n    readOnly: options.readOnly,\n    showReadOnly: options.showReadOnly,\n    additionalLanguages: (_h = options.codeEditor) === null || _h === void 0 ? void 0 : _h.additionalLanguages\n  };\n  var providerOptions = {\n    /**\n    * TS-why: Type 'string | number | symbol' is not assignable to type 'string'\n    */\n    activeFile: options.activeFile,\n    visibleFiles: options.visibleFiles,\n    recompileMode: options.recompileMode,\n    recompileDelay: options.recompileDelay,\n    autorun: options.autorun,\n    autoReload: options.autoReload,\n    bundlerURL: options.bundlerURL,\n    startRoute: options.startRoute,\n    skipEval: options.skipEval,\n    fileResolver: options.fileResolver,\n    initMode: options.initMode,\n    initModeObserverOptions: options.initModeObserverOptions,\n    externalResources: options.externalResources,\n    logLevel: options.logLevel,\n    classes: options.classes\n  };\n  var _k = React3.useState(options.showConsole),\n    consoleVisibility = _k[0],\n    setConsoleVisibility = _k[1];\n  var _l = React3.useState(0),\n    counter = _l[0],\n    setCounter = _l[1];\n  var hasRightColumn = options.showConsole || options.showConsoleButton;\n  var templateFiles = (_j = SANDBOX_TEMPLATES[template]) !== null && _j !== void 0 ? _j : {};\n  var mode = (options === null || options === void 0 ? void 0 : options.layout) ? options === null || options === void 0 ? void 0 : options.layout : \"mode\" in templateFiles ? templateFiles.mode : \"preview\";\n  var actionsChildren = options.showConsoleButton ? jsx(ConsoleCounterButton, {\n    counter,\n    onClick: function () {\n      return setConsoleVisibility(function (prev) {\n        return !prev;\n      });\n    }\n  }, void 0) : void 0;\n  var dragEventTargetRef = React3.useRef(null);\n  var _m = React3.useState(options.editorWidthPercentage),\n    horizontalSize = _m[0],\n    setHorizontalSize = _m[1];\n  var _o = React3.useState(70),\n    verticalSize = _o[0],\n    setVerticalSize = _o[1];\n  var RightColumn = hasRightColumn ? SandpackStack : React3.Fragment;\n  var rightColumnStyle = {\n    flexGrow: 100 - horizontalSize,\n    flexShrink: 100 - horizontalSize,\n    flexBasis: 0,\n    width: 100 - horizontalSize + \"%\",\n    gap: consoleVisibility ? 1 : 0,\n    height: options.editorHeight\n  };\n  var topRowStyle = hasRightColumn ? {\n    flexGrow: verticalSize,\n    flexShrink: verticalSize,\n    flexBasis: 0,\n    overflow: \"hidden\"\n  } : rightColumnStyle;\n  var onDragMove = function (event) {\n    if (!dragEventTargetRef.current) return;\n    var container = dragEventTargetRef.current.parentElement;\n    if (!container) return;\n    var direction = dragEventTargetRef.current.dataset.direction;\n    var isHorizontal = direction === \"horizontal\";\n    var _a3 = container.getBoundingClientRect(),\n      left = _a3.left,\n      top = _a3.top,\n      height = _a3.height,\n      width = _a3.width;\n    var offset = isHorizontal ? (event.clientX - left) / width * 100 : (event.clientY - top) / height * 100;\n    var boundaries = Math.min(Math.max(offset, 25), 75);\n    if (isHorizontal) {\n      setHorizontalSize(rtlLayout ? 100 - boundaries : boundaries);\n    } else {\n      setVerticalSize(boundaries);\n    }\n    container.querySelectorAll(\".\" + THEME_PREFIX + \"-stack\").forEach(function (item) {\n      item.style.pointerEvents = \"none\";\n    });\n  };\n  var stopDragging = function () {\n    var _a3;\n    var container = (_a3 = dragEventTargetRef.current) === null || _a3 === void 0 ? void 0 : _a3.parentElement;\n    if (!container) return;\n    container.querySelectorAll(\".\" + THEME_PREFIX + \"-stack\").forEach(function (item) {\n      item.style.pointerEvents = \"\";\n    });\n    dragEventTargetRef.current = null;\n  };\n  React3.useEffect(function () {\n    if (!(options === null || options === void 0 ? void 0 : options.resizablePanels)) return;\n    document.body.addEventListener(\"mousemove\", onDragMove);\n    document.body.addEventListener(\"mouseup\", stopDragging);\n    return function () {\n      document.body.removeEventListener(\"mousemove\", onDragMove);\n      document.body.removeEventListener(\"mouseup\", stopDragging);\n    };\n  }, [options]);\n  React3.useEffect(function () {\n    var _a3;\n    setConsoleVisibility((_a3 = options === null || options === void 0 ? void 0 : options.showConsole) !== null && _a3 !== void 0 ? _a3 : false);\n  }, [options.showConsole]);\n  var rightColumnProps = hasRightColumn ? {\n    className: THEME_PREFIX + \"-preset-column\",\n    style: rightColumnStyle\n  } : {};\n  var classNames = useClassNames();\n  return jsx(SandpackProvider, __assign({\n    customSetup,\n    files,\n    options: providerOptions,\n    template,\n    theme\n  }, props, {\n    children: jsxs(SandpackLayout, __assign({\n      className: rtlLayout ? classNames(\"rtl-layout\", [rtlLayoutClassName]) : \"\"\n    }, {\n      children: [jsx(SandpackCodeEditor, __assign({}, codeEditorOptions, {\n        style: {\n          height: options.editorHeight,\n          flexGrow: horizontalSize,\n          flexShrink: horizontalSize,\n          flexBasis: 0,\n          overflow: \"hidden\"\n        }\n      }), void 0), options.resizablePanels && jsx(\"div\", {\n        className: classNames(\"resize-handler\", [dragHandler({\n          direction: \"horizontal\"\n        })]),\n        \"data-direction\": \"horizontal\",\n        onMouseDown: function (event) {\n          dragEventTargetRef.current = event.target;\n        },\n        style: {\n          left: \"calc(\" + (rtlLayout ? 100 - horizontalSize : horizontalSize) + \"% - 5px)\"\n        }\n      }, void 0), jsxs(RightColumn, __assign({}, rightColumnProps, {\n        children: [mode === \"preview\" && jsx(SandpackPreview, {\n          actionsChildren,\n          showNavigator: options.showNavigator,\n          showRefreshButton: options.showRefreshButton,\n          style: topRowStyle\n        }, void 0), mode === \"tests\" && jsx(SandpackTests, {\n          actionsChildren,\n          style: topRowStyle\n        }, void 0), mode === \"console\" && jsx(SandpackConsole, {\n          actionsChildren,\n          style: topRowStyle,\n          standalone: true\n        }, void 0), (options.showConsoleButton || consoleVisibility) && jsxs(Fragment, {\n          children: [options.resizablePanels && consoleVisibility && jsx(\"div\", {\n            className: classNames(\"resize-handler\", [dragHandler({\n              direction: \"vertical\"\n            })]),\n            \"data-direction\": \"vertical\",\n            onMouseDown: function (event) {\n              dragEventTargetRef.current = event.target;\n            },\n            style: {\n              top: \"calc(\" + verticalSize + \"% - 5px)\"\n            }\n          }, void 0), jsx(\"div\", __assign({\n            className: classNames(\"console-wrapper\", [consoleWrapper]),\n            style: {\n              flexGrow: consoleVisibility ? 100 - verticalSize : 0,\n              flexShrink: consoleVisibility ? 100 - verticalSize : 0,\n              flexBasis: 0\n            }\n          }, {\n            children: jsx(SandpackConsole, {\n              onLogsChange: function (logs) {\n                return setCounter(logs.length);\n              },\n              showHeader: false\n            }, void 0)\n          }), void 0)]\n        }, void 0)]\n      }), void 0)]\n    }), void 0)\n  }), template);\n};\nvar dragHandler = css({\n  position: \"absolute\",\n  zIndex: \"$top\",\n  variants: {\n    direction: {\n      vertical: {\n        right: 0,\n        left: 0,\n        height: 10,\n        cursor: \"ns-resize\"\n      },\n      horizontal: {\n        top: 0,\n        bottom: 0,\n        width: 10,\n        cursor: \"ew-resize\"\n      }\n    }\n  },\n  \"@media screen and (max-width: 768px)\": {\n    display: \"none\"\n  }\n});\nvar ConsoleCounterButton = function (_a2) {\n  var onClick = _a2.onClick,\n    counter = _a2.counter;\n  return jsxs(RoundedButton, __assign({\n    className: buttonCounter.toString(),\n    onClick\n  }, {\n    children: [jsx(ConsoleIcon, {}, void 0), counter > 0 && jsx(\"strong\", {\n      children: counter\n    }, void 0)]\n  }), void 0);\n};\nvar buttonCounter = css({\n  position: \"relative\",\n  strong: {\n    background: \"$colors$clickable\",\n    color: \"$colors$surface1\",\n    minWidth: 12,\n    height: 12,\n    padding: \"0 2px\",\n    borderRadius: 12,\n    fontSize: 8,\n    lineHeight: \"12px\",\n    position: \"absolute\",\n    top: 0,\n    right: 0,\n    fontWeight: \"normal\"\n  }\n});\nvar consoleWrapper = css({\n  width: \"100%\",\n  overflow: \"hidden\"\n});\nvar rtlLayoutClassName = css({\n  flexDirection: \"row-reverse\",\n  \"@media screen and (max-width: 768px)\": {\n    flexFlow: \"wrap-reverse !important\",\n    flexDirection: \"initial\"\n  }\n});\nexport { ANGULAR_TEMPLATE, ASTRO_TEMPLATE, BackwardIcon, CleanIcon, CloseIcon, CodeMirror as CodeEditor, ConsoleIcon, DependenciesProgress, DirectoryIconClosed, DirectoryIconOpen, ErrorOverlay, ExportIcon, FADE_ANIMATION_DURATION, FileIcon, FileTabs, ForwardIcon, LoadingOverlay, Navigator, OpenInCodeSandboxButton, REACT_TEMPLATE, REACT_TYPESCRIPT_TEMPLATE, RefreshIcon, RestartIcon, RoundedButton, RunButton$1 as RunButton, RunIcon, SANDBOX_TEMPLATES, SANDPACK_THEMES, SOLID_TEMPLATE, SVELTE_TEMPLATE, Sandpack, SandpackCodeEditor, SandpackCodeViewer, SandpackConsole, SandpackConsumer, SandpackFileExplorer, SandpackLayout, SandpackPreview, SandpackProvider, Sandpack$1 as SandpackReactContext, SandpackStack, SandpackTests, SandpackThemeConsumer, SandpackThemeContext, SandpackThemeProvider, SandpackTranspiledCode, SignInIcon, SignOutIcon, TEST_TYPESCRIPT_TEMPLATE, UnstyledOpenInCodeSandboxButton, VANILLA_TEMPLATE, VANILLA_TYPESCRIPT_TEMPLATE, VUE_TEMPLATE, defaultDark, defaultLight, getCssText as getSandpackCssText, layoutClassName, stackClassName, tabButton, useActiveCode, useClassNames, useErrorMessage, useLoadingOverlayState, useSandpack, useSandpackClient, useSandpackConsole, useSandpackNavigation, useSandpackPreviewProgress, useSandpackShell, useSandpackShellStdout, useSandpackTheme, useTranspiledCode };\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"TEST_TYPESCRIPT_TEMPLATE\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"ANGULAR_TEMPLATE\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SandpackLayout\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"useSandpackConsole\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"getSandpackCssText\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"CleanIcon\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"VANILLA_TEMPLATE\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SignOutIcon\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"UnstyledOpenInCodeSandboxButton\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"useSandpack\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"stackClassName\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SandpackThemeConsumer\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"useActiveCode\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"LoadingOverlay\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SOLID_TEMPLATE\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"VANILLA_TYPESCRIPT_TEMPLATE\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"CodeEditor\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"defaultDark\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"useSandpackShellStdout\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"useSandpackClient\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SANDBOX_TEMPLATES\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SandpackStack\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"ExportIcon\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"layoutClassName\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"useTranspiledCode\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"useSandpackPreviewProgress\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"useSandpackShell\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SandpackReactContext\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"defaultLight\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SandpackConsumer\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"Sandpack\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"FileTabs\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"RoundedButton\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"Navigator\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"FileIcon\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SANDPACK_THEMES\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SandpackThemeContext\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"RunIcon\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SandpackTranspiledCode\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"useSandpackTheme\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"useClassNames\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"VUE_TEMPLATE\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"RefreshIcon\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"useErrorMessage\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"ForwardIcon\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SandpackFileExplorer\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SVELTE_TEMPLATE\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"CloseIcon\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"tabButton\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"BackwardIcon\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SandpackConsole\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"REACT_TEMPLATE\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SandpackTests\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"DirectoryIconOpen\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"useLoadingOverlayState\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SandpackCodeViewer\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SandpackProvider\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SandpackPreview\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"useSandpackNavigation\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"DirectoryIconClosed\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"OpenInCodeSandboxButton\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"REACT_TYPESCRIPT_TEMPLATE\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"ErrorOverlay\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"ASTRO_TEMPLATE\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"FADE_ANIMATION_DURATION\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"RunButton\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"DependenciesProgress\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SandpackThemeProvider\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"ConsoleIcon\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SandpackCodeEditor\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"RestartIcon\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SignInIcon\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};\n//# sourceMappingURL=./codesandbox_sandpack_react.map", "export var Browser;\n(function (Browser) {\n  var isBrowser = Browser.isBrowser = () => typeof window === \"object\";\n  var isTouch = Browser.isTouch = () => \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\n  var isChrome = Browser.isChrome = () => navigator.userAgent.toLowerCase().includes(\"chrome/\");\n  var isWebKit = Browser.isWebKit = () => navigator.userAgent.toLowerCase().includes(\"applewebkit/\");\n  var isSafari = Browser.isSafari = () => isWebKit() && !isChrome();\n  var isSafariDesktop = Browser.isSafariDesktop = () => isSafari() && !isTouch();\n  var isWindows = Browser.isWindows = () => /Win/.test(navigator.platform);\n  var isMacOS = Browser.isMacOS = () => /Mac/.test(navigator.platform);\n})(Browser || (Browser = {}));\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};\n//# sourceMappingURL=./browser.map", "export const sandpackDefaultLanguages = [\"JavaScript\", \"JSX\", \"TypeScript\", \"TSX\", \"CSS\", \"SCSS\", \"Less\", \"HTML\"];\nexport const supportedLanguages = [\"Angular\", \"C\", \"C#\", \"C++\", \"CSS\", \"Go\", \"Haskell\", \"HTML\", \"Java\", \"JavaScript\", \"JSX\", \"Julia\", \"Kotlin\", \"Less\", \"Lua\", \"Markdown\", \"MATLAB\", \"Nginx\", \"Objective-C\", \"Perl\", \"PHP\", \"Python\", \"Ruby\", \"Rust\", \"Scala\", \"SCSS\", \"Shell\", \"SQL\", \"Swift\", \"TSX\", \"TypeScript\", \"Vue\", \"YAML\"];\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"PaddingProperties\": {\n      \"type\": \"tsType\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"BorderRadiusProperties\": {\n      \"type\": \"tsType\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"sandpackDefaultLanguages\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"SupportedLanguages\": {\n      \"type\": \"tsType\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"FontProperties\": {\n      \"type\": \"tsType\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"supportedLanguages\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"BorderProperties\": {\n      \"type\": \"tsType\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};\n//# sourceMappingURL=./types.map", "export class SuspenseValue {\n  read() {\n    const status = this.status; // The component did rerender and we already set the status below.\n    if (status) {\n      switch (status.type) {\n        // If the promise is still pending we need to suspend again.\n        case \"pending\":\n          throw status.promise;\n        // If the promise is fulfilled we can return the value\n        // synchronously.\n        case \"fulfilled\":\n          return status.value;\n        // If the promise was rejected we can throw the error so we can\n        // catch it with an ErrorBoundary in an ancestor.\n        case \"rejected\":\n          throw status.reason;\n      }\n    } // Attach a callback to the promise to store the resolved value or the error\n    // on the promise so we can synchronously read it later.\n    const promise = this.resolver().then(value => {\n      this.status = {\n        type: \"fulfilled\",\n        value\n      };\n    }, reason => {\n      this.status = {\n        type: \"rejected\",\n        reason\n      };\n    }); // This is the first time the promise is passed into the function. We set\n    // the status field so we can early return above.\n    this.status = {\n      type: \"pending\",\n      promise\n    }; // We throw the promise to suspend rendering. React will wait until the\n    // promise is settled and rerender the component afterwards. When React\n    // rerenders the component we can return the value in the code above.\n    throw promise;\n  }\n  constructor(resolver) {\n    this.resolver = resolver;\n  }\n}\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"SuspenseValue\": {\n      \"type\": \"class\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};\n//# sourceMappingURL=./SuspenseValue.map", "import { RenderTarget } from \"framer\";\nimport { useState, useMemo } from \"react\";\nexport function getFileExtensions(language) {\n  switch (language) {\n    case \"JavaScript\":\n      return [\"js\"];\n    case \"JSX\":\n      return [\"jsx\"];\n    case \"TypeScript\":\n      return [\"ts\"];\n    case \"TSX\":\n      return [\"tsx\"];\n    case \"CSS\":\n      return [\"css\"];\n    case \"SCSS\":\n      return [\"scss\"];\n    case \"Less\":\n      return [\"less\"];\n    case \"HTML\":\n      return [\"html\", \"htm\"];\n    case \"Angular\":\n      return [\"ts\"];\n    case \"C\":\n      return [\"c\"];\n    case \"C#\":\n      return [\"cs\"];\n    case \"C++\":\n      return [\"cpp\", \"cxx\", \"cc\", \"h\", \"hpp\"];\n    case \"Go\":\n      return [\"go\"];\n    case \"Haskell\":\n      return [\"hs\"];\n    case \"Java\":\n      return [\"java\"];\n    case \"Julia\":\n      return [\"jl\"];\n    case \"Kotlin\":\n      return [\"kt\", \"kts\"];\n    case \"Lua\":\n      return [\"lua\"];\n    case \"Markdown\":\n      return [\"md\"];\n    case \"MATLAB\":\n      return [\"m\"];\n    case \"Nginx\":\n      return [\"conf\"];\n    case \"Objective-C\":\n      return [\"m\", \"mm\"];\n    case \"Perl\":\n      return [\"pl\"];\n    case \"PHP\":\n      return [\"php\", \"php4\", \"php5\", \"phtml\"];\n    case \"Python\":\n      return [\"py\"];\n    case \"Ruby\":\n      return [\"rb\"];\n    case \"Rust\":\n      return [\"rs\"];\n    case \"Scala\":\n      return [\"scala\"];\n    case \"Shell\":\n      return [\"sh\"];\n    case \"SQL\":\n      return [\"sql\"];\n    case \"Swift\":\n      return [\"swift\"];\n    case \"Vue\":\n      return [\"vue\"];\n    case \"YAML\":\n      return [\"yaml\", \"yml\"];\n    default:\n      return [];\n  }\n}\nexport function useBorder(props, collapseEqualBorders = true) {\n  const style = {};\n  const {\n    borderWidth = 0,\n    borderColor = \"unset\",\n    borderStyle = \"none\",\n    isMixedBorderWidth,\n    borderWidthBottom = 0,\n    borderWidthLeft = 0,\n    borderWidthRight = 0,\n    borderWidthTop = 0\n  } = props;\n  let borderTop;\n  let borderBottom;\n  let borderLeft;\n  let borderRight;\n  if (!isMixedBorderWidth) {\n    borderTop = borderBottom = borderLeft = borderRight = borderWidth;\n  } else {\n    borderTop = borderWidthTop;\n    borderRight = borderWidthRight;\n    borderBottom = borderWidthBottom;\n    borderLeft = borderWidthLeft;\n  }\n  if (collapseEqualBorders && borderTop === borderBottom && borderTop === borderLeft && borderTop === borderRight) {\n    style.border = `${borderTop}px ${borderStyle} ${borderColor}`;\n  } else {\n    style.borderStyle = borderStyle;\n    style.borderColor = borderColor;\n    style.borderTopWidth = `${borderTop}px`;\n    style.borderBottomWidth = `${borderBottom}px`;\n    style.borderLeftWidth = `${borderLeft}px`;\n    style.borderRightWidth = `${borderRight}px`;\n  }\n  return style;\n} // Chunks a string into meaningful groups of characters (words, acronyms or numbers)\nconst groupsRegex = /[A-Z]{2,}|[A-Z][a-z]+|[a-z]+|[A-Z]|\\d+/gu;\nfunction capitalizeFirstLetter(value) {\n  return value.charAt(0).toUpperCase() + value.slice(1);\n}\nexport function titleCase(value) {\n  const groups = value.match(groupsRegex) || [];\n  return groups.map(capitalizeFirstLetter).join(\" \");\n}\nexport function useRadius(props) {\n  const {\n    borderRadius,\n    isMixedBorderRadius,\n    topLeftRadius,\n    topRightRadius,\n    bottomRightRadius,\n    bottomLeftRadius\n  } = props;\n  const radiusValue = useMemo(() => isMixedBorderRadius ? `${topLeftRadius}px ${topRightRadius}px ${bottomRightRadius}px ${bottomLeftRadius}px` : `${borderRadius}px`, [borderRadius, isMixedBorderRadius, topLeftRadius, topRightRadius, bottomRightRadius, bottomLeftRadius]);\n  return radiusValue;\n}\nexport function usePadding(props) {\n  const {\n    padding,\n    paddingBottom,\n    paddingLeft,\n    paddingPerSide,\n    paddingRight,\n    paddingTop\n  } = props;\n  const paddingValue = useMemo(() => paddingPerSide ? `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px` : `${padding}px`, [padding, paddingBottom, paddingLeft, paddingPerSide, paddingRight, paddingTop]);\n  return paddingValue;\n}\nexport function useIsOnCanvas() {\n  const [onCanvas] = useState(() => RenderTarget.current() === RenderTarget.canvas);\n  return onCanvas;\n}\nexport function isObject(value) {\n  return value !== null && typeof value === \"object\";\n} // From https://github.com/codesandbox/sandpack/blob/36560cb4f0fc8f5f8b18f5a3d3952799690eba77/sandpack-react/src/utils/stringUtils.ts#L81\nexport function isDarkColor(color) {\n  let r = 0;\n  let g = 0;\n  let b = 0;\n  if (color.startsWith(\"#\")) {\n    if (color.length < 7) {\n      return true;\n    }\n    r = parseInt(color.substr(1, 2), 16);\n    g = parseInt(color.substr(3, 2), 16);\n    b = parseInt(color.substr(5, 2), 16);\n  } else {\n    const rgbValues = color.replace(\"rgb(\", \"\").replace(\"rgba(\", \"\").replace(\")\", \"\").split(\",\");\n    if (rgbValues.length < 3) {\n      return true;\n    }\n    r = parseInt(rgbValues[0], 10);\n    g = parseInt(rgbValues[1], 10);\n    b = parseInt(rgbValues[2], 10);\n  }\n  const yiq = (r * 299 + g * 587 + b * 114) / 1e3;\n  return yiq < 128;\n}\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"useRadius\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"usePadding\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"useIsOnCanvas\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"isObject\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"titleCase\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"isDarkColor\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"getFileExtensions\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"useBorder\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};\n//# sourceMappingURL=./utils.map", "import { SuspenseValue } from \"https://framerusercontent.com/modules/HpmklHRFex5a5HMDftQo/5VVfjnRHGJM1T33zb1N5/SuspenseValue.js\";\nimport { getFileExtensions } from \"https://framerusercontent.com/modules/IdMJ4CymCWCh4cOBkZlb/RXSqswLIbuViBOVW1keE/utils.js\";\nimport { LanguageSupport, StreamLanguage } from \"https://framerusercontent.com/modules/aJsTBlWNkIaM900KNIXT/TeoF57xeGMuVMjiI2ooR/codemirror_language.js\";\nconst angular = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/EjHwngjQOz6g9296RZMV/ZwhROYAZtNtuFNcAlekE/codemirror_lang_angular.js\");\n  return language.angular();\n});\nconst cpp = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/BmbosINQMuOqhkQ16mGN/aCQLnkkoRKr1dakaf9ci/codemirror_lang_cpp.js\");\n  return language.cpp();\n});\nconst java = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/gKhuDW5jnY59NdDGV8D8/xP36aHuTsvUU4Wi5UoVw/codemirror_lang_java.js\");\n  return language.java();\n});\nconst markdown = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/ew2kgXFUVzaNY5ZWXtC5/G0go5tjEUs1iWpGXELvD/codemirror_lang_markdown.js\");\n  return language.markdown();\n});\nconst php = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/oZkhtejNW32Gkw1jb5tm/EgGL6KPr2VABA0JaSWSs/codemirror_lang_php.js\");\n  return language.php();\n});\nconst python = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/NlaGw745MKw3pDtavCDw/bJdmzV5wKmaoaOZ34lWV/codemirror_lang_python.js\");\n  return language.python();\n});\nconst rust = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/ToHwV7PbhPbIOp4qfWxL/yUpS78MJ5G2NAMZdDmZU/codemirror_lang_rust.js\");\n  return language.rust();\n});\nconst sql = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/ErpiHuOpMsJgQursm47q/uyWXpN0RN41fZeXKclFO/codemirror_lang_sql.js\");\n  return language.sql();\n});\nconst vue = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/zxOuMCcDOAkYkK9doUT1/6kqevs4DXgJyXyFc94KJ/codemirror_lang_vue.js\");\n  return language.vue();\n});\nconst scala = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/mVgptLxlny3aCNt13jWX/UBsF1xq4TdJtf65SHBJZ/codemirror_legacy_modes_mode_clike.js\");\n  return new LanguageSupport(StreamLanguage.define(language.scala));\n});\nconst c = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/mVgptLxlny3aCNt13jWX/UBsF1xq4TdJtf65SHBJZ/codemirror_legacy_modes_mode_clike.js\");\n  return new LanguageSupport(StreamLanguage.define(language.c));\n});\nconst csharp = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/mVgptLxlny3aCNt13jWX/UBsF1xq4TdJtf65SHBJZ/codemirror_legacy_modes_mode_clike.js\");\n  return new LanguageSupport(StreamLanguage.define(language.csharp));\n});\nconst kotlin = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/mVgptLxlny3aCNt13jWX/UBsF1xq4TdJtf65SHBJZ/codemirror_legacy_modes_mode_clike.js\");\n  return new LanguageSupport(StreamLanguage.define(language.kotlin));\n});\nconst objectiveC = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/mVgptLxlny3aCNt13jWX/UBsF1xq4TdJtf65SHBJZ/codemirror_legacy_modes_mode_clike.js\");\n  return new LanguageSupport(StreamLanguage.define(language.objectiveC));\n});\nconst go = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/y3YRN1y6zNRmexh3PcEl/zN53cccFHXcjwLmc9vJl/codemirror_legacy_modes_mode_go.js\");\n  return new LanguageSupport(StreamLanguage.define(language.go));\n});\nconst haskell = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/1BelllWa9nL0PC5ISobo/XJm3JYCfTLyG5h6NGU7o/codemirror_legacy_modes_mode_haskell.js\");\n  return new LanguageSupport(StreamLanguage.define(language.haskell));\n});\nconst julia = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/DDnoTDvZCXOaJOFVfFFi/KOuVfpSFKjYje6OF3kMC/codemirror_legacy_modes_mode_julia.js\");\n  return new LanguageSupport(StreamLanguage.define(language.julia));\n});\nconst lua = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/NVeCwUV1KXDrrAYWeKhB/Z4WZ3aIbRCPlevgl3i6W/codemirror_legacy_modes_mode_lua.js\");\n  return new LanguageSupport(StreamLanguage.define(language.lua));\n});\nconst nginx = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/9UW4h57ce20E1oUtlyTx/lupIQZcWqQ6fcU1q4rnT/codemirror_legacy_modes_mode_nginx.js\");\n  return new LanguageSupport(StreamLanguage.define(language.nginx));\n});\nconst octave = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/Z9MPy0NcAcvCrfQ6GdLk/mTdjuyFPRLBs2CftgxdU/codemirror_legacy_modes_mode_octave.js\");\n  return new LanguageSupport(StreamLanguage.define(language.octave));\n});\nconst perl = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/l6yIFqJiKpzgjIjYLDe8/RiUbeIOTACkJXyxf1sof/codemirror_legacy_modes_mode_perl.js\");\n  return new LanguageSupport(StreamLanguage.define(language.perl));\n});\nconst ruby = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/d2aTgp8BCfENcg4lzz2o/8OKauOTqnlpG0hQSheQZ/codemirror_legacy_modes_mode_ruby.js\");\n  return new LanguageSupport(StreamLanguage.define(language.ruby));\n});\nconst shell = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/5zoYeQMBj7mQSJHBwKwK/MOEKdidQOTSu9WoSLOvt/codemirror_legacy_modes_mode_shell.js\");\n  return new LanguageSupport(StreamLanguage.define(language.shell));\n});\nconst swift = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/U1yN0J68cl89oK5n38AY/nNkcgGLa2JSAO9aE88Ts/codemirror_legacy_modes_mode_swift.js\");\n  return new LanguageSupport(StreamLanguage.define(language.swift));\n});\nconst yaml = new SuspenseValue(async () => {\n  const language = await import(\"https://framerusercontent.com/modules/iCfs5CDON3pnZuWWFlKm/WvFxfUbTKcGBzC0BmpkU/codemirror_legacy_modes_mode_yaml.js\");\n  return new LanguageSupport(StreamLanguage.define(language.yaml));\n});\nexport function useLanguageAsync(name) {\n  switch (name) {\n    case \"Angular\":\n      return {\n        name: \"angular\",\n        extensions: getFileExtensions(name),\n        language: angular.read()\n      };\n    case \"C++\":\n      return {\n        name: \"cpp\",\n        extensions: getFileExtensions(name),\n        language: cpp.read()\n      };\n    case \"Java\":\n      return {\n        name: \"java\",\n        extensions: getFileExtensions(name),\n        language: java.read()\n      };\n    case \"Markdown\":\n      return {\n        name: \"markdown\",\n        extensions: getFileExtensions(name),\n        language: markdown.read()\n      };\n    case \"PHP\":\n      return {\n        name: \"php\",\n        extensions: getFileExtensions(name),\n        language: php.read()\n      };\n    case \"Python\":\n      return {\n        name: \"python\",\n        extensions: getFileExtensions(name),\n        language: python.read()\n      };\n    case \"Rust\":\n      return {\n        name: \"rust\",\n        extensions: getFileExtensions(name),\n        language: rust.read()\n      };\n    case \"SQL\":\n      return {\n        name: \"sql\",\n        extensions: getFileExtensions(name),\n        language: sql.read()\n      };\n    case \"Vue\":\n      return {\n        name: \"vue\",\n        extensions: getFileExtensions(name),\n        language: vue.read()\n      };\n    case \"C\":\n      return {\n        name: \"c\",\n        extensions: getFileExtensions(name),\n        language: c.read()\n      };\n    case \"C#\":\n      return {\n        name: \"csharp\",\n        extensions: getFileExtensions(name),\n        language: csharp.read()\n      };\n    case \"Objective-C\":\n      return {\n        name: \"objectiveC\",\n        extensions: getFileExtensions(name),\n        language: objectiveC.read()\n      };\n    case \"Kotlin\":\n      return {\n        name: \"kotlin\",\n        extensions: getFileExtensions(name),\n        language: kotlin.read()\n      };\n    case \"Scala\":\n      return {\n        name: \"scala\",\n        extensions: getFileExtensions(name),\n        language: scala.read()\n      };\n    case \"Go\":\n      return {\n        name: \"go\",\n        extensions: getFileExtensions(name),\n        language: go.read()\n      };\n    case \"Haskell\":\n      return {\n        name: \"haskell\",\n        extensions: getFileExtensions(name),\n        language: haskell.read()\n      };\n    case \"Julia\":\n      return {\n        name: \"julia\",\n        extensions: getFileExtensions(name),\n        language: julia.read()\n      };\n    case \"Lua\":\n      return {\n        name: \"lua\",\n        extensions: getFileExtensions(name),\n        language: lua.read()\n      };\n    case \"Nginx\":\n      return {\n        name: \"nginx\",\n        extensions: getFileExtensions(name),\n        language: nginx.read()\n      };\n    case \"MATLAB\":\n      return {\n        name: \"octave\",\n        extensions: getFileExtensions(name),\n        language: octave.read()\n      };\n    case \"Perl\":\n      return {\n        name: \"perl\",\n        extensions: getFileExtensions(name),\n        language: perl.read()\n      };\n    case \"Ruby\":\n      return {\n        name: \"ruby\",\n        extensions: getFileExtensions(name),\n        language: ruby.read()\n      };\n    case \"Shell\":\n      return {\n        name: \"shell\",\n        extensions: getFileExtensions(name),\n        language: shell.read()\n      };\n    case \"Swift\":\n      return {\n        name: \"swift\",\n        extensions: getFileExtensions(name),\n        language: swift.read()\n      };\n    case \"YAML\":\n      return {\n        name: \"yaml\",\n        extensions: getFileExtensions(name),\n        language: yaml.read()\n      };\n  }\n}\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"useLanguageAsync\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};", "// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./build\".\n */ // ../../node_modules/@codesandbox/sandpack-themes/dist/esm/index.js\nvar amethyst = {\n  colors: {\n    surface1: \"#000000\",\n    surface2: \"#0a0a23\",\n    surface3: \"#3b3b4f\",\n    clickable: \"#dfdfe2\",\n    base: \"#ffffff\",\n    disabled: \"#858591\",\n    hover: \"#ffffff\",\n    accent: \"#a26cd6\",\n    error: \"#ffffff\",\n    errorSurface: \"#3b3b4f\"\n  },\n  syntax: {\n    plain: \"#ffffff\",\n    comment: {\n      color: \"#858591\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#a26cdd\",\n    tag: \"#f07178\",\n    punctuation: \"#99c9ff\",\n    definition: \"#ffffff\",\n    property: \"#99c9ff\",\n    static: \"#f78c6c\",\n    string: \"#57d1b7\"\n  },\n  font: {\n    body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n    mono: '\"Fira Mono\", \"DejaVu Sans Mono\", Menlo, Consolas, \"Liberation Mono\", Monaco, \"Lucida Console\", monospace',\n    size: \"12px\",\n    lineHeight: \"18px\"\n  }\n};\nvar aquaBlue = {\n  colors: {\n    surface1: \"#f8f9fb\",\n    surface2: \"#EBEDF0\",\n    surface3: \"#e4e7eb\",\n    clickable: \"#737373\",\n    base: \"#323232\",\n    disabled: \"#C5C5C5\",\n    hover: \"#1f2933\",\n    accent: \"#2e7692\"\n  },\n  syntax: {\n    plain: \"#1F2933\",\n    comment: {\n      color: \"#A7B6C2\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#1A56DB\",\n    tag: \"#1A56DB\",\n    punctuation: \"#394b59\",\n    definition: \"#A23DAD\",\n    property: \"#2e7692\",\n    static: \"#1A56DB\",\n    string: \"#1992D4\"\n  },\n  font: {\n    body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n    mono: '\"Fira Mono\", \"DejaVu Sans Mono\", Menlo, Consolas, \"Liberation Mono\", Monaco, \"Lucida Console\", monospace',\n    size: \"13px\",\n    lineHeight: \"20px\"\n  }\n};\nvar atomDark = {\n  colors: {\n    surface1: \"#282c34\",\n    surface2: \"#21252b\",\n    surface3: \"#2c313c\",\n    clickable: \"#a8b1c2\",\n    base: \"#a8b1c2\",\n    disabled: \"#4d4d4d\",\n    hover: \"#e8effc\",\n    accent: \"#c678dd\",\n    error: \"#e06c75\",\n    errorSurface: \"#ffeceb\"\n  },\n  syntax: {\n    plain: \"#a8b1c2\",\n    comment: {\n      color: \"#757575\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#c678dd\",\n    tag: \"#e06c75\",\n    punctuation: \"#a8b1c2\",\n    definition: \"#62aeef\",\n    property: \"#d19a66\",\n    static: \"#a8b1c2\",\n    string: \"#98c379\"\n  },\n  font: {\n    body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n    mono: '\"Fira Mono\", \"DejaVu Sans Mono\", Menlo, Consolas, \"Liberation Mono\", Monaco, \"Lucida Console\", monospace',\n    size: \"13px\",\n    lineHeight: \"20px\"\n  }\n};\nvar cobalt2 = {\n  colors: {\n    surface1: \"#193549\",\n    surface2: \"#0d3a58\",\n    surface3: \"#1f4662\",\n    clickable: \"#aaaaaa\",\n    base: \"#ffffff\",\n    disabled: \"#C5C5C5\",\n    hover: \"#ffffff\",\n    accent: \"#ffc600\",\n    error: \"#a22929\",\n    errorSurface: \"#0d3a58\"\n  },\n  syntax: {\n    plain: \"#ffffff\",\n    comment: {\n      color: \"#0088ff\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#ff9d00\",\n    tag: \"#9effff\",\n    punctuation: \"#e1efff\",\n    definition: \"#ffc600\",\n    property: \"#ffc600\",\n    static: \"#ffee80\",\n    string: \"#a5ff90\"\n  },\n  font: {\n    body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n    mono: '\"Operator Mono\", \"Fira Mono\", \"DejaVu Sans Mono\", Menlo, Consolas, \"Liberation Mono\", Monaco, \"Lucida Console\", monospace',\n    size: \"13px\",\n    lineHeight: \"20px\"\n  }\n};\nvar cyberpunk = {\n  colors: {\n    surface1: \"#051c30\",\n    surface2: \"#042f40\",\n    surface3: \"#042f40\",\n    clickable: \"#aaaaaa\",\n    base: \"#ffffff\",\n    disabled: \"#C5C5C5\",\n    hover: \"#ffffff\",\n    accent: \"#fdf500\",\n    error: \"#ff003c\",\n    errorSurface: \"#051c30\"\n  },\n  syntax: {\n    plain: \"#ffffff\",\n    comment: {\n      color: \"#1ac5b0\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#fdf500\",\n    tag: \"#ffc600\",\n    punctuation: \"#afd7fa\",\n    definition: \"#ffc600\",\n    property: \"#fdf500\",\n    static: \"#e455ae\",\n    string: \"#37ebf3\"\n  },\n  font: {\n    body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n    mono: '\"Fira Mono\", \"DejaVu Sans Mono\", Menlo, Consolas, \"Liberation Mono\", Monaco, \"Lucida Console\", monospace',\n    size: \"13px\",\n    lineHeight: \"20px\"\n  }\n};\nvar dracula = {\n  colors: {\n    surface1: \"#282a36\",\n    surface2: \"#44475a\",\n    surface3: \"#44475a\",\n    clickable: \"#6272a4\",\n    base: \"#f8f8f2\",\n    disabled: \"#6272a4\",\n    hover: \"#f8f8f2\",\n    accent: \"#bd93f9\",\n    error: \"#f8f8f2\",\n    errorSurface: \"#44475a\"\n  },\n  syntax: {\n    plain: \"#f8f8f2\",\n    comment: {\n      color: \"#6272a4\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#ff79c6\",\n    tag: \"#ff79c6\",\n    punctuation: \"#ff79c6\",\n    definition: \"#f8f8f2\",\n    property: \"#50fa7b\",\n    static: \"#bd93f9\",\n    string: \"#f1fa8c\"\n  },\n  font: {\n    body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n    mono: '\"Fira Mono\", \"DejaVu Sans Mono\", Menlo, Consolas, \"Liberation Mono\", Monaco, \"Lucida Console\", monospace',\n    size: \"13px\",\n    lineHeight: \"20px\"\n  }\n};\nvar ecoLight = {\n  colors: {\n    surface1: \"#eae8e8\",\n    surface2: \"#00997761\",\n    surface3: \"#ffffff5e\",\n    clickable: \"#421010\",\n    base: \"#421010\",\n    disabled: \"#C5C5C5\",\n    hover: \"#4D4D4D\",\n    accent: \"#009977\",\n    error: \"#ff453a\",\n    errorSurface: \"#e8cac6\"\n  },\n  syntax: {\n    plain: \"#151515\",\n    comment: {\n      color: \"#a9a7a7\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#0971F1\",\n    tag: \"#097104\",\n    punctuation: \"#3B3B3B\",\n    definition: \"#042d60\",\n    property: \"#9013fe\",\n    static: \"#FF453A\",\n    string: \"#f5a623\"\n  },\n  font: {\n    body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n    mono: '\"Fira Mono\", \"DejaVu Sans Mono\", Menlo, Consolas, \"Liberation Mono\", Monaco, \"Lucida Console\", monospace',\n    size: \"13px\",\n    lineHeight: \"20px\"\n  }\n};\nvar freeCodeCampDark = {\n  colors: {\n    surface1: \"#2a2a40\",\n    surface2: \"#0a0a23\",\n    surface3: \"#3b3b4f\",\n    clickable: \"#dfdfe2\",\n    base: \"#ffffff\",\n    disabled: \"#858591\",\n    hover: \"#ffffff\",\n    accent: \"#dbb8ff\",\n    error: \"#ffffff\",\n    errorSurface: \"#3b3b4f\"\n  },\n  syntax: {\n    plain: \"#ffffff\",\n    comment: {\n      color: \"#858591\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#dbb8ff\",\n    tag: \"#f07178\",\n    punctuation: \"#99c9ff\",\n    definition: \"#ffffff\",\n    property: \"#99c9ff\",\n    static: \"#f78c6c\",\n    string: \"#acd157\"\n  },\n  font: {\n    body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n    mono: '\"Fira Mono\", \"DejaVu Sans Mono\", Menlo, Consolas, \"Liberation Mono\", Monaco, \"Lucida Console\", monospace',\n    size: \"13px\",\n    lineHeight: \"20px\"\n  }\n};\nvar githubLight = {\n  colors: {\n    surface1: \"#ffffff\",\n    surface2: \"#F3F3F3\",\n    surface3: \"#f5f5f5\",\n    clickable: \"#959da5\",\n    base: \"#24292e\",\n    disabled: \"#d1d4d8\",\n    hover: \"#24292e\",\n    accent: \"#24292e\"\n  },\n  syntax: {\n    keyword: \"#d73a49\",\n    property: \"#005cc5\",\n    plain: \"#24292e\",\n    static: \"#032f62\",\n    string: \"#032f62\",\n    definition: \"#6f42c1\",\n    punctuation: \"#24292e\",\n    tag: \"#22863a\",\n    comment: {\n      color: \"#6a737d\",\n      fontStyle: \"normal\"\n    }\n  },\n  font: {\n    body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n    mono: '\"Fira Mono\", \"DejaVu Sans Mono\", Menlo, Consolas, \"Liberation Mono\", Monaco, \"Lucida Console\", monospace',\n    size: \"13px\",\n    lineHeight: \"20px\"\n  }\n};\nvar gruvboxDark = {\n  colors: {\n    surface1: \"#282828\",\n    surface2: \"#3c3836\",\n    surface3: \"#3c3836\",\n    clickable: \"#ebdbb2\",\n    base: \"#ebdbb2\",\n    disabled: \"#928374\",\n    hover: \"#fe8019\",\n    accent: \"#d65d0e\",\n    error: \"#ff453a\",\n    errorSurface: \"#3c3836\"\n  },\n  syntax: {\n    plain: \"#ebdbb2\",\n    comment: {\n      color: \"#928374\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#ff453a\",\n    tag: \"#83a598\",\n    punctuation: \"#ebdbb2\",\n    definition: \"#83a598\",\n    property: \"#fabd2f\",\n    static: \"#ebdbb2\",\n    string: \"#b8bb26\"\n  },\n  font: {\n    body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n    mono: '\"Fira Mono\", \"DejaVu Sans Mono\", Menlo, Consolas, \"Liberation Mono\", Monaco, \"Lucida Console\", monospace',\n    size: \"13px\",\n    lineHeight: \"20px\"\n  }\n};\nvar gruvboxLight = {\n  colors: {\n    surface1: \"#fbf1c7\",\n    surface2: \"#ebdbb2\",\n    surface3: \"#ebdbb2\",\n    clickable: \"#808080\",\n    base: \"#3c3836\",\n    disabled: \"#928374\",\n    hover: \"#af3a03\",\n    accent: \"#d65d0e\",\n    error: \"#9d0006\",\n    errorSurface: \"#ebdbb2\"\n  },\n  syntax: {\n    plain: \"#3c3836\",\n    comment: {\n      color: \"#928374\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#9d0006\",\n    tag: \"#076678\",\n    punctuation: \"#3c3836\",\n    definition: \"#076678\",\n    property: \"#b57614\",\n    static: \"#3c3836\",\n    string: \"#79740e\"\n  },\n  font: {\n    body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n    mono: '\"Fira Mono\", \"DejaVu Sans Mono\", Menlo, Consolas, \"Liberation Mono\", Monaco, \"Lucida Console\", monospace',\n    size: \"13px\",\n    lineHeight: \"20px\"\n  }\n};\nvar levelUp = {\n  colors: {\n    surface1: \"#191324\",\n    surface2: \"#261e33\",\n    surface3: \"#524763\",\n    clickable: \"#aaaaaa\",\n    base: \"#ffffff\",\n    disabled: \"#aaaaaa\",\n    hover: \"#ffffff\",\n    accent: \"#82d8d8\",\n    error: \"#e54b4b\",\n    errorSurface: \"#191324\"\n  },\n  syntax: {\n    plain: \"#ffffff\",\n    comment: {\n      color: \"#82d8d8\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#e54b4b\",\n    tag: \"#ff26be\",\n    punctuation: \"#9588aa\",\n    definition: \"#82d8d8\",\n    property: \"#82d8d8\",\n    static: \"#82d8d8\",\n    string: \"#a8fe39\"\n  },\n  font: {\n    body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n    mono: '\"MonoLisa\", \"Fira Mono\", \"DejaVu Sans Mono\", Menlo, Consolas, \"Liberation Mono\", Monaco, \"Lucida Console\", monospace',\n    size: \"13px\",\n    lineHeight: \"20px\"\n  }\n};\nvar monokaiPro = {\n  colors: {\n    surface1: \"#2D2A2E\",\n    surface2: \"#444344\",\n    surface3: \"#484747\",\n    clickable: \"#939293\",\n    base: \"#C1C0C1\",\n    disabled: \"#444344\",\n    hover: \"#FCFCFA\",\n    accent: \"#FFD866\",\n    error: \"#ffcdca\",\n    errorSurface: \"#c24038\"\n  },\n  syntax: {\n    plain: \"rgb(252, 252, 250)\",\n    comment: {\n      color: \"#757575\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"rgb(255, 97, 136)\",\n    tag: \"rgb(120, 220, 232)\",\n    punctuation: \"rgb(147, 146, 147)\",\n    definition: \"rgb(169, 220, 118)\",\n    property: {\n      color: \"rgb(120, 220, 232)\",\n      fontStyle: \"italic\"\n    },\n    static: \"rgb(171, 157, 242)\",\n    string: \"rgb(255, 216, 102)\"\n  },\n  font: {\n    body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n    mono: '\"Fira Mono\", \"DejaVu Sans Mono\", Menlo, Consolas, \"Liberation Mono\", Monaco, \"Lucida Console\", monospace',\n    size: \"13px\",\n    lineHeight: \"20px\"\n  }\n};\nvar neoCyan = {\n  colors: {\n    surface1: \"#2b3935\",\n    surface2: \"#191324\",\n    surface3: \"#524763\",\n    clickable: \"#aaaaaa\",\n    base: \"#ffffff\",\n    disabled: \"#aaaaaa\",\n    hover: \"#ffffff\",\n    accent: \"#82d8d8\",\n    error: \"#e54b4b\",\n    errorSurface: \"#191324\"\n  },\n  syntax: {\n    plain: \"#ffffff\",\n    comment: {\n      color: \"#82d8d8\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#e54b4b\",\n    tag: \"#ff26be\",\n    punctuation: \"#9588aa\",\n    definition: \"#82d8d8\",\n    property: \"#82d8d8\",\n    static: \"#82d8d8\",\n    string: \"#a8fe39\"\n  },\n  font: {\n    body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n    mono: '\"MonoLisa\", \"Fira Mono\", \"DejaVu Sans Mono\", Menlo, Consolas, \"Liberation Mono\", Monaco, \"Lucida Console\", monospace',\n    size: \"12px\",\n    lineHeight: \"18px\"\n  }\n};\nvar nightOwl = {\n  colors: {\n    surface1: \"#011627\",\n    surface2: \"#243b4c\",\n    surface3: \"#112331\",\n    clickable: \"#6988a1\",\n    base: \"#808080\",\n    disabled: \"#4D4D4D\",\n    hover: \"#c5e4fd\",\n    accent: \"#c5e4fd\",\n    error: \"#ffcdca\",\n    errorSurface: \"#811e18\"\n  },\n  syntax: {\n    plain: \"#d6deeb\",\n    comment: {\n      color: \"#999999\",\n      fontStyle: \"italic\"\n    },\n    keyword: {\n      color: \"#c792ea\",\n      fontStyle: \"italic\"\n    },\n    tag: \"#7fdbca\",\n    punctuation: \"#7fdbca\",\n    definition: \"#82aaff\",\n    property: {\n      color: \"#addb67\",\n      fontStyle: \"italic\"\n    },\n    static: \"#f78c6c\",\n    string: \"#ecc48d\"\n  },\n  font: {\n    body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n    mono: '\"Fira Mono\", \"DejaVu Sans Mono\", Menlo, Consolas, \"Liberation Mono\", Monaco, \"Lucida Console\", monospace',\n    size: \"13px\",\n    lineHeight: \"20px\"\n  }\n};\nvar sandpackDark = {\n  colors: {\n    surface1: \"#151515\",\n    surface2: \"#252525\",\n    surface3: \"#2F2F2F\",\n    clickable: \"#999999\",\n    base: \"#808080\",\n    disabled: \"#4D4D4D\",\n    hover: \"#C5C5C5\",\n    accent: \"#90e86f\",\n    error: \"#E1CFF8\",\n    errorSurface: \"#b08df8\"\n  },\n  syntax: {\n    plain: \"#f0fdaf\",\n    comment: {\n      color: \"#757575\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#e5fd78\",\n    tag: \"#f0fdaf\",\n    punctuation: \"#ffffff\",\n    definition: \"#eeeeee\",\n    property: \"#90e86f\",\n    static: \"#ffffff\",\n    string: \"#dafecf\"\n  },\n  font: {\n    body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n    mono: '\"Fira Mono\", \"DejaVu Sans Mono\", Menlo, Consolas, \"Liberation Mono\", Monaco, \"Lucida Console\", monospace',\n    size: \"13px\",\n    lineHeight: \"20px\"\n  }\n};\nexport { amethyst, aquaBlue, atomDark, cobalt2, cyberpunk, dracula, ecoLight, freeCodeCampDark, githubLight, gruvboxDark, gruvboxLight, levelUp, monokaiPro, neoCyan, nightOwl, sandpackDark };\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"neoCyan\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"atomDark\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"sandpackDark\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"ecoLight\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cobalt2\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"dracula\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"gruvboxLight\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"levelUp\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"aquaBlue\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"nightOwl\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"gruvboxDark\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"cyberpunk\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"githubLight\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"freeCodeCampDark\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"monokaiPro\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"amethyst\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};\n//# sourceMappingURL=./codesandbox_sandpack_themes.map", "import { amethyst, aquaBlue, atomDark, cobalt2, cyberpunk, dracula, freeCodeCampDark, githubLight, levelUp, monokaiPro, neoCyan, nightOwl, sandpackDark } from \"https://framerusercontent.com/modules/c4BjG1nmVImY1EzTuV13/OqRStXQUJv4l4u3XtQrx/codesandbox_sandpack_themes.js\";\nimport { isObject, isDarkColor } from \"https://framerusercontent.com/modules/IdMJ4CymCWCh4cOBkZlb/RXSqswLIbuViBOVW1keE/utils.js\";\nconst magic = {\n  colors: {\n    surface1: \"#f6f6f8\",\n    surface2: \"#f6f6f8\",\n    surface3: \"#f6f6f8\",\n    clickable: \"#808080\",\n    base: \"#323232\",\n    disabled: \"#C5C5C5\",\n    hover: \"#4D4D4D\",\n    accent: \"#ffa600\",\n    error: \"#ff453a\",\n    errorSurface: \"#ffeceb\"\n  },\n  syntax: {\n    plain: \"#151515\",\n    comment: {\n      color: \"#cacacd\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#ffa600\",\n    tag: \"#ff9a4d\",\n    punctuation: \"#ffb3b3\",\n    definition: \"#ff6f00\",\n    property: \"#9900ff\",\n    static: \"#FF453A\",\n    string: \"#f53524\"\n  },\n  font: {\n    body: '\"Roboto Mono\", monospace',\n    mono: '\"Roboto Mono\", monospace',\n    size: \"14px\",\n    lineHeight: \"24px\"\n  }\n};\nconst atomLight = {\n  colors: {\n    surface1: \"#fafafa\"\n  },\n  syntax: {\n    plain: \"#383a42\",\n    comment: {\n      color: \"#a0a1a7\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#a626a4\",\n    tag: \"#e45649\",\n    punctuation: \"#383a42\",\n    definition: \"#c18401\",\n    property: \"#4078f2\",\n    static: \"#986801\",\n    string: \"#50a14f\"\n  }\n};\nconst framerLight = {\n  colors: {\n    surface1: \"#fafafa\",\n    surface2: \"#eeeeee\",\n    surface3: \"#f3f3f3\",\n    clickable: \"#808080\",\n    base: \"#323232\",\n    disabled: \"#c5c5c5\",\n    hover: \"#4d4d4d\",\n    accent: \"#0099ff\",\n    error: \"#ff3366\",\n    errorSurface: \"#ffe0e8\"\n  },\n  syntax: {\n    plain: \"#666666\",\n    comment: {\n      color: \"#bbbbbb\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#0099ff\",\n    tag: \"#0099ff\",\n    punctuation: \"#bbbbbb\",\n    definition: \"#FFAA00\",\n    property: \"#33cccc\",\n    static: \"#ff8866\",\n    string: \"#8855ff\"\n  }\n};\nconst framerDark = {\n  colors: {\n    surface1: \"#161820\",\n    surface2: \"#252525\",\n    surface3: \"#2f2f2f\",\n    clickable: \"#999999\",\n    base: \"#d92121\",\n    disabled: \"#4d4d4d\",\n    hover: \"#c5c5c5\",\n    accent: \"#0099ff\",\n    error: \"#ff3366\",\n    errorSurface: \"#ffe0e8\"\n  },\n  syntax: {\n    plain: \"#eeeeee\",\n    comment: {\n      color: \"#666666\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#00BBFF\",\n    tag: \"#00BBFF\",\n    punctuation: \"#999999\",\n    definition: \"#ffcc66\",\n    property: \"#77dddd\",\n    static: \"#ff8866\",\n    string: \"#bb88ff\"\n  }\n};\nconst ayuLight = {\n  colors: {\n    surface1: \"#fafafa\"\n  },\n  syntax: {\n    comment: {\n      color: \"aaaeb1\",\n      fontStyle: \"italic\"\n    },\n    definition: \"#3b9ee6\",\n    keyword: \"#fa8e3e\",\n    plain: \"#5c6166\",\n    property: \"#f2ae49\",\n    punctuation: \"#5c6167\",\n    static: \"#a37acc\",\n    string: \"#87b300\",\n    tag: \"#56b4d5\"\n  }\n};\nconst ayuDark = {\n  colors: {\n    surface1: \"#0c1017\"\n  },\n  syntax: {\n    comment: {\n      color: \"#646a72\",\n      fontStyle: \"italic\"\n    },\n    definition: \"#5ac2ff\",\n    keyword: \"#ff9040\",\n    plain: \"#bfbdb6\",\n    property: \"#ffb454\",\n    punctuation: \"#bfbdb6\",\n    static: \"#d2a6ff\",\n    string: \"#80d962\",\n    tag: \"#3bbae7\"\n  }\n};\nconst sandpackLight = {\n  colors: {\n    surface1: \"#ffffff\",\n    surface2: \"#EFEFEF\",\n    surface3: \"#F3F3F3\",\n    disabled: \"#C5C5C5\",\n    base: \"#323232\",\n    clickable: \"#808080\",\n    hover: \"#4D4D4D\",\n    accent: \"#3973E0\",\n    error: \"#EA3323\",\n    errorSurface: \"#FCF1F0\",\n    warning: \"#6A4516\",\n    warningSurface: \"#FEF2C0\"\n  },\n  syntax: {\n    plain: \"#151515\",\n    comment: {\n      color: \"#999\",\n      fontStyle: \"italic\"\n    },\n    keyword: \"#7C5AE3\",\n    tag: \"#0971F1\",\n    punctuation: \"#3B3B3B\",\n    definition: \"#85A600\",\n    property: \"#3B3B3B\",\n    static: \"#3B3B3B\",\n    string: \"#2E6BD0\"\n  }\n};\nconst githubDark = {\n  colors: {\n    ...framerDark.colors,\n    surface1: \"#0d1117\"\n  },\n  syntax: {\n    comment: {\n      color: \"#8b949e\",\n      fontStyle: \"italic\"\n    },\n    definition: \"#d2a8ff\",\n    keyword: \"#ff7b72\",\n    plain: \"#e6edf3\",\n    property: \"#79c0ff\",\n    punctuation: \"#e6edf3\",\n    static: \"#7ee787\",\n    string: \"#a5d6ff\",\n    tag: \"#7ee787\"\n  }\n}; // A bit verbose but helps keep our themes in check\nexport const themeKeys = [\"amethyst\", \"aquaBlue\", \"atomDark\", \"atomLight\", \"ayuDark\", \"ayuLight\", \"cobalt2\", \"cyberpunk\", \"dracula\", \"framerDark\", \"framerLight\", \"freeCodeCamp\", \"githubDark\", \"githubLight\", \"levelUp\", \"monokaiPro\", \"magic\", \"neoCyan\", \"nightOwl\", \"sandpackDark\", \"sandpackLight\"];\nexport const themes = {\n  amethyst,\n  aquaBlue,\n  atomDark,\n  atomLight,\n  ayuDark,\n  ayuLight,\n  cobalt2,\n  cyberpunk,\n  dracula,\n  framerDark,\n  framerLight,\n  freeCodeCamp: freeCodeCampDark,\n  githubDark,\n  githubLight,\n  levelUp,\n  monokaiPro,\n  magic,\n  neoCyan,\n  nightOwl,\n  sandpackDark,\n  sandpackLight\n};\nexport const lightThemeVariables = `\n/* Colors */\n--cb-colors-surface1: var(--cb-colors-surface1-light);\n--cb-colors-surface2: var(--cb-colors-surface2-light);\n--cb-colors-surface3: var(--cb-colors-surface3-light);\n--cb-colors-disabled: var(--cb-colors-disabled-light);\n--cb-colors-base: var(--cb-colors-base-light);\n--cb-colors-clickable: var(--cb-colors-clickable-light);\n--cb-colors-hover: var(--cb-colors-hover-light);\n--cb-colors-accent: var(--cb-colors-accent-light);\n--cb-colors-error: var(--cb-colors-error-light);\n--cb-colors-errorSurface: var(--cb-colors-errorSurface-light);\n--cb-colors-warning: var(--cb-colors-warning-light);\n--cb-colors-warningSurface: var(--cb-colors-warningSurface-light);\n\n/* Syntax */\n--cb-syntax-color-plain: var(--cb-syntax-color-plain-light);\n--cb-syntax-color-comment: var(--cb-syntax-color-comment-light);\n--cb-syntax-color-keyword: var(--cb-syntax-color-keyword-light);\n--cb-syntax-color-definition: var(--cb-syntax-color-definition-light);\n--cb-syntax-color-punctuation: var(--cb-syntax-color-punctuation-light);\n--cb-syntax-color-property: var(--cb-syntax-color-property-light);\n--cb-syntax-color-tag: var(--cb-syntax-color-tag-light);\n--cb-syntax-color-static: var(--cb-syntax-color-static-light);\n--cb-syntax-color-string: var(--cb-syntax-color-string-light);\n--cb-syntax-fontStyle-plain: var(--cb-syntax-fontStyle-plain-light);\n--cb-syntax-fontStyle-comment: var(--cb-syntax-fontStyle-comment-light);\n--cb-syntax-fontStyle-keyword: var(--cb-syntax-fontStyle-keyword-light);\n--cb-syntax-fontStyle-definition: var(--cb-syntax-fontStyle-definition-light);\n--cb-syntax-fontStyle-punctuation: var(--cb-syntax-fontStyle-punctuation-light);\n--cb-syntax-fontStyle-property: var(--cb-syntax-fontStyle-property-light);\n--cb-syntax-fontStyle-tag: var(--cb-syntax-fontStyle-tag-light);\n--cb-syntax-fontStyle-static: var(--cb-syntax-fontStyle-static-light);\n--cb-syntax-fontStyle-string: var(--cb-syntax-fontStyle-string-light);\n\n/* Other */\n--cb-color-scheme: var(--cb-color-scheme-light);\n`;\nexport const darkThemeVariables = `\n/* Colors */\n--cb-colors-surface1: var(--cb-colors-surface1-dark);\n--cb-colors-surface2: var(--cb-colors-surface2-dark);\n--cb-colors-surface3: var(--cb-colors-surface3-dark);\n--cb-colors-disabled: var(--cb-colors-disabled-dark);\n--cb-colors-base: var(--cb-colors-base-dark);\n--cb-colors-clickable: var(--cb-colors-clickable-dark);\n--cb-colors-hover: var(--cb-colors-hover-dark);\n--cb-colors-accent: var(--cb-colors-accent-dark);\n--cb-colors-error: var(--cb-colors-error-dark);\n--cb-colors-errorSurface: var(--cb-colors-errorSurface-dark);\n--cb-colors-warning: var(--cb-colors-warning-dark);\n--cb-colors-warningSurface: var(--cb-colors-warningSurface-dark);\n\n/* Syntax */\n--cb-syntax-color-plain: var(--cb-syntax-color-plain-dark);\n--cb-syntax-color-comment: var(--cb-syntax-color-comment-dark);\n--cb-syntax-color-keyword: var(--cb-syntax-color-keyword-dark);\n--cb-syntax-color-definition: var(--cb-syntax-color-definition-dark);\n--cb-syntax-color-punctuation: var(--cb-syntax-color-punctuation-dark);\n--cb-syntax-color-property: var(--cb-syntax-color-property-dark);\n--cb-syntax-color-tag: var(--cb-syntax-color-tag-dark);\n--cb-syntax-color-static: var(--cb-syntax-color-static-dark);\n--cb-syntax-color-string: var(--cb-syntax-color-string-dark);\n--cb-syntax-fontStyle-plain: var(--cb-syntax-fontStyle-plain-dark);\n--cb-syntax-fontStyle-comment: var(--cb-syntax-fontStyle-comment-dark);\n--cb-syntax-fontStyle-keyword: var(--cb-syntax-fontStyle-keyword-dark);\n--cb-syntax-fontStyle-definition: var(--cb-syntax-fontStyle-definition-dark);\n--cb-syntax-fontStyle-punctuation: var(--cb-syntax-fontStyle-punctuation-dark);\n--cb-syntax-fontStyle-property: var(--cb-syntax-fontStyle-property-dark);\n--cb-syntax-fontStyle-tag: var(--cb-syntax-fontStyle-tag-dark);\n--cb-syntax-fontStyle-static: var(--cb-syntax-fontStyle-static-dark);\n--cb-syntax-fontStyle-string: var(--cb-syntax-fontStyle-string-dark);\n\n/* Other */\n--cb-color-scheme: var(--cb-color-scheme-dark);\n`;\nexport function getVariableTheme(font) {\n  var _fontFamily;\n  return {\n    colors: {\n      surface1: \"var(--cb-colors-surface1)\",\n      surface2: \"var(--cb-colors-surface2)\",\n      surface3: \"var(--cb-colors-surface3)\",\n      disabled: \"var(--cb-colors-disabled)\",\n      base: \"var(--cb-colors-base)\",\n      clickable: \"var(--cb-colors-clickable)\",\n      hover: \"var(--cb-colors-hover)\",\n      accent: \"var(--cb-colors-accent)\",\n      error: \"var(--cb-colors-error)\",\n      errorSurface: \"var(--cb-colors-errorSurface)\",\n      warning: \"var(--cb-colors-warning)\",\n      warningSurface: \"var(--cb-colors-warningSurface)\"\n    },\n    syntax: {\n      plain: {\n        color: \"var(--cb-syntax-color-plain)\",\n        fontStyle: \"var(--cb-syntax-fontStyle-plain)\",\n        fontWeight: font.fontWeight\n      },\n      comment: {\n        color: \"var(--cb-syntax-color-comment)\",\n        fontStyle: \"var(--cb-syntax-fontStyle-comment)\",\n        fontWeight: font.fontWeight\n      },\n      keyword: {\n        color: \"var(--cb-syntax-color-keyword)\",\n        fontStyle: \"var(--cb-syntax-fontStyle-keyword)\",\n        fontWeight: font.fontWeight\n      },\n      definition: {\n        color: \"var(--cb-syntax-color-definition)\",\n        fontStyle: \"var(--cb-syntax-fontStyle-definition)\",\n        fontWeight: font.fontWeight\n      },\n      punctuation: {\n        color: \"var(--cb-syntax-color-punctuation)\",\n        fontStyle: \"var(--cb-syntax-fontStyle-punctuation)\",\n        fontWeight: font.fontWeight\n      },\n      property: {\n        color: \"var(--cb-syntax-color-property)\",\n        fontStyle: \"var(--cb-syntax-fontStyle-property)\",\n        fontWeight: font.fontWeight\n      },\n      tag: {\n        color: \"var(--cb-syntax-color-tag)\",\n        fontStyle: \"var(--cb-syntax-fontStyle-tag)\",\n        fontWeight: font.fontWeight\n      },\n      static: {\n        color: \"var(--cb-syntax-color-static)\",\n        fontStyle: \"var(--cb-syntax-fontStyle-static)\",\n        fontWeight: font.fontWeight\n      },\n      string: {\n        color: \"var(--cb-syntax-color-string)\",\n        fontStyle: \"var(--cb-syntax-fontStyle-string)\",\n        fontWeight: font.fontWeight\n      }\n    },\n    font: {\n      body: \"sans-serif\",\n      mono: (_fontFamily = font.fontFamily) !== null && _fontFamily !== void 0 ? _fontFamily : \"monospace\",\n      size: font.fontSize,\n      lineHeight: font.lineHeight\n    }\n  };\n}\nexport function getVariablesForTheme(theme, background, mode) {\n  const result = {};\n  const {\n    colors,\n    syntax\n  } = themes[theme] || {}; // Collect all colors and turn them into CSS variables.\n  if (isObject(colors)) {\n    for (const name in colors) {\n      const value = colors[name];\n      result[`--cb-colors-${name}-${mode}`] = value;\n    }\n  } // Collect all syntax colors and turn them into CSS variables.\n  if (isObject(syntax)) {\n    for (const name1 in syntax) {\n      const value1 = syntax[name1];\n      if (isObject(value1)) {\n        for (const style in value1) {\n          result[`--cb-syntax-${style}-${name1}-${mode}`] = value1[style];\n        }\n      } else {\n        result[`--cb-syntax-color-${name1}-${mode}`] = value1;\n      }\n    }\n  } // Override the background color.\n  if (background) {\n    result[`--cb-colors-surface1-${mode}`] = background;\n  } else {\n    background = result[`--cb-colors-surface1-${mode}`];\n  } // This is important to show scrollbars and selections with the correct color.\n  result[`--cb-color-scheme-${mode}`] = isDarkColor(background) ? \"dark\" : \"light\";\n  return result;\n}\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"getVariablesForTheme\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"themeKeys\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"getVariableTheme\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"lightThemeVariables\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"themes\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"ThemeKeys\": {\n      \"type\": \"tsType\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"darkThemeVariables\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};\n//# sourceMappingURL=./theming.map", "import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { motion } from \"framer-motion\";\nimport { getSandpackCssText, SandpackCodeEditor, SandpackLayout, SandpackProvider } from \"https://framerusercontent.com/modules/SWAtenub3goqbKHfvwGg/SGdoMClxnsCb2h0GRQ48/codesandbox_sandpack_react.js\";\nimport { addPropertyControls, ControlType, withCSS } from \"framer\";\nimport { Browser } from \"https://framerusercontent.com/modules/wOI0XDWuPNeaYuatKp4b/ezOdeUpHBrE7fwL9evTL/browser.js\";\nimport { supportedLanguages } from \"https://framerusercontent.com/modules/19BkzxjVBT3VP0Ykl3DY/Ca7pJ6oGfAIcZSScMdTx/types.js\";\nimport { useLanguageAsync } from \"https://framerusercontent.com/modules/DyzTKdNCsRH8nvz08sNT/dJhQ3yTSKg9tQmEoIrL8/useLanguageAsync.js\";\nimport { getFileExtensions, titleCase, useBorder, useIsOnCanvas, usePadding, useRadius } from \"https://framerusercontent.com/modules/IdMJ4CymCWCh4cOBkZlb/RXSqswLIbuViBOVW1keE/utils.js\";\nimport { darkThemeVariables, getVariablesForTheme, getVariableTheme, lightThemeVariables, themeKeys } from \"https://framerusercontent.com/modules/HdJmYu90NFzknVhsFw9C/MDI6YFyMfuxuxcY2EeV6/theming.js\";\nconst DEFAULT_CODE = `// Paste a code snippet\nimport { motion } from \"framer-motion\";\n\nfunction Component() {\n    return (\n        <motion.div\n            transition={{ ease: \"linear\" }}\n            animate={{ rotate: 360, scale: 2 }}\n        />\n    );\n}`;\nconst wrapperClassName = \"framer-cb\";\nconst css = [`\n.${wrapperClassName} .sp-pre-placeholder {\n    padding: var(--cb-padding) !important;\n    margin: 0 !important;\n    width: max-content;\n}\n    `, `\n.${wrapperClassName} .cm-scroller {\n    display: unset !important;\n    padding: 0 !important;\n}\n    `, `\n.${wrapperClassName} .cm-content {\n    padding: var(--cb-padding) !important;\n    width: max-content;\n}\n    `, `\n.${wrapperClassName} .sp-wrapper {\n    color-scheme: var(--cb-color-scheme, inherit);\n}\n    `,\n// This override rules to fix font-size on mobile safari.\n// .cm-content.cm-readonly is rendered with js enabled\n// .sp-pre-placeholder is rendered in no-js mode (SSG output)\n`\n@media screen and (max-width: 768px) {\n    @supports (-webkit-overflow-scrolling: touch) {\n        .cb-code-editor .cm-content.cm-readonly,\n        .cb-code-editor .sp-pre-placeholder {\n            font-size: var(--sp-font-size, inherit);\n            -webkit-text-size-adjust: 100%;\n        }\n    }\n}\n`,\n// Override the 50% height on small screens\n`\n@media screen and (max-width: 768px) {\n    .${wrapperClassName} .sp-editor-viewer.sp-stack {\n        height: 100%;\n    }\n}\n`,\n// Light mode\n`\n.${wrapperClassName} {\n    ${lightThemeVariables}\n}\n    `, `\nbody[data-framer-theme=\"dark\"] .${wrapperClassName} {\n    ${darkThemeVariables}\n}\n    `, `\n@media (prefers-color-scheme: dark) {\n    body:not([data-framer-theme]) .${wrapperClassName} {\n        ${darkThemeVariables}\n    }\n}\n    `].map(rule => rule.trim()); /**\n                                 * Code Block\n                                 *\n                                 * @framerSupportedLayoutWidth fixed\n                                 * @framerSupportedLayoutHeight any\n                                 *\n                                 * @framerDisableUnlink\n                                 *\n                                 * @framerIntrinsicWidth 500\n                                 * @framerIntrinsicHeight 200\n                                 *\n                                 * @framerComponentPresetProps borderRadius, border, font, themeMode, theme, lightTheme, darkTheme, background, padding\n                                 */\nconst CodeBlock = withCSS(function CodeBlock(props) {\n  const {\n    code,\n    themeMode,\n    theme,\n    lightTheme,\n    darkTheme,\n    style,\n    language,\n    font,\n    border,\n    background\n  } = props;\n  const variableTheme = getVariableTheme(font);\n  const lightThemeVariables = getVariablesForTheme(themeMode === \"Dynamic\" ? lightTheme : theme, background, \"light\");\n  const darkThemeVariables = getVariablesForTheme(themeMode === \"Dynamic\" ? darkTheme : theme, background, \"dark\"); // async version\n  const additionalLanguage = useLanguageAsync(language); // sync version\n  // const additionalLanguage = getLanguage(language)\n  const extension = getFileExtensions(language)[0];\n  const onCanvas = useIsOnCanvas();\n  const borderStyles = useBorder(border || {}, false);\n  const borderRadius = useRadius(props);\n  const hasBorderRadius = borderRadius !== \"0px 0px 0px 0px\" && borderRadius !== \"0px\";\n  const fileName = `example.${extension}`;\n  const padding = usePadding(props);\n  return /*#__PURE__*/_jsxs(motion.div, {\n    className: wrapperClassName,\n    whileHover: \"visible\",\n    style: {\n      ...lightThemeVariables,\n      ...darkThemeVariables,\n      position: \"relative\",\n      width: \"100%\",\n      height: \"100%\"\n    },\n    children: [/*#__PURE__*/_jsx(SandpackProvider, {\n      options: {\n        classes: {\n          \"sp-code-editor\": \"cb-code-editor\"\n        }\n      },\n      theme: variableTheme,\n      files: {\n        [fileName]: code\n      },\n      customSetup: {\n        entry: fileName\n      },\n      style: {\n        height: \"100%\"\n      },\n      children: /*#__PURE__*/_jsx(SandpackLayout, {\n        style: {\n          height: \"100%\",\n          // make sure the codeblock doesnt grow beyond\n          // the height of its contents\n          \"--sp-layout-height\": \"100%\",\n          // set the variables for padding we use in the overrides\n          \"--cb-padding\": `${padding}`,\n          ...borderStyles,\n          borderRadius,\n          transform:\n          // Safari sometimes struggles to render border-radius:\n          // - on the canvas when changing from 0 to any other value\n          // - or when rendering an iframe\n          hasBorderRadius && onCanvas ? \"translateZ(0.000001px)\" : \"unset\",\n          overflow: \"hidden\"\n        },\n        children: /*#__PURE__*/_jsx(SandpackCodeEditor, {\n          style: {\n            letterSpacing: font.letterSpacing\n          },\n          readOnly: true,\n          showReadOnly: false,\n          additionalLanguages: additionalLanguage ? [additionalLanguage] : undefined\n        })\n      })\n    }), /*#__PURE__*/_jsx(SandpackStyles, {})]\n  });\n}, css);\nexport default CodeBlock;\nfunction SandpackStyles() {\n  return /*#__PURE__*/_jsx(_Fragment, {\n    children: !Browser.isBrowser() && /*#__PURE__*/_jsx(\"style\", {\n      \"data-framer-css-ssr\": true,\n      dangerouslySetInnerHTML: {\n        __html: getSandpackCssText()\n      }\n    })\n  });\n}\nconst themeNames = themeKeys.map(titleCase);\naddPropertyControls(CodeBlock, {\n  code: {\n    type: ControlType.String,\n    title: \"Code\",\n    displayTextArea: true,\n    defaultValue: DEFAULT_CODE\n  },\n  themeMode: {\n    type: ControlType.Enum,\n    title: \"Theme\",\n    displaySegmentedControl: true,\n    options: [\"Static\", \"Dynamic\"],\n    defaultValue: \"Static\"\n  },\n  theme: {\n    type: ControlType.Enum,\n    title: \" \",\n    options: [...themeKeys],\n    optionTitles: themeNames,\n    defaultValue: \"framerDark\",\n    hidden: ({\n      themeMode\n    }) => themeMode !== \"Static\"\n  },\n  lightTheme: {\n    type: ControlType.Enum,\n    title: \"Light\",\n    options: [...themeKeys],\n    optionTitles: themeNames,\n    defaultValue: \"framerLight\",\n    hidden: ({\n      themeMode\n    }) => themeMode !== \"Dynamic\"\n  },\n  darkTheme: {\n    type: ControlType.Enum,\n    title: \"Dark\",\n    options: [...themeKeys],\n    optionTitles: themeNames,\n    defaultValue: \"framerDark\",\n    hidden: ({\n      themeMode\n    }) => themeMode !== \"Dynamic\"\n  },\n  language: {\n    type: ControlType.Enum,\n    title: \"Language\",\n    options: [...supportedLanguages],\n    defaultValue: \"JSX\"\n  },\n  font: {\n    // @ts-ignore: Internal API\n    type: ControlType.Font,\n    controls: \"extended\",\n    displayFontSize: true,\n    displayTextAlignment: false,\n    defaultFontType: \"monospace\",\n    defaultValue: {\n      fontSize: 14,\n      lineHeight: \"1.5em\"\n    }\n  },\n  background: {\n    title: \"Fill\",\n    type: ControlType.Color,\n    optional: true\n  },\n  border: {\n    buttonTitle: \"Options\",\n    type: ControlType.Object,\n    optional: true,\n    controls: {\n      borderColor: {\n        type: ControlType.Color,\n        title: \"Border\",\n        defaultValue: \"#eee\"\n      },\n      borderWidth: {\n        title: \"Width\",\n        type: ControlType.FusedNumber,\n        toggleKey: \"isMixedBorderWidth\",\n        toggleTitles: [\"Border\", \"Border per side\"],\n        valueKeys: [\"borderWidthTop\", \"borderWidthRight\", \"borderWidthBottom\", \"borderWidthLeft\"],\n        valueLabels: [\"T\", \"R\", \"B\", \"L\"],\n        min: 0,\n        defaultValue: 1\n      },\n      borderStyle: {\n        title: \"Style\",\n        type: ControlType.Enum,\n        options: [\"solid\", \"dashed\", \"dotted\", \"double\"],\n        optionTitles: [\"Solid\", \"Dashed\", \"Dotted\", \"double\"],\n        defaultValue: \"solid\"\n      }\n    }\n  },\n  borderRadius: {\n    title: \"Radius\",\n    type: ControlType.FusedNumber,\n    toggleKey: \"isMixedBorderRadius\",\n    toggleTitles: [\"Radius\", \"Radius per corner\"],\n    valueKeys: [\"topLeftRadius\", \"topRightRadius\", \"bottomRightRadius\", \"bottomLeftRadius\"],\n    valueLabels: [\"TL\", \"TR\", \"BR\", \"BL\"],\n    min: 0,\n    defaultValue: 15\n  },\n  padding: {\n    title: \"Padding\",\n    type: ControlType.FusedNumber,\n    toggleKey: \"paddingPerSide\",\n    toggleTitles: [\"Padding\", \"Padding per side\"],\n    valueKeys: [\"paddingTop\", \"paddingRight\", \"paddingBottom\", \"paddingLeft\"],\n    valueLabels: [\"T\", \"R\", \"B\", \"L\"],\n    min: 0,\n    defaultValue: 30\n  }\n});\nCodeBlock.displayName = \"Code Block\";\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"default\": {\n      \"type\": \"reactComponent\",\n      \"name\": \"CodeBlock\",\n      \"slots\": [],\n      \"annotations\": {\n        \"framerDisableUnlink\": \"*\",\n        \"framerComponentPresetProps\": \"borderRadius, border, font, themeMode, theme, lightTheme, darkTheme, background, padding\",\n        \"framerIntrinsicWidth\": \"500\",\n        \"framerSupportedLayoutWidth\": \"fixed\",\n        \"framerIntrinsicHeight\": \"200\",\n        \"framerContractVersion\": \"1\",\n        \"framerSupportedLayoutHeight\": \"any\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};", "import { jsx as e, jsxs as t } from \"react/jsx-runtime\";\nimport { addPropertyControls as n, ComponentPresetsConsumer as o, ControlType as i } from \"framer\";\nimport { motion as r } from \"framer-motion\";\nimport * as a from \"react\";\nimport l from \"https://framerusercontent.com/modules/pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js\";\nlet d = \"RdAi3B8SM\",\n  s = \"vGek7j2ME\",\n  c = \"yaOxe8T3B\",\n  h = \"EgriRtW4R\",\n  p = \"qO_fDlGuU\",\n  m = \"DL0yCYOM5\",\n  u = \"I16sFs1Pm\",\n  f = \"YSa9hqjuD\",\n  g = \"n9B1_i0wI\",\n  y = \"sFWy1U_Zi\",\n  S = \"F7ZMuYAe7\",\n  k = \"Uks2TWfP9\",\n  v = \"EIGyGdHVS\",\n  b = \"UaI5MmuDT\",\n  x = \"KeW_1wo5n\",\n  w = \"O0EE4al_k\",\n  T = \"kLb1hMp3v\",\n  B = \"ufozATX_c\",\n  C = [{\n    id: \"gS2vUO10v\",\n    [d]: \"What is Sleekify?\",\n    [s]: \"what-is-sleekify\",\n    [c]: \"ZT2faYN9q\",\n    [h]: 1,\n    [p]: \"Introduction\",\n    [m]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"Welcome to the world of Sleekify\u2014a streamlined, highly-efficient JavaScript framework designed to take your web development experience to the next level.\"\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"What Does Sleekify Do?\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"At its core, Sleekify simplifies the complexities of modern web development. Whether you are building a single-page application, a complex web service, or anything in between, Sleekify provides the building blocks you need.\"\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Why Choose Sleekify?\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Here are a few reasons to consider using Sleekify for your next project:\"\n      }), /*#__PURE__*/t(\"ol\", {\n        style: {\n          \"--framer-font-size\": \"16px\",\n          \"--framer-text-alignment\": \"start\",\n          \"--framer-text-color\": \"rgb(55, 65, 81)\",\n          \"--framer-text-transform\": \"none\"\n        },\n        children: [/*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"Simplicity\"\n            }), \": Easy setup and an intuitive API mean you spend less time reading documentation and more time coding.\"]\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"Performance\"\n            }), \": Sleekify is built for speed. Expect minimal load times and smooth user experiences.\"]\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"Flexibility\"\n            }), \": Our modular architecture lets you use as much or as little of the framework as you need.\"]\n          })\n        })]\n      })]\n    }),\n    [u]: \"How Does it Work?\",\n    [f]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"h3\", {\n        children: \"Core Features\"\n      }), /*#__PURE__*/t(\"ul\", {\n        style: {\n          \"--framer-font-size\": \"16px\",\n          \"--framer-text-alignment\": \"start\",\n          \"--framer-text-color\": \"rgb(55, 65, 81)\",\n          \"--framer-text-transform\": \"none\"\n        },\n        children: [/*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"Component-Based Architecture\"\n            }), \": Create reusable, easy-to-manage UI components.\"]\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"State Management\"\n            }), \": In-built utilities to manage your app's data effectively.\"]\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"Routing\"\n            }), \": Robust and flexible routing options to build SPAs with ease.\"]\n          })\n        })]\n      }), /*#__PURE__*/e(\"p\", {\n        children: 'Sleekify employs a virtual DOM to optimize rendering and improve application performance. Here\\'s a simple example that shows a \"Hello, World!\" component:'\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"import Slikify from 'slikify';\\n\\nclass HelloWorld extends Slikify.Component {\\n  render() {\\n    return '<h1>Hello, World!</h1>';\\n  }\\n}\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Community\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Sleekify has an ever-growing community of passionate developers. You can find tutorials, sample projects, and comprehensive guides that make you a Sleekify expert in no time.\"\n      })]\n    }),\n    [g]: \"\",\n    [y]: null,\n    [S]: \"\",\n    [k]: null,\n    [v]: \"\",\n    [b]: null,\n    [x]: \"\",\n    [w]: null,\n    [T]: \"\",\n    [B]: null\n  }, {\n    id: \"rNa_XUI_O\",\n    [d]: \"Installation Guide\",\n    [s]: \"installation-guide\",\n    [c]: \"ZT2faYN9q\",\n    [h]: 2,\n    [p]: \"Prerequisites\",\n    [m]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"Before diving in, ensure you're equipped with:\"\n      }), /*#__PURE__*/t(\"ul\", {\n        style: {\n          \"--framer-font-size\": \"16px\",\n          \"--framer-text-alignment\": \"start\",\n          \"--framer-text-color\": \"rgb(55, 65, 81)\",\n          \"--framer-text-transform\": \"none\"\n        },\n        children: [/*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"Modern Web Browser\"\n            }), \": Latest versions of Chrome, Firefox, or Edge.\"]\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"Text Editor\"\n            }), \": Choose an IDE like VS Code or Atom.\"]\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"Node.js & npm\"\n            }), \": Ensure you have Node.js (version 14 or later) installed. npm comes bundled with Node.js.\"]\n          })\n        })]\n      })]\n    }),\n    [u]: \"Step-by-Step Installation\",\n    [f]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"h4\", {\n        children: \"Open your Terminal/Command Prompt\"\n      }), /*#__PURE__*/t(\"ul\", {\n        style: {\n          \"--framer-font-size\": \"16px\",\n          \"--framer-text-alignment\": \"start\",\n          \"--framer-text-color\": \"rgb(55, 65, 81)\",\n          \"--framer-text-transform\": \"none\"\n        },\n        children: [/*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"macOS/Linux\"\n            }), \": Utilize your terminal.\"]\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"Windows\"\n            }), \": Opt for Command Prompt or Windows Subsystem for Linux (WSL).\"]\n          })\n        })]\n      }), /*#__PURE__*/e(\"h4\", {\n        children: \"Install Sleekify via npm\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Execute the following command to install Sleekify globally:\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"npm install -g sleekify\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h4\", {\n        children: \"Create Your First Sleekify Project\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"After installation, navigate to the directory where you'd like to create your new Sleekify project. Use the initialization command followed by your project's name:\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"sleekify init my-first-project\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h4\", {\n        children: \"Dive Right In!\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"With Sleekify now installed, you can start building your dream project. Navigate to your project directory and start the development server:\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"cd my-first-project\\nsleekify serve\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"This will launch a local server, and you can view your Sleekify app in your browser.\"\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Next Steps\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Now that Sleekify is up and running, consider exploring the foundational concepts in our documentation, starting with 'Defining Components'. Happy coding!\"\n      })]\n    }),\n    [g]: \"\",\n    [y]: null,\n    [S]: \"\",\n    [k]: null,\n    [v]: \"\",\n    [b]: null,\n    [x]: \"\",\n    [w]: null,\n    [T]: \"\",\n    [B]: null\n  }, {\n    id: \"iOvSqxo7e\",\n    [d]: \"CSS-in-JS\",\n    [s]: \"css-in-js\",\n    [c]: \"KzKM_8G_t\",\n    [h]: 3,\n    [p]: \"CSS in JS with Sleekify\",\n    [m]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"CSS in JS is a modern approach to writing your styles, combining the power of JavaScript with the expressiveness of CSS. Sleekify's flexibility allows developers to harness the best of both worlds, ensuring a dynamic and maintainable styling approach.\"\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Why CSS in JS?\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"CSS in JS bridges the gap between styling and component logic. With Sleekify, you gain:\"\n      }), /*#__PURE__*/t(\"ul\", {\n        style: {\n          \"--framer-font-size\": \"16px\",\n          \"--framer-text-alignment\": \"start\",\n          \"--framer-text-color\": \"rgb(55, 65, 81)\",\n          \"--framer-text-transform\": \"none\"\n        },\n        children: [/*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"Dynamic Styling\"\n            }), \": Adjust styles on-the-fly based on component state or props.\"]\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"Scoped Styles\"\n            }), \": Prevent styles from leaking to other parts of your application.\"]\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"Enhanced Maintainability\"\n            }), \": Keep your component and its style in the same location.\"]\n          })\n        })]\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Setting up\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"To start with CSS in JS, you'd first need to install the preferred library:\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"npm install styled-components\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Or, if you're using Yarn:\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"yarn add styled-components\",\n            language: \"JSX\"\n          })\n        })\n      })]\n    }),\n    [u]: \"Basic Styling\",\n    [f]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"Creating a styled component is straightforward:\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"import styled from 'styled-components';\\n\\nconst Button = styled.button`\\n    background: teal;\\n    color: white;\\n    padding: 10px 20px;\\n    border: none;\\n    border-radius: 4px;\\n`;\\n\\nconst App = () => <Button>Click Me</Button>;\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Dynamic Styling\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Leverage props to adjust styles dynamically:\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"const Alert = styled.div`\\n    padding: 10px;\\n    color: ${props => props.error ? 'red' : 'green'};\\n`;\\n\\nconst Message = ({ isError }) => <Alert error={isError}>This is a message</Alert>;\",\n            language: \"JSX\"\n          })\n        })\n      })]\n    }),\n    [g]: \"Theming with Sleekify\",\n    [y]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"Sleekify and styled-components work harmoniously with theming:\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"import { ThemeProvider } from 'styled-components';\\n\\nconst theme = {\\n    primary: 'purple',\\n    secondary: 'gold'\\n};\\n\\nconst ThemedButton = styled.button`\\n    background: ${props => props.theme.primary};\\n`;\\n\\nconst App = () => (\\n    <ThemeProvider theme={theme}>\\n        <ThemedButton>Themed Button</ThemedButton>\\n    </ThemeProvider>\\n);\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Server-Side Rendering\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"For apps requiring server-side rendering, CSS in JS ensures styles are consistently rendered, providing a smooth user experience.\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"To implement server-side rendering with styled-components:\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"npm install babel-plugin-styled-components\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"Then, adjust your \", /*#__PURE__*/e(\"code\", {\n          children: \".babelrc\"\n        }), \":\"]\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: '{\\n    \"plugins\": [\"styled-components\"]\\n}',\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Wrapping Up\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Embracing CSS in JS in Sleekify not only offers a powerful styling tool but also aligns with modern frontend development practices. Experiment, iterate, and watch your Sleekify applications come alive with style!\"\n      })]\n    }),\n    [S]: \"\",\n    [k]: null,\n    [v]: \"\",\n    [b]: null,\n    [x]: \"\",\n    [w]: null,\n    [T]: \"\",\n    [B]: null\n  }, {\n    id: \"S6cBmu0Wx\",\n    [d]: \"Basic Styling\",\n    [s]: \"basic-styling\",\n    [c]: \"KzKM_8G_t\",\n    [h]: 4,\n    [p]: \"Styling in Sleekify\",\n    [m]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"Crafting a visually appealing application is as crucial as its functionality. Sleekify offers a robust yet flexible styling approach that complements its dynamic features. Dive into Sleekify's styling methodology to make your apps both functional and stunning.\"\n      }), /*#__PURE__*/e(\"h3\", {\n        children: \"Sleekify's Styling Philosophy\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"At Sleekify's core is the belief that styling should be intuitive, scalable, and maintainable. We embrace both CSS standards and modern styling practices, allowing developers to choose the method that best suits their project.\"\n      })]\n    }),\n    [u]: \"Inline Styling\",\n    [f]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"While traditional, inline styles offer a quick way to style components. This is ideal for one-off styles or dynamic styles based on component state.\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"const MyComponent = () => {\\n    return (\\n        <div style={{color: 'blue', fontSize: '16px'}}>\\n            Hello Sleekify!\\n        </div>\\n    );\\n}\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"External Stylesheets\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"For larger projects, external stylesheets (CSS or SCSS) provide an organized approach.\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"import './MyComponentStyles.css';\\n\\nconst MyComponent = () => {\\n    return (\\n        <div className=\\\"myComponentStyle\\\">\\n            Sleek and Styled!\\n        </div>\\n    );\\n}\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h3\", {\n        children: /*#__PURE__*/e(\"br\", {\n          className: \"trailing-break\"\n        })\n      })]\n    }),\n    [g]: \"Styled Components\",\n    [y]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: 'For component-specific styling, Sleekify integrates seamlessly with libraries like \"styled-components\", which encapsulate styles at a component level.'\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"import styled from 'styled-components';\\n\\nconst StyledDiv = styled.div`\\n    color: purple;\\n    font-size: 20px;\\n`;\\n\\nconst MyComponent = () => <StyledDiv>Sleek and Modern!</StyledDiv>;\\n\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Theming and Variables\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Maintain a consistent look and feel throughout your application using themes. Define a set of style variables and utilize them across components for consistent styling and easy rebranding.\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"const theme = {\\n    primaryColor: '#3498db',\\n    secondaryColor: '#2c3e50',\\n    fontSize: '14px'\\n};\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Responsive Design\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"With Sleekify, crafting responsive designs is a breeze. Use traditional media queries or opt for integrated libraries to create designs that look great on any device.\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"/* Example of a media query */\\n@media (max-width: 768px) {\\n    .myComponentStyle {\\n        font-size: 12px;\\n    }\\n}\",\n            language: \"JSX\"\n          })\n        })\n      })]\n    }),\n    [S]: \"\",\n    [k]: null,\n    [v]: \"\",\n    [b]: null,\n    [x]: \"\",\n    [w]: null,\n    [T]: \"\",\n    [B]: null\n  }, {\n    id: \"QO8ya24n7\",\n    [d]: \"Lifestyle Hooks\",\n    [s]: \"lifestyle-hooks\",\n    [c]: \"yBUDr5S7v\",\n    [h]: 5,\n    [p]: \"Lifecycle Hooks in Sleekify\",\n    [m]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"In Sleekify, just as in many modern JavaScript frameworks, components have lifecycles. Lifecycle hooks allow developers to execute specific pieces of code at different stages of a component's life in the DOM. These hooks provide the means to tap into crucial moments, from creation to updating and eventual destruction.\"\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Introduction to Lifecycle Hooks\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Lifecycle hooks provide visibility into the internal workings of components, offering precise control over various stages of component rendering and existence in the DOM.\"\n      })]\n    }),\n    [u]: \"Mounting Phase Hooks\",\n    [f]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"These are the methods called when an instance of a component is being created and inserted into the DOM.\"\n      }), /*#__PURE__*/e(\"h5\", {\n        children: /*#__PURE__*/e(\"code\", {\n          children: \"componentWillMount()\"\n        })\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"This hook is called right before a component is mounted. It's a perfect place for setting initial states.\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"componentWillMount() {\\n    // Set initial states or perform setup operations\\n}\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h5\", {\n        children: /*#__PURE__*/e(\"code\", {\n          children: \"componentDidMount()\"\n        })\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Executed immediately after a component is added to the DOM. This is where you might initiate network requests or interact with the DOM directly.\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"componentDidMount() {\\n    // Fetch data or perform other initialization procedures\\n}\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h2\", {\n        children: /*#__PURE__*/e(\"br\", {\n          className: \"trailing-break\"\n        })\n      })]\n    }),\n    [g]: \"Updating Phase Hooks\",\n    [y]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"These hooks are called when a component is being re-rendered.\"\n      }), /*#__PURE__*/e(\"h5\", {\n        children: /*#__PURE__*/e(\"code\", {\n          children: \"componentShouldUpdate(nextProps, nextState)\"\n        })\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"Invoked before rendering when new props or state are received. It should return \", /*#__PURE__*/e(\"code\", {\n          children: \"true\"\n        }), \" if the component should re-render and \", /*#__PURE__*/e(\"code\", {\n          children: \"false\"\n        }), \" otherwise.\"]\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"componentShouldUpdate(nextProps, nextState) {\\n    // Determine whether the component should update or not\\n}\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h5\", {\n        children: /*#__PURE__*/e(\"code\", {\n          children: \"componentWillUpdate(nextProps, nextState)\"\n        })\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"This hook is called just before rendering when new props or state are being received.\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"componentWillUpdate(nextProps, nextState) {\\n    // Prepare for an update\\n}\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h5\", {\n        children: /*#__PURE__*/e(\"code\", {\n          children: \"componentDidUpdate(prevProps, prevState)\"\n        })\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Called immediately after updating. Useful for DOM operations or network requests after an update.\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"componentDidUpdate(prevProps, prevState) {\\n    // React to component updates\\n}\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Unmounting Phase Hook\"\n      }), /*#__PURE__*/e(\"h5\", {\n        children: /*#__PURE__*/e(\"code\", {\n          children: \"componentWillUnmount()\"\n        })\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Invoked immediately before a component is unmounted and destroyed. This is where you'll perform necessary cleanup.\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"componentWillUnmount() {\\n    // Clean up any subscriptions, events, or manual DOM manipulations\\n}\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Wrapping Up\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Understanding and leveraging lifecycle hooks is crucial for building efficient and effective Sleekify applications. They offer a clear picture of the component's journey, from birth to death, and allow for optimal performance and user experience enhancements. Embrace these hooks to truly harness the power of Sleekify!\"\n      })]\n    }),\n    [S]: \"\",\n    [k]: null,\n    [v]: \"\",\n    [b]: null,\n    [x]: \"\",\n    [w]: null,\n    [T]: \"\",\n    [B]: null\n  }, {\n    id: \"gEH5u0cAr\",\n    [d]: \"Defining Components\",\n    [s]: \"defining-components\",\n    [c]: \"yBUDr5S7v\",\n    [h]: 6,\n    [p]: \"Defining Components\",\n    [m]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"Components are the building blocks of Sleekify applications. They enable developers to write reusable, self-contained pieces of the UI, streamlining the development process. In this guide, we'll explore how to define and utilize components in Sleekify effectively.\"\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Introduction to Components\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"In Sleekify, a component represents a part of the user interface. Each component is a cohesive unit, encompassing both its logic and presentation.\"\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Creating a Simple Component\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"To kick things off, let's create a basic component:\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"function Welcome() {\\n    return <h1>Hello, Sleekify!</h1>;\\n}\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"Here, \", /*#__PURE__*/e(\"code\", {\n          children: \"Welcome\"\n        }), \" is a functional component. When rendered, it will display a greeting message.\"]\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"function App() {\\n    return <Welcome />;\\n}\",\n            language: \"JSX\"\n          })\n        })\n      })]\n    }),\n    [u]: \"Using Components\",\n    [f]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"Once defined, you can use your component within other parts of your app:\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"function App() {\\n    return <Welcome />;\\n}\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"The \", /*#__PURE__*/e(\"code\", {\n          children: \"<Welcome />\"\n        }), \" syntax denotes a JSX representation of our \", /*#__PURE__*/e(\"code\", {\n          children: \"Welcome\"\n        }), \" component.\"]\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Component Props\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: 'Props (short for \"properties\") allow you to pass data into your components:'\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"function Greeting(props) {\\n    return <h1>Hello, {props.name}!</h1>;\\n}\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"Use the component and pass in the \", /*#__PURE__*/e(\"code\", {\n          children: \"name\"\n        }), \" prop:\"]\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: '<Greeting name=\"Sleekify\" />',\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Class Components\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"While functional components are concise, class components offer more features:\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"class WelcomeClass extends Sleekify.Component {\\n    render() {\\n        return <h1>Hello, {this.props.name}!</h1>;\\n    }\\n}\",\n            language: \"JSX\"\n          })\n        })\n      })]\n    }),\n    [g]: \"Stateful Components\",\n    [y]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"State allows components to maintain dynamic data:\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"class Counter extends Sleekify.Component {\\n    constructor(props) {\\n        super(props);\\n        this.state = { count: 0 };\\n    }\\n\\n    handleIncrement = () => {\\n        this.setState({ count: this.state.count + 1 });\\n    };\\n\\n    render() {\\n        return (\\n            <div>\\n                <p>Count: {this.state.count}</p>\\n                <button onClick={this.handleIncrement}>Increment</button>\\n            </div>\\n        );\\n    }\\n}\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Components in Sleekify have lifecycle methods that you can override to run code at particular times in the process:\"\n      }), /*#__PURE__*/t(\"ul\", {\n        style: {\n          \"--framer-font-size\": \"16px\",\n          \"--framer-text-alignment\": \"start\",\n          \"--framer-text-color\": \"rgb(55, 65, 81)\",\n          \"--framer-text-transform\": \"none\"\n        },\n        children: [/*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"code\", {\n              children: \"componentDidMount()\"\n            }), \": Executed after the component is inserted into the DOM.\"]\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"code\", {\n              children: \"componentDidUpdate()\"\n            }), \": Runs after the component updates.\"]\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"code\", {\n              children: \"componentWillUnmount()\"\n            }), \": Runs right before the component is removed from the DOM.\"]\n          })\n        })]\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Wrapping Up\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"By mastering components in Sleekify, you're well on your way to building dynamic, interactive, and modular applications. Embrace the component philosophy and harness the full potential of Sleekify!\"\n      })]\n    }),\n    [S]: \"\",\n    [k]: null,\n    [v]: \"\",\n    [b]: null,\n    [x]: \"\",\n    [w]: null,\n    [T]: \"\",\n    [B]: null\n  }, {\n    id: \"t7FwQEKpR\",\n    [d]: \"Route Params\",\n    [s]: \"route-params\",\n    [c]: \"uTT8y3t2m\",\n    [h]: 7,\n    [p]: \"Route Params in Sleekify\",\n    [m]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"Route parameters are essential for creating dynamic routes, allowing for the creation of more flexible and reusable components. In Sleekify, route parameters are seamlessly integrated, making it straightforward to capture and utilize them in your components.\"\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Introduction to Route Params\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Route parameters are variables that can capture values directly from the URL. They're ideal for scenarios like displaying details for specific items, such as user profiles, product details, or articles.\"\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Defining a Route with Params\"\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"In Sleekify, route parameters are denoted using a colon \", /*#__PURE__*/e(\"code\", {\n          children: \":\"\n        }), \" followed by the parameter name.\"]\n      }), /*#__PURE__*/e(\"h3\", {\n        children: \"Basic Param Definition\"\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"For a route that captures a user's ID to render a \", /*#__PURE__*/e(\"code\", {\n          children: \"UserProfileComponent\"\n        }), \":\"]\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"import { Route } from 'sleekify/routing';\\n\\n<Route path=\\\"/user/:userId\\\" component={UserProfileComponent} />\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"In the above definition, \", /*#__PURE__*/e(\"code\", {\n          children: \":userId\"\n        }), \" is a route parameter that will capture any value in its position in the URL.\"]\n      })]\n    }),\n    [u]: \"Accessing Route Params \",\n    [f]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"h2\", {\n        children: \"Accessing Route Params in Components\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Once a route parameter is captured, you can easily access it within the associated component.\"\n      }), /*#__PURE__*/t(\"h3\", {\n        children: [\"Using the \", /*#__PURE__*/e(\"code\", {\n          children: \"useParams\"\n        }), \" Hook\"]\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"Sleekify provides the \", /*#__PURE__*/e(\"code\", {\n          children: \"useParams\"\n        }), \" hook, allowing components to tap into the captured route parameters.\"]\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"import { useParams } from 'sleekify/routing';\\n\\nfunction UserProfileComponent() {\\n    const { userId } = useParams();\\n    // Now use the userId in your component logic\\n}\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Optional Route Params\"\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"Sometimes, you may want to make route parameters optional. With Sleekify, you can achieve this by appending a \", /*#__PURE__*/e(\"code\", {\n          children: \"?\"\n        }), \" to the parameter name.\"]\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: '<Route path=\"/product/:productId?\" component={ProductComponent} />',\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"The above route will match both \", /*#__PURE__*/e(\"code\", {\n          children: \"/product/123\"\n        }), \" and just \", /*#__PURE__*/e(\"code\", {\n          children: \"/product\"\n        }), \", providing flexibility in how you structure your routes.\"]\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Wrapping Up\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Route parameters empower developers to craft dynamic, adaptable routes that cater to a wide range of application needs. With Sleekify's straightforward implementation of route params, you're equipped to handle complex navigation structures with ease. Experiment with route parameters, and watch your application adapt and grow in real-time!\"\n      })]\n    }),\n    [g]: \"\",\n    [y]: null,\n    [S]: \"\",\n    [k]: null,\n    [v]: \"\",\n    [b]: null,\n    [x]: \"\",\n    [w]: null,\n    [T]: \"\",\n    [B]: null\n  }, {\n    id: \"Hquh7SyU1\",\n    [d]: \"Basic Routing\",\n    [s]: \"basic-routing\",\n    [c]: \"uTT8y3t2m\",\n    [h]: 8,\n    [p]: \"Basic Routing in Sleekify\",\n    [m]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"Routing is fundamental in crafting rich single-page applications (SPAs). With Sleekify, setting up basic routing is a breeze, enabling you to transition between views seamlessly without full page reloads. Here's a guide to get started with Sleekify's basic routing capabilities.\"\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Introduction to Sleekify's Routing\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"In Sleekify, routing is all about matching a URL pattern with a view or component. Instead of rendering different pages for different URLs, Sleekify loads different components based on the current URL.\"\n      })]\n    }),\n    [u]: \"Setting Up The Router\",\n    [f]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"Before diving into routes, you need to set up the router in your main application file.\"\n      }), /*#__PURE__*/e(\"h3\", {\n        children: \"Importing the Router\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"First, import the necessary modules from Sleekify's routing package.\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"import { SleekRouter, Route } from 'sleekify/routing';\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h3\", {\n        children: \"Embedding the Router\"\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"Incorporate the \", /*#__PURE__*/e(\"code\", {\n          children: \"SleekRouter\"\n        }), \" component in your main component, wrapping your application's core components.\"]\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"<SleekRouter>\\n    // Your core components go here\\n</SleekRouter>\",\n            language: \"JSX\"\n          })\n        })\n      })]\n    }),\n    [g]: \"Defining Routes\",\n    [y]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"With the router in place, you can now define routes. Each route matches a URL pattern to a specific component.\"\n      }), /*#__PURE__*/e(\"h3\", {\n        children: \"Basic Route Definition\"\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"For a basic route that renders the \", /*#__PURE__*/e(\"code\", {\n          children: \"HomeComponent\"\n        }), \" when the URL is \", /*#__PURE__*/e(\"code\", {\n          children: \"/home\"\n        }), \", you'd set it up as follows:\"]\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: '<Route path=\"/home\" component={HomeComponent} />',\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Navigating Between Routes\"\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"Transitioning between views in Sleekify is as simple as using standard anchor tags or leveraging Sleekify's built-in \", /*#__PURE__*/e(\"code\", {\n          children: \"Link\"\n        }), \" component for a more integrated experience.\"]\n      }), /*#__PURE__*/t(\"h3\", {\n        children: [\"Using the \", /*#__PURE__*/e(\"code\", {\n          children: \"Link\"\n        }), \" Component\"]\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"To navigate to the \", /*#__PURE__*/e(\"code\", {\n          children: \"/home\"\n        }), \" route:\"]\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"import { Link } from 'sleekify/routing';\\n\\n<Link to=\\\"/home\\\">Home</Link>\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"The \", /*#__PURE__*/e(\"code\", {\n          children: \"Link\"\n        }), \" component renders as an anchor tag but handles navigation within your SPA without causing page reloads.\"]\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Wrapping Up\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"With Sleekify's intuitive routing mechanism, setting up basic routing for your application becomes an effortless endeavor. As your app grows, Sleekify's routing capabilities can scale alongside, supporting nested routes, route guards, and much more. Dive in and start creating immersive navigation experiences for your users!\"\n      })]\n    }),\n    [S]: \"\",\n    [k]: null,\n    [v]: \"\",\n    [b]: null,\n    [x]: \"\",\n    [w]: null,\n    [T]: \"\",\n    [B]: null\n  }, {\n    id: \"GWkMsJJhq\",\n    [d]: \"Local state\",\n    [s]: \"local-state\",\n    [c]: \"zznEZBe7l\",\n    [h]: 9,\n    [p]: \"Local State in Sleekify\",\n    [m]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"Local state is a fundamental concept in Sleekify, allowing individual components to hold and manage their data. While we have previously delved into the general idea of state in Sleekify, this guide narrows its focus to the concept of local state.\"\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"What is Local State?\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Local state refers to data that a component maintains and manages internally. It is local because its scope is confined to the particular component that owns it. This state can change over time based on user interactions, lifecycle methods, or other factors.\"\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Initializing and Using Local State\"\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"Sleekify offers a straightforward method for initializing and utilizing local state, primarily through the \", /*#__PURE__*/e(\"code\", {\n          children: \"useState\"\n        }), \" hook.\"]\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"import { useState } from 'sleekify';\\n\\nfunction ToggleButton() {\\n    const [isToggled, setToggle] = useState(false);\\n    \\n    return (\\n        <button onClick={() => setToggle(!isToggled)}>\\n            {isToggled ? 'ON' : 'OFF'}\\n        </button>\\n    );\\n}\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"In the example above, the \", /*#__PURE__*/e(\"code\", {\n          children: \"ToggleButton\"\n        }), \" component uses local state to track whether the button is toggled on or off.\"]\n      })]\n    }),\n    [u]: \"Benefits of Using Local State\",\n    [f]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"h3\", {\n        children: \"Scoped Data Management\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Local state provides a way to handle data that's only relevant to a specific component. By using local state, you can encapsulate functionality, making components more modular and reusable.\"\n      }), /*#__PURE__*/e(\"h3\", {\n        children: \"Optimized Performance\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Since the state is local, changes to it won't trigger unnecessary re-renders in unrelated components, leading to more efficient and performant applications.\"\n      }), /*#__PURE__*/e(\"h3\", {\n        children: \"Simplified Data Flow\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"With local state, there's no need to navigate complex data flows or manage global state for every small piece of data. This can simplify the logic and structure of your app.\"\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"When to Use Local State?\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Local state is best for:\"\n      }), /*#__PURE__*/t(\"ul\", {\n        style: {\n          \"--framer-font-size\": \"16px\",\n          \"--framer-text-alignment\": \"start\",\n          \"--framer-text-color\": \"rgb(55, 65, 81)\",\n          \"--framer-text-transform\": \"none\"\n        },\n        children: [/*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"Component-specific data\"\n            }), \": If the data is not needed by other components, it's a good candidate for local state.\"]\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"Transient states\"\n            }), \": UI states like toggles, form input values, and dropdown open states are often best managed as local states.\"]\n          })\n        })]\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Conclusion\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Local state in Sleekify provides a powerful mechanism to manage data that is specific to a component. By understanding and utilizing local state effectively, developers can build more modular, efficient, and straightforward applications. Always evaluate the scope and purpose of your data before deciding where to store it, and leverage local state when it aligns with your component's needs.\"\n      })]\n    }),\n    [g]: \"\",\n    [y]: null,\n    [S]: \"\",\n    [k]: null,\n    [v]: \"\",\n    [b]: null,\n    [x]: \"\",\n    [w]: null,\n    [T]: \"\",\n    [B]: null\n  }, {\n    id: \"metlxtSIw\",\n    [d]: \"State vs props\",\n    [s]: \"state-vs-props\",\n    [c]: \"zznEZBe7l\",\n    [h]: 10,\n    [p]: \"State vs. Props in Sleekify\",\n    [m]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"In the world of Sleekify and modern frontend frameworks, understanding the distinction between state and props is fundamental. Both serve as data sources for a component, but they have unique roles and are used in different scenarios. This guide will delve into the differences and nuances between state and props in Sleekify.\"\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Overview\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Before diving into the details, it's essential to establish a baseline understanding of both concepts:\"\n      }), /*#__PURE__*/t(\"ul\", {\n        style: {\n          \"--framer-font-size\": \"16px\",\n          \"--framer-text-alignment\": \"start\",\n          \"--framer-text-color\": \"rgb(55, 65, 81)\",\n          \"--framer-text-transform\": \"none\"\n        },\n        children: [/*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"State\"\n            }), \": Refers to local data that a component maintains and can change over time. A component's state is mutable, meaning it can be modified.\"]\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"Props\"\n            }), \": Short for properties, props represent immutable data passed down from a parent component. Props provide a mechanism for one component to communicate with another.\"]\n          })\n        })]\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Props in Depth\"\n      }), /*#__PURE__*/e(\"h3\", {\n        children: \"Definition and Usage\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Props are used to pass data from one component to another, especially from a parent component to a child component. They're read-only, ensuring a one-way data flow.\"\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: 'function WelcomeMessage(props) {\\n    return <h1>Hello, {props.name}!</h1>;\\n}\\n\\n<WelcomeMessage name=\"Sleekify\" />',\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"In the above example, the \", /*#__PURE__*/e(\"code\", {\n          children: \"name\"\n        }), \" prop is passed to the \", /*#__PURE__*/e(\"code\", {\n          children: \"WelcomeMessage\"\n        }), \" component.\"]\n      }), /*#__PURE__*/e(\"h3\", {\n        children: \"Why Use Props?\"\n      }), /*#__PURE__*/t(\"ul\", {\n        style: {\n          \"--framer-font-size\": \"16px\",\n          \"--framer-text-alignment\": \"start\",\n          \"--framer-text-color\": \"rgb(55, 65, 81)\",\n          \"--framer-text-transform\": \"none\"\n        },\n        children: [/*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"Reusability\"\n            }), \": Design components that can receive different data and behave accordingly.\"]\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"One-way Data Flow\"\n            }), \": Ensure a predictable data flow, making debugging and understanding your app's behavior easier.\"]\n          })\n        })]\n      })]\n    }),\n    [u]: \"State in Depth\",\n    [f]: /*#__PURE__*/t(a.Fragment, {\n      children: [/*#__PURE__*/e(\"h3\", {\n        children: \"Definition and Initialization\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"State refers to a component's local storage that can change over time based on interactions and events.\"\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"In Sleekify, you can initialize a state using the \", /*#__PURE__*/e(\"code\", {\n          children: \"useState\"\n        }), \" hook:\"]\n      }), /*#__PURE__*/e(r.div, {\n        className: \"framer-text-module\",\n        style: {\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(o, {\n          componentIdentifier: \"module:pVk4QsoHxASnVtUBp6jr/TbhpORLndv1iOkZzyo83/CodeBlock.js:default\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            code: \"import { useState } from 'sleekify';\\n\\nfunction CounterComponent() {\\n    const [count, setCount] = useState(0);\\n    \\n    return (\\n        <div>\\n            <p>Current count: {count}</p>\\n            <button onClick={() => setCount(count + 1)}>Increment</button>\\n        </div>\\n    );\\n}\",\n            language: \"JSX\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h3\", {\n        children: \"Why Use State?\"\n      }), /*#__PURE__*/t(\"ul\", {\n        style: {\n          \"--framer-font-size\": \"16px\",\n          \"--framer-text-alignment\": \"start\",\n          \"--framer-text-color\": \"rgb(55, 65, 81)\",\n          \"--framer-text-transform\": \"none\"\n        },\n        children: [/*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"Interactivity\"\n            }), \": Modify component data in real-time, reflecting user interactions and events.\"]\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [/*#__PURE__*/e(\"strong\", {\n              children: \"Local Data Management\"\n            }), \": Manage data that doesn't need to be lifted to a parent component or global store.\"]\n          })\n        })]\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Key Differences\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"To summarize:\"\n      }), /*#__PURE__*/t(\"ul\", {\n        style: {\n          \"--framer-font-size\": \"16px\",\n          \"--framer-text-alignment\": \"start\",\n          \"--framer-text-color\": \"rgb(55, 65, 81)\",\n          \"--framer-text-transform\": \"none\"\n        },\n        children: [/*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [\"Props are \", /*#__PURE__*/e(\"strong\", {\n              children: \"immutable\"\n            }), \" and are used to pass data from parent to child.\"]\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [\"State is \", /*#__PURE__*/e(\"strong\", {\n              children: \"mutable\"\n            }), \" and is used to store local data that a component can change.\"]\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [\"Props facilitate \", /*#__PURE__*/e(\"strong\", {\n              children: \"one-way data flow\"\n            }), \", while state enables components to be \", /*#__PURE__*/e(\"strong\", {\n              children: \"dynamic and interactive\"\n            }), \".\"]\n          })\n        })]\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Conclusion\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"In Sleekify, both state and props play crucial roles in building robust, interactive applications. By understanding when and how to use each, you can craft components that are both flexible and predictable, leading to better user experiences and more maintainable codebases.\"\n      })]\n    }),\n    [g]: \"\",\n    [y]: null,\n    [S]: \"\",\n    [k]: null,\n    [v]: \"\",\n    [b]: null,\n    [x]: \"\",\n    [w]: null,\n    [T]: \"\",\n    [B]: null\n  }];\nfor (let e of C) Object.freeze(e);\nn(C, {\n  RdAi3B8SM: {\n    defaultValue: \"\",\n    title: \"Title\",\n    type: i.String\n  },\n  vGek7j2ME: {\n    title: \"Slug\",\n    type: i.String\n  },\n  yaOxe8T3B: {\n    defaultValue: \"ZT2faYN9q\",\n    options: [\"ZT2faYN9q\", \"KzKM_8G_t\", \"yBUDr5S7v\", \"uTT8y3t2m\", \"zznEZBe7l\"],\n    optionTitles: [\"Getting Started\", \"Styling\", \"Components\", \"Routing\", \"State Management\"],\n    title: \"Category\",\n    type: i.Enum\n  },\n  EgriRtW4R: {\n    defaultValue: 0,\n    displayStepper: !0,\n    title: \"ID\",\n    type: i.Number\n  },\n  qO_fDlGuU: {\n    defaultValue: \"\",\n    title: \"Section Title 1\",\n    type: i.String\n  },\n  DL0yCYOM5: {\n    defaultValue: \"\",\n    title: \"Section 1\",\n    type: i.RichText\n  },\n  I16sFs1Pm: {\n    defaultValue: \"\",\n    title: \"Section Title 2\",\n    type: i.String\n  },\n  YSa9hqjuD: {\n    defaultValue: \"\",\n    title: \"Section 2\",\n    type: i.RichText\n  },\n  n9B1_i0wI: {\n    defaultValue: \"\",\n    title: \"Section Title 3\",\n    type: i.String\n  },\n  sFWy1U_Zi: {\n    defaultValue: \"\",\n    title: \"Section 3\",\n    type: i.RichText\n  },\n  F7ZMuYAe7: {\n    defaultValue: \"\",\n    title: \"Section Title 4\",\n    type: i.String\n  },\n  Uks2TWfP9: {\n    defaultValue: \"\",\n    title: \"Section 4\",\n    type: i.RichText\n  },\n  EIGyGdHVS: {\n    defaultValue: \"\",\n    title: \"Section Title 5\",\n    type: i.String\n  },\n  UaI5MmuDT: {\n    defaultValue: \"\",\n    title: \"Section 5\",\n    type: i.RichText\n  },\n  KeW_1wo5n: {\n    defaultValue: \"\",\n    title: \"Section Title 6\",\n    type: i.String\n  },\n  O0EE4al_k: {\n    defaultValue: \"\",\n    title: \"Section 6\",\n    type: i.RichText\n  },\n  kLb1hMp3v: {\n    defaultValue: \"\",\n    title: \"Section Title 7\",\n    type: i.String\n  },\n  ufozATX_c: {\n    defaultValue: \"\",\n    title: \"Section 7\",\n    type: i.RichText\n  }\n}), C.displayName = \"Documentation\";\nexport default C;\nexport const yaOxe8T3BToDisplayName = (e, t) => {\n  switch (null == t || t.fallback, e) {\n    case \"ZT2faYN9q\":\n      return \"Getting Started\";\n    case \"KzKM_8G_t\":\n      return \"Styling\";\n    case \"yBUDr5S7v\":\n      return \"Components\";\n    case \"uTT8y3t2m\":\n      return \"Routing\";\n    case \"zznEZBe7l\":\n      return \"State Management\";\n    default:\n      return \"\";\n  }\n};\nexport const enumToDisplayNameFunctions = {\n  yaOxe8T3B: yaOxe8T3BToDisplayName\n};\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"yaOxe8T3BToDisplayName\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"enumToDisplayNameFunctions\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"default\": {\n      \"type\": \"data\",\n      \"name\": \"data\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\",\n        \"framerSlug\": \"vGek7j2ME\",\n        \"framerEnumToDisplayNameUtils\": \"2\",\n        \"framerData\": \"\",\n        \"framerRecordIdKey\": \"id\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};"],
  "mappings": "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",
  "names": ["_checkPrivateRedeclaration", "obj", "privateCollection", "_classApplyDescriptorGet", "receiver", "descriptor", "_classApplyDescriptorSet", "value", "_classExtractFieldDescriptor", "privateMap", "action", "_classPrivateFieldGet", "_classPrivateFieldInit", "_classPrivateFieldSet", "_classPrivateMethodGet", "privateSet", "fn", "_classPrivateMethodInit", "_defineProperty", "key", "__create", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__getProtoOf", "__hasOwnProp", "__defNormalProp", "__commonJS", "cb", "mod", "__copyProps", "to", "from", "except", "desc", "__toESM", "isNodeMode", "target", "__publicField", "__accessCheck", "member", "msg", "__privateGet", "getter", "__privateAdd", "__privateSet", "setter", "__privateMethod", "method", "require_pad", "exports", "module", "num", "size", "s", "require_fingerprint_browser", "require_getRandomValue_browser", "getRandomValue", "crypto", "window", "lim", "require_cuid", "fingerprint", "pad", "c", "blockSize", "base", "discreteValues", "randomBlock", "safeCounter", "cuid3", "letter", "timestamp", "counter", "print", "random", "date", "stringToCheck", "stringLength", "require_createDeferredExecutor", "createDeferredExecutor", "executor", "resolve", "reject", "data", "onFulfilled", "reason", "require_DeferredPromise", "_executor", "_decorate", "_class", "createDeferredExecutor_1", "DeferredPromise4", "onRejected", "decorate", "onfinally", "deferredExecutor", "originalResolve", "originalReject", "promise", "require_build", "__createBinding", "o", "m", "k", "k2", "__exportStar", "exports2", "p", "require_MemoryLeakError", "MemoryLeakError", "emitter", "type", "count", "require_Emitter", "MemoryLeakError_1", "_events", "_maxListeners", "_hasWarnedAboutPotentialMemortyLeak", "_getListeners", "getListeners_fn", "_removeListener", "removeListener_fn", "_wrapOnceListener", "wrapOnceListener_fn", "_internalEmit", "internalEmit_fn", "_Emitter", "eventName", "maxListeners", "listeners", "listener", "nextListeners", "memoryLeakWarning", "Emitter2", "index", "onceListener", "internalEventName", "require_lib", "import_cuid", "POSITIONALS_EXP", "serializePositional", "positional", "flag", "json", "format", "message", "positionals", "positionalIndex", "formattedMessage", "match", "isEscaped", "_", "STACK_FRAMES_TO_IGNORE", "cleanErrorStack", "error", "nextStack", "InvariantError", "invariant", "predicate", "ErrorConstructor", "import_deferred_promise", "FLAG", "DEFAULT", "GREEN", "RED", "BLUE", "YELLOW", "MAGENTA", "CYAN", "COLOR_SCOPE", "createDebug", "scope", "direction", "cleanMessage", "debug", "MessageSender", "handshakePromise", "import_deferred_promise", "debug", "rejectionTimeout", "event", "listener", "options", "message", "data", "operationPromise", "operationId", "import_cuid", "payload", "handleOperationDone", "doneEvent", "data2", "listenerPayload", "handleOperationFailed", "failEvent", "target", "receiverReadyPromise", "handshakeListener", "window", "evt", "import_deferred_promise3", "__toESM", "require_build", "import_cuid2", "require_cuid", "FileSystemApi", "files", "path", "encoding", "response", "error", "format", "content", "recursive", "force", "includes", "excludes", "watcherId", "channel", "import_strict_event_emitter", "require_lib", "ShellApi", "ShellProcess", "command", "args", "invariant", "shellInfo", "import_deferred_promise2", "TIMEOUT", "PreviewApi", "predicate", "timeout", "readyPromise", "rejectTimeout", "previewInformation", "foundPreview", "sourceShellId", "port", "DEFAULT_RUNTIME_URL", "debug2", "createDebug", "Nodebox", "iframe", "cdnUrl", "connectionPromise", "frameLoadPromise", "_defineProperty", "INJECT_MESSAGE_TYPE", "PREVIEW_LOADED_MESSAGE_TYPE", "__create", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__getProtoOf", "__hasOwnProp", "__esm", "fn", "res", "__commonJS", "cb", "mod", "__export", "target", "all", "name", "__copyProps", "to", "from", "except", "desc", "key", "__toESM", "isNodeMode", "serializePositional", "positional", "flag", "json", "format", "message", "positionals", "positionalIndex", "formattedMessage", "POSITIONALS_EXP", "match", "isEscaped", "_", "value", "cleanErrorStack", "error", "nextStack", "STACK_FRAMES_TO_IGNORE", "InvariantError", "invariant", "init_lib", "predicate", "ErrorConstructor", "__extends", "d", "b", "extendStatics", "__", "__awaiter", "thisArg", "_arguments", "P", "generator", "adopt", "resolve", "reject", "fulfilled", "step", "e", "rejected", "result", "__generator", "body", "t", "f", "y", "g", "verb", "n", "v", "op", "__spreadArray", "pack", "i", "l", "ar", "nullthrows", "err", "createError", "createPackageJSON", "dependencies", "devDependencies", "entry", "addPackageJSONIfNeeded", "files", "_a2", "_b", "normalizedFilesPath", "normalizePath", "packageJsonFile", "DEPENDENCY_ERROR_MESSAGE", "ENTRY_ERROR_MESSAGE", "packageJsonContent", "__assign", "extractErrorDetails", "msg", "title", "path", "line", "column", "relevantStackFrame", "getRelevantStackFrame", "errorInCode", "getErrorInOriginalCode", "errorLocation", "getErrorLocation", "errorMessage", "formatErrorMessage", "frames", "frame", "errorFrame", "lastScriptLine", "numberOfLineNumberCharacters", "leadingCharacterOffset", "barSeparatorCharacterOffset", "extraLineLeadingSpaces", "scriptLine", "leadingChar", "lineNumber", "extraLine", "filePath", "location", "SandpackLogLevel", "init_types_36e5ec0d", "d2", "b2", "p", "s", "acc", "content", "fileName", "SandpackLogLevel2", "find", "iter", "tar", "dequal", "foo", "bar", "ctor", "len", "tmp", "has", "init_dist", "SandpackClient", "init_base_80a1f760", "SandpackClient2", "iframeSelector", "sandboxSetup", "options", "_sandboxSetup", "_isInitializationCompile", "_message", "_listener", "isCommand", "char", "isAlpha", "isWhitespace", "isOperator", "isArgument", "isString", "isEnvVar", "tokenize", "input", "current", "tokens", "parseCommand", "TokenType", "parseOperator", "operators", "parseArgument", "parseString", "openCloseQuote", "parseEnvVars", "parseSingleEnv", "pair", "currentChar", "generateRandomId", "now", "randomNumber", "count", "counter", "EventEmitter", "writeBuffer", "readBuffer", "fromBundlerFilesToFS", "findStartScriptPackageJson", "getMessageFromError", "init_client_utils_7a723432", "EventEmitter2", "listener", "_this", "listenerId", "TokenType2", "packageJson", "scripts2", "possibleKeys", "_loop_1", "index2", "script", "candidate", "env_1", "command_1", "args_1", "item", "commandNotFoundYet", "index", "state_1", "node_exports", "SandpackNode", "loadPreviewIframe", "iframe", "url", "contentWindow", "TIME_OUT", "MAX_MANY_TIRES", "tries", "timeout", "triesToSetUrl", "onLoadPage", "setupHistoryListeners", "scope", "origHistoryProto", "window", "historyList", "historyPosition", "dispatchMessage", "pushHistory", "state", "delta", "newPos", "_a3", "newURL", "handleMessage", "data", "setPreviewIframeProperties", "consoleHook", "scripts", "injectScriptToIframe", "init_node", "channelId", "code", "id", "INJECT_MESSAGE_TYPE", "_super", "SandpackNode2", "selector", "sandboxInfo", "Nodebox", "shellId", "err_1", "exitCode", "_b2", "element", "event", "PREVIEW_LOADED_MESSAGE_TYPE", "type", "newContent", "err_2", "setup", "modules", "_c", "_d", "require_main", "exports", "module", "__create2", "__defProp2", "__getOwnPropDesc2", "__getOwnPropNames2", "__getProtoOf2", "__hasOwnProp2", "__commonJS2", "__export2", "__copyProps2", "__toESM2", "__toCommonJS", "require_db", "exports2", "module2", "require_mime_db", "main_exports", "PreviewController2", "getExtension", "joinFilepath", "normalizeFilepath", "CHANNEL_NAME", "import_mime_db", "extensionMap", "entries", "mimetype", "extensions", "ext", "EXTENSIONS_MAP", "counter2", "generateRandomId2", "filepath", "addition", "parts", "request", "previewRoot", "port", "headers", "extension", "foundMimetype", "responseMessage", "responseMessage1", "previewUrl", "relayUrl", "channel", "iframeContentWindow", "evt", "initMsg", "val", "el", "_indexFiles", "index_bd1ff004_exports", "SandpackStatic", "import_static_browser_server", "insertHtmlAfterRegex", "readBuffer2", "validateHtml", "init_index_bd1ff004", "regex", "insertable", "offset", "prefix", "suffix", "contentString", "domParser", "doc", "html", "SandpackStatic2", "contentToInsert", "scriptToInsert", "externalResources", "tagsToInsert", "resource", "fileType", "runtime_exports", "SandpackRuntime", "getTemplate", "pkg", "totalDependencies", "moduleNames", "adonis", "dep", "nuxt", "apollo", "m", "parcel", "dojo", "nodeDeps", "MAX_CLIENT_DEPENDENCY_COUNT", "Protocol", "IFrameProtocol", "_a", "BUNDLER_URL", "init_runtime", "Protocol2", "protocol", "response", "IFrameProtocol2", "origin", "SandpackRuntime2", "unsubscribe", "mes", "urlSource", "isInitializationCompile", "prev", "next", "packageJSON", "normalizedModules", "paramFiles", "x", "loadSandpackClient", "template", "Client", "toggleComment", "target", "state", "line", "config", "getConfig", "toggleLineComment", "toggleBlockCommentByLine", "command", "f", "option", "dispatch", "tr", "changeLineComment", "toggleBlockComment", "command", "changeBlockComment", "toggleBlockCommentByLine", "command", "o", "s", "changeBlockComment", "selectedLineRanges", "getConfig", "state", "pos", "data", "SearchMargin", "findBlockComment", "open", "close", "from", "to", "textBefore", "textAfter", "spaceBefore", "spaceAfter", "beforeOff", "startText", "endText", "startSpace", "endSpace", "endOff", "ranges", "r", "fromLine", "toLine", "last", "option", "tokens", "c", "comments", "i", "range", "changes", "comment", "token", "changeLineComment", "lines", "prevLine", "startI", "minIndent", "line", "indent", "empty", "l", "line1", "token1", "indent1", "empty1", "single", "changeSet", "changes1", "line2", "comment1", "token2", "from1", "to1", "fromHistory", "Annotation", "isolateHistory", "invertedEffects", "Facet", "historyConfig", "configs", "combineConfig", "_t", "isAdjacent2", "a", "b", "tr", "adj", "changeEnd", "end", "_", "historyField_", "StateField", "HistoryState", "config", "fromHist", "selection", "EditorSelection", "item", "HistEvent", "other", "updateBranch", "addSelection", "isolate", "Transaction", "event", "time", "userEvent", "value", "e", "json", "history", "EditorView", "view", "command2", "undo", "redo", "cmd", "side", "selection", "state", "dispatch", "historyState", "historyField_", "tr", "undo", "redo", "undoSelection", "redoSelection", "HistEvent", "after", "_a", "_b", "_c", "s", "json", "ChangeSet", "ChangeDesc", "EditorSelection", "tr", "selection", "effects", "none", "invert", "invertedEffects", "result", "selections", "changes", "mapped", "startSelection", "selectionsAfter", "updateBranch", "branch", "to", "maxLen", "newEvent", "start", "newBranch", "isAdjacent", "a", "b", "ranges", "isAdjacent2", "f", "t", "_f", "_t", "i", "from", "eqSelectionShape", "r", "conc", "MaxSelectionsPerEvent", "addSelection", "lastEvent", "sels", "popSelection", "last", "addMappingToBranch", "mapping", "length", "event", "mapEvent", "extraSelections", "mappedChanges", "before", "fullMapping", "StateEffect", "joinableUserEvent", "HistoryState", "time", "userEvent", "config", "done", "newGroupDelay", "side", "state", "fromHistory", "rest", "undone", "prevTime", "prevUserEvent", "historyKeymap", "undo", "redo", "undoSelection", "redoSelection", "updateSel", "sel", "by", "setSel", "moveSel", "dispatch", "how", "rangeEnd", "range", "forward", "cursorByChar", "view", "ltrAtCursor", "Direction", "cursorCharLeft", "cursorCharRight", "cursorByGroup", "view", "forward", "moveSel", "range", "rangeEnd", "cursorGroupLeft", "ltrAtCursor", "cursorGroupRight", "interestingNode", "state", "node", "bracketProp", "len", "moveBySyntax", "start", "forward", "pos", "syntaxTree", "NodeProp", "at", "next", "bracket", "match", "newPos", "matchBrackets", "EditorSelection", "cursorSyntaxLeft", "view", "moveSel", "range", "ltrAtCursor", "cursorSyntaxRight", "cursorByLine", "rangeEnd", "moved", "cursorLineUp", "cursorLineDown", "pageInfo", "selfScroll", "marginTop", "marginBottom", "height", "source", "EditorView", "margins", "window", "cursorByPage", "page", "selection", "updateSel", "effect", "startPos", "scrollRect", "scrollTop", "scrollBottom", "setSel", "cursorPageUp", "cursorPageDown", "moveByLineBoundary", "line", "space", "cursorLineBoundaryForward", "cursorLineBoundaryBackward", "cursorLineBoundaryLeft", "cursorLineBoundaryRight", "cursorLineStart", "cursorLineEnd", "toMatchingBracket", "dispatch", "extend", "found", "matching", "head", "cursorMatchingBracket", "extendSel", "view", "how", "selection", "updateSel", "range", "head", "EditorSelection", "setSel", "selectByChar", "forward", "selectCharLeft", "ltrAtCursor", "selectCharRight", "selectByGroup", "view", "forward", "extendSel", "range", "selectGroupLeft", "ltrAtCursor", "selectGroupRight", "selectSyntaxLeft", "view", "extendSel", "range", "moveBySyntax", "ltrAtCursor", "selectSyntaxRight", "selectByLine", "forward", "selectLineUp", "selectLineDown", "selectByPage", "pageInfo", "selectPageUp", "selectPageDown", "selectLineBoundaryForward", "moveByLineBoundary", "selectLineBoundaryBackward", "selectLineBoundaryLeft", "selectLineBoundaryRight", "selectLineStart", "EditorSelection", "selectLineEnd", "cursorDocStart", "state", "dispatch", "setSel", "cursorDocEnd", "selectDocStart", "selectDocEnd", "selectAll", "selectLine", "ranges", "selectedLineBlocks", "from", "to", "selectParentSyntax", "selection", "updateSel", "_a", "context", "syntaxTree", "simplifySelection", "cur", "deleteBy", "target", "by", "event", "changes", "towards", "skipAtomic", "EditorView", "pos", "f", "deleteByChar", "line", "before", "targetPos", "col", "countColumn", "drop", "getIndentUnit", "i", "findClusterBreak", "deleteCharBackward", "deleteCharForward", "deleteByGroup", "start", "categorize", "cat", "next", "nextChar", "nextCat", "deleteGroupBackward", "deleteGroupForward", "deleteToLineEnd", "lineEnd", "deleteToLineStart", "lineStart", "splitLine", "state", "dispatch", "changes", "range", "Text", "EditorSelection", "transposeChars", "pos", "line", "from", "findClusterBreak", "to", "selectedLineBlocks", "blocks", "upto", "startLine", "endLine", "prev", "moveLine", "forward", "ranges", "block", "nextLine", "size", "r", "r1", "moveLineUp", "moveLineDown", "copyLine", "copyLineUp", "copyLineDown", "deleteLine", "view", "selection", "updateSel", "isBetweenBrackets", "state", "pos", "context", "syntaxTree", "before", "after", "closedBy", "NodeProp", "insertNewlineAndIndent", "newlineAndIndent", "insertBlankLine", "atEof", "dispatch", "changes", "range", "from", "to", "line", "explode", "cx", "IndentContext", "indent", "getIndentation", "insert", "indentString", "Text", "EditorSelection", "changeBySelectedLine", "f", "atLine", "changeSet", "indentSelection", "updated", "start", "found", "changes2", "cur", "norm", "indentMore", "indentUnit", "indentLess", "space", "col", "countColumn", "keep", "getIndentUnit", "emacsStyleKeymap", "cursorCharLeft", "selectCharLeft", "cursorCharRight", "selectCharRight", "cursorLineUp", "selectLineUp", "cursorLineDown", "selectLineDown", "cursorLineStart", "selectLineStart", "cursorLineEnd", "selectLineEnd", "deleteCharForward", "deleteCharBackward", "deleteToLineEnd", "deleteGroupBackward", "splitLine", "transposeChars", "cursorPageDown", "standardKeymap", "cursorGroupLeft", "selectGroupLeft", "cursorLineBoundaryLeft", "selectLineBoundaryLeft", "cursorGroupRight", "selectGroupRight", "cursorLineBoundaryRight", "selectLineBoundaryRight", "cursorDocStart", "selectDocStart", "cursorPageUp", "selectPageUp", "cursorDocEnd", "selectDocEnd", "selectPageDown", "cursorLineBoundaryBackward", "selectLineBoundaryBackward", "cursorLineBoundaryForward", "selectLineBoundaryForward", "insertNewlineAndIndent", "selectAll", "deleteGroupForward", "deleteToLineStart", "b", "defaultKeymap", "cursorSyntaxLeft", "selectSyntaxLeft", "cursorSyntaxRight", "selectSyntaxRight", "moveLineUp", "copyLineUp", "moveLineDown", "copyLineDown", "simplifySelection", "insertBlankLine", "selectLine", "selectParentSyntax", "indentLess", "indentMore", "indentSelection", "deleteLine", "cursorMatchingBracket", "toggleComment", "toggleBlockComment", "__create", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__getProtoOf", "__hasOwnProp", "__commonJS", "cb", "mod", "__copyProps", "to", "from", "except", "desc", "key", "__toESM", "isNodeMode", "target", "require_lib", "exports", "module", "_createClass", "defineProperties", "props", "i2", "descriptor", "Constructor", "protoProps", "staticProps", "_classCallCheck", "instance", "ANSI_COLORS", "Anser2", "Anser3", "txt", "options", "j2", "levels", "format", "r4", "g3", "b3", "r3", "g2", "b2", "_r", "_g", "_b2", "level", "_i", "str", "markup", "_this", "self", "raw_text_chunks", "first_chunk", "color_chunks", "chunk", "first", "c2", "text", "use_classes", "result", "matches", "orig_txt", "nums", "num_str", "num", "is_foreground", "mode", "palette_index", "klass", "color2", "styles", "classes", "data", "_this2", "jsonChunk", "decoration", "tmpFg", "tmpFgTrue", "colors", "decorations", "textDecorations", "render_data", "data2", "fragments", "index", "require_escape_carriage", "escapeCarriageReturn2", "_", "base", "insert", "findLongestString", "arr", "longest", "escapeSingleLineSafe", "res", "escapeCarriageReturnSafe", "idx", "require_lz_string", "LZString2", "f2", "keyStrBase64", "keyStrUriSafe", "baseReverseDic", "getBaseValue", "alphabet", "character", "LZString3", "input", "a2", "compressed", "uncompressed", "buf", "TotalLen", "current_value", "bitsPerChar", "getCharFromInt", "value", "context_dictionary", "context_dictionaryToCreate", "context_c", "context_wc", "context_w", "context_enlargeIn", "context_dictSize", "context_numBits", "context_data", "context_data_val", "context_data_position", "ii", "length", "resetValue", "getNextValue", "dictionary", "next", "enlargeIn", "dictSize", "numBits", "entry", "w2", "bits", "resb", "maxpower", "power", "t", "n", "r", "i", "o", "t2", "l", "n2", "e2", "s", "a", "c", "d", "g", "p", "u", "h", "f", "m", "e3", "b", "S", "t3", "k", "y", "o2", "l2", "B", "$", "x", "s2", "n3", "d2", "p2", "x2", "z2", "e4", "S2", "e5", "z3", "t4", "t41", "u2", "n4", "i3", "o3", "l3", "s3", "a3", "c3", "e6", "t5", "r5", "n5", "I", "R", "z", "W", "j", "E", "T", "e21", "i31", "e22", "t31", "n31", "v", "M", "w", "C", "P", "L", "r41", "O", "D", "p3", "h2", "A", "i4", "o4", "l4", "i5", "s4", "i41", "o41", "t32", "H", "N", "V", "G", "F", "J", "U", "Z", "X", "has", "find", "iter", "tar", "dequal", "foo", "bar", "ctor", "len", "tmp", "window", "document2", "registry", "crossOriginUpdater", "crossOriginRect", "IntersectionObserverEntry", "ensureDOMRect", "getEmptyRect", "targetRect", "targetArea", "intersectionRect", "intersectionArea", "IntersectionObserver2", "callback", "opt_options", "throttle", "margin", "boundingClientRect", "convertFromParentRect", "observer", "isTargetAlreadyObserved", "item", "records", "opt_threshold", "threshold", "opt_rootMargin", "marginString", "margins", "parts", "doc", "win", "monitoringInterval", "domObserver", "addEvent", "win2", "removeEvent", "frame", "getFrameElement", "rootDoc", "hasDependentTargets", "itemDoc", "frame2", "unsubscribe", "unsubscribes", "rootIsInDom", "rootRect", "getBoundingClientRect", "rootContainsTarget", "oldEntry", "newEntry", "now", "parent", "getParentNode", "atRoot", "parentRect", "parentComputedStyle", "frameRect", "frameIntersect", "computeRectIntersection", "html2", "body", "rect", "newRect", "oldRatio", "newRatio", "containsDeep", "fn", "timeout", "timer", "node", "event", "opt_useCapture", "rect1", "rect2", "top", "bottom", "left", "right", "width", "height", "el", "parentBoundingRect", "parentIntersectionRect", "child", "usePassiveLayoutEffect", "e", "module_default", "useIntersectionObserver", "root", "pollInterval", "useMutationObserver", "rootMargin", "initialIsIntersecting", "setEntry", "ye", "setObserver", "getIntersectionObserver", "ue", "observer2", "targetEl", "didUnsubscribe", "entries", "entry2", "createIntersectionObserver", "callbacks", "_intersectionObserver", "keys", "module_default2", "import_anser", "import_escape_carriage", "import_lz_string", "__assign", "t2", "s2", "i2", "n2", "p2", "__rest", "e", "__awaiter", "thisArg", "_arguments", "P2", "generator", "adopt", "value", "resolve", "reject", "fulfilled", "step", "rejected", "result", "__generator", "body", "_", "f2", "y2", "g2", "verb", "v2", "op", "__spreadArray", "to", "from", "pack", "l2", "ar", "SVG", "props", "RunIcon", "u", "SVG", "CloseIcon", "u", "SVG", "__assign", "_a$a", "defaultLight", "defaultDark", "SANDPACK_THEMES", "window", "getFileName", "filePath", "lastIndexOfSlash", "calculateNearestUniquePath", "currentPath", "otherPaths", "currentPathParts", "resultPathParts", "fileIndex", "otherPathParts", "partsFromEnd", "currentPathPart", "otherPathPart", "isDarkColor", "color2", "r3", "g2", "b2", "rgbValues", "yiq", "lastCount", "generateRandomId", "random", "toString", "defineProperty", "_a$9", "THEME_PREFIX", "createTheme", "X", "css", "getCssText", "keyframes", "defaultVariables", "acc", "_", "index", "_a2", "__assign", "standardizeStitchesTheme", "theme", "syntaxEntries", "syntax", "tokenAcc", "_b2", "tokenName", "tokenValue", "newValues", "valueAcc", "_a3", "_b3", "styleProp", "styleValue", "standardizeTheme", "inputTheme", "_c2", "_d", "_e", "defaultLightThemeKey", "predefinedTheme", "mode", "baseTheme", "colorsByMode", "syntaxByMode", "fontByMode", "id", "simpleHashFunction", "str", "hash", "i2", "fakeCss", "ClassNamesContext", "z", "ClassNamesProvider", "children", "classes", "useClassNames", "contextClassNames", "re", "customClassName", "allClassNames", "custom", "joinClassNames", "__spreadArray", "args", "_i", "wrapperClassName$3", "SandpackThemeContext", "SandpackThemeProvider", "themeFromProps", "className", "props", "__rest", "classNames", "themeClassName", "se", "SandpackThemeConsumer", "commonFiles", "ASTRO_TEMPLATE", "NEXTJS_TEMPLATE", "NODE_TEMPLATE", "VITE_TEMPLATE", "VITE_REACT_TEMPLATE", "VITE_REACT_TS_TEMPLATE", "VITE_SVELTE_TEMPLATE", "VITE_SVELTE_TS_TEMPLATE", "VITE_VUE_TEMPLATE", "VITE_VUE_TS_TEMPLATE", "ANGULAR_TEMPLATE", "REACT_TEMPLATE", "REACT_TYPESCRIPT_TEMPLATE", "SOLID_TEMPLATE", "SVELTE_TEMPLATE", "TEST_TYPESCRIPT_TEMPLATE", "VANILLA_TEMPLATE", "VANILLA_TYPESCRIPT_TEMPLATE", "VUE_TEMPLATE", "VUE_TS_TEMPLATE", "STATIC_TEMPLATE", "SANDBOX_TEMPLATES", "getSandpackStateFromProps", "_f", "normalizedFilesPath", "normalizePath", "projectSetup", "combineTemplateFilesToSetup", "visibleFiles", "activeFile", "resolveFile", "file", "files", "addPackageJSONIfNeeded", "existOpenPath", "path", "normalizedPath", "resolvedPath", "strategies", "removeExtension", "attemptPath", "template", "customSetup", "defaultTemplate", "convertedFilesToBundlerFiles", "baseTemplate", "key", "useAppState", "ye", "state", "setState", "originalStateFromProps", "editorState", "dequal", "prev", "BUNDLER_TIMEOUT", "useClient", "filesState", "options", "teamId", "initModeFromProps", "intersectionObserver", "pe", "lazyAnchorRef", "registeredIframes", "clients", "timeoutHook", "unsubscribeClientListeners", "unsubscribe", "queuedListeners", "debounceHook", "prevEnvironment", "createClient", "te", "iframe", "clientId", "clientPropsOverride", "__awaiter", "timeOut", "shouldSetTimeout", "client", "globalListeners", "_c3", "__generator", "_d2", "unregisterAllClients", "loadSandpackClient", "handleMessage", "listenerId", "listener", "unsubscribe2", "_a4", "unregisterBundler", "runSandpack", "initializeSandpackIframe", "autorun", "observerOptions", "entries", "entry", "registerBundler", "unsubscribeQueuedClients", "listenerOfClient", "listenerFunctions", "status", "msg", "extractErrorDetails", "registerReactDevTools", "value", "recompileMode", "recompileDelay", "dispatchMessage", "message", "addListener", "unsubscribeListener", "listenerId_1", "listenerId_2", "clientsList", "currentClientUnsubscribeListeners_1", "ue", "useFiles", "isMountedRef", "updateFile", "pathOrFiles", "code", "shouldUpdatePreview", "operations", "rest", "newPaths", "prevState", "indexOfRemovedPath", "openPath", "newFiles", "remainingVisibleFiles", "deletedLastVisibleFile", "nextFile", "Sandpack$1", "SandpackProvider", "style", "fileState", "fileOperations", "clientState", "clientOperations", "appState", "SandpackConsumer", "useSandpack", "sandpack", "dispatch", "listen", "useActiveCode", "_a$8", "_b$2", "_c", "iconStandaloneClassName", "buttonClassName", "roundedButtonClassName", "iconClassName", "fadeIn", "absoluteClassName", "errorClassName", "errorBundlerClassName", "errorMessageClassName", "_a$7", "tabsClassName", "tabsScrollableClassName", "closeButtonClassName", "tabButton", "FileTabs", "closableTabs", "setActiveFile", "handleCloseFile", "ev", "tabElm", "pathToClose", "getTriggerText", "documentFileName", "pathsWithDuplicateFileNames", "curr", "fileName", "u", "CloseIcon", "RoundedButton", "onClick", "runButtonClassName", "RunButton$1", "event", "RunIcon", "_a$6", "stackClassName", "SandpackStack", "useSandpackTheme", "shallowEqual", "a2", "result", "getCodeMirrorPosition", "doc", "line", "column", "getEditorTheme", "EditorView", "classNameToken", "name", "styleTokens", "syntaxHighLightTokens", "token", "getSyntaxHighlight", "HighlightStyle", "tags", "getLanguageFromFile", "fileType", "additionalLanguages", "extension", "extensionDotIndex", "additionalLanguages_1", "additionalLanguage", "getCodeMirrorLanguage", "javascript", "html", "additionalLanguages_2", "useCombinedRefs", "refs", "element", "ref", "highlightDecorators", "positions", "ViewPlugin", "class_1", "view", "update", "Decoration", "rangesDecorators", "item", "lineDeco2", "markDeco", "positionLineStart", "positionLineEnd", "v2", "highlightInlineError", "activeLineHighlighter", "lineDeco", "_this", "trans", "errorValue", "position", "_a$5", "_b$1", "placeholderClassName", "tokensClassName", "editorClassName", "cmClassName", "readOnlyClassName", "useSyntaxHighlight", "langSupport", "highlightTheme", "tree", "offSet", "codeElementsRender", "addElement", "to", "B", "highlightTree", "from", "CodeMirror", "Y", "onCodeUpdate", "showLineNumbers", "showInlineErrors", "wrapContent", "_g", "readOnly", "_h", "showReadOnly", "decorators", "_j", "initMode", "_k", "extensions", "_l", "extensionsKeymap", "_m", "wrapper", "combinedRef", "cmView", "_o", "themeId", "_p", "internalCode", "setInternalCode", "_q", "shouldInitEditor", "setShouldInitEditor", "prevExtension", "prevExtensionKeymap", "isIntersecting", "module_default2", "ce", "languageExtension", "syntaxHighlightRender", "sortedDecorators", "d1", "d2", "customCommandsKeymap", "view2", "indentMore", "customKey", "indentLess", "deleteGroupBackward", "extensionList", "highlightSpecialChars", "history", "closeBrackets", "keymap", "closeBracketsKeymap", "defaultKeymap", "historyKeymap", "syntaxHighlighting", "EditorState", "bracketMatching", "highlightActiveLine", "lineNumbers", "parentDiv", "existingPlaceholder", "tr", "newCode", "dependenciesAreDiff", "StateEffect", "selection", "EditorSelection", "changes", "Annotation", "handleContainerKeyDown", "evt", "gutterLineOffset", "offset", "l", "SandpackCodeEditor", "showTabs", "showRunButton", "updateCode", "readOnlyFile", "shouldShowTabs", "handleCodeUpdate", "_a$4", "_b", "layoutClassName", "css", "stackClassName", "THEME_PREFIX", "SandpackLayout", "Y", "_a2", "ref", "children", "className", "props", "__rest", "sandpack", "useSandpack", "classNames", "useClassNames", "combinedRef", "useCombinedRefs", "__assign", "MAX_MESSAGE_COUNT$1", "consoleItemClassName$1", "css", "_a$3", "cubeClassName", "css", "wrapperClassName$2", "buttonClassName", "cubeRotate", "keyframes", "sidesClassNames", "loadingClassName", "css", "stdoutPreview", "css", "progressClassName$1", "fadeIn", "progressClassName", "css", "fadeIn", "explorerClassName", "fileExplorerClassName", "css", "navigatorClassName", "css", "inputClassName", "_a$2", "previewClassName", "css", "THEME_PREFIX", "previewIframe", "previewActionsClassName$1", "_a$1", "transpiledCodeClassName", "css", "THEME_PREFIX", "wrapperClassName$1", "css", "flexClassName$1", "color", "css", "passTextClassName", "failTextClassName", "skipTextClassName", "titleTextClassName", "background", "runBackgroundClassName", "passBackgroundClassName", "failBackgroundClassName", "testContainerClassName", "containerClassName$4", "testClassName", "durationClassName", "gapRightClassName", "nameClassName", "css", "containerClassName$3", "containerClassName$2", "css", "fileContainer", "css", "gapBottomClassName$1", "failTestClassName", "labelClassName$1", "specLabelClassName", "filePathButtonClassName", "filePathClassName", "fileNameClassName", "gapBottomClassName", "css", "labelClassName", "containerClassName$1", "previewActionsClassName", "css", "containerClassName", "css", "fileErrorContainerClassName", "MAX_KEYS", "MAX_MESSAGE_COUNT", "GLOBAL", "savedEval", "Arithmetic", "Arithmetic2", "_a", "consoleItemClassName", "css", "_a", "THEME_PREFIX", "wrapperClassName", "flexClassName", "dragHandler", "css", "buttonCounter", "css", "consoleWrapper", "rtlLayoutClassName", "Browser", "isBrowser", "window", "isTouch", "navigator", "isChrome", "isWebKit", "isSafari", "isSafariDesktop", "isWindows", "isMacOS", "supportedLanguages", "SuspenseValue", "status", "promise", "value", "reason", "resolver", "getFileExtensions", "language", "useBorder", "props", "collapseEqualBorders", "style", "borderWidth", "borderColor", "borderStyle", "isMixedBorderWidth", "borderWidthBottom", "borderWidthLeft", "borderWidthRight", "borderWidthTop", "borderTop", "borderBottom", "borderLeft", "borderRight", "groupsRegex", "capitalizeFirstLetter", "value", "titleCase", "useRadius", "borderRadius", "isMixedBorderRadius", "topLeftRadius", "topRightRadius", "bottomRightRadius", "bottomLeftRadius", "se", "usePadding", "padding", "paddingBottom", "paddingLeft", "paddingPerSide", "paddingRight", "paddingTop", "useIsOnCanvas", "onCanvas", "ye", "RenderTarget", "isObject", "isDarkColor", "color", "r", "g", "b", "rgbValues", "angular", "SuspenseValue", "cpp", "java", "markdown", "php", "python", "rust", "sql", "vue", "scala", "language", "LanguageSupport", "StreamLanguage", "c", "csharp", "kotlin", "objectiveC", "go", "haskell", "julia", "lua", "nginx", "octave", "perl", "ruby", "shell", "swift", "yaml", "useLanguageAsync", "name", "getFileExtensions", "amethyst", "aquaBlue", "atomDark", "cobalt2", "cyberpunk", "dracula", "freeCodeCampDark", "githubLight", "levelUp", "monokaiPro", "neoCyan", "nightOwl", "sandpackDark", "magic", "atomLight", "framerLight", "framerDark", "ayuLight", "ayuDark", "sandpackLight", "githubDark", "themeKeys", "themes", "amethyst", "aquaBlue", "atomDark", "cobalt2", "cyberpunk", "dracula", "freeCodeCampDark", "githubLight", "levelUp", "monokaiPro", "neoCyan", "nightOwl", "sandpackDark", "lightThemeVariables", "darkThemeVariables", "getVariableTheme", "font", "_fontFamily", "getVariablesForTheme", "theme", "background", "mode", "result", "colors", "syntax", "isObject", "name", "value", "name1", "value1", "style", "isDarkColor", "DEFAULT_CODE", "wrapperClassName", "css", "lightThemeVariables", "darkThemeVariables", "rule", "CodeBlock", "withCSS", "props", "code", "themeMode", "theme", "lightTheme", "darkTheme", "style", "language", "font", "border", "background", "variableTheme", "getVariableTheme", "getVariablesForTheme", "additionalLanguage", "useLanguageAsync", "extension", "getFileExtensions", "onCanvas", "useIsOnCanvas", "borderStyles", "useBorder", "borderRadius", "useRadius", "hasBorderRadius", "fileName", "padding", "usePadding", "u", "motion", "SandpackProvider", "SandpackLayout", "SandpackCodeEditor", "SandpackStyles", "CodeBlock_default", "l", "Browser", "getCssText", "themeNames", "themeKeys", "titleCase", "addPropertyControls", "ControlType", "supportedLanguages", "d", "s", "c", "h", "p", "m", "u", "f", "g", "y", "S", "k", "v", "b", "x", "w", "T", "B", "C", "motion", "ComponentPresetsConsumer", "t", "CodeBlock_default", "addPropertyControls", "ControlType", "tsMPIaZTQ_default", "yaOxe8T3BToDisplayName", "enumToDisplayNameFunctions", "__FramerMetadata__"]
}
